Γράφει κώδικα έξω εξακολουθεί να θεωρείται μια αλγοριθμική αναπαράσταση;

ψήφοι
2

Μόλις έχασα το 50% της απάντησής μου σε ένα τεστ, επειδή έγραψα τον κώδικα από αντί ενός αλγορίθμου για την ενδιάμεση μου, πρόσκρουση μου από Α σε C. Είναι σύνταξη κώδικα από εξακολουθεί να θεωρείται μια αλγοριθμική αναπαράσταση;

Wikipedia: Αλγόριθμος Αντιπροσωπεία (από το στυλ προγραμματισμού είναι λίγο πολύ συναινετική)

EDIT: Εντάξει, οπότε επιτρέψτε μου να κάνω μερικά σημεία σαφής:

  1. Η δοκιμή ζήτησε ψευδο-κώδικα, το οποίο ποτέ δεν «ορίζεται» στην τάξη? εμείς απλά κατέγραψε Αγγλικά για αλγορίθμους μας.

  2. Είναι μια κλάση Java, και έγραψε το σύνολο της λύσης σε μια μέθοδο Java, μαζί με τα σχόλια. Όλα αυτά ήταν χειρόγραφες, και πήρε περισσότερο χρόνο για να γράψουν ό, τι ψευδο-κώδικα. Σκέφτηκα ότι θα ήταν πιο σαφής.

  3. Εγώ κανονικά δεν θα κάνει ένα θέμα για τέτοια πράγματα, αλλά είναι η διαφορά μεταξύ ενός Α και C, και έχω ένα ιππασίας υποτροφία για τις εξετάσεις μου.

  4. Τέλος, κάνω αυτή τη θέση για δύο λόγους:

    4.1 θέλω να δείξω τι σκέφτεται η σύγχρονη κοινότητα προγραμματισμού για ψευδο-κώδικα και αλγοριθμική αναπαράσταση.

    4.2 Θέλω να ξέρω τι είναι αποδεκτό στον «πραγματικό κόσμο»? Έχω ήδη τον προγραμματισμό για κάποιο χρονικό διάστημα, αλλά θέλω να είναι σε θέση να συμβάλουν στην open-source έργα σύντομα, και δεν θέλω να το βήμα σε εγρήγορση κανενός. (Αν και είμαι σίγουρος ότι αυτό το θέμα έχει ελάχιστες πιθανότητες να ανεβαίνει στον πραγματικό κόσμο).

Και πάλι, ευχαριστώ για οποιαδήποτε βοήθεια / συμβουλές.

Δημοσιεύθηκε 05/11/2008 στις 00:12
πηγή χρήστη
Σε άλλες γλώσσες...                            


8 απαντήσεις

ψήφοι
0

Το μόνο που ξέρω είναι ότι δεν πρέπει να γράψετε οποιοδήποτε κώδικα μέχρι να έχετε μια algorithim.

Απαντήθηκε 05/11/2008 στις 00:15
πηγή χρήστη

ψήφοι
5

Μπορεί να θέλετε να δώσω ένα παράδειγμα. Αν κωδικό σας επικεντρώνεται πάρα πολύ στη γλώσσα λεπτομέρειες που δεν αποτελούν μέρος του αλγορίθμου, τότε Δικαιολογημένα, θα μπορούσε να πει είχατε μη αλγόριθμο αναμιγνύεται με τον αλγόριθμο σας, με αποτέλεσμα ένα λανθασμένο αποτέλεσμα.

Αισθάνομαι για τη συλλογιστική, το νόημα της μάθησης είναι να δείξει ότι καταλαβαίνετε την έννοια, για να μην πέφτουν και να τσεκάρετε όλες τις σωστές θέσεις.

Ένας υπολογιστής μπορεί να διδαχθεί να περάσει στο πανεπιστήμιο, αλλά ένας υπολογιστής επίκλισης να διδάξει ακόμα για να σκεφτεί πραγματικά για τον εαυτό της και να εφαρμόσει τη γνώση.

Φάτε και αναμασούν νοοτροπία είναι ο λόγος που ποτέ δεν αποφοίτησε.


Όσον αφορά την πρόσφατη σχόλιό σας, το σημαντικό να συνειδητοποιήσουμε ψευδοκώδικα είναι απροσδιόριστη. Υπάρχουν γενικά επαναχρησιμοποιούνται όρους σε αυτό, αλλά δεν είναι μια αυστηρή γλώσσα περισσότερο από αγγλικά είναι (αλλιώς θα είναι μια γλώσσα προγραμματισμού, η οποία θα μπορούσε να αναλυθεί και να εκτελούνται κατά γράμμα)

