GOTO statement.....

Ξεκίνησε από the_greek_soldier, 27 Απρ 2011, 08:31:32 ΜΜ

« προηγούμενο - επόμενο »

the_greek_soldier

ΘΑ ΗΘΕΛΑ ΝΑ ΚΑΝΩ ΜΙΑ ΕΡΩΤΗΣΗ.....ΠΟΙΟ ΑΠΟ ΤΑ ΔΥΟ ΤΜΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΥ ΕΙΝΑΙ ΣΩΣΤΟ;;;;

1)  αν αριθμος>0 τοτε goto 1       
     αν αριθμος=0 τοτε goto 2
          γραψε "αρνητικος"
     goto 4
     1:γραψε "θετικος"
     goto 4
     2:γραψε "μηδεν"
     goto 4
     4:εντολη 5

2) αν αριθμος>0 τοτε goto 1       
     αν αριθμος=0 τοτε goto 2
          γραψε "αρνητικος"
     goto 4
     1:γραψε "θετικος"
     goto 4
     2:γραψε "μηδεν"
     4:εντολη 5
   
ΜΕ ΛΙΓΑ ΛΟΓΙΑ ΤΟ GOTO ΠΡΙΝ ΤΗΝ (4) ΧΡΕΙΑΖΕΤΑΙ;;;;

Vangelis

Δεν χρειάζεται αλλα δεν χρειάζεται να μαθαίνεις με ακρίβεια πως δουλεύεςι η goto.  (Για παράδειγμα και οι δύο λύσεις τις ίδιες μονάδες θα πάρουν.)
Έτσι και μπλέξουμε στις γενικές εξετάσεις με "μαύρα πρόβατα" καήκαμε ... θα γίνει ο δεύτερος εμφύλιος των πληροφορικών.
Έχει μάθει πλέον ο "Τσομπάνης"  ....   και αποφεύγει τις κακοτοπιές.

the_greek_soldier

ΤΟΤΕ ΓΙΑΤΙ ΝΑ ΤΗΝ ΧΡΗΣΙΜΟΠΟΙΕΙΣ;;;;;; ΤΟ ΣΧΟΛΙΚΟ ΓΙΑΤΙ ΤΗΝ ΕΧΕΙ ΑΦΟΥ ΕΙΝΑΙ ΠΕΡΙΤΤΗ;;;;

P.Tsiotakis

Ο πιο απλός τρόπος να απαλλαγεις απο την εντολή αυτή είναι να μετατρεψεις σε διάγραμμα ροης την αδομητη κωδικοποίηση και στη συνεχεια απο το διάγραμμα να σχηματισεις τη δομημένη κωδικοποίηση...

the_greek_soldier

ΤΟ ΞΕΡΩ ΠΩΣ ΜΠΟΡΩ ΝΑ ΑΠΑΛΛΑΓΩ ΑΛΛΑ ΤΟ ΘΕΜΑ ΕΙΝΑΙ Η ΣΥΓΚΕΚΡΙΜΕΝΗ ΕΝΤΟΛΗ ΠΟΥ ΛΕΩ ΧΡΕΙΑΖΕΤΑΙ;;;;;

denix

Η εσοχή που βάζεις στην τρίτη γραμμή (τα κενά δηλαδή) πριν την εντολή γραψε "αρνητικός", χρειάζεται;

Gnirut

Παράθεση από: the_greek_soldier στις 29 Απρ 2011, 04:33:07 ΜΜ
ΤΟ ΞΕΡΩ ΠΩΣ ΜΠΟΡΩ ΝΑ ΑΠΑΛΛΑΓΩ ΑΛΛΑ ΤΟ ΘΕΜΑ ΕΙΝΑΙ Η ΣΥΓΚΕΚΡΙΜΕΝΗ ΕΝΤΟΛΗ ΠΟΥ ΛΕΩ ΧΡΕΙΑΖΕΤΑΙ;;;;;

Δεν είναι απαραίτητη. Και τα δύο κομμάτια κώδικα που έχεις εκτελούνται το ίδιο. Το δεύτερο απλά θα εκτελεστεί θεωρητικώς απειροελάχιστα πιο γρήγορα επειδή δεν θα εκτελεστεί το περιττό jump που προσθέτει η τελευταία goto. Λέω θεωρητικώς γιατι οι περισσότεροι compilers πλέον είναι optimized, καταλαβαίνουν ότι το τελευταίο goto δεν αλλάζει τη ροή εκτέλεσης και το πετάνε αυτομάτως έξω.

Τέλος όσον αφορά την διδιασκαλία της goto δεν παθαίνουν τίποτα τα παιδιά να την μάθουν και να την έχουν υπ'όψιν τους. Ας μην ξεχνάμε π.χ. ότι στο linux ο κώδικας του kernel περιέχει ουκ ολίγα goto.

P.Tsiotakis

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

P.Tsiotakis

στο πρώτο τμήμα αλγορίθμου η τελευταία GOTO φαίνεται να μη χρειάζεται
αν αυτό ρωτάς

the_greek_soldier

ΟΚ ΣΑΣ ΕΥΧΑΡΙΣΤΩ ΟΛΟΥΣ ΠΑΙΔΙΑ ΠΟΥ ΜΟΥ ΛΥΣΑΤΕ ΤΗΝ ΑΠΟΡΙΑ...... ΝΑ ΣΤΕ ΚΑΛΑ.......