ΔΤ4, Κεφάλαιο 8, Τμήμα προγράμματος, βρες τη λειτουργία, τον αριθμό επαναλήψεων, κάνε μετατροπή σε άλλες δομές

Έστω το παρακάτω τμήμα προγράμματος:

Κ <- 0 
ΓΙΑ Ι ΑΠΟ 0 ΜΕΧΡΙ 100 ΜΕ_ΒΗΜΑ 5 
    Α <- Ι^3 
    Κ <- Κ+Α 
    ΓΡΑΨΕ Ι, Α 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Κ

Πόσες φορές θα εκτελεστεί ο βρόχος; Ποια η λειτουργία των εντολών; Γράψτε τις παραπάνω εντολές χρησιμοποιώντας την εντολή επανάληψης ΟΣΟ και την εντολή επανάληψης ΜΕΧΡΙΣ_ΟΤΟΥ. Ποιον από τους τρεις τρόπους προτιμάς και γιατί;

ΛΥΣΗ (περισσότερα…)

Θέμα Α, Ερώτημα 3, 2016, Επαναληπτικές, Νέο

Δίνεται ο παρακάτω πίνακας                                                         

Εντολή Επανάληψης Καταλληλότητα Χρήσης
1.    Όσο … επανάλαβε

Τέλος_επανάληψης

α.   Γνωστός αριθμός επαναλήψεων
2.     Για … από … μέχρι … με βήμα …

Τέλος_επανάληψης

β.   Άγνωστος   αριθμός επαναλήψεων
3. Αρχή   επανάληψης …

μέχρις ότου …

γ. Άγνωστος   αριθμός επαναλήψεων, αλλά τουλάχιστον μία επανάληψη

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

Μονάδες 6

ΛΥΣΗ (περισσότερα…)

Θέμα Α, Eρώτημα 1, 2015, Ημερήσια

Να γράψετε στο τετράδιό σας τον αριθμό καθεμίας από τις παρακάτω προτάσεις 1-5 και, δίπλα, τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη.

  1. Η επαναληπτικότητα των διαδικασιών είναι ένας από τους λόγους ανάθεσης της επίλυσης ενός προβλήματος σε υπολογιστή. (μονάδες 2)
  2. Ο βρόχος Για κ από 5 μέχρι 5 εκτελείται μία φορά. (μονάδες 2)
  3. Δεν υπάρχουν δομές δεδομένων δευτερεύουσας μνήμης. (μονάδες 2)
  4. Ένας από τους παράγοντες από τους οποίους εξαρτάται η επιλογή της καταλληλότερης γλώσσας προγραμματισμού για την ανάπτυξη μιας εφαρμογής είναι το είδος της εφαρμογής. (μονάδες 2)
  5. Ένα υποπρόγραμμα μπορεί να καλείται μόνο από το κύριο πρόγραμμα. (μονάδες 2)

Μονάδες 10

Τα θέματα σε pdf, 2015, Μαΐου-Ιουνίου, Ημερήσια

ΑΠΑΝΤΗΣΗ

  1. ΣΩΣΤΟ 2. ΣΩΣΤΟ 3. ΛΑΘΟΣ 4. ΣΩΣΤΟ 5. ΛΑΘΟΣ

Θέμα Α, Ερώτημα 1, 2015, Επαναληπτικές, Ημερήσια

Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5  και, δίπλα, τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη  λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη.

  1. Η πράξη της σύζευξης δύο λογικών εκφράσεων δίνει ως αποτέλεσμα την τιμή ΨΕΥΔΗΣ, μόνον όταν και οι δύο εκφράσεις έχουν την  τιμή  ΨΕΥΔΗΣ.
  2. Συνηθέστατα παρατηρείται το φαινόμενο μια δομή δεδομένων να είναι αποδοτικότερη από μια άλλη δομή, με κριτήριο κάποια λειτουργία.
  3. Ο ιεραρχικός προγραμματισμός χρησιμοποιεί τη στρατηγική της συνεχούς διαίρεσης  του  προβλήματος  σε  υποπροβλήματα.
  4. Οι εντολές που βρίσκονται μέσα στο βρόχο μιας εντολής ΓΙΑ εκτελούνται τουλάχιστον  μία  φορά.
  5. Σε μία εντολή εκχώρησης δεν μπορεί να υπάρχει αναφορά σε περισσότερες από  μία  συναρτήσεις.

Μονάδες  10

Τα θέματα σε pdf, 2015, Επαναληπτικές, Ημερήσια