Η σημασία της ψευδοκώδικα είναι να συμπληρώσουν τη λογική μέρος του συστήματος και δεν χρειάζεται να ανησυχείτε υπερβολικά για τη σύνταξη πέρα από «έχει νόημα»

Συχνά αυτό μπορεί να κάνει το ψευδοκώδικα τόσο πιο λιτός και πιο κατανοητή.

Ψευδοκώδικας και δεν βασίζεται στον αναγνώστη με την κατανόηση της «μαγείας σύνταξη» στη γλώσσα για να το επεξεργαστεί, το μόνο που πρέπει να καταλάβουν είναι οι όροι που χρησιμοποιούνται.

Εάν επρόκειτο να δώσει το μέσο άτομο έναν αλγόριθμο σε perl για παράδειγμα, οι περισσότεροι άνθρωποι θα πεθάνουν μόνο από τρόμο, επειδή δεν βλέπουν πέρα ​​από τα κονιάματα του θορύβου γραμμής.

Ενώ:

sub foo { 
   my @args = @_ ; 
   my( $a, $b )=(@args[0],@args[1]); 
   for( @{ $a } ){
       $b .= $_ ; 
       s/id//g; 
   }
   return [$b,$a];
}

μπορεί να κάνει κάποια συνεκτική αίσθηση σε κάποιον έμπειρα σε perl, με το μέσο αναγνώστη κώδικα το μόνο που έχετε είναι μια απάντηση «τι στο διάολο είπες». Η τεκμηρίωση δεν βοηθά πολύ ούτε.

| 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 

Ξαφνικά γίνεται λιγότερο ασαφής και ένα μεγαλύτερο ποσοστό των ανθρώπων μπορούν να το καταλάβουν.

Έτσι, ίσως, το ήμισυ η άσκηση με τη σύνταξη του αλγορίθμου είναι μια άσκηση στην «Δεν κάνουμε μόνο που έχετε να αποδείξετε ότι το καταλαβαίνω, θα πρέπει επίσης να αποδείξει μπορείτε να εξηγήσετε το σκεπτικό σας σε άλλους τους οποίους δεν γνωρίζουν τίποτα για το πρόβλημα», η οποία είναι ζωτικής σημασίας ικανότητα που χρειάζεστε. Εάν δεν μπορείτε να επικοινωνήσετε τι έχετε κάνει, κανείς δεν μπορεί να το χρησιμοποιήσει.

υπάρχει και αυτή η άσχημη μικρό πρόβλημα με τον κωδικό, που δεν υπάρχει σε έναν αλγόριθμο, και αυτός είναι ο κώδικας μπορεί να φαίνονται σωστά, αλλά δεν μπορεί να κάνει ό, τι νομίζετε ότι κάνει, και αν δεν το κάνουμε σωστά, και σας don «t συνειδητοποιούν, οι άνθρωποι διαβάζουν τον κώδικα αντίστροφη μηχανική θα το φάουλ και να αντιγράψετε ένα σπασμένο αλγόριθμο. ΟΧΙ καλα. ο αλγόριθμος με ανθρώπινη μορφή καλύτερη μεταφράζεται «αυτό είναι που θέλω να κάνω»

Απαντήθηκε 05/11/2008 στις 00:20
πηγή χρήστη

ψήφοι
3

Σε αυτή την περίπτωση, θα πρέπει να αναβάλει για τον καθηγητή.

Απαντήθηκε 05/11/2008 στις 00:23
πηγή χρήστη

ψήφοι
0

Το πρόβλημα με τη χρήση κώδικα αντί του ψευδοκώδικα είναι ότι, θεωρητικά μιλώντας, θα μπορούσε κανείς να υποθέσει ότι ήταν κώδικα, δεν ψευδοκώδικα. Εν πάση περιπτώσει, οι βαθμοί των εκπαιδευτικών που για την απάντησή σας, όχι για τις γνώσεις σας - θα είναι καλύτερα να απαντήσει αυτό που ζήτησε, σύμφωνα με τους όρους ο δάσκαλος θέλει. Ναι, όλοι γνωρίζουμε, ξέρετε καλύτερα. Αλλά ποτέ δεν είναι μια κακή άσκηση για να προσπαθήσει να αιτιολογήσει τον τρόπο ενός άλλου ατόμου, ξέρετε. Και, τουλάχιστον στη χώρα μου ο δάσκαλος έχει το δικαίωμα να αξιολογήσει ελεύθερα, έτσι ώστε ... να πάρει μαζί του!

Απαντήθηκε 05/11/2008 στις 00:29
πηγή χρήστη

ψήφοι
2

Πρέπει να δώσετε περισσότερες πληροφορίες. Μπορείτε κλήθηκαν για έναν αλγόριθμο, αλλά παρέχονται κώδικα. Μήπως σχολιάσει τον κωδικό; Πόσο? (Θα ήθελα να δω την ερώτηση και την απάντηση, αλλά ίσως αυτό είναι που ζητούν πάρα πολύ).

Γι 'αυτό θα απαντήσω με βάση τη δική μου εμπειρία. Αν ρωτάω για έναν αλγόριθμο, τότε θέλω κάτι που εξηγεί, στην αξιοπρεπή αγγλικά, πώς να λύσει το πρόβλημα και / ή να ικανοποιεί τις απαιτήσεις της ερώτησης. Διαγράμματα είναι επίσης καλό (μερικές φορές καλύτερα). Η παράγραφος, σημείο μορφή, οτιδήποτε - απλά πρέπει να είναι σαφείς, ακριβείς και σωστές.

Αν με προμηθεύσει με κώδικα που κάνει τα παραπάνω, τότε άριστα. Ωστόσο, αν σας προμηθεύσει κωδικό που είναι καθαρή «γλώσσα» και μάλλον αινιγματικό, τότε τα σήματα θα χαθούν - περισσότερο ή λιγότερο ανάλογα με το πόσο αινιγματικά ο κώδικας είναι στην πραγματικότητα. Ακόμη και με τον κωδικό, θα ήθελα να δω ένα διάγραμμα, καθώς, ακριβώς για να δείξει την πλήρη κατανόηση των εννοιών.

Ένα από τα δυσκολότερα πράγματα που αντιμετωπίζουν κατά τη διδασκαλία του προγραμματισμού είναι να πάρει τους μαθητές να γράψω περισσότερα, όχι λιγότερα. Μερικές φορές έπρεπε να τους υπενθυμίσω ότι η εκχώρηση (ή εξετάσεις) δεν αποτελεί την είσοδο στο «πιο ασαφής διαγωνισμό κώδικα». ;-)

Στην υγειά σας,

-R

Απαντήθηκε 05/11/2008 στις 00:49
πηγή χρήστη

ψήφοι
0

Απλά μιλήστε με τον καθηγητή σας και να τον ρωτήσω γιατί πήρατε το ζήτημα λάθος. τον ρωτήσω τι θα ήταν μια σωστή απάντηση, και ποια είναι η βασική διαφορά μεταξύ των δύο.

Θα μπορούσε να είναι ότι ο αλγόριθμος που έγραψε δεν ήταν σωστή;

Απαντήθηκε 05/11/2008 στις 01:56
πηγή χρήστη

ψήφοι
0

Κώδικας είναι ένας αλγόριθμος γραμμένο έτσι ώστε η μηχανή μπορεί να το εκτελέσει. Δεν υπάρχει τίποτα σε αυτόν τον ορισμό που λέει ότι δεν έχει γράψει επίσης για έναν άνθρωπο να καταλάβει. Μήπως γράφει σε Java επισκιάζει αλγόριθμο σας; Αυτό θα καθορίσει αν θα συμφωνηθεί με το δάσκαλό σας.

Απαντήθηκε 05/11/2008 στις 02:22
πηγή χρήστη

ψήφοι
2

Ως γκρέιντερ για ένα μάθημα προηγμένους αλγόριθμους, θα ήθελα πάντα να απογειωθεί πόντους αν υπάρχει απλώς μια κωδικοποιημένη λύση.

Μερικά πράγματα απλά δεν μπορεί να εκφραστεί ως εύγλωττα στον κώδικα όσο μπορούν στα αγγλικά. Ψευδο-κώδικας είναι μια προσπάθεια να απελευθερωθεί από την αυστηρή σύνταξη compiler και να επιτρέψει κάποια εκφραστικότητα. Είναι ένα βήμα προς τη σωστή κατεύθυνση της κατανόησης, αλλά δεν είναι πάντα αρκετό.

Ειδικά σε μια κατηγορία αλγορίθμων, είναι πάντα σημαντικό να παρέχει μια απόδειξη της ορθότητας (είτε είναι με επαγωγή, αντίθεση, κ.λπ.), καθώς και ένα μεγάλο-O συμβολισμός για την διαστημικών και χρόνου η πολυπλοκότητα του αλγορίθμου σας.

Απαντήθηκε 13/11/2008 στις 21:04
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more