ΑΠΟΡΙΑ ΣΕ ΑΣΚΗΣΗ ΕΞΕΤΑΣΕΩΝ 2002

Ξεκίνησε από katkal, 11 Δεκ 2016, 08:27:14 ΜΜ

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

katkal

Μπορείτε να μου πείτε γιατί στην άσκηση που έπεσε στις εξετάσεις 2002 η απάντηση είναι η εξής:

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

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

Λαμπράκης Μανώλης

Παράθεση από: 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 στο πρώτο διάβασε, πως θα τερματιστεί η επανάληψη ?? θα δημιουργηθεί ατερμων βρόγχος με άπειρες επαναλήψεις ..αυτή είναι μία περίπτωση με "τιμή φρουρό" στον ΌΣΟ που είναι απαραίτητο το δεύτερο είναι κάτι σαν "βήμα" της επανάληψης. ... σε πρόγραμμα και σε διάγραμμα ροής ακριβώς τα ίδια ισχύουν

Καρκαμάνης Γεώργιος

Σε ποια άσκηση αντιστοιχούσε αυτή η απάντηση;

katkal

Εξετάσεις εσπερινών 2002 θέμα 1.Δ.α.

Καρκαμάνης Γεώργιος

Το συγκεκριμένο διάγραμμα ροής ήταν το πιο άστοχο διάγραμμα που είχε ζητηθεί στις εξετάσεις. Παρόμοιο δεν ζητήθηκε καμία άλλη φορά μετά το 2002.

Το λόγο ύπαρξης του δεύτερου "Διάβασε Χ" στον εξήγησε ο Μανώλης στο προηγούμενο μήνυμα. Η αρχή λειτουργίας μιας επαναληπτικής δομής ΟΣΟ είναι να διαβάζω τη μεταβλητή που εμπλέκεται στη συνθήκη της ΟΣΟ μια φορά πριν από την έναρξη της επανάληψης και μια φορά πριν από το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ώστε να λαμβάνει νέα τιμή για να μη δημιουργηθεί ατέρμων βρόχος.

gpapargi

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

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

Αυτός είναι και ο λόγος που εγκαταλείφθηκαν τα διαγράμματα ροής. Για αυτό και μια από τις βασικές συνταγές για να μετατρέψεις αδόμητο κώδικα σε δομημένο είναι να κάνεις πρώτα ένα διάγραμμα ροής. Κάνεις ομοιοπαθητική δηλαδή.

SPY

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