ΛΥΣΗ

  1. Λάθος 2. Σωστό 3. Σωστό 4. Λάθος 5. Λάθος

 

Θέμα Α, Ερώτημα 4, 2015, Επαναληπτικές, Ημερήσια

Δίνεται το παρακάτω τμήμα αλγορίθμου, με αριθμημένες τις γραμμές του:

  1. max <- Π[1]
  2. Για i από 2 μέχρι 5
  3. Αν Π[i] > max τότε
  4. max <- Π[i]
  5. Τέλος_αν
  6. Τέλος_επανάληψης

α.   Τι υπολογίζει αυτό το τμήμα αλγορίθμου; (μονάδες 2)
β.   Πόσες φορές τουλάχιστον θα εκτελεστεί η εντολή στη γραμμή 4; (μονάδες 2)
γ.   Πόσες φορές το πολύ θα εκτελεστεί η εντολή στη γραμμή 4; (μονάδες 2)
δ. Να αιτιολογήσετε γιατί ο πίνακας Π δεν μπορεί να είναι πίνακας λογικών τιμών (μονάδες 4).
Μονάδες 10

Τα θέματα σε pdf, 2015, Επαναληπτικές, Ημερήσια

ΛΥΣΗ

(περισσότερα…)

Παράδειγμα 8, Βιβλίου, Επαναληπτική είσοδος στοιχείων

Να γραφεί αλγόριθμος που να διαβάζει ένα άγνωστο πλήθος αριθμών και να εμφανίζει τον κάθε αριθμό.
Το πρόβλημα αυτό παρουσιάζει την εξής ιδιομορφία: ενώ φαίνεται ότι θα χρησιμοποιηθεί για τη λύση του κάποια επαναληπτική διαδικασία, δεν προσδιορίζεται ο τρόπος τερματισμού της. Καταρχήν, λοιπόν, ας εξετάσουμε τον αλγόριθμο που εκτελεί ένας άνθρωπος, όταν αντιγράφει κάποιους αριθμούς, όπως για παράδειγμα όταν συγκεντρώνονται τα έξοδα από διάφορους λογαριασμούς. Ο αλγόριθμος αυτός είναι:
Βήμα 1. Διάβασε έναν αριθμό
Βήμα 2. Γράψε τον αριθμό
Βήμα 3. Επανάλαβε τη διαδικασία από το βήμα 1.
Ο αλγόριθμος αυτός έχει μια ατέλεια, δεν διαθέτει τρόπο τερματισμού (ατέρμων βρόχος). Η έλλειψη αυτή είναι φυσική, εφόσον ο αλγόριθμος εκτελείται από έναν άνθρωπο. Αυτός θα σταματήσει να γράφει, όταν δεν υπάρχουν πλέον άλλοι αριθμοί. Ωστόσο είναι δυνατόν να διορθωθεί αυτή η ατέλεια, αν το βήμα 3 λάβει την εξής μορφή:
Βήμα 3. Αν υπάρχουν άλλοι αριθμοί, επανάλαβε τη διαδικασία από το βήμα 1, αλλιώς σταμάτησε.
Ο αλγόριθμος τώρα είναι σωστός και μπορεί να εκτελεστεί και από μία μηχανή. Όμως έχει ένα άλλο μειονέκτημα: ο τερματισμός γίνεται μέσα από την εντολή Αν … τότε … αλλιώς …, πράγμα που δεν συνιστάται και πρέπει να αποφεύγεται, γιατί εύκολα μπορεί να χάσει ο προγραμματιστής τον έλεγχο της ροής του προγράμματος και να οδηγηθεί σε λάθος. Για την άρση του μειονεκτήματος αυτού πρέπει να χρησιμοποιηθεί μία εντολή επαναληπτικής διαδικασίας, όπως η εντολή Όσο…επανάλαβε. Ο τελικός αλγόριθμος είναι ο εξής:
Αλγόριθμος Παράδειγμα8
Διάβασε x
Όσο x > 0 επανάλαβε
Εμφάνισε x
Διάβασε x
Τέλος
επανάληψης
Τέλος Παράδειγμα_8

Στον προηγούμενο αλγόριθμο η επαναληπτική διαδικασία τερματίζεται, όταν διαβασθεί ένας αρνητικός ή μηδενικός αριθμός. Δηλαδή, θεωρείται ότι οι εισαγόμενοι αριθμοί πρέπει να είναι θετικοί. Αν αυτό δεν συμβαίνει, τότε μπορεί να χρησιμοποιηθεί ως συνθήκη τερματισμού οποιαδήποτε συγκεκριμένη τιμή έχει συμφωνηθεί, ότι θα χρησιμοποιείται για το σκοπό αυτό, π.χ. η 999999. Προφανώς αυτή η τιμή δεν μπορεί να ανήκει στις εισαγόμενες τιμές. Στην περίπτωση αυτή η εντολή Όσο…επανάλαβε θα γραφεί ως εξής:

Όσο x ≠ 999999 επανάλαβε

Παρατήρηση: Ο βρόχος επανάληψης μπορεί να μην εκτελεσθεί καμία φορά, αν η πρώτη τιμή που διαβάζεται είναι αρνητική.

Παράδειγμα 9. Βιβλίου, Εκτύπωση θετικών αριθμών με εντολή: αρχή_επανάληψης…μέχρις_ότου

par9bibliokef2Να διαβάζονται και να εκτυπώνονται όσοι θετικοί αριθμοί δίνονται από το πληκτρολόγιο. Ο αλγόριθμος τελειώνει, όταν δοθεί ένας αρνητικός αριθμός.
Αλγόριθμος Παράδειγμα9
Αρχή
επανάληψης
Διάβασε x
Εμφάνισε x
Μέχρις_ότου x < 0
Τέλος Παράδειγμα_9
Ας σημειωθεί ότι, στο παράδειγμα αυτό ο βρόχος επανάληψης θα εκτελεσθεί οπωσδήποτε τουλάχιστον μία φορά ακόμα και αν η αρχική τιμή της μεταβλητής x είναι αρνητική. Η βασική διαφοροποίηση αυτής της μορφής επαναληπτικής διαδικασίας σε σχέση με την επαναληπτική διαδικασία που παρουσιάσθηκε στο προηγούμενο παράδειγμα, οφείλεται στη θέση της λογικής συνθήκης στη ροή εκτέλεσης των εντολών.

Παρατήρηση: Η εντολή Αρχήεπανάληψης… Μέχριςότου εκτελείται οπωσδήποτε μια φορά

Παράδειγμα 11, Βιβλίου, Υπολογισμός αθροίσματος με επαναληπτική εντολή: για…από…μέχρι…με _βήμα

Να βρεθεί και να εκτυπωθεί το άθροισμα των άρτιων αριθμών από το 1 μέχρι το 100.
Η λύση αυτού του προβλήματος είναι παρόμοια με αυτή του προηγούμενου. Η μόνη αλλαγή είναι στην εντολή επανάληψης όπου προσδιορίζεται η ποσότητα βήμα, η οποία κάθε φορά προστίθεται στην τιμή της μεταβλητής i. Έτσι έχουμε

Αλγόριθμος Παράδειγμα11
άθροισμα ← 0
Για i από 2 μέχρι 100 με
βήμα 2
άθροισμα ← άθροισμα + i
Τέλος_επανάληψης
Εκτύπωσε άθροισμα
Τέλος Παράδειγμα_11

Από τα προηγούμενα δύο παραδείγματα γίνεται φανερός ο τρόπος χρήσης της εντολής Για…από…μέχρι. Ας σημειωθεί ωστόσο ότι υπάρχουν κάποιες δεσμεύσεις μεταξύ των τιμών από, μέχρι και βήμα. Έτσι το βήμα δεν μπορεί να είναι μηδέν, γιατί τότε ο βρόχος εκτελείται επ’ άπειρον. Είναι δυνατόν όμως το βήμα να έχει αρνητική τιμή, αρκεί η τιμή από να είναι μεγαλύτερη από την τιμή μέχρι, όπως για παράδειγμα στην επόμενη εντολή: Για k από 100 μέχρι 0 με_βήμα -1
Επίσης οι τιμές από, μέχρι και βήμα δεν είναι απαραίτητο να είναι ακέραιες. Μπορούν να λάβουν οποιαδήποτε πραγματική τιμή. Για παράδειγμα, όταν ζητείται να βρεθούν διαδοχικές τιμές μιας συνάρτησης f(x) για x από 0 έως 1, τότε μπορεί να γραφεί η επόμενη εντολή:
Για x από 0 μέχρι 1 με_βήμα 0,01
Παρατήρηση: O βρόχος Για k από 5 μέχρι 5 εκτελείται ακριβώς μία φορά. O βρόχος Για k από 5 μέχρι 1 δεν εκτελείται καμία φορά