Det kan være lurt å gi et eksempel. Hvis koden fokuserer for mye på språk detaljer som ikke er en del av algoritmen, så forståelig, det kunne sies at du hadde ikke-algoritmen blandet med algoritme, noe som resulterer i feil resultat.
Jeg føler for resonnement, er hele poenget med å lære å vise at du forstår konseptet, for ikke å bøye seg og krysser alle de riktige boksene.
En datamaskin kan læres opp til å passere universitet, men en datamaskin kan bli enda lært å faktisk tenke selv og bruke kunnskap.
Spis og regurgitate mentalitet er grunnen til at jeg aldri ble uteksaminert.
Med hensyn til din siste kommentar, er det viktig å innse pseudokode er udefinert. Det er vanligvis brukes på nytt vilkår i det, men det er ikke en streng språk noe mer enn engelsk er (ellers ville det være et programmeringsspråk, som kan analyseres og henrettet ordrett)
Den betydningen av pseudokode er å kjøttet ut logikken del av systemet og ikke trenger å bekymre deg altfor om syntaksen utover 'det er fornuftig'
Ofte kan dette gjøre pseudo både mer avvisende og mer forståelig.
Pseudo heller ikke stole på at leseren har en forståelse av den 'magiske syntaks' i språket for å behandle det, er alt de trenger for å forstå begrepene som brukes.
Hvis du skulle gi den gjennomsnittlige personen en algoritme i perl for eksempel, ville folk flest bare dø av skrekk, fordi de ikke ser forbi påstøp av linjestøy.
Samtidig som:
sub foo {
my @args = @_ ;
my( $a, $b )=(@args[0],@args[1]);
for( @{ $a } ){
$b .= $_ ;
s/id//g;
}
return [$b,$a];
}
kan gjøre noen sammenhengende følelse til noen bevandret i perl, til gjennomsnittet kode leser alt de får er en "hva i helvete gjorde du bare si" respons. Dokumentere det hjelper ikke mye heller.
| there is a subroute foo which can take a list of strings, and a default string,
\- which then iterates all items in that list,
| \- and for each item in that list
| 1. appends the contents of that item to the end of the default string
| 2. removes all instances of the string "id" in that item
|
\ and returns a list, which contains
1. the concatentated default string
2. the modified input list
Plutselig blir det mindre tvetydig og en større prosentandel av folk kan forstå det.
Så muligens halve øvelsen med å skrive algoritmen er en øvelse i "Ikke bare har du å bevise at du forstår det, har du også å bevise at du kan forklare resonnementet til andre som vet noe av problemet", som er en viktig evne du trenger. Hvis du ikke kan kommunisere hva du har gjort, ingen kan bruke den.
det er også denne ekkel lite problem med kode, som ikke finnes i en algoritme, og det er koden kan se rett, men kan ikke gjøre hva du tror den gjør det, og hvis det ikke gjør det riktig, og du skjønner 't innse, folk leser koden reverse engineering det vil berøre den opp og kopiere en brukket algoritme. ikke bra. algoritmen i menneskelig form bedre settes 'dette er hva jeg vil det gjør'