Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Δομή επανάληψης => Γ΄ Λυκείου => Εντολή ΟΣΟ...ΕΠΑΝΑΛΑ => Μήνυμα ξεκίνησε από: katkal στις 11 Δεκ 2016, 08:27:14 ΜΜ

Τίτλος: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: katkal στις 11 Δεκ 2016, 08:27:14 ΜΜ
Μπορείτε να μου πείτε γιατί στην άσκηση που έπεσε στις εξετάσεις 2002 η απάντηση είναι η εξής:

[img]file:///C:/Users/katerina/Desktop/DIAGRAMA.jpg[img]
Μ1<--0
ΔΙΑΒΑΣΕ Χ
ΟΣΟ Χ>=0 ΕΠΑΝΑΛΑΒΕ
   Μ1<--Μ1+1
ΔΙΑΒΑΣΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΕΜΦΑΝΙΣΕ Μ1

Γιατί βάζει και δεύτερη διάβασε μέσα στην οσο; Οκ, σε ένα αντίστοιχο πρόγραμμα χρειάζεται μία δεύτερη διάβασε.
2η ερώτηση: Στο ίδιο πρόγραμμα αν ζητούσε ένα διάγραμμα ροής , θα βάζαμε την δεύτερη διάβασε στο διάγραμμα;
Τίτλος: Απ: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: Λαμπράκης Μανώλης στις 11 Δεκ 2016, 08:41:51 ΜΜ
Παράθεση από: katkal στις 11 Δεκ 2016, 08:27:14 ΜΜ
Μπορείτε να μου πείτε γιατί στην άσκηση που έπεσε στις εξετάσεις 2002 η απάντηση είναι η εξής:

[img]file:///C:/Users/katerina/Desktop/DIAGRAMA.jpg[img]
Μ1<--0
ΔΙΑΒΑΣΕ Χ
ΟΣΟ Χ>=0 ΕΠΑΝΑΛΑΒΕ
   Μ1<--Μ1+1
ΔΙΑΒΑΣΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΕΜΦΑΝΙΣΕ Μ1

Γιατί βάζει και δεύτερη διάβασε μέσα στην οσο; Οκ, σε ένα αντίστοιχο πρόγραμμα χρειάζεται μία δεύτερη διάβασε.
2η ερώτηση: Στο ίδιο πρόγραμμα αν ζητούσε ένα διάγραμμα ροής , θα βάζαμε την δεύτερη διάβασε στο διάγραμμα;

Καλησπέρα ... αυτό που ρωτάς είναι βασικό στην λειτουργία της δομής ΌΣΟ .... αν δώσεις πχ χ=5 στο πρώτο διάβασε, πως θα τερματιστεί η επανάληψη ?? θα δημιουργηθεί ατερμων βρόγχος με άπειρες επαναλήψεις ..αυτή είναι μία περίπτωση με "τιμή φρουρό" στον ΌΣΟ που είναι απαραίτητο το δεύτερο είναι κάτι σαν "βήμα" της επανάληψης. ... σε πρόγραμμα και σε διάγραμμα ροής ακριβώς τα ίδια ισχύουν
Τίτλος: Απ: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: Καρκαμάνης Γεώργιος στις 11 Δεκ 2016, 11:54:46 ΜΜ
Σε ποια άσκηση αντιστοιχούσε αυτή η απάντηση;
Τίτλος: Απ: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: katkal στις 12 Δεκ 2016, 12:23:41 ΠΜ
Εξετάσεις εσπερινών 2002 θέμα 1.Δ.α.
Τίτλος: Απ: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: Καρκαμάνης Γεώργιος στις 13 Δεκ 2016, 11:33:16 ΜΜ
Το συγκεκριμένο διάγραμμα ροής ήταν το πιο άστοχο διάγραμμα που είχε ζητηθεί στις εξετάσεις. Παρόμοιο δεν ζητήθηκε καμία άλλη φορά μετά το 2002.

Το λόγο ύπαρξης του δεύτερου "Διάβασε Χ" στον εξήγησε ο Μανώλης στο προηγούμενο μήνυμα. Η αρχή λειτουργίας μιας επαναληπτικής δομής ΟΣΟ είναι να διαβάζω τη μεταβλητή που εμπλέκεται στη συνθήκη της ΟΣΟ μια φορά πριν από την έναρξη της επανάληψης και μια φορά πριν από το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ώστε να λαμβάνει νέα τιμή για να μη δημιουργηθεί ατέρμων βρόχος.
Τίτλος: Απ: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: gpapargi στις 14 Δεκ 2016, 11:15:35 ΠΜ
Το βασικό πρόβλημα με αυτή την άσκηση είναι ότι το διάγραμμα ροής είναι "αδόμητο". Δηλαδή αν κάνεις "κατά γράμμα" μεταφορά σε εντολές κάποιας γλώσσας θα χρειαστείς τη goto. Στη λύση ουσιαστικά το μετατρέπει σε κάτι δομημένο και στη συνέχεια κάνει διάγραμμα ροής σε αυτό το δομημένο. Αν κάνεις διάγραμμα ροής στον κώδικα που δίνεται ως απάντηση δε θα καταλήξεις στο αρχικό διάγραμμα ροής αλλά στην ισοδύναμη "δομημένη μορφή".

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

Αυτός είναι και ο λόγος που εγκαταλείφθηκαν τα διαγράμματα ροής. Για αυτό και μια από τις βασικές συνταγές για να μετατρέψεις αδόμητο κώδικα σε δομημένο είναι να κάνεις πρώτα ένα διάγραμμα ροής. Κάνεις ομοιοπαθητική δηλαδή.
Τίτλος: ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002
Αποστολή από: SPY στις 15 Δεκ 2016, 09:58:14 ΜΜ
Κατά τη γνώμη μου ήταν απλά μια τσαχπινιά των θεματοδοτών. Αντί να βάλουν ένα δεύτερο παραλληλόγραμμο Διάβασε στο βελάκι της ανακύκλωσης βάλανε το βελάκι πάνω από το πρώτο παραλληλόγραμμο Διάβασε. Δεν ξέρω αν ήταν στοχευμένη επιλογή ( ; ). Μπέρδευε λίγο, αλλά νομίζω ότι ένας προσεκτικός υποψήφιος θα ξέμπλεκε και θα απαντούσε σωστά.