↑ Return to ΘΕΜΑΤΑ ΑΕΠΠ

Θέματα ΑΕΠΠ – Εκτέλεση Αλγορίθμων

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ – ΑΕΠΠ

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

ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΝΟΤΗΤΑ ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ

Τελεστές ΔιαίρεσηςΤύποι ΔεδομένωνΕντολή Εκχώρησης

ΥΠΟΕΝΟΤΗΤΑ: ΤΕΛΕΣΤΕΣ ΔΙΑΙΡΕΣΗΣ

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ

ΟΙ ΤΕΛΕΣΤΕΣ DIV & MOD

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.4.1 ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ – Στοιχεία ψευδογλώσσας

Τελεστές (operators). Πρόκειται για τα γνωστά σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις. Οι τελεστές διακρίνονται σε αριθμητικούς, λογικούς και συγκριτικούς.

Στοιχεία Ψευδογλώσσας

3. Τελεστές

Αριθμητικοί: + , – , *, /, Λ, div, mod

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

7.5 ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ

Οι αριθμητικοί τελεστές που υποστηρίζονται από τη ΓΛΩΣΣΑ καλύπτουν τις βασικές πράξεις: πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση ενώ υποστηρίζεται και η ύψωση σε δύναμη,

η ακέραια διαίρεση και το υπόλοιπο της ακέραιας διαίρεσης.

Οι τελεστές και οι αντίστοιχες πράξεις είναι:

Πρόσθεση  +

Αφαίρεση  –

Πολλαπλασιασμός  *

Διαίρεση  /

Σχόλιο

Ο τελεστής div χρησιμοποιείται για τον υπολογισμό του (ακέραιου) πηλίκου μιας διαίρεσης ακεραίων αριθμών, ενώ ο τελεστής mod για το υπόλοιπο.

Π.χ. 7 div 2 = 3 και 7 mod 2 = 1

Θέμα A

 

Α5. Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και, δίπλα, το γράμμα της στήλης Β που αντιστοιχεί σωστά. (Να θεωρήσετε ότι ο X είναι θετικός ακέραιος).

Στήλη Α Στήλη Β
1. X DIV 1000 = 0 α. Βρίσκει την τιμή του ψηφίου των χιλιάδων.
2. X DIV 1000 MOD 10 β. Ελέγχει αν ο αριθμός έχει τουλάχιστον τρία ψηφία.
3. X DIV 100 < > 0 γ. Βρίσκει την τιμή του ψηφίου των εκατοντάδων.
4. X MOD 1000 DIV 100 δ. Ελέγχει αν ο αριθμός έχει το πολύ τρία ψηφία.

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.4.1 ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ

Σταθερές (constants).

Οι σταθερές διακρίνονται σε

  • αριθμητικές, π.χ. 123, +5, -1,25
  • αλφαριθμητικές π.χ. “Τιμή”, “Κατάσταση αποτελεσμάτων”
  • λογικές που είναι ακριβώς δύο, Αληθής και Ψευδής

Μεταβλητές (variables).

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

ΥΠΟΕΝΟΤΗΤΑ: ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ


Θέμα Α

 

∆. Να αντιστοιχίσετε κάθε ∆εδομένο της Στήλης Α με το σωστό Τύπο ∆εδομένου της Στήλης Β.

Στήλη Α
∆εδομένα
Στήλη Β
Τύπος ∆εδομέ
νων
1. 0,42 α. Ακέραιος
2. “ΨΕΥ∆ΗΣ” β. Πραγματικός
3. “Χ” γ. Χαρακτήρας
4. -32,0 δ. Λογικός
5. ΑΛΗΘΗΣ

Τα στοιχεία της Στήλης Β μπορείτε να τα χρησιμοποιήσετε καμία, μία ή περισσότερες από μία φορές.

 

Θέμα 1ο

 

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

Στήλη Α
∆εδομένα

Στήλη Β
Τύπος μεταβλητής

1. όνομα πελάτη α. Λογικές
2. αριθμός παιδιών β. Χαρακτήρες
3. ΨΕΥ∆ΗΣ γ. Πραγματικές
4. “Χ” δ. Ακέραιες
5. 0.34

Τα στοιχεία της στήλης Β μπορεί να χρησιμοποιηθούν παραπάνω από μία φορές.

 

Θέμα A

 

Α2. Να μεταφέρετε στο τετράδιό σας τον παρακάτω πίνακα συμπληρώνοντάς τον με τον κατάλληλο τύπο και το περιεχόμενο της μεταβλητής.

Εντολή εκχώρησης Τύπος μεταβλητής Χ Περιεχόμενο μεταβλητής Χ
Χ  ← ‘ΑΛΗΘΗΣ’
Χ ← 11.0 – 13.0
Χ ← 7 > 4
Χ  ← ΨΕΥ∆ΗΣ
Χ ← 4

 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΚΦΡΑΣΕΙΣ (Expressions)

Εκφράσεις (expressions). Οι εκφράσεις διαμορφώνονται από τους τελεστέους (operands), που είναι σταθερές και μεταβλητές και από τους τελεστές. Η διεργασία αποτίμησης μιας έκφρασης συνίσταται στην απόδοση τιμών στις μεταβλητές και στην εκτέλεση των πράξεων. Η τελική τιμή μιας έκφρασης εξαρτάται από την ιεραρχία των πράξεων και τη χρήση των παρενθέσεων. Μια έκφραση μπορεί να αποτελείται από μια μόνο μεταβλητή ή σταθερά μέχρι μια πολύπλοκη μαθηματική παράσταση.

Σχηματίζονται από σταθερές, μεταβλητές, συναρτήσεις, τελεστές και παρενθέσεις.

7.7 Αριθμητικές εκφράσεις

Όταν μια τιμή προκύπτει από υπολογισμό, τότε αναφερόμαστε σε εκφράσεις (expressions). Για τη σύνταξη μιας αριθμητικής έκφρασης χρησιμοποιούνται αριθμητικές σταθερές, μεταβλητές, συναρτήσεις, αριθμητικοί τελεστές και παρενθέσεις. Οι αριθμητικές εκφράσεις υλοποιούν απλές ή σύνθετες μαθηματικές πράξεις.

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

       ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ ΤΙΜΗΣ          

2. 4 .1 ΨΕΥΔΟΓΛΩΣΣΑ

 7.8 ΓΛΩΣΣΑ

Γενική μορφή

Μεταβλητή  έκφραση

Σύνταξη

Όνομα-Μεταβλητής  έκφραση

Λειτουργία

Λειτουργία
“γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα αποδίδεται, μεταβιβάζεται, εκχωρείται στη μεταβλητή”.
Στην εντολή αυτή χρησιμοποιείται το αριστερό βέλος, προκειμένου να δείχνει τη φορά της εκχώρησης. 

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

Σχόλια – Παρατηρήσεις

1) Ας σημειωθεί ότι δεν πρόκειται για εξίσωση, παρόλο που σε άλλα βιβλία μπορεί να χρησιμοποιείται το σύμβολο ίσον “=” για τον ίδιο σκοπό. Ας σημειωθεί επίσης ότι οι διάφορες γλώσσες προγραμματισμού χρησιμοποιούν διάφορα σύμβολα για το σκοπό αυτό.

1) Η εντολή εκχώρησης χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά τη διάρκεια εκτέλεσης του προγράμματος.

2) Σε μια εντολή εκχώρησης η μεταβλητή και η έκφραση πρέπει να είναι του ιδίου τύπου.

3) Μια εντολή εκχώρησης σε καμία περίπτωση δεν πρέπει να εκλαμβάνεται ως εξίσωση. Στην εξίσωση το αριστερό μέλος ισούται με το δεξιό, ενώ στην εντολή εκχώρησης η τιμή του δεξιού μέλους εκχωρείται, μεταβιβάζεται, αποδίδεται στη μεταβλητή του αριστερού μέλους. Για το λόγο αυτό ως τελεστής εκχώρησης χρησιμοποιείται το σύμβολο προκειμένου να διαφοροποιείται από το ίσον ( = ). Ωστόσο, ας σημειωθεί, ότι οι διάφορες γλώσσες προγραμματισμού χρησιμοποιούν διαφορετικά σύμβολα για το σκοπό αυτό.

Μεταβλητές

Για τη σύνθεση του ονόματος μιας μεταβλητής χρησιμοποιούνται οι αριθμητικοί χαρακτήρες, οι αλφαβητικοί χαρακτήρες πεζοί και κεφαλαίοι, καθώς και ο χαρακτήρας _ (underscore). Οι μεταβλητές μπορούν επίσης να είναι αριθμητικές, αλφαριθμητικές και λογικές.

7.4 ΜΕΤΑΒΛΗΤΕΣ

Το όνομα κάθε μεταβλητής, ακολουθεί τους κανόνες δημιουργίας ονομάτων, δηλαδή αποτελείται από γράμματα, ψηφία καθώς και τον χαρακτήρα _, ενώ το όνομα κάθε μεταβλητής είναι μοναδικό για κάθε πρόγραμμα.

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

Για παράδειγμα,
στην περίπτωση του υπολογισμού του εμβαδού είναι προτιμότερη η χρήση του ονόματος ΕΜΒΑΔΟ για την αντίστοιχη μεταβλητή, από ένα όνομα που αποτελείται από ένα μόνο γράμμα όπως Ε ή Α ή ένα οποιοδήποτε τυχαίο όνομα που δεν ανάγει στο πραγματικό περιεχόμενο της μεταβλητής όπως Τιμή. 

Συνιστάται τα ονόματα των μεταβλητών και των σταθερών να ανάγουν στο περιεχόμενο τους.

ΥΠΟΕΝΟΤΗΤΑ: ΕΝΤΟΛΕΣ ΕΚΧΩΡΗΣΗΣ


 

ΕΝΟΤΗΤΑ ΔΟΜΗ ΕΠΙΛΟΓΗΣ

ΤελεστέςΑπλή ΕπιλογήΣύνθετη ΕπιλογήΠολλαπλή ΕπιλογήΕμφωλευμένη ΕπιλογήΣύνθετες Λογικές ΕκφράσειςΑποτίμηση Λογικών Εκφράσεων

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.4.1 ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ

  ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΤΕΛΕΣΤΕΣ (Operators)    

Τελεστές (operators). Πρόκειται για τα γνωστά σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις. Οι τελεστές διακρίνονται σε αριθμητικούς, λογικούς και συγκριτικούς.

Αριθμητικοί Τελεστές: + , – , *, /, Λ, div, mod

Στοιχεία Ψευδογλώσσας

3. Τελεστές

Λογικοί: και (σύζευξη), ή (διάζευξη), όχι (άρνηση).

Οι αριθμητικοί τελεστές που υποστηρίζονται από τη ΓΛΩΣΣΑ καλύπτουν τις βασικές πράξεις: πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση ενώ υποστηρίζεται και η ύψωση σε δύναμη, η ακέραια διαίρεση και το υπόλοιπο της ακέραιας διαίρεσης.

Οι τελεστές και οι αντίστοιχες πράξεις είναι:

Αριθμητικός τελεστής

Πράξη

+

Πρόσθεση

Αφαίρεση

*

Πολλαπλασιασμός

/

Διαίρεση

^

Ύψωση σε δύναμη

DIV

Ακέραια διαίρεση

MOD

Υπόλοιπο ακέραιας διαίρεσης

Ο τελεστής div χρησιμοποιείται για τον υπολογισμό του πηλίκου μιας διαίρεσης ακεραίων αριθμών, ενώ ο τελεστής mod για το υπόλοιπο.

ΟΙ ΤΕΛΕΣΤΕΣ DIV & MOD

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.4.1 ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

7.5 ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ

Ο τελεστής div χρησιμοποιείται για τον υπολογισμό του πηλίκου μιας διαίρεσης ακεραίων αριθμών, ενώ ο τελεστής mod για το υπόλοιπο.

Π.χ. 7 div 2 = 3 και 7 mod 2 = 1

ΥΠΟΕΝΟΤΗΤΑ: ΤΕΛΕΣΤΕΣ (Αριθμητικοί – Συγκριτικοί – Λογικοί)


Θέμα 1ο

Ημερήσια Επαναληπτικές

Β. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α και δίπλα τα γράμματα της Στήλης Β που αντιστοιχούν σωστά. (Να σημειωθεί ότι σε κάποιους τελεστές της Στήλης Α αντιστοιχούν περισσότερα από ένα σύμβολα της Στήλης Β).
 

Στήλη Α

Τελεστές

Στήλη Β

Σύμβολα

1. αριθμητικός τελεστής α. >
2. λογικός τελεστής β. MOD
3. συγκριτικός τελεστής γ. *
δ. όχι

 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ

Η ΕΝΤΟΛΗ ΑΠΛΗΣ_ΕΠΙΛΟΓΗΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

2.4.2 ΔΟΜΗ ΕΠΙΛΟΓΗΣ 8.1.1 ΕΝΤΟΛΗ ΑΝ

Στην παράσταση αλγορίθμων με ψευδογλώσσα η επιλογή υλοποιείται με την εντολή Αν…τότε.

Η δομή επιλογής υλοποιείται στη ΓΛΩΣΣΑ με την εντολή ΑΝ. Η εντολή ΑΝ εμφανίζεται με τρεις διαφορετικές μορφές. Την απλή εντολή ΑΝ… ΤΟΤΕ, την εντολή ΑΝ…ΤΟΤΕ..ΑΛΛΙΩΣ και τέλος την εντολή ΑΝ…ΤΟΤΕ.. ΑΛΛΙΩΣ_ΑΝ. Κάθε εντολή ΑΝ πρέπει να κλείνει με ΤΕΛΟΣ_ΑΝ. 

Στην απλούστερη μορφή της η εντολή ΑΝ ελέγχει τη συνθήκη και αν αυτή ισχύει (είναι αληθής), τότε εκτελούνται οι εντολές που περιλαμβάνονται μεταξύ των λέξεων ΤΟΤΕ και ΤΕΛΟΣ_ΑΝ. 

Σύνταξη

Αν συνθήκη τότε εντολή

Λειτουργία

Αν ισχύει η συνθήκη (δηλαδή αν είναι αληθής), τότε μόνο εκτελείται η εντολή. Σε κάθε περίπτωση εκτελείται στη συνέ- χεια η εντολή, που ακολουθεί. 

 

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

Αν συνθήκη τότε

εντολή_1

εντολή_2

…………..

εντολή_ν 

Τέλος_αν

Η γενική μορφή της εντολής ΑΝ είναι η εξής: 

Σύνταξη

ΑΝ συνθήκη ΤΟΤΕ

εντολή-1

εντολή-2

εντολή-ν 

ΤΕΛΟΣ_ΑΝ 

Λειτουργία 

Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων ΤΟΤΕ και ΤΕΛΟΣ_ΑΝ, σε αντίθετη περίπτωση οι εντολές αυτές αγνοούνται. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ.

ΥΠΟΕΝΟΤΗΤΑ: ΑΠΛΗ ΕΠΙΛΟΓΗ


Θέμα Α

 

Α4 β. Να μεταφέρετε στο τετράδιό σας το παρακάτω τμήμα αλγορίθμου, έχοντας συμπληρώσει τις γραμμές εντολών 2 και 3 ώστε να εμφανίζει πάντα το μεγαλύτερο από τους δυο αριθμούς που διαβάστηκαν:

1. Διάβασε Α, Β

2. Αν Α … Β τότε

3. ……………..

4. Τέλος_αν

5. Εμφάνισε Α

 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

Η ΕΝΤΟΛΗ ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ … ΤΕΛΟΣ_ΑΝ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

2.4.2 ΔΟΜΗ ΕΠΙΛΟΓΗΣ 8.1 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ

Συχνά η εντολή ΑΝ εκτός από το τμήμα των εντολών, που εκτελούνται όταν η λογική έκφραση είναι Αληθής, περιέχει και το τμήμα των εντολών που εκτελούνται, αν δεν ισχύει η συνθήκη (είναι Ψευδής).

Η μορφή αυτής της εντολής ονομάζεται ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ.

Γενική μορφή

Αν συνθήκη τότε

εντολή ή εντολές

αλλιώς

εντολή ή εντολές

Τέλος_αν

 

ή εναλλακτικά 

Αν <συνθήκη> τότε

<διαδικασία_1>

αλλιώς

<διαδικασία_2>

Τέλος_αν

όπου ως διαδικασία λαμβάνεται ένα σύνολο εντολών.

Λειτουργία

 

 

Σύνταξη

Αν συνθήκη τότε

εντολή-1

εντολή-2

εντολή-ν

αλλιώς

εντολή-1

εντολή-2

εντολή-ν

Τέλος_αν

Λειτουργία 

Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων ΤΟΤΕ και ΑΛΛΙΩΣ, διαφορετικά εκτελούνται οι εντολές μεταξύ ΑΛΛΙΩΣ και ΤΕΛΟΣ_ΑΝ. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ

Η γενική μορφή της εντολής ΑΝ καλύπτει την επιλογή μιας από δύο εναλλακτικές περιπτώσεις.

ΥΠΟΕΝΟΤΗΤΑ: ΣΥΝΘΕΤΗ ΕΠΙΛΟΓΗ


Θέμα Α

 

Α4. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

Αν Χ > 1 τότε

Κ  Αληθής

Αλλιώς

Κ  Ψευδής

Τέλος_αν

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

Κ   …..

 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΠΟΛΛΑΠΛΗ ΕΠΙΛΟΓΗ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

2.4.3 ΔΙΑΔΙΚΑΣΙΕΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ 8.1 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ
Οι διαδικασίες των πολλαπλών επιλογών εφαρμόζονται στα προβλήματα όπου μπορεί να ληφθούν διαφορετικές αποφάσεις ανάλογα με την τιμή που παίρνει μία έκφραση.

Μία άλλη μορφή επιλογής είναι η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ

Γενική Σύνταξη

Αν <συνθήκη_1> τότε

<διαδικασία_1> 

αλλιώς_αν <συνθήκη_2> τότε

<διαδικασία_2> 

…… 

αλλιώς_αν <συνθήκη_ν> τότε

<διαδικασία_ν> 

αλλιώς 

<διαδικασία_αλλιώς> 

Τέλος_αν 

Γενική Σύνταξη

ΑΝ συνθήκη-1 ΤΟΤΕ

εντολή-1 

εντολή-2

εντολή-ν

ΑΛΛΙΩΣ_ΑΝ συνθήκη-2 ΤΟΤΕ

 εντολή-1 

εντολή-1

εντολή-2

εντολή-ν

ΑΛΛΙΩΣ

εντολή-1 

εντολή-1

εντολή-2

εντολή-ν

ΤΕΛΟΣ_ΑΝ

Λειτουργία 

Εκτελούνται οι εντολές που βρίσκονται στο αντίστοιχο τμήμα, όταν η συνθήκη είναι αληθής. 

Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ.

ΥΠΟΕΝΟΤΗΤΑ: ΠΟΛΛΑΠΛΗ ΕΠΙΛΟΓΗ


Θέμα Α

Ημερήσια

Α5.

β. Δίνεται το παρακάτω τμήμα αλγορίθμου:

Διάβασε Χ

Αν Χ > 15 τότε

Γράψε “1”

αλλιώς_αν Χ > 23 τότε

Γράψε “2”

αλλιώς

Γράψε “3”

Τέλος_αν

Μια εντολή εξόδου στο παραπάνω τμήμα δεν πρόκειται να εκτελεστεί, όποια και αν είναι η τιμή του Χ.

1. Ποια είναι η εντολή αυτή; (μονάδες 2)

2. Να γράψετε τις εντολές εξόδου που είναι δυνατόν να εκτελεστούν και, δίπλα σε καθεμία από αυτές, το διάστημα τιμών του Χ για το οποίο θα εκτελεστεί η εντολή. (μονάδες 4)

 

ΠΑΡΑΣΚΕΥΗ 11 ΣΕΠΤΕΜΒΡΙΟΥ 2020

Β2. Το παρακάτω τμήμα προγράμματος σε ΓΛΩΣΣΑ υλοποιεί το διάβασμα και την εισαγωγή στοιχείου σε ουρά με χρήση μονοδιάστατου πίνακα Α, 10 θέσεων. Ο κώδικας περιέχει κενά αριθμημένα από το 1 μέχρι το 10. Για καθένα από τα κενά, να γράψετε στο τετράδιό σας τον αριθμό του και δίπλα ό,τι χρειάζεται να συμπληρωθεί ώστε το τμήμα προγράμματος να επιτελεί την ζητούμενη λειτουργία.

ΔΙΑΒΑΣΕ …(1)

ΑΝ …(2)… = …(3)… ΤΟΤΕ

ΓΡΑΨΕ ‘ΓΕΜΑΤΗ ΟΥΡΑ’

ΑΛΛΙΩΣ_ΑΝ (…(4)… ΚΑΙ …(5)…) ΤΟΤΕ

front ← (6)

rear ← (7)

A[rear]  …(8)

AΛΛΙΩΣ

rear (9)

A[…(10)…]  στοιχείο

TEΛΟΣ_ΑΝ

Μονάδες 10

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΕΜΦΩΛΕΥΜΕΝΗ ΕΠΙΛΟΓΗ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

2.4.4 ΕΜΦΩΛΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ 8.1.1 ΕΝΤΟΛΗ ΑΝ

Πολλαπλές επιλογές μπορούν να γίνουν και με μία εμφωλευμένη δομή. Το επόμενο παράδειγμα περιγράφει τον τρόπο με τον οποίο μία εντολή Αν… τότε είναι η εντολή που εκτελείται, όταν ισχύει (ή δεν ισχύει) η συνθήκη μίας άλλης εντολής Αν…τότε. Βέβαια η λογική αυτή μπορεί να επεκταθεί, δηλαδή να έχουμε νέα εμφωλευμένη δομή μέσα σε μία εμφωλευμένη δομή κ.ο.κ. 

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

Εμφωλευμένα ΑΝ ονομάζονται δύο ή περισσότερες εντολές της μορφής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ που περιέχονται η μία μέσα στην άλλη. 

ΠΑΡΑΤΗΡΗΣΕΙΣ

 

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

Πολύ συχνά οι εντολές που έχουν γραφεί με εμφωλευμένα ΑΝ, μπορούν να γραφούν πιο απλά χρησιμοποιώντας σύνθετες εκφράσεις ή την εντολή επιλογής ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ_ΑΝ. 

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

ΥΠΟΕΝΟΤΗΤΑ: ΕΜΦΩΛΕΥΜΕΝΗ ΕΠΙΛΟΓΗ


 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΣΥΝΘΕΤΕΣ ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

2.4.3 ΔΙΑΔΙΑΚΑΣΙΕΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ 8.1 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ – ΛΟΓΙΚΗ ΕΚΦΡΑΣΗ

ΣΥΝΘΕΤΕΣ ΕΚΦΡΑΣΕΙΣ

Σε πολλές περιπτώσεις η συνθήκη είναι αρκετά πιο “δύσκολη”, δηλαδή εμπεριέχει αποφάσεις που πιθανόν να βασίζονται σε περισσότερα από ένα κριτήρια. Ο συνδυασμός των κριτηρίων αυτών καθορίζει και τις “λογικές” πράξεις που μπορούν να γίνουν μεταξύ διαφορετικών συνθηκών. Πολύ συχνά στην καθημερινή ζωή κάποιες αποφάσεις βασίζονται σε συνδυασμούς κριτηρίων και λογικών πράξεων. 

Για παράδειγμα, το πρόβλημα της προετοιμασίας μας για έξοδο μπορεί να επεκταθεί ως εξής “αν βρέχει ή αν χιονίζει θα πάρω ομπρέλα”, είτε στην πρόταση “αν έχει ήλιο και αν έχει ζέστη θα πάρω καπέλο”, είτε στην πρόταση “αν δεν έχει ήλιο θα πάρω ομπρέλα”.

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

Η λογική πράξη ή είναι αληθής όταν οποιαδήποτε από τις δύο προτάσεις είναι αληθής. Η λογική πράξη και είναι αληθής όταν και οι δύο προτάσεις είναι αληθείς ενώ η λογική πράξη όχι (η λέξη “δεν” στο παράδειγμά μας) είναι αληθής όταν η πρόταση που την ακολουθεί είναι ψευδής.

Ο επόμενος πίνακας δίνει τις τιμές των τριών αυτών λογικών πράξεων για όλους τους συνδυασμούς τιμών. 

ΠΙΝΑΚΑΣ (ΑΛΗΘΕΙΑΣ) ΛΟΓΙΚΩΝ ΠΡΑΞΕΩΝ

Λογική έκφραση
Α 

Λογική έκφραση
Β

Διάζευξη
Α ή Β
Σύζευξη
Α και Β
Άρνηση
όχι Α
Αληθής Αληθής Αληθής Αληθής Ψευδής
Αληθής Ψευδής Αληθής Ψευδής Ψευδής
Ψευδής Αληθής Αληθής Ψευδής Αληθής
Ψευδής Ψευδής Ψευδής Ψευδής Αληθής

 

Στοιχεία Ψευδογλώσσας

3. Τελεστές

Λογικοί: και (σύζευξη), ή (διάζευξη), όχι (άρνηση).

Σε πολλά προβλήματα οι επιλογές δεν αρκεί να γίνονται με απλές λογικές παραστάσεις όπως αυτές οι οποίες αναφέρθηκαν, αλλά χρειάζεται να συνδυαστούν μία ή περισσότερες λογικές παραστάσεις. Αυτό επιτυγχάνεται με τη χρήση των τριών βασικών λογικών τελεστών ΟΧΙ, ΚΑΙ, Ή. 

Η ιεραρχία των λογικών τελεστών είναι μικρότερη των αριθμητικών. 

ΥΠΟΕΝΟΤΗΤΑ: ΣΥΝΘΕΤΕΣ ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ


Θέμα Α

 

Α3. Ο παρακάτω αλγόριθμος προτάθηκε για να ελέγχει και να εκτυπώνει, αν ένας μη αρνητικός ακέραιος αριθμός είναι μονοψήφιος, διψήφιος ή τριψήφιος.
Στην περίπτωση που δοθεί αριθμός αρνητικός ή με περισσότερα από 3 ψηφία ο αλγόριθμος πρέπει να εμφανίζει το μήνυμα «Λάθος ∆εδομένα».

Αλγόριθμος Ψηφία

Διάβασε x

Αν x >= 0 και x < 10 τότε

εμφάνισε “Μονοψήφιος”

Αλλιώς_αν x < 100 τότε

εμφάνισε  “Διψήφιος “

Αλλιώς_αν x < 1000 τότε

εμφάνισε  “Τριψήφιος “

Αλλιώς

εμφάνισε “Λάθος Δεδομένα “

Τέλος_αν

Τέλος Ψηφία

Ο παραπάνω αλγόριθμος έχει λάθος. ∆ώστε ένα παράδειγμα εισόδου που θα καταδείξει το λάθος που υπάρχει στον αλγόριθμο.

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

 

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


Θέμα 1ο

 

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

Πρόταση Α Πρόταση Β Α ή Β (∆ιάζευξη) Α και Β (Σύζευξη) όχι Α (Άρνηση)

Ψευδής

Ψευδής

Ψευδής

Αληθής

Αληθής

Ψευδής

Αληθής

Αληθής

 

Θέμα 1ο

 

Γ.

1. Αν Χ = 3, Ψ = -2 και Ζ = -1, να χαρακτηρίσετε στο τετράδιό σας τις παρακάτω προτάσεις χρησιμοποιώντας μία από τις λέξεις ΑΛΗΘΗΣ ή ΨΕΥ∆ΗΣ.

Πρόταση Α. (Χ + Ψ) * Ζ > 0

Πρόταση Β. (Χ – Ψ) * Ζ = -5

Πρόταση Γ. Χ * Ζ>0

Πρόταση Δ. Ζ > Ψ

2. Να συμπληρώσετε στο τετράδιό σας τον παρακάτω πίνακα με τις τιμές των λογικών πράξεων μεταξύ των προτάσεων Α, Β, Γ, ∆.

Ισχύει ότι Α = Ψευδής Β = Αληθής, Γ = Ψευδής, Δ = Αληθής

Λογική Πράξη

Αποτέλεσμα

Α ή Β

Α ή Γ

Γ και ∆

Α και ∆

όχι Α

όχι Β

Θέμα Α

 

Α1. Αν η μεταβλητή Α έχει την τιμή 7, η μεταβλητή Β έχει την τιμή 5 και η μεταβλητή Γ την τιμή 2, να υπολογιστούν οι λογικές τιμές των παρακάτω εκφράσεων:

1. Α > Β

2. ΟΧΙ (Β > Α)

3. Α < Γ

4. Γ <= Β

5. (Α > Β) ΚΑΙ (Α < Γ)

6. ((Α < Β) ΚΑΙ (Α < Γ)) Ή  (Γ <= Β)

7. (Α < Β) ΚΑΙ ((Α < Γ) Ή  (Γ <= Β))

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

 

Θέμα 1ο

Εσπερινά Επαναληπτικές

∆. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

Ζ ← ΨΕΥ∆ΗΣ

Χ ← ΑΛΗΘΗΣ

Ψ ← ΨΕΥ∆ΗΣ

Α ← Χ ΚΑΙ (Ψ Ή Ζ)

Β ← (ΟΧΙ Α) ΚΑΙ (ΟΧΙ Ζ)

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

 

Θέμα 1ο

 

Δ2. ∆ίνονται οι τιμές των μεταβλητών Α=3, Β=1, Γ=15 και η παρακάτω έκφραση:

(ΟΧΙ (Α + Β * 3 > 10)) ΚΑΙ (Γ MOD (A – B) = 1)

Nα υπολογίσετε την τιμή της έκφρασης αναλυτικά ως εξής:

α. Να αντικαταστήσετε τις μεταβλητές με τις τιμές τους.

β. Να εκτελέσετε τις αριθμητικές πράξεις.


γ. Να αντικαταστήσετε τις συγκρίσεις με την τιμή ΑΛΗΘΗΣ, αν η σύγκριση είναι αληθής, ή την τιμή ΨΕΥ∆ΗΣ, αν είναι ψευδής.


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

Θέμα 1ο

 

Ε. Αν α = 5, β = 7 και γ = 10, να χαρακτηρίσετε στο τετράδιό σας τις παρακάτω προτάσεις χρησιμοποιώντας μία από τις λέξεις ΑΛΗΘΗΣ ή ΨΕΥ∆ΗΣ.

Πρόταση Α.  (όχι ( α + 2 ≥ β )) ή β + 3 = γ

Πρόταση Β.  α + 2 * β < 20 και 2 * α = γ

Θέμα 1ο

 

Γ. ∆ίδονται οι τιμές των μεταβλητών Α = 5, Β = 7 και Γ = –3. Να χαρακτηρίσετε στο τετράδιό σας κάθε έκφραση που ακολουθεί με το γράμμα Α, αν είναι αληθής, ή με το γράμμα Ψ, αν είναι ψευδής.

1. ΟΧΙ (Α + Β < 10)

2. (Α >= Β) Η (Γ < Β)

3. ((Α > Β) ΚΑΙ (Γ < Α)) Η (Γ > 5)

4. (ΟΧΙ (Α < > Β) ) ΚΑΙ (Β + Γ < > 2 * Α)

Θέμα 1ο

 

Δ. Να μεταφέρετε στο τετράδιό σας συμπληρωμένο τον παρακάτω πίνακα αληθείας.

Α

Β

(ΟΧΙ Α) ΚΑΙ (ΟΧΙ Β)

((ΟΧΙ Α) ΚΑΙ Β) Ή (Α ΚΑΙ (ΟΧΙ Β))

Ψευδής

Ψευδής

Ψευδής

Αληθής

Αληθής

Ψευδής

Αληθής

Αληθής

ΘΕΜΑ Α

 

Α4. Να μεταφέρετε στο τετράδιό σας με συμπληρωμένα τα κενά τον παρακάτω πίνακα αληθείας:

Λογικές Μεταβλητές 

Λογικές εκφράσεις
Α Β ((ΟΧΙ Α) Ή  Β) ΚΑΙ Β

(ΟΧΙ Α) ΚΑΙ (ΟΧΙ (Β Ή  Α)) 

Αληθής

Αληθής

Ψευδής

Ψευδής

Ψευδής

Αληθής


ΘΕΜΑ Α

 

Α3. Δίνονται οι τιμές των μεταβλητών Χ = 8 και Ψ = 4 και η παρακάτω έκφραση:

( ΟΧΙ ( 9 mod 5 = 20 – 4 * 2^2 ) )  ́H ( X > Ψ ΚΑΙ “X” > “Ψ” ) 

Να υπολογίσετε την τιμή της έκφρασης αναλυτικά, ως εξής:

α. Να αντικαταστήσετε τις μεταβλητές με τις τιμές τους. (μονάδα 1)

β. Να εκτελέσετε τις αριθμητικές πράξεις. (μονάδα 1)

γ. Να αντικαταστήσετε τις συγκρίσεις με την τιμή ΑΛΗΘΗΣ, αν η σύγκριση είναι αληθής, ή με την τιμή ΨΕΥΔΗΣ, αν η σύγκριση είναι ψευδής. (μονάδα 1)

δ. Να εκτελέσετε τις λογικές πράξεις, ώστε να υπολογίσετε την τελική τιμή της έκφρασης. (μονάδες 2)


ΘΕΜΑ Α

 

Α3.  Δίνεται η εντολή εκχώρησης:

Ε ← ( ( Α mod 5 > 2 ) ΚΑΙ ( C < > “Αληθής” ) ) Ή  ( ( D = ψευδής ) ΚΑΙ ( Β > Α / 3 ) )

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


ΕΝΟΤΗΤΑ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Α

(ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ & ΔΟΜΗ ΕΠΙΛΟΓΗΣ – ΑΠΛΗ ΣΥΝΘΕΤΗ )

Μέχρις_ότουΌσο ... επανάλαβεΓια ... από ... μέχριΔιαγράμματα ροής

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

Η ΕΝΤΟΛΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ …  ΜΕΧΡΙΣ_ΟΤΟΥ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.2 ΕΝΤΟΛΗ ΜΕΧΡΙΣ_ΟΤΟΥ

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

Στην εντολή ΜΕΧΡΙΣ_ΟΤΟΥ η συνθήκη βρίσκεται στο τέλος του βρόχου και εκτελείται συνεχώς μέχρις ότου η συνθήκη αυτή γίνει Αληθής.

Σύνταξη

Αρχή_επανάληψης 

Διαδικασία

Μέχρις_ότου <συνθήκη>

 

όπου ως διαδικασία λαμβάνεται ένα σύνολο εντολών.

Σύνταξη 

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 

εντολή-1

εντολή-2

εντολή-ν 

ΜΕΧΡΙΣ_ΟΤΟΥ λογική-έκφραση 

Λειτουργία 

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

Όταν η λογική έκφραση γίνει Αληθής, τότε σταματάει η επανάληψη και εκτελείται η εντολή μετά από την ΜΕΧΡΙΣ_ΟΤΟΥ.  

ΠΑΡΑΤΗΡΗΣΕΙΣ

Πρόκειται για επαναληπτικό σχήμα με έλεγχο επανάληψης στο τέλος.

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

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

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

ΥΠΟΕΝΟΤΗΤΕΣ: ΕΝΤΟΛΗ ΕΠΑΝΑΛΗΨΗΣ Αρχή_επανάληψης … Μέχρις_ότου

ΕΝΤΟΛΕΣ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ  Αν … τότε  …Τέλος_αν

ΣΥΝΘΕΤΗΣ ΕΠΙΛΟΓΗΣ Αν … τότε … αλλιώς …Τέλος_αν

Θέμα 1ο

 

Β2. ∆ίνεται η παρακάτω δομή επανάληψης:

Α 10

Β 20

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

Β Β + Α

ΓΡΑΨΕ Α, Β

ΜΕΧΡΙΣ_ΟΤΟΥ Β > 50

α. «Οι εντολές που περιέχονται στη δομή επανάληψης εκτελούνται τρεις (3) φορές».

Να γράψετε στο τετράδιό σας αν η παραπάνω πρόταση είναι σωστή ή λανθασμένη.

Θέμα Β

 

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

1.

2.

3.

4.

5.

6.

7.

j ← 1

i ← 2

Αρχή_επανάληψης

i ← i + j

j ← i – j

Εμφάνισε i

Μέχρις_ότου i ≥ 5

Επίσης δίνεται το ακόλουθο υπόδειγμα πίνακα τιμών:

αριθμός γραμμής 

συνθήκη 

έξοδος 

i j

Στη στήλη με τίτλο «αριθμός γραμμής» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.

Στη στήλη με τίτλο «συνθήκη» καταγράφεται η λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥ∆ΗΣ, εφόσον η εντολή που εκτελείται περιλαμβάνει συνθήκη.

Στη στήλη με τίτλο «έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται είναι εντολή εξόδου.

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

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

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

Σημείωση: Η εντολή της γραμμής 3 δεν χρειάζεται να αποτυπωθεί στον πίνακα.

Θέμα Α

 

Α2. ∆ίνεται το παρακάτω τμήμα αλγορίθμου με αριθμημένες τις εντολές του:

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

(9)

(10)

Σ ← 0

Κ ← 0

Αρχή_Επανάληψης

∆ιάβασε Χ

Σ ← Σ + Χ

Αν Χ > 0 τότε

Κ ← Κ + 1

Τέλος_Αν

Μέχρις_ότου Σ > 1000

Εμφάνισε Χ

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

1. Η εντολή (4) θα εκτελεστεί τουλάχιστον μία φορά.

2. Η εντολή (1) θα εκτελεστεί ακριβώς μία φορά.

3. Στη μεταβλητή Κ καταχωρείται το πλήθος των θετικών αριθμών που δόθηκαν.

4. Η εντολή (7) εκτελείται πάντα λιγότερες φορές από την εντολή (4).

5. Η τιμή που θα εμφανίσει η εντολή (10) μπορεί να  είναι αρνητικός αριθμός.

Θέμα Α

 

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

Α ← …

Β ← …

Αρχή_επανάληψης

Β ← …

Α ← …

Μέχρις_ότου Α > 200

Εμφάνισε Β

Να ξαναγράψετε στο τετράδιό σας το παραπάνω τμήμα αλγορίθμου με τα κενά συμπληρωμένα, έτσι ώστε να υπολογίζει και να εμφανίζει το άθροισμα των περιττών ακεραίων από το 100 έως το 200.

Β2.

Ένας θετικός ακέραιος αριθμός μεγαλύτερος από το ένα (1) είναι πρώτος αν διαιρείται ακριβώς, μόνο με τον εαυτό του και τη μονάδα. Το παρακάτω τμήμα προγράμματος διαβάζει έναν θετικό ακέραιο αριθμό, ελέγχει αν είναι πρώτος ή όχι και εμφανίζει αντίστοιχο μήνυμα. Για τον σκοπό αυτό διαβάζει έναν θετικό ακέραιο n (n>1), τον διαιρεί διαδοχικά με τους αριθμούς 2, 3, 4, …, n-1 ελέγχοντας μετά από κάθε διαίρεση αν ο αριθμός n διαιρείται ακριβώς.

Στην περίπτωση που διαιρείται ακριβώς, σταματάει η επαναληπτική διαδικασία και εμφανίζεται το μήνυμα ‘Δεν είναι πρώτος αριθμός’. Αν η επαναληπτική διαδικασία των διαιρέσεων τερματιστεί χωρίς ο αριθμός n να έχει διαιρεθεί ακριβώς από κανέναν αριθμό εμφανίζεται το μήνυμα ‘Είναι πρώτος αριθμός’. Να γράψετε στο τετράδιό σας τους αριθμούς των κενών και δίπλα ό,τι χρειάζεται να συμπληρωθεί, ώστε το τμήμα προγράμματος να λειτουργεί σωστά.

ΔΙΑΒΑΣΕ n

ΠΡΩΤΟΣ (1)

i  …(2)

AΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΑΝ …(3)… = 0 ΤΟΤΕ

ΠΡΩΤΟΣ  …(4)

TEΛΟΣ_ΑΝ

i ← i + 1

MEXΡΙΣ_ΟΤΟΥ i > n – 1 Ή …(5)

AN ΠΡΩΤΟΣ = ΑΛΗΘΗΣ ΤΟΤΕ

ΓΡΑΨΕ ‘Είναι πρώτος αριθμός’

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘Δεν είναι πρώτος αριθμός’

ΤΕΛΟΣ_ΑΝ

Μονάδες 10

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

Η ΕΝΤΟΛΗ ΟΣΟ … ΕΠΑΝΑΛΑΒΕ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.1 ΕΝΤΟΛΗ ΟΣΟ … ΕΠΑΝΑΛΑΒΕ

Η ΓΛΩΣΣΑ υποστηρίζει την εντολή ΟΣΟ, όπου η επανάληψη ελέγχεται από μία λογική έκφραση στην αρχή και εκτελείται συνεχώς όσο η συνθήκη είναι Αληθής.

Πιο συγκεκριμμένα:
Η γενικότερη δομή επανάληψης υλοποιείται στη ΓΛΩΣΣΑ με την εντολή ΟΣΟ… ΕΠΑΝΑΛΑΒΕ. Σε αυτή, η συνθήκη που ελέγχει την επανάληψη βρίσκεται στην αρχή της επανάληψης και ο βρόχος επαναλαμβάνεται συνεχώς, όσο η συνθήκη αυτή ισχύει. 

Σύνταξη

Όσο συνθήκη επανάλαβε

εντολές 

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

Λειτουργία

Η λειτουργία της εντολής είναι η εξής:
Επαναλαμβάνεται η εκτέλεση των εντολών, όσο η συνθήκη είναι αληθής. Όταν η συνθήκη γίνει ψευδής, τότε ο αλγόριθμος συνεχίζεται με την εντολή που ακολουθεί το ‘Τέλος_ επανάληψης’.

Σύνταξη 

ΟΣΟ συνθήκη ΕΠΑΝΑΛΑΒΕ

εντολή-1

εντολή-2

εντολή-ν 

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

Λειτουργία 

Ελέγχεται η συνθήκη και αν είναι Αληθής, εκτελούνται οι εντολές που βρίσκονται ανάμεσα στις ΟΣΟ_ΕΠΑΝΑΛΑΒΕ και ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Στη συνέχεια ελέγχεται πάλι η συνθήκη και αν ισχύει, εκτελούνται πάλι οι ίδιες εντολές. Όταν η λογική έκφραση γίνει Ψευδής, τότε σταματάει η επανάληψη και εκτελείται η εντολή μετά το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. 

ΠΑΡΑΤΗΡΗΣΕΙΣ

Πρόκειται για επαναληπτικό σχήμα με έλεγχο επανάληψης στην αρχή.

Tο τμήμα του αλγορίθμου που επαναλαμβάνεται, δηλαδή από την εντολή Όσο μέχρι το τέλος_επανάληψης αποκαλείται βρόχος. 

Ο βρόχος επανάληψης μπορεί να μην εκτελεσθεί καμία φορά.

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

Ο αλγόριθμος που δεν διαθέτει τρόπο τερματισμού ονομάζεται ατέρμων βρόχος.

Με τη δομή αυτή μπορούν να εκφραστούν όλες οι επαναλήψεις και γι’ αυτό η εντολή ΟΣΟ… ΕΠΑΝΑΛΑΒΕ είναι η σημαντικότερη από όλες τις εντολές επανάληψης. Χαρακτηριστικό της επανάληψης αυτής είναι ότι ο αριθμός των επαναλήψεων δεν είναι γνωστός, ούτε μπορεί να υπολογιστεί πριν από την εκτέλεση του προγράμματος.

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

ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 
Εντολή Όσο …. επανάλαβε

Γενική Σύνταξη

Όσο λογική έκφραση επανάλαβε

εντολές

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

Λειτουργία

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

ΥΠΟΕΝΟΤΗΤΕΣ: ΕΝΤΟΛΗ ΕΠΑΝΑΛΗΨΗΣ Όσο … επανάλαβε
ΕΝΤΟΛΕΣ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ  Αν … τότε  …Τέλος_αν

ΣΥΝΘΕΤΗΣ ΕΠΙΛΟΓΗΣ Αν … τότε … αλλιώς …Τέλος_αν


Θέμα 1ο

 

∆. ∆ίνεται η παρακάτω αλληλουχία εντολών:

Α ← x

Όσο A <= y επανάλαβε

A ← Α + z

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

Να γράψετε στο τετράδιό σας πόσες φορές εκτελείται η εντολή A ← Α + z για κάθε έναν από τους παρακάτω συνδυασμούς των τιμών των μεταβλητών x, y και z:

1. x = 0, y = 8, z = 3

2. x = 7, y = 10, z = 5

3. x = –10, y = –5, z = –1

4. x = 10, y = 5, z = 2

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.1 ΤΙ ΕΙΝΑΙ ΑΛΓΟΡΙΘΜΟΣ

Κάθε αλγόριθμος απαραίτητα ικανοποιεί τα επόμενα κριτήρια.

Είσοδος (input)

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

Έξοδος (output)

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

Καθοριστικότητα (definiteness)

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

Περατότητα (finiteness)

Ο αλγόριθμος να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία(computational procedure).

Αποτελεσματικότητα (effectiveness)

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

Θέμα 1ο – 

Α.1 ∆ίνεται η παρακάτω ακολουθία εντολών:

ΕΠΑΝ ← ΑΛΗΘΗΣ

ΟΣΟ ΕΠΑΝ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ

∆ΙΑΒΑΣΕ Α, Β

Χ ← Β/Α

ΓΡΑΨΕ Χ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

α. Να αναφέρετε ονομαστικά ποια κριτήρια αλγορίθμου δεν ικανοποιούνται.

β. Να αιτιολογήσετε την απάντησή σας.

ΘΕΜΑ Β –  

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

 

1. Διάβασε x, y
2. ΑΝ x<y τότε
3.

z ← x

4. αλλιώς
5.

z ← y

6. Τέλος_αν
7. Όσο z <> 0 επανάλαβε
8.

z ← x mod y

9.

x ← y

10.

y ← z

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


Β2.  ∆ίνεται το ακόλουθο υπόδειγμα πίνακα τιμών:

 

αριθμός γραμμής x y z
1 150 35

Στη στήλη με τίτλο «αριθμός γραμμής» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.

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

Να μεταφέρετε τον πίνακα στο τετράδιό σας και να τον συμπληρώσετε, εκτελώντας τις εντολές του τμήματος αλγορίθμου για x = 150 και y = 35 ως εξής:

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

Σημείωση: Στον πίνακα τιμών έχει συμπληρωθεί η εκτέλεση της πρώτης εντολής του αλγορίθμου.

ΘΕΜΑ Α

Α4. Δίνονται τα παρακάτω τμήματα αλγορίθμων.

1.

Ι  0

Όσο Ι <= 9 επανάλαβε

J  I

Όσο J <= 9 επανάλαβε

Γράψε ‘Α’

J ← J + 1

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

Ι ← Ι + 1

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

2.

Ι ← 0
Όσο Ι < 10 επανάλαβε

Γράψε ‘Α’

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

3.

Ι ← 0

Όσο Ι > 0 επανάλαβε

Γράψε ‘Α’

Ι ← Ι + 1

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

Για καθένα από τα τμήματα αλγορίθμων, να γράψετε στο τετράδιό σας τον αριθμό του (1 έως 4) και, δίπλα, πόσες φορές θα εμφανιστεί το γράμμα Α κατά την εκτέλεσή του.

 

ΘΕΜΑ 2ο

 

Να εκτελέσετε το παρακάτω τμήμα αλγορίθμου, για Κ = 24 και L = 40. Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Χ, Υ καθώς αυτές τυπώνονται με την εντολή Εμφάνισε Χ, Υ (τόσο μέσα στη δομή επανάληψης όσο και στο τέλος του αλγορίθμου).

Χ ← Κ

Y ← L

Αν Χ < Υ τότε

ΤΕΜΡ ← Χ

Χ ← Υ

Υ ← ΤΕΜΡ

Τέλος_αν

Όσο Υ<>0 επανάλαβε

ΤΕΜΡ ← Υ

Υ ← Χ ΜOD Y

Χ ← TEMP

Εμφάνισε Χ, Υ

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

Υ ← (Κ * L) DIV X

Εμφάνισε Χ, Υ

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον κατάλληλο πίνακα τιμών των μεταβλητών.

 

ΘΕΜΑ 2ο

 

Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Ν, Μ και Β, όπως αυτές τυπώνονται σε κάθε επανάληψη, και την τιμή της μεταβλητής Χ που τυπώνεται μετά το τέλος της επανάληψης, κατά την εκτέλεση του παρακάτω αλγόριθμου.

Αλγόριθμος Αριθμοί

Α ← 1

Β ← 1

Ν ← 0

Μ ← 2

Όσο Β < 6 επανάλαβε

Χ ← Α + Β

Αν Χ MOD 2 = 0 τότε

Ν ← Ν + 1

αλλιώς

Μ ← Μ + 1

Τέλος_αν

Α ← Β

Β ← Χ

Εμφάνισε Ν, Μ, Β

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

Εμφάνισε Χ

Τέλος Αριθμοί

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον κατάλληλο πίνακα τιμών των μεταβλητών.

Θέμα Β

Ημερήσια

Β1. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

Κ ← 1

Χ ← –1

i ← 0

Όσο Χ < 7 επανάλαβε

i ← i + 1

Κ ← Κ * Χ

Εμφάνισε Κ, Χ

Αν i mod 2 = 0 τότε

X ← X + 1

Αλλιώς

X ← X + 2

Τέλος_Αν

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

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

 

Θέμα Β

 

Β2. Δίνεται το παρακάτω τμήμα αλγορίθμου:

1. x ← 15
2. κ ← 1
3. Όσο x < 18 επανάλαβε
4.       x ← x + κ
5.       Αν x mod 3 = 0 τότε
6.              κ ← κ + 2
      Αλλιώς
7.              κ ← κ + 1
      Τέλος Αν
Τέλος_Επανάληψης

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

Αριθμός
Εντολής
x κ Συνθήκη
x<18
Συνθήκη
x mod 3 = 0
1 15
2
3

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

Η ΕΝΤΟΛΗ ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.3 ΕΝΤΟΛΗ ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ
Όταν ο αριθμός των φορών που θα εκτελεστεί μια επαναληπτική διαδικασία είναι γνωστός εκ των προτέρων, τότε είναι προτιμότερο να χρησιμοποιείται η εντολή Για … από … μέχρι.

Πολύ συχνά ο αριθμός των επαναλήψεων που πρέπει να εκτελεστούν είναι γνωστός από την αρχή. Αν και αυτού του είδους οι επαναλήψεις μπορούν να αντιμετωπιστούν με τη χρήση των προηγούμενων εντολών επανάληψης (ΟΣΟ ΚΑΙ ΜΕΧΡΙΣ_ΟΤΟΥ), η ΓΛΩΣΣΑ διαθέτει και την εντολή ΓΙΑ.

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

Σύνταξη

Για μεταβλητή από τ1 μέχρι τ2 με_βήμα β

Διαδικασία

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

Σύνταξη 

ΓΙΑ μεταβλητή ΑΠΟ τιμή1 ΜΕΧΡΙ τιμή2 ΜΕ ΒΗΜΑ τιμή3

εντολή-1

εντολή-2

εντολή-ν

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Λειτουργία 

Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής

από την αρχική τιμή μέχρι την τελική τιμή, αυξανόμενες με την τιμή του βήματος.

Αν το βήμα είναι ίσο με 1, τότε παραλείπεται.

ΠΑΡΑΤΗΡΗΣΕΙΣ

Όπως γίνεται φανερό, η εντολή Για…από…μέχρι περιλαμβάνει όλα τα απαιτούμενα στοιχεία για την επανάληψη, δηλαδή αρχική τιμή της μεταβλητής (που ελέγχει την επανάληψη) και τελική τιμή. Το βήμα μεταβολής της μεταβλητής i είναι 1, το οποίο υπονοείται και δεν σημειώνεται, όταν είναι 1.

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

Για k από 100 μέχρι 0 με_βήμα -1

Επίσης οι τιμές από, μέχρι και βήμα δεν είναι απαραίτητο να είναι ακέραιες. Μπορούν να λάβουν οποιαδήποτε πραγματική τιμή.

Η εντολή ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ χρησιμοποιείται στην περίπτωση που πρέπει να επαναληφθεί η εκτέλεση κάποιων εντολών για προκαθορισμένο αριθμό επαναλήψεων.

Κάθε επανάληψη που εκτελείται με μία εντολή ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ, μπορεί να υλοποιηθεί και με τη χρήση των βασικών εντολών επανάληψης ΟΣΟ … ΕΠΑΝΑΛΑΒΕ και ΜΕΧΡΙΣ … ΟΤΟΥ.

ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 
Γενική Σύνταξη

Για μεταβλητή από αρχική τιμή μέχρι τελική τιμή με_βήμα αριθμός

εντολές

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

 

όπου ως μεταβλητή νοείται η μεταβλητή ελέγχου της επανάληψης και,

αρχική τιμή η πρώτη τιμή που τις ανατίθεται -εκχωρείται,

τελική τιμή η τελευταία τιμή της -για την οποία όμως εκτελείται επανάληψη,

βήμα ο αριθμός που αφορά στην μεταβολή της -στην περίπτωση που είναι:

θετικός η μεταβλητή σε κάθε επανάληψη αυξάνεται

αρνητικός η τιμή της μεταβλητής μειώνεται σε κάθε επανάληψη

Λειτουργία

Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής από την αρχική τιμή μέχρι την τελική τιμή, αυξανόμενες ή μειούμενες -αναλόγως της τιμή του βήματος. Αν το βήμα είναι ίσο με 1, τότε παραλείπεται.

ΥΠΟΕΝΟΤΗΤΕΣ: Η ΕΝΤΟΛΗ ΕΠΑΝΑΛΗΨΗΣ Για .. από … μέχρι

ΕΝΤΟΛΕΣ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ  Αν … τότε  …Τέλος_αν

ΣΥΝΘΕΤΗΣ ΕΠΙΛΟΓΗΣ Αν … τότε … αλλιώς …Τέλος_αν


Θέμα 1ο –

∆. ∆ίνεται η παρακάτω εντολή:

Για i από τ1 μέχρι τ2 με_βήμα β

εντολή1

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

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

1. τ1 = 5, τ2 = 0, β = –2

2. τ1 = 5, τ2 = 1, β = 2

3. τ1 = 5, τ2 = 5 β = 1

4. τ1 = 5,  τ2 = 6.5, β = 0.5

ΘΕΜΑ Α – 

Α4. Δίνονται το παρακάτω τμήμα αλγορίθμου.

4.

Για Ι από 0 μέχρι 4

Γράψε ‘Α’

Για J από 0 μέχρι 6

Γράψε ‘Α’

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

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

Πόσες φορές θα εμφανιστεί το γράμμα Α κατά την εκτέλεσή του;

Θέμα 1ο –

Α.

2. Ποιο κριτήριο δεν ικανοποιεί ο παρακάτω αλγόριθμος και γιατί;

S ← 0

Για Ι από 2 μέχρι 10 με_βήμα 0

S ← S + I

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

Εμφάνισε S

ΘΕΜΑ Α –

Α5. Δίνεται το παρακάτω τμήμα αλγορίθμου:

Για K από A μέχρι B με_βήμα Γ

Εμφάνισε K

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

Να γράψετε στο τετράδιό σας για καθεμία από τις παρακάτω περιπτώσεις τις τιμές των Α, Β, Γ, έτσι ώστε το αντίστοιχο τμήμα αλγορίθμου να εμφανίζει:

1. όλους τους περιττούς ακεραίους από το 100 μέχρι το 1000.

2. όλους τους ακεραίους από το -20 μέχρι και το 10 σε φθίνουσα σειρά.

3. όλα τα πολλαπλάσια του 3 από το 1 μέχρι το 80.

 

ΘΕΜΑ Α –

Α4. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

Για Χ από Α μέχρι Μ με_βήμα Β

Εμφάνισε Χ

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

Να γράψετε στο τετράδιό σας για καθεμία από τις παρακάτω περιπτώσεις τις τιμές των Α, Μ, Β, έτσι ώστε το αντίστοιχο τμήμα αλγορίθμου να εμφανίζει όλους:

1. τους ακεραίους από 1 μέχρι και 100

2. τους ακεραίους από 10 μέχρι και 200 σε φθίνουσα σειρά

3. τους ακεραίους από -1 μέχρι και -200 σε αύξουσα σειρά

4. τους άρτιους ακεραίους από 100 μέχρι και 200

5. τους θετικούς ακεραίους που είναι μικρότεροι του 8128 και πολλαπλάσια του 13.

 

Θέμα Α

Α3. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

∆   ← Αληθής

Για α από 1 μέχρι Ν

∆ ← ΟΧΙ ∆

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

Εμφάνισε ∆

Να το εκτελέσετε για καθεμία από τις παρακάτω περιπτώσεις:

1) Ν=0 2) Ν=1 3) Ν=4 4) Ν=2011 5) Ν=8128

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

ΘΕΜΑ Α – 

Α4. Να γράψετε συμπληρωμένο κατάλληλα στο τετράδιό σας το παρακάτω τμήμα αλγορίθμου, ώστε να εμφανίζει διαδοχικά τις τιμές: 2, 4, 8, 10, 14.

Για Ι από ……… μέχρι ……… με_βήμα ………

Αν ……… και ……… τότε

Εμφάνισε Ι

Τέλος_αν

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

 

Θέμα 2ο – 

∆ίνεται το παρακάτω τμήμα αλγορίθμου:

∆ιάβασε Μ

Για Χ από 3 μέχρι Μ – 1 με_βήμα 2

Α ← 2 * Χ + 4

Β ← 4 * Χ – 3

Αν (Β – Α < 0) ή (Α > 15) τότε

Α ← Α + 5

Β ← Β * 2

Τέλος_αν

Εμφάνισε Α, Β

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

Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Α και Β που εμφανίζονται κατά την εκτέλεση του παραπάνω τμήματος αλγορίθμου, όταν για Μ δώσουμε την τιμή 9.

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον κατάλληλο πίνακα τιμών των μεταβλητών.

Θέμα Α – 

Α3. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

Α ← 0

Β ← 0

Γ ← 0

∆ ← 0

Για Ε από 1 μέχρι 496

∆ιάβασε Ζ

Αν Ε = 1 Τότε Η ← Ζ

Α ← Α + Ζ

Αν Ζ ≥ 18 Τότε

Β ← Β + Ζ

Γ ← Γ + 1

Τέλος_Αν

Αν Ζ > 0 Τότε ∆ ← ∆ + 1

Αν Ζ < Η Τότε Η ← Ζ

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

Θ ← Α / 496

Αν Γ ≠ 0 Τότε Ι ← Β / Γ

Κ ← 496 – Γ

Το παραπάνω τμήμα αλγορίθμου υπολογίζει στις μεταβλητές Η, Θ, Ι, Κ και ∆ τις παρακάτω πληροφορίες:

1. Μέσος όρος όλων των τιμών εισόδου

2. Πλήθος των θετικών τιμών εισόδου

3. Μικρότερη τιμή εισόδου

4. Μέσος όρος των τιμών εισόδου από 18 και πάνω

5. Πλήθος των τιμών εισόδου κάτω από 18.

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

Θέμα Β –

Β1. Ο αριθμός π εκφράζει το πηλίκο της περιμέτρου ενός κύκλου προς τη διάμετρό του. Η τιμή του μπορεί να υπολογιστεί, κατά προσέγγιση, από την παρακάτω παράσταση:

\( π = 4 \cdot \left ( \cfrac {1} {1} – \cfrac {1} {3} + \cfrac {1} {5} – \cfrac {1} {7} + … \right ) \)

Ο υπολογισμός της τιμής της παράστασης, για 100 όρους του αθροίσματος, γίνεται από το παρακάτω τμήμα αλγορίθμου που περιλαμβάνει 5 κενά.

παρονομαστής ← …. (1)

Σ ← 0

πρόσημο ← 1

Για ι από 1 μέχρι 100

όρος ← 1/παρονομαστής

όρος ← … (2) * πρόσημο

… (3) ← Σ + όρος

πρόσημο ← πρόσημο * … (4)

παρονομαστής ← παρονομαστής + 2

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

π ← … (5) * Σ

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

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.3 ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΩΝ

Στη βιβλιογραφία συναντώνται διάφοροι τρόποι αναπαράστασης ενός αλγορίθμου, όπως

με διαγραμματικές τεχνικές, (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου. Από τις διάφορες διαγραμματικές τεχνικές που έχουν επινοηθεί, η πιο παλιά και η πιο γνωστή ίσως, είναι το διάγραμμα ροής (flow chart).

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

Σύμβολα διαγράμματος ροής

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

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

ΥΠΟΕΝΟΤΗΤΑ: ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ & ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ – ΑΠΛΗΣ ΣΥΝΘΕΤΗΣ ΕΠΙΛΟΓΗΣ


Θέμα 2ο – Ημερήσια

1. ∆ίνεται ο παρακάτω αλγόριθμος σε μορφή διαγράμματος ροής:

2006-aepp-2-1-flowchart

β. Να εκτελέσετε τον αλγόριθμο για κάθε μία από τις παρακάτω τιμές της μεταβλητής Χ. Να γράψετε στο τετράδιό σας την τιμή της μεταβλητής Υ, όπως θα εμφανισθεί σε κάθε περίπτωση.

i. Χ = 9

ii. Χ = 10

iii. Χ = 40

 

Θέμα Β – 

∆ίνεται το ακόλουθο διάγραμμα ροής:

2004-aepp-esper-b-2

2. Να γράψετε τον πίνακα τιμών των μεταβλητών Α, Β και S, αν ως αρχικές τιμές δοθούν Α = 15 και Β = 20.

ΕΝΟΤΗΤΑ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Β

(ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ – ΑΠΛΗ & ΕΜΦΩΛΕΥΜΕΝΗ)

(ΔΟΜΗ ΕΠΙΛΟΓΗΣ – ΠΟΛΛΑΠΛΗ & ΕΜΦΩΛΕΥΜΕΝΗ)

Συνδυαστικά ΑπλάΕμφωλευμένη ΕπανάληψηΔιαγράμματα ροής
 

ΥΠΟΕΝΟΤΗΤΕΣ: ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ & ΕΝΤΟΛΕΣ ΠΟΛΛΑΠΛΗΣ & ΕΜΦΩΛΕΥΜΕΝΗΣ ΕΠΙΛΟΓΗΣ

ΣΥΝΔΥΑΣΤΙΚΑ ΘΕΜΑΤΑ (ΑΠΛΑ)


ΘΕΜΑ Α – Ημερήσια Επαναληπτικές 

ΣΤ. ∆ίνεται το παρακάτω τμήμα αλγορίθμου:

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ ‘∆ΩΣΕ ΘΕΤΙΚΟ ΑΡΙΘΜΟ’

∆ΙΑΒΑΣΕ ……..

ΜΕΧΡΙΣ_ΟΤΟΥ Χ ……. 0

ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ …….. ΜΕ_ΒΗΜΑ ……..

Α ← i ^……..

ΓΡΑΨΕ ……..

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να γράψετε στο τετράδιό σας τον παραπάνω αλγόριθμο κατάλληλα συμπληρωμένο, έτσι ώστε να υπολογίζει και να εμφανίζει τα τετράγωνα των πολλαπλασίων του 5 από το 0 μέχρι τον αριθμό Χ που διαβάστηκε.

 

 

ΥΠΟΕΝΟΤΗΤΕΣ: ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ & ΕΝΤΟΛΕΣ ΠΟΛΛΑΠΛΗΣ & ΕΜΦΩΛΕΥΜΕΝΗΣ ΕΠΙΛΟΓΗΣ

ΣΥΝΔΥΑΣΤΙΚΑ ΘΕΜΑΤΑ (ΣΥΝΘΕΤΑ)


Θέμα Β 

∆ίνεται το παρακάτω τμήμα αλγορίθμου.

Χ ← 1

Όσο Χ < 5 επανάλαβε

Α ← Χ + 2

Β ← 3 * Α – 4

C ← Β-Α+4

Αν Α > Β τότε

Αν Α > C τότε

MAX ← A

αλλιώς

MAX ← C

Τέλος αν

αλλιώς

Αν Β > C τότε

MAX ← Β

αλλιώς

MAX ← C

Τέλος αν

Τέλος αν

Εμφάνισε Χ, Α, Β, C, MAX

Χ ← Χ + 2

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

Ποιες είναι οι τιμές των μεταβλητών Χ, Α, Β, C, MAX που θα εμφανιστούν κατά την εκτέλεση του παραπάνω τμήματος αλγορίθμου;

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον κατάλληλο πίνακα τιμών των μεταβλητών.

 

Θέμα Β –

∆ίνεται ο παρακάτω αλγόριθμος:

Αλγόριθμος Αριθμοί_ ΜΕΡΣΕΝ

Διάβασε Α

Β ← 4

C ← 2

Aρχή_επανάληψης

Β ← (Β^2) – 2

Εμφάνισε Β

C ← C + 1

Μέχρις_ότου C > (A – 1)

D ← (2^A) – 1

E ← B mod D

Εμφάνισε D

Αν E = 0 τότε

F ← (2^(C – 1)) * D

Εμφάνισε “Τέλειος αριθμός:”, F

G ← 0

Όσο F > 0 επανάλαβε

G ← G+1

F ← F div 10

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

Εμφάνισε G

Τέλος_αν

Τέλος Αριθμοί_ΜΕΡΣΕΝ

 

Να γράψετε στο τετράδιό σας τις τιμές που τυπώνει ο παραπάνω αλγόριθμος, αν του δώσουμε τιμές εισόδου:

α. 3

β. 4

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον πίνακα που ακολουθεί.

A B C D E F G C>A-1 E = 0 F>0 Έξοδος
3 4 2

 

ΘΕΜΑ 2ο – 

∆ίνεται ο παρακάτω αλγόριθμος :

Αλγόριθμος Αριθμοί

∆ιάβασε Α

Εκτύπωσε Α

S←1

K←2

Αρχή_επανάληψης

Αν Α MOD K = 0 τότε

Β ← Α DIV K

Αν Κ <> Β τότε

S←S + K+B

Εκτύπωσε Κ, Β

αλλιώς

S←S + K

Εκτύπωσε Κ

Τέλος_αν

Τέλος_αν

Κ←Κ+1

Μέχρις_ότου Κ > Ρίζα (Α)

Αν Α = S τότε

Εκτύπωσε S

Τέλος_αν

Τέλος Αριθμοί

 

Η συνάρτηση Ρίζα (Α) επιστρέφει την τετραγωνική ρίζα του Α.

Να γράψετε στο τετράδιό σας τις τιμές που τυπώνει ο παραπάνω αλγόριθμος, αν του δώσουμε τιμές εισόδου :

α. 36   β. 28

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον πίνακα που ακολουθεί.

Μ Ε Τ Α Β Λ Η Τ Ε Σ
Λ Ο Γ Ι Κ Ε Σ   Ε Κ Φ Ρ Α Σ Ε Ι Σ
ΕΞΟΔΟΣ
Α S K Β Α mod K = 0 K <> Β Κ > Ριζα(Α) Α = S

 

ΥΠΟΕΝΟΤΗΤΕΣ: ΕΜΦΩΛΕΥΜΕΝΗ ΕΠΑΝΑΛΗΨΗ & ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ


ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΕΜΦΩΛΕΥΜΕΝΟΙ ΒΡΟΧΟΙ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ & ΕΠΑΝΑΛΗΨΗ

8.2 | Εντολές επανάληψης

Πολύ συχνά για την επίλυση των προβλημάτων απαιτείται η χρήση εμφωλευμένων βρόχων. Σε αυτή την περίπτωση ο ένας βρόχος βρίσκεται μέσα στον άλλο. 

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

Συγκεκριμένα: 

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

ΘΕΜΑ 2ο – 

β. ∆ίνεται το παρακάτω τμήμα αλγόριθμου:

α ← 5

β ← 3

Για Χ από 2 μέχρι 7 με_βήμα 4

Όσο α ≤ 10 επανάλαβε

β ← β + α

α ← α + 4

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

Εμφάνισε α, β

α ← 4

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

Εμφάνισε α

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

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας τον πίνακα που ακολουθεί.

ΜΕΤΑΒΛΗΤΕΣ ΣΥΝΘΗΚΗ ΕΞΟΔΟΣ
α β Χ α <= 10
5 3

Απ:

 

ΘΕΜΑ 2ο –

∆ίνεται το παρακάτω πρόγραμμα σε γλώσσα:

ΠΡΟΓΡΑΜΜΑ Α

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: x, n, m, pow, z

ΑΡΧΗ

∆ΙΑΒΑΣΕ x, n

m ← n

pow ← 1

z ← x

ΟΣΟ m > 0 ΕΠΑΝΑΛΑΒΕ

ΟΣΟ (m MOD 2) = 0 ΕΠΑΝΑΛΑΒΕ

m ← m DIV 2

z ← z * z

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

m ← m – 1

ΓΡΑΨΕ pow

pow ← pow * z

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ pow

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Α

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

x = 2, n = 3.

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας κατάλληλα πίνακα τιμών των μεταβλητών.

 

ΘΕΜΑ 2ο – Ημερήσια

∆ίνεται o παρακάτω αλγόριθμος, στον οποίο έχουν αριθμηθεί οι εντολές εκχώρησης:

 

Αλγόριθμος Πολλαπλασιασμός
∆εδομένα //α, β//
Αν α > β τότε αντιμετάθεσε α, β
1. γ ←  0
Όσο α > 0 επανάλαβε
2. δ ← α mod 10
Όσο δ > 0 επανάλαβε
3. δ ← δ − 1
4. γ ←  γ + β
Τέλος_επανάληψης
5. α ← α div 10
6. β ← β * 10
Τέλος_επανάληψης
Αποτελέσματα //γ//
Τέλος πολλαπλασιασμός

 

 

Αριθμός
Εντολής
α β γ δ
20 50
1 0

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

Α.  Να μεταφέρετε στο τετράδιό σας τον πίνακα και να τον συμπληρώσετε, εκτελώντας τον αλγόριθμο με αρχικές τιμές α = 20, β = 50 (που ήδη φαίνονται στον πίνακα).

Για κάθε εντολή εκχώρησης που εκτελείται να γράψετε σε νέα γραμμή του πίνακα:

α. Τον αριθμό της εντολής που εκτελείται (στην πρώτη στήλη).

β. Τη νέα τιμή της μεταβλητής που επηρεάζεται από την εντολή (στην αντίστοιχη στήλη).

 

ΥΠΟΕΝΟΤΗΤΑ: ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ & ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ – ΠΟΛΛΑΠΛΗΣ ΕΜΦΩΛΕΥΜΕΝΗΣ ΕΠΙΛΟΓΗΣ


ΕΝΟΤΗΤΑ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΕΝΟΤΗΤΑ: ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ – ΕΠΙΠΕΔΟ 5 (ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ)
ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ

ΣυναρτήσειςΔιαδικασίεςΣυναρτήσεις & Διαδικασίες

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΣΥΝΑΡΤΗΣΕΙΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΑΕΠΠ ΓΛΩΣΣΑ

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

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

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

Οι συναρτήσεις εκτελούνται με την εμφάνιση του ονόματός τους σε οποιαδήποτε έκφραση (αριθμητική/λογική).

Ορισμός

Η συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μόνο μία τιμή με το όνομά της (όπως οι μαθηματικές συναρτήσεις).

Ορισμός και κλήση συναρτήσεων

Κάθε συνάρτηση έχει την ακόλουθη δομή.

ΣΥΝΑΡΤΗΣΗ όνομα (λίστα παραμέτρων):τύπος συνάρτησης

Τμήμα δηλώσεων

ΑΡΧΗ

….

όνομα <–  έκφραση

…. 

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Το όνομα της συνάρτησης είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ.

Η λίστα παραμέτρων είναι μια λίστα μεταβλητών, των οποίων οι τιμές μεταβιβάζονται (περνούν) στη συνάρτηση κατά την κλήση.

Οι συναρτήσεις μπορούν να επιστρέφουν τιμές όλων των τύπων δεδομένων που υποστηρίζει η γλώσσα. Μια συνάρτηση λοιπόν μπορεί να είναι ΠΡΑΓΜΑΤΙΚΗ, ΑΚΕΡΑΙΑ, ΧΑΡΑΚΤΗΡΑΣ , ΛΟΓΙΚΗ.

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

10.4 | Παράμετροι

Τα υποπρογράμματα ενεργοποιούνται από κάποιο άλλο πρόγραμμα ή υποπρόγραμμα για να εκτελέσουν συγκεκριμένες λειτουργίες.

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

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

Οι τιμές αυτές που περνούν από το ένα υποπρόγραμμα στο άλλο λέγονται παράμετροι.

Διαφορά παραμέτρων – απλών (μεταβλητών) 

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

Ορισμός

Μία παράμετρος είναι μία μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα τμήμα προγράμματος σε ένα άλλο.

Πραγματικές και τυπικές παράμετροι

Οι μεταβλητές του προγράμματος συνάρτησης αποτελούν τις πραγματικές παραμέτρους,  ονομάζονται τυπικές παράμετροι.

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

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

Η λίστα των 

τυπικών παραμέτρων (υποπρόγραμμα)  καθορίζει τις παραμέτρους στη δήλωση του υποπρογράμματος

πραγματικών παραμέτρων (πρόγραμμα) καθορίζει τις παραμέτρους στη κλήση του υποπρογράμματος. 

Μερικές γλώσσες προγραμματισμού ονομάζουν ορίσματα τις τυπικές παραμέτρους και απλά παραμέτρους τις πραγματικές παραμέτρους.

Οι λίστες των παραμέτρων πρέπει να ακολουθούν τους εξής κανόνες:

Ο αριθμός των πραγματικών και των τυπικών παραμέτρων πρέπει να είναι ίδιος.

Κάθε πραγματική παράμετρος αντιστοιχεί στην τυπική παράμετρο που βρίσκεται στην αντίστοιχη θέση. 

Η τυπική παράμετρος και η αντίστοιχή της πραγματική πρέπει να είναι του ιδίου τύπου.

ΥΠΟΕΝΟΤΗΤΑ: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ – ΣΥΝΑΡΤΗΣΕΙΣ


Θέμα 2ο – 

∆ίνεται το παρακάτω τμήμα προγράμματος και μια συνάρτηση:

∆ιάβασε Κ

L ← 2

A ← 1

Όσο Α < 8 επανάλαβε

Αν Κ MOD L = 0 τότε

Χ ← Fun(A, L)

αλλιώς

Χ ← Α + L

Τέλος_αν

Εμφάνισε L, A, X

A ← A + 2

L ← L + 1

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

……………

Συνάρτηση Fun(Β, ∆) : Ακέραια

Μεταβλητές

Ακέραιες: Β, ∆

Αρχή

Fun ← (B + ∆) DIV 2

Tέλος_συνάρτησης.

Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών L, A, X, όπως αυτές εκτυπώνονται σε κάθε επανάληψη, όταν για είσοδο δώσουμε την τιμή 10.

Υπόδειξη: Να μεταφέρετε στο τετράδιό σας τον πίνακα και να τον συμπληρώσετε.

Κύριο Πρόγραμμα Συνάρτηση Fun
K L Α Χ Α<8 Κ mod L = 0 Έξοδος Β Δ Fun
                   

Θέμα 2ο – 

∆ίνεται παρακάτω ένα πρόγραμμα με ένα υποπρόγραμμα:

ΠΡΟΓΡΑΜΜΑ Υπολογισμοί

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ: α, β, γ

ΑΡΧΗ

∆ΙΑΒΑΣΕ α, β

γ ← α + Πράξη (α, β)

ΓΡΑΨΕ γ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ Πράξη (χ, ψ): ΠΡΑΓΜΑΤΙΚΗ

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ: χ, ψ

ΑΡΧΗ

ΑΝ χ >= ψ ΤΟΤΕ

Πράξη ← χ – ψ

ΑΛΛΙΩΣ

Πράξη ← χ + ψ

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

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

i. α = 10 β = 5  ii. α = 5 β = 5  iii. α = 3 β = 5

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας κατάλληλα πίνακα τιμών των μεταβλητών.

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΔΙΑΔΙΚΑΣΙΕΣ – ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΑΕΠΠ ΓΛΩΣΣΑ

10.4 | Παράμετροι 

Τα υποπρογράμματα ενεργοποιούνται από κάποιο άλλο πρόγραμμα ή υποπρόγραμμα για να εκτελέσουν συγκεκριμένες λειτουργίες.

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

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

Οι τιμές αυτές που περνούν από το ένα υποπρόγραμμα στο άλλο λέγονται παράμετροι.

Διαφορά παραμέτρων – απλών (μεταβλητών) 

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

Μία παράμετρος είναι μία μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα τμήμα προγράμματος σε ένα άλλο.

10.5 | Διαδικασίες και συναρτήσεις

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

Η διαδικασία είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος. Οι διαδικασίες μπορούν να:

εισάγουν δεδομένα, ΔΙΑΒΑΣΕ

εκτελέσουν υπολογισμούς, ← (εκχώρηση)

μεταβάλλουν τις τιμές των μεταβλητών, ← (εκχώρηση)

να τυπώσουν αποτελέσματα, ΓΡΑΨΕ

Με τη χρήση των παραμέτρων αυτές τις τιμές μπορούν να τις μεταφέρουν και στα άλλα υποπρογράμματα.

Οι διαδικασίες, εκτελούνται με χρήση της ειδικής εντολής ΚΑΛΕΣΕ και όνομα διαδικασίας

10.5.2 Ορισμός και κλήση διαδικασιών

Κάθε διαδικασία έχει την ακόλουθη δομή.

ΔΙΑΔΙΚΑΣΙΑ Όνομα (λίστα παραμέτρων) Τμήμα δηλώσεων

ΑΡΧΗ

εντολές

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Το όνομα της διαδικασίας είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών, των οποίων οι τιμές μεταβιβάζονται προς τη διαδικασία κατά την κλήση ή/και επιστρέφονται στο κύριο πρόγραμμα μετά το τέλος της διαδικασίας.

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

Κάθε διαδικασία εκτελείται όταν καλείται από το κύριο πρόγραμμα ή άλλη διαδικασία. Η κλήση σε διαδικασία πραγματοποιείται με την εντολή ΚΑΛΕΣΕ, που ακολουθείται από το όνομα της διαδικασίας συνοδευόμενο μέσα σε παρενθέσεις με τη λίστα παραμέτρων.

Η γενική μορφή της εντολής ΚΑΛΕΣΕ είναι

Σύνταξη

ΚΑΛΕΣΕ όνομα-διαδικασίας (λίστα-παραμέτρων)

Λειτουργία

Η εκτέλεση του προγράμματος διακόπτεται και εκτελούνται οι εντολές της διαδικασίας που καλείται. Μετά το τέλος της διαδικασίας η εκτέλεση του προγράμματος συνεχίζεται από την εντολή που ακολουθεί.

Η λίστα των παραμέτρων ορίζει τις τιμές που περνούν στη διαδικασία και τις τιμές που αυτή επιστρέφει.

Η λίστα παραμέτρων δεν είναι υποχρεωτική.

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

Κάθε διαδικασία μπορεί να καλείται από το κύριο πρόγραμμα ή από άλλη διαδικασία.

Σε κάθε περίπτωση μετά το τέλος της εκτέλεσης της διαδικασίας γίνεται επιστροφή ακριβώς μετά το σημείο απ’ όπου κλήθηκε (επόμενη εντολή του προγράμματος).

ΥΠΟΕΝΟΤΗΤΑ: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ – ΔΙΑΔΙΚΑΣΙΕΣ


Θέμα 1ο – 

Γ. ∆ίνεται το παρακάτω πρόγραμμα και υποπρογράμματα:

ΠΡΟΓΡΑΜΜΑ Κύριο

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: Α, Β, Γ

ΑΡΧΗ

∆ΙΑΒΑΣΕ Α, Β, Γ

ΚΑΛΕΣΕ ∆ιαδ1(Α, Β, Γ)

ΓΡΑΨΕ Α, Β, Γ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

∆ΙΑ∆ΙΚΑΣΙΑ ∆ιαδ1(Β, Α, Γ)

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: Α, Β, Γ

ΑΡΧΗ

Α ← Α + 2

Β ← Β – 3

Γ ← Α + Β

ΓΡΑΨΕ Α, Β, Γ

ΤΕΛΟΣ_∆ΙΑ∆ΙΚΑΣΙΑΣ

Τι θα εμφανιστεί κατά την εκτέλεση του προγράμματος, αν ως τιμές εισόδου δοθούν οι αριθμοί 5, 7, 10;

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας κατάλληλα πίνακα τιμών των μεταβλητών.

Θέμα Β – 

Β2. ∆ίνεται τo παρακάτω πρόγραμμα και ένα υποπρόγραμμα:

Πρόγραμμα ΘέμαΒ

Μεταβλητές

Ακέραιες: z, w

Αρχή

z ← 1

w ← 3

Όσο z <= 35 επανάλαβε

Κάλεσε ∆ιαδ(z, w)

Γράψε z

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

Tέλος_Προγράμματος

∆ιαδικασία ∆ιαδ(w, z)

Μεταβλητές

Ακέραιες: z, w

Αρχή

w ← w + z

z ← z + 2

Γράψε z

Τέλος_∆ιαδικασίας

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

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΣΥΝΑΡΤΗΣΕΙΣ ΔΙΑΔΙΚΑΣΙΕΣ – ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΓΕΝΙΚΑ

ΑΕΠΠ ΓΛΩΣΣΑ

10.1 | Τμηματικός προγραμματισμός 

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

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

Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα, τότε αναφερόμαστε σε υποπρόγραμμα (subprogram). 

10.2 | Χαρακτηριστικά των υποπρογραμμάτων 

Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. 

Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. 

Κάθε υποπρόγραμμα πρέπει να μην είναι πολύ μεγάλο. 

10.3 | Πλεονεκτήματα του τμηματικού προγραμματισμού 

Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντιστοίχου προγράμματος. 

Διευκολύνει την κατανόηση και διόρθωση του προγράμματος. 

Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος. 

Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού. 

ΥΠΟΕΝΟΤΗΤΑ: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ – ΔΙΑΔΙΚΑΣΙΕΣ & ΣΥΝΑΡΤΗΣΕΙΣ


Θέμα Β – 

∆ίνεται το παρακάτω πρόγραμμα και υποπρογράμματα:

ΠΡΟΓΡΑΜΜΑ Κλήση_Υποπρογραμμάτων

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: α, β, χ

ΑΡΧΗ

α ← 1
β ← 2

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΑΝ α<= 4 ΤΟΤΕ

ΚΑΛΕΣΕ ∆ιαδ1(α, β, χ)

ΑΛΛΙΩΣ

χ ← Συν1(α, β)

ΤΕΛΟΣ_ΑΝ

ΓΡΑΨΕ α, β, χ

ΜΕΧΡΙΣ_ΟΤΟΥ χ>11

ΓΡΑΨΕ χ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

∆ΙΑ∆ΙΚΑΣΙΑ ∆ιαδ1 (λ, κ, μ)

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: κ, λ, μ

ΑΡΧΗ

κ ← κ + 1

λ ← λ + 3

μ ← κ + λ

ΤΕΛΟΣ_∆ΙΑ∆ΙΚΑΣΙΑΣ

 

ΣΥΝΑΡΤΗΣΗ Συν1(ε, ζ): ΑΚΕΡΑΙΑ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: ε, ζ

ΑΡΧΗ

ζ ← ζ + 2

ε ← ε * 2

Συν1 ←ε + ζ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

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

Υπόδειξη: Να δοθεί το αποτέλεσμα συμπληρώνοντας κατάλληλα πίνακα τιμών των μεταβλητών.

ΕΝΟΤΗΤΑ ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΕΝΟΤΗΤΑ: ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ – ΕΠΙΠΕΔΟ 5 (ΠΙΝΑΚΕΣ ΜΟΝΟΔΙΑΣΤΑΤΟΙ)

Έλεγχος ΛαθώνΑπλάΣύνθεταΑναζήτησηΤαξινόμηση

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΠΙΝΑΚΕΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 9 ΠΙΝΑΚΕΣ

3.2 ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ =  ΠΡΟΓΡΑΜΜΑΤΑ 9.1 ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Τα δεδομένα ενός προβλήματος αποθηκεύονται στον υπολογιστή, είτε στην κύρια μνήμη του είτε στη δευτερεύουσα μνήμη του. Η αποθήκευση αυτή δεν γίνεται κατά έναν τυχαίο τρόπο αλλά συστηματικά, δηλαδή χρησιμοποιώντας μία δομή. Η έννοια της δομής δεδομένων (data structure) είναι σημαντική για την Πληροφορική και ορίζεται με τον ακόλουθο τυπικό ορισμό. 

Ορισμός

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

Ορισμός 

Πίνακας είναι ένα σύνολο αντικειμένων ίδιου τύπου, τα οποία αναφέρονται με ένα κοινό όνομα.

Κάθε ένα από τα αντικείμενα που απαρτίζουν τον πίνακα λέγεται στοιχείο του πίνακα. Η αναφορά σε ατομικά στοιχεία του πίνακα γίνεται με το όνομα του πίνακα ακολουθούμενο από ένα δείκτη. 

ΠΑΡΑΤΗΡΗΣΕΙΣ

Υπάρχει μεγάλη εξάρτηση μεταξύ της δομής δεδομένων και του αλγορίθμου που επεξεργάζεται τη δομή. Μάλιστα, το πρόγραμμα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μία αδιάσπαστη ενότητα. Η παρατήρηση αυτή δικαιολογεί την εξίσωση που διατυπώθηκε το 1976 από τον Wirth (που σχεδίασε και υλοποίησε τη γλώσσα Pascal) 

Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

Μπορούμε να ορίσουμε τον πίνακα ως μια δομή που περιέχει στοιχεία του ίδιου τύπου (δηλαδή ακέραιους, πραγματικούς κ.λπ).

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

Γενικά

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

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

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

Ειδικά (ΓΛΩΣΣΑ)

Το όνομα του πίνακα μπορεί να είναι οποιοδήποτε δεκτό όνομα της ΓΛΩΣΣΑΣ και ο δείκτης είναι μία ακέραια έκφραση, σταθερή ή μεταβλητή που περικλείεται μέσα στα σύμβολα [και].

Ο δείκτης είναι μία μεταβλητή που μπορεί να έχει οποιοδήποτε δεκτό όνομα. Είναι σύνηθες όμως στον προγραμματισμό ως δείκτες να χρησιμοποιούνται οι μεταβλητές i, j, k.

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

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

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

ΥΠΟΕΝΟΤΗΤΑ: ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΕΛΕΓΧΟΣ ΛΑΘΩΝ


Θέμα 2ο – 

Α. ∆ίνεται το παρακάτω πρόγραμμα σε «ΓΛΩΣΣΑ»

1       

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

ΠΡΟΓΡΑΜΜΑ ΕΙΝΑΙ-ΠΡΩΤΟΣ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: Χ, i

ΧΑΡΑΚΤΗΡΕΣ: ΜΗΝΥΜΑ

ΑΡΧΗ

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

∆ΙΑΒΑΣΕ Χ

ΜΕΧΡΙΣ_ΟΤΟΥ Χ > 0

C ← 0

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Χ ΕΠΑΝΑΛΑΒΕ

AN (Χ MOD i) = 0 TOTE

C ← C + 1

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΑΝ C = 2 TOTE

MHNYMA ‘EINAI ΠΡΩΤΟΣ’

ΑΛΛΙΩΣ

ΜΗΝΥΜΑ ‘∆ΕΝ ΕΙΝΑΙ ΠΡΩΤΟΣ’

ΤΕΛΟΣ

ΓΡΑΨΕ ΜΗΝΥΜΑ

ΤΕΛΟΣ_ΑΛΓΟΡΙΘΜΟΥ

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

 

ΥΠΟΕΝΟΤΗΤΑ: ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΑΠΛΑ ΘΕΜΑΤΑ


Θέμα 2ο – Ημερήσια 

∆ίνεται το παρακάτω τμήμα αλγορίθμου με αριθμημένες εντολές για εύκολη αναφορά σε αυτές. Κάθε εντολή περιέχει ένα ή δύο κενά (σημειωμένα με …), που το καθένα αντιστοιχεί σε μία σταθερά ή μία μεταβλητή ή έναν τελεστή. Επίσης δίνεται πίνακας όπου κάθε γραμμή αντιστοιχεί στη διπλανή εντολή του τμήματος αλγορίθμου και κάθε στήλη σε μία θέση μνήμης (μεταβλητή). Η κάθε γραμμή του πίνακα παρουσιάζει το αποτέλεσμα που έχει η εκτέλεση της αντίστοιχης εντολής στη μνήμη: συγκεκριμένα, δείχνει την τιμή της μεταβλητής την οποία επηρεάζει η εντολή.

Εντολές ΜΝΗΜΗ
Α Β Γ Δ Ε Ζ Χ[1] Χ[2] Χ[3]
1. Α ← … 4
2. Δ ← Α + … 7
3. Αν Α … Δ τότε

Γ ← Α

αλλιώς

Γ ← Δ

Τέλος_αν

7
4. Β ← … -1 3
5. Ε ← … – … -1
6. … ← Δ + … 6
7. Γ ← Γ … Ε 8
8. Ζ ← … -1 2
9. Χ[…] ← Γ 8
10. Χ[Ζ … 1] ← Δ 6
11. Χ[Ζ … 1] ← Χ[Ζ] … 1 7

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

Α. Για τις εντολές 1 και 2, να σημειώσετε σταθερές τιμές.

Β. Για τις εντολές 3, 7, 10 και 11, να σημειώσετε τελεστές, και για τις υπόλοιπες, να σημειώσετε μεταβλητές.

Θέμα Α – 

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

1.

2.

3.

4.

5.

6.

max ← Π[1]

Για i από 2 μέχρι 5

Αν Π[i] > max τότε

max ← Π[i]

Τέλος_αν

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

α. Τι υπολογίζει αυτό το τμήμα αλγορίθμου; (μονάδες 2)

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

γ. Πόσες φορές το πολύ θα εκτελεστεί η εντολή στη γραμμή 4; (μονάδες 2)

δ. Να αιτιολογήσετε γιατί ο πίνακας Π δεν μπορεί να είναι πίνακας λογικών τιμών (μονάδες 4).

 

Θέμα Β – 

Β2. ∆ίνεται ο πίνακας Α τεσσάρων στοιχείων με τιμές:

Α[1] = 3, Α[2] = 5, Α[3] = 8, Α[4] = 13

και το παρακάτω τμήμα αλγορίθμου:

i ← 1

j ← 4

Όσο i <= 3 επανάλαβε

πρόχειρο ← Α[j]

A[j] ← Α[i]

Α[i] ← πρόχειρο

Γράψε Α[1], Α[2], Α[3]

i ← i + 1

j ← j – 1

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

Να γράψετε στο τετράδιό σας τις τιμές που θα εμφανισθούν κατά την εκτέλεσή του.

Θέμα Α – 

Α4. Έστω ο μονοδιάστατος πίνακας Α:

5 2 3 8 7 4 10 12

Να σχεδιάσετε τον πίνακα Β[6] μετά την εκτέλεση των παρακάτω εντολών:

1.  Β[Α[1] – Α[3]]  ← Α[5]

2.  Β[Α[7] – Α[5]] ← Α[2] + Α[7]

3.  Β[Α[6]] ← Α[4]

4.  Β[Α[1] + Α[4] – Α[8]] ←  Α[3] + Α[8]

5.  Β[Α[8] DIV 2] ← A[3] MOD 2

6. B[A[1] MOD A[4]] ← A[6] + 4

 

Θέμα Α – 

Α4. Έστω ο μονοδιάστατος πίνακας Α:

5 2 3 8 7 4 10 12

Να σχεδιάσετε τον πίνακα Β[4] μετά την εκτέλεση των παρακάτω εντολών:

1. Β[Α[1] – Α[3]] ← Α[5]

2. Β[Α[4] – Α[5]] ← Α[8]

3. Β[Α[3]] ← Α[1]

4. Β[Α[3] + Α[4] – Α[5]] ← Β[1] + Β[2]

 

ΥΠΟΕΝΟΤΗΤΑ: ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΣΥΝΘΕΤΑ ΘΕΜΑΤΑ


Θέμα B – 

Β2. Δίνεται το παρακάτω τμήμα προγράμματος, το οποίο μετατρέπει έναν ακέραιο αριθμό από το δεκαδικό σύστημα στο δυαδικό.

Π ← 1
Ι ← 0
ΔΙΑΒΑΣΕ Α

ΟΣΟ Π < > 0 ΕΠΑΝΑΛΑΒΕ

Ι ← Ι + 1

Π ← A DIV 2

Y ← A MOD 2

Δ[I] ← Y

A ← Π

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΙΑ Κ ΑΠΟ Ι ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1

ΓΡΑΨΕ Δ[Κ]

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

α. Για την τιμή Α = 11 :

i) Να συμπληρώσετε τον παρακάτω πίνακα τιμών.

Π Υ Α Ι

ii) Να γράψετε τον αριθμό Α και δίπλα του, διαδοχικά, τις τιμές που εμφανίζει το τμήμα του προγράμματος (οι αριθμοί αυτοί αποτελούν τη δυαδική αναπαράσταση του αριθμού Α).

β. Να επαναλάβετε τα ανωτέρω i) και ii) βήματα για την τιμή Α = 8.

Θέμα Α – 

Α5. ∆ίνεται το παρακάτω τμήμα αλγορίθμου που χρησιμοποιεί ένα μονοδιάστατο πίνακα Α[20]. Ο πίνακας περιέχει άρτιους και περιττούς θετικούς ακεραίους, σε τυχαίες θέσεις. Το τμήμα αλγορίθμου δημιουργεί ένα νέο πίνακα Β[20] στον οποίο υπάρχουν πρώτα οι άρτιοι και μετά ακολουθούν οι περιττοί.

Να γράψετε στο τετράδιό σας τον αλγόριθμο συμπληρώνοντας τα κενά:

Κ ← 0

Για i από ………… μέχρι …………

Αν Α[i] mod 2 = 0 τότε

Κ ← …………

Β[…………] ← A[i]

Τέλος_αν

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

Για i από ………… μέχρι …………

Αν Α[i] mod 2 = ………… τότε

………………………………..

Β[…………] ← A[…………]

Τέλος_αν

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

Θέμα 2ο – 

∆ίνεται ο μονοδιάστατος πίνακας C με έξι στοιχεία που έχουν αντίστοιχα τις παρακάτω τιμές:

2, 5, 15, –1, 32, 14

και το παρακάτω τμήμα αλγορίθμου:

min ← 100

max ← –100

Για i από 1 μέχρι 6 με_βήμα 2

Α ← C[i]

B ← C[i+1]

Αν A < Β τότε

Lmin ← A

Lmax ← B

αλλιώς

Lmin ← Β

Lmax ← Α

Τέλος_αν

Αν Lmin < min τότε

min ← Lmin

Τέλος_αν

Αν Lmax > max τότε

max ← Lmax

Τέλος_αν

Εκτύπωσε Α, Β, Lmin, Lmax, min, max

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

D ← max ∗ min

Εκτύπωσε D

Να εκτελέσετε το παραπάνω τμήμα αλγορίθμου και να γράψετε στο τετράδιό σας:

α. Τις τιμές των μεταβλητών Α, Β, Lmin, Lmax, min και max, όπως αυτές εκτυπώνονται σε κάθε επανάληψη.

β. Την τιμή της μεταβλητής D που εκτυπώνεται.

 

Θέμα B  

Β2. ∆ίνονται οι πίνακες DATA[7], L[7], R[7], οι οποίοι περιέχουν δεδομένα, όπως φαίνονται στα παρακάτω σχήματα:

1 2 3 4 5 6 7
Ψ Β Ο Κ Η Φ Σ

DATA

1 2 3 4 5 6 7
5 4 2 6 7 3 1

L

1 2 3 4 5 6 7
6 4 7 5 6 1 2

R

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

ΓΡΑΜΜΑ ←’Σ’

Κ←1

Όσο DATA[K] < > ΓΡΑΜΜΑ επανάλαβε

Εκτύπωσε DATA[K]

Αν DATA[K] > ΓΡΑΜΜΑ τότε

Κ ← L[K]

αλλιώς

Κ ← R[K]

Τέλος_αν

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

Εκτύπωσε DATA[K]

Πίνακας τιμών 

ΓΡΑΜΜΑ Κ ΟΘΟΝΗ (ΕΚΤΥΠΩΣΗ)
Σ

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΠΙΝΑΚΕΣ


ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 9 ΠΙΝΑΚΕΣ

3.6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝΩΝ & ΠΙΝΑΚΕΣ 9.4 ΤΥΠΙΚΕΣ ΤΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ

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

Υπάρχουν αρκετές μέθοδοι αναζήτησης σε πίνακα που εξαρτώνται κυρίως από το αν ο πίνακας είναι ταξινομημένος ή όχι. Μια άλλη παράμετρος είναι αν ο πίνακας περιέχει στοιχεία που είναι όλα διάφορα μεταξύ τους ή όχι. Τα στοιχεία του πίνακα μπορεί να είναι αριθμητικά ή αλφαριθμητικά.

Η πιο απλή μορφή αναζήτησης στοιχείου σε πίνακα είναι η σειριακή (sequential) ή γραμμική (linear) μέθοδος.

Τα προγράμματα τα οποία χρησιμοποιούν πίνακες πολύ συχνά απαιτούν συγκεκριμένες επεξεργασίες στα στοιχεία του πίνακα. Μεταξύ των τυπικών αυτών επεξεργασιών είναι και η αναζήτηση.

Η σειριακή μέθοδος αναζήτησης είναι η πιο απλή, αλλά και η λιγότερο αποτελεσματική μέθοδος. Χρησιμοποιείται όμως υποχρεωτικά για πίνακες που δεν είναι ταξινομημένοι. 

ΠΑΡΑΤΗΡΗΣΕΙΣ

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

 -ο πίνακας είναι μη ταξινομημένος,

 -ο πίνακας είναι μικρού μεγέθους (για παράδειγμα, n ≤ 20),

 -η αναζήτηση σε ένα συγκεκριμένο πίνακα γίνεται σπάνια,

Ανακεφαλαίωση 

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

ΥΠΟΕΝΟΤΗΤΑ: ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΑΝΑΖΗΤΗΣΗ

Θέμα Α – Ημερήσια Επαναληπτικές

∆. ∆ίνεται η παρακάτω ακολουθία εντολών που στοχεύει στην υλοποίηση ενός αλγορίθμου αναζήτησης κάποιου στοιχείου Χ σε πίνακα Π με Ν στοιχεία:

Αλγόριθμος Αναζήτηση

∆εδομένα //Π, Ν, Χ//

flag ← ψευδής

Ι ← 1

Όσο Ι ≤ Ν και flag = ψευδής επανάλαβε

Αν Π[Ι] = Χ τότε

flag ← αληθής

Τέλος_αν

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

Αποτελέσματα //flag//

Τέλος Αναζήτηση

1. Ποιο αλγοριθμικό κριτήριο δεν ικανοποιεί η παραπάνω ακολουθία εντολών; (Μονάδες 2)

Να αιτιολογήσετε την απάντησή σας. (Μονάδες 3)

2. Να διορθώσετε την παραπάνω ακολουθία εντολών έτσι ώστε να υλοποιεί σωστά την αναζήτηση.

 

Θέμα Α – Ημερήσια Νέο Σύστημα

Α5. ∆ίνεται ο παρακάτω ημιτελής αλγόριθμος αναζήτησης ενός αριθμού key σε έναν αριθμητικό πίνακα table N στοιχείων, στον οποίο ο key μπορεί να εμφανίζεται περισσότερες από μία φορές.

Αλγόριθμος Αναζήτηση

∆εδομένα // table, N, key //

Βρέθηκε ← Ψευδής

∆ενΒρέθηκε ← ……………………

i←1

Όσο ∆ενΒρέθηκε = Αληθής και i <= N επανάλαβε

Αν …………………… τότε

Εμφάνισε “Βρέθηκε στη θέση”, i

Βρέθηκε ← ……………………

Αλλιώς_αν …………………… τότε

∆ενΒρέθηκε ← ……………………

Τέλος_αν

i ← i + 1

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

Αποτελέσματα // Βρέθηκε //

Τέλος Αναζήτηση

Να ξαναγράψετε στο τετράδιό σας τον παραπάνω αλγόριθμο με τα κενά συμπληρωμένα, έτσι ώστε να εμφανίζονται όλες οι θέσεις στις οποίες βρίσκεται ο αριθμός key στον πίνακα table.

Ο αλγόριθμος να σταματάει αμέσως μόλις διαπιστωθεί ότι ο αριθμός key δεν υπάρχει στον πίνακα. Εκμεταλλευτείτε το γεγονός ότι τα στοιχεία του πίνακα είναι ταξινομημένα σε αύξουσα σειρά.

Θέμα Α – Ημερήσια & Εσπερινά Νέο Σύστημα

Α3. Δίδεται πίνακας ΠΙΝ[7] με τις παρακάτω τιμές:

2 5 8 12 15 17 22

και το παρακάτω τμήμα αλγορίθμου:

low ← 1

high ← 7

found   ← ΨΕΥΔΗΣ

Όσο low ≤ high ΚΑΙ found=ΨΕΥΔΗΣ επανάλαβε

mid ← (low+high) DIV 2

Εμφάνισε ΠΙΝ[mid]

Αν ΠΙΝ[mid] < Χ τότε

low   ← mid+1

Αλλιώς_αν ΠΙΝ[mid] > Χ τότε

high   ← mid-1

Αλλιώς

found   ← ΑΛΗΘΗΣ

Τέλος_αν

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

Να γράψετε στο τετράδιό σας τις τιμές οι οποίες θα εμφανιστούν για:

α) Χ = 22 (μονάδες 3)

β) Χ = 7 (μονάδες 3)

Β1. Δίνεται ο παρακάτω αλγόριθμος ο οποίος ελέγχει αν το στοιχείο key βρίσκεται στον πίνακα table[n] τουλάχιστον τρείς (3) φορές και εμφανίζει τη θέση στην οποία βρίσκεται την τρίτη φορά.

Αλγόριθμος Β1

Δεδομένα // n, table, key //

done ← ψευδής

position ← 0

i ← 1

count ← …(1)

Όσο i <= …(2)… και done = …(3)… επανάλαβε

Αν table[ …(4)… ] = key τότε 

count ← …(5)

Τέλος_αν

Αν count = …(6)… τότε

done ← …(7)

(8)… ← i 

αλλιώς

i ←…(9) 

Τέλος_αν

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

Αν …(10)… τότε

Εμφάνισε “Tο στοιχείο”, key, “υπάρχει τουλάχιστον 3 φορές.”

Εμφάνισε “Για τρίτη φορά εμφανίζεται στη θέση “, position, “.” 

αλλιώς

Εμφάνισε “Το στοιχείο”, key, “δεν υπάρχει τουλάχιστον 3 φορές.” 

Τέλος_αν

Τέλος Β1

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

Μονάδες 10

Β2. Δίνεται το παρακάτω υποπρόγραμμα σε Γ􏰀ΛΩΣΣΑ με όνομα Π_Μ􏰂 το οποίο ελέγχοντας τα στοιχεία 200 ατόμων υπολογίζει το πλήθος των ανήλικων ατόμων που έχουν κάποιο συγκεκριμένο όνομα.

(1)􏰃    …………………

􏰃        ΣΤΑΘΕ􏰇ΡΕΣ

(2)􏰃    􏰃        …………………

􏰃        􏰂ΜΕΤΑΒ􏰀ΗΤΕΣ

(3) 􏰃   􏰃      Α􏰅ΚΕΡ􏰇ΑΙ􏰁ΕΣ: …………………

(4) 􏰃         ΧΑ􏰇ΡΑΚ􏰅ΤΗ􏰇ΡΕΣ: …………………

􏰃        Α􏰇ΡΧΗ

Π ← 􏰄􏰋0

Για i από 1 μέχρι 􏰃Ν

Αν ΗΛ􏰀[i] < 18 􏰅ΚΑΙ Ο 􏰈[i]= Χ τότε

􏰄􏰋􏰄Π ← Π + 1

Τέλος_αν

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

􏰄Π_Μ􏰂􏰋􏰄 ← Π

(5) 􏰃  …………………

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

􏰂Μονάδες 10

(1)􏰃    ΣΥΝΑΡΤΗΣΗ Π_Μ

􏰃        ΣΤΑΘΕ􏰇ΡΕΣ

(2)􏰃    􏰃        Ν = 200

􏰃        􏰂ΜΕΤΑΒ􏰀ΗΤΕΣ

(3) 􏰃   􏰃      Α􏰅ΚΕΡ􏰇ΑΙ􏰁ΕΣ: Π, i, ΗΛ[200]

(4) 􏰃         ΧΑ􏰇ΡΑΚ􏰅ΤΗ􏰇ΡΕΣ: Ο[200]

􏰃        Α􏰇ΡΧΗ

Π ← 􏰄􏰋0

Για i από 1 μέχρι 􏰃Ν

Αν ΗΛ􏰀[i] < 18 􏰅ΚΑΙ Ο 􏰈[i]= Χ τότε

􏰄􏰋􏰄Π ← Π + 1

Τέλος_αν

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

􏰄Π_Μ􏰂􏰋􏰄 ← Π

(5) 􏰃  ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Θέμα Β –  

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

01 ΔΙΑΒΑΣΕ X
02 ΠΛ ← 0
03 ΑΡ ← 1
04 ΔΕ ←12
05 Β ← ΨΕΥΔΗΣ
ΟΣΟ Β = ΨΕΥΔΗΣ ΚΑΙ ΑΡ <= ΔΕ ΕΠΑΝΑΛΑΒΕ
06

Μ ← (ΑΡ + ΔΕ) DIV 2

AN A[M] = X TOTE

07

B ← ΑΛΗΘΗΣ

ΑΛΛΙΩΣ_ΑΝ Α[Μ] < Χ ΤΟΤΕ

08

ΑΡ ← Μ + 1

ΑΛΛΙΩΣ

09

ΔΕ ← Μ – 1

ΤΕΛΟΣ_ΑΝ

10

ΠΛ ← ΠΛ + 1

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Β = ΑΛΗΘΗΣ ΤΟΤΕ
11

ΕΜΦΑΝΙΣΕ Μ

ΑΛΛΙΩΣ
12

ΕΜΦΑΝΙΣΕ “ΔΕΝ ΒΡΕΘΗΚΕ”, ΠΛ

ΤΕΛΟΣ_ΑΝ

Για την παρακολούθηση της εκτέλεσης του τμήματος αλγορίθμου με τιμή εισόδου Χ = 35 και με δεδομένο τον πίνακα A

1 2 3 4 5 6 7 8 9 10 11 12
3 10 18 20 26 32 35 48 55 60 75 90

A

  • Στη στήλη με τίτλο «Αρ. Γρ.» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.
  • Στη στήλη με τίτλο «Έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται είναι εντολή εξόδου. δίνεται το παρακάτω υπόδειγμα πίνακα τιμών, συμπληρωμένο ως εξής:
  • Οι υπόλοιπες στήλες του πίνακα αντιστοιχούν στις μεταβλητές του τμήματος του αλγορίθμου.
Αρ. Γρ. Χ ΠΛ ΑΡ ΔΕ Β Μ Έξοδος
01 35
02 0
03 1
04 12
05 ΨΕΥΔΗΣ
…. ………

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

 

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΠΙΝΑΚΕΣ

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 9 ΠΙΝΑΚΕΣ

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

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

Κάθε μορφή δομής δεδομένων αποτελείται από ένα σύνολο κόμβων (nodes). Κάποιες από τις βασικές λειτουργίες (ή αλλιώς πράξεις) επί των δομών δεδομένων είναι:

Προσπέλαση (access), πρόσβαση σε έναν κόμβο με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενό του.

Ταξινόμηση (sorting), όπου οι κόμβοι μιας δομής διατάσσονται κατά αύξουσα ή φθίνουσα σειρά.

3.7 ΤΑΞΙΝΟΜΗΣΗ

Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering). Συνήθως η σειρά αυτή είναι η αύξουσα τάξη (ascending sequence) της τιμής των μεγεθών προς ταξινόμηση. Σκοπός της ταξινόμησης είναι να διευκολυνθεί στη συνέχεια η αναζήτηση των στοιχείων του ταξινομημένου πίνακα.

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

Δοθέντων των στοιχείων a1, a2, …, an η ταξινόμηση συνίσταται στη μετάθεση (permutation) της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μία σειρά ak1, ak2, …, akn έτσι ώστε, δοθείσης μίας συνάρτησης διάταξης (ordering function), f, να ισχύει:

f(ak1) ≤ f(ak2) ≤ … ≤ f(akn)

Ταξινόμηση ευθείας ανταλλαγής

Η μέθοδος της ταξινόμησης ευθείας ανταλλαγής (straight exchange sort) βασίζεται στην αρχή της σύγκρισης και ανταλλαγής ζευγών γειτονικών στοιχείων, μέχρις ότου διαταχθούν όλα τα στοιχεία. Σύμφωνα με τη μέ- θοδο αυτή κάθε φορά γίνονται διαδοχικές προσπελάσεις στον πίνακα και μετακινείται το μικρότερο κλειδί της ακολουθίας προς το αριστερό άκρο του πίνακα. Αν ο πίνακας θεωρηθεί σε κατακόρυφη θέση αντί σε οριζό- ντια και οι ακέραιοι θεωρηθούν –επιστρατεύοντας αρκετή φαντασία– ως φυσαλίδες (bubbles) σε μία δεξαμενή νερού με βάρη σύμφωνα με την τιμή τους, τότε κάθε προσπέλαση στον πίνακα έχει ως αποτέλεσμα την άνοδο της φυσαλίδας στο κατάλληλο επίπεδο βάρους. Η μέθοδος είναι γνωστή ως ταξινόμηση φυσαλίδας (bubblesort).

Για την ταξινόμηση δεδομένων έχουν εκπονηθεί πάρα πολλοί αλγόριθμοι. Άλλοι σχετικά απλοί αλγόριθμοι είναι η ταξινόμηση με επιλογή και η ταξινόμηση με παρεμβολή.
Ο πιο γρήγορος αλγόριθμος ταξινόμησης είναι η “γρήγορη ταξινόμηση” (quicksort). Η ταξινόμηση φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης.

Θέμα Β – Ημερήσια

ΥΠΟΕΝΟΤΗΤΑ: ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΤΑΞΙΝΟΜΗΣΗ


Θέμα 1ο – Εσπερινά Επαναληπτικές

∆ίνεται ο παρακάτω αλγόριθμος:

ΓΙΑ i ΑΠΟ … ΜΕΧΡΙ n

ΓΙΑ j ΑΠΟ … ΜΕΧΡΙ … ΜΕ_ΒΗΜΑ …

ΑΝ Α[j] … Α[j-1] ΤΟΤΕ

temp ← A[j]

Α[…] ← […]

Α[…] ← temp

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

Θέμα Α – Εσπερινά Νέο Σύστημα  

Α2. Να συμπληρώσετε τα κενά στον παρακάτω αλγόριθμο φυσαλίδα (ταξινόμηση ευθείας ανταλλαγής) σε έναν πίνακα table μεγέθους n.

Αλγόριθμος Φυσαλίδα

Δεδομένα //table,n//

Για i από ..(1).. μέχρι ..(2)..

Για j από ..(3).. μέχρι ..(4).. με βήμα ..(5)..

Αν table [j – 1] > table [..(6)..] τότε

αντιμετάθεσε table [j – 1], table [j]

Τέλος_αν

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

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

Αποτελέσματα //table//

Τέλος Φυσαλίδα

Θέμα Α – Ημερήσια

Α5. ∆ίνεται πίνακας Π[20] με αριθμητικές τιμές. Στις μονές θέσεις βρίσκονται καταχωρισμένοι θετικοί αριθμοί και στις ζυγές αρνητικοί αριθμοί. Επίσης, δίνεται το παρακάτω τμήμα αλγορίθμου ταξινόμησης τιμών του πίνακα.

Για x από 3 μέχρι 19 με_βήμα ____

Για y από ____ μέχρι ____ με_βήμα ____

Αν Π [ ____ ] < Π[ ____ ] Τότε

Αντιμετάθεσε Π [ ____ ], Π[ ____ ]

Τέλος_αν

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

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

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

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

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

 ← …(1)

Αρχή_επανάληψης

stop ← ΑΛΗΘΗΣ

Για j από Ν μέχρι i με_βήμα -1

Αν table[j-1] > table[j] τότε

Αντιμετάθεσε table[j-1],table[j]

stop ← …(2)

Τέλος_αν

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

(3)

Μέχρις_ότου i …(4)… N ή stop= …(5)

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

Μονάδες 10

Θέμα Α – Ημερήσια

Α3. ∆ίνεται ο πίνακας Α[10], στον οποίο επιθυμούμε να αποθηκεύσουμε όλους τους ακεραίους αριθμούς από το 10 μέχρι το 1 με φθίνουσα σειρά. Στον πίνακα έχουν εισαχθεί ορισμένοι αριθμοί, οι οποίοι εμφανίζονται στο παρακάτω σχήμα:

1 2 3 4 5 6 7 8 9 10
10 9 5 4 1

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

Α[3] ← 3 + Α[…]

Α[9] ← Α[…] – 2

Α[8] ← Α[…] – 5

Α[4] ← 5 + Α[…]

Α[5] ← (Α[…] + Α[7]) div 2

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

Για i από …. μέχρι 5

αντιμετάθεσε Α[i], Α[……]

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

Θέμα Β – 

Β2. Το παρακάτω ημιτελές τμήμα αλγορίθμου εισάγει αριθμητικές τιμές σε πίνακα 100 θέσεων ώστε:

α. οι τιμές να είναι διαφορετικές μεταξύ τους,

β. οι τιμές να εισάγονται σε αύξουσα σειρά.

Εάν κάποια εισαγόμενη τιμή δεν ικανοποιεί τις συνθήκες (α) και (β), επανεισάγεται.

Διάβασε Π[…] (1)

Για i από … (2) μέχρι … (3)

Αρχή_επανάληψης

Διάβασε Π[i]

Μέχρις_ότου Π[…] (4) … (5) Π[…] (6)

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

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

Θέμα Β – Ημερήσια Παλαιό Σύστημα

Β2. Δίνεται ο πίνακας αριθμών Χ[50], ταξινομημένος κατά φθίνουσα σειρά, και ο πίνακας Υ[100], ταξινομημένος κατά αύξουσα σειρά. Να θεωρήσετε ότι οι τιμές κάθε πίνακα είναι διαφορετικές μεταξύ τους και ότι οι δύο πίνακες δεν έχουν κοινές τιμές.

Το παρακάτω ημιτελές τμήμα αλγορίθμου δημιουργεί ένα νέο πίνακα Ζ[10], ταξινομημένο σε φθίνουσα σειρά, με τις δέκα μεγαλύτερες τιμές από τις εκατόν πενήντα (150) τιμές των δύο πινάκων.

i ← …(1)

j ← …(2)
Για k από 1 μέχρι 10

Αν Χ[ i ] …(3)… Υ[ j ] τότε

Ζ[ k ] ← Χ[ i ]

i ← i …(4)… 1

Αλλιώς

Ζ[ k ] ← Υ[ j ]

j ← j …(5)… 1

Τέλος_αν

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

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

 

Θέμα Β – Ημερήσια

Β1. Για την ταξινόμηση, σε φθίνουσα σειρά, των στοιχείων ενός μονοδιάστατου πίνακα αριθμών Π[30] μπορεί να ακολουθηθεί η παρακάτω διαδικασία: Αρχικά, ο πίνακας σαρώνεται από την αρχή μέχρι το τέλος του, προκειμένου να βρεθεί το μεγαλύτερο στοιχείο του. Αυτό το στοιχείο τοποθετείται στην αρχή του πίνακα, ανταλλάσσοντας θέσεις με το στοιχείο της πρώτης θέσης του πίνακα. Η σάρωση του πίνακα επαναλαμβάνεται, ξεκινώντας τώρα από το δεύτερο στοιχείο του πίνακα. Το μεγαλύτερο από τα στοιχεία που απέμειναν ανταλλάσσει θέσεις με το στοιχείο της δεύτερης θέσης του πίνακα. Η σάρωση επαναλαμβάνεται, ξεκινώντας από το τρίτο στοιχείο του πίνακα, μετά από το τέταρτο στοιχείο του πίνακα κ.ο.κ.

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

Για k από 1 μέχρι 29

θ ← … (1)

Για i από k μέχρι 30

Αν Π[i] … (2) Π[θ] τότε

θ ← … (3)

Τέλος_αν

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

αντιμετάθεσε …(4) , … (5)

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

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

Β1. Δίνεται το παρακάτω τμήμα αλγόριθμου, που υλοποιεί την πρώτη φάση της συγχώνευσης των ταξινομημένων πινάκων Α[100] και Β[200] σε πίνακα Γ[300]. Ο πίνακας Α είναι ταξινομημένος σε αύξουσα σειρά και ο πίνακας Β σε φθίνουσα. Το τμήμα αυτό επεξεργάζεται τους πίνακες Α και Β τοποθετώντας τα στοιχεία τους στον πίνακα Γ σε αύξουσα σειρά. Η διαδικασία σταματά, όταν εξαντληθούν τα στοιχεία ενός από τους πίνακες Α και Β. Το τμήμα αλγόριθμου έχει 8 κενά αριθμημένα από 1-8. Σε κάθε κενό αντιστοιχεί ένας τελεστής ή μία μεταβλητή. Για κάθε ένα από τα κενά να γράψετε στο τετράδιό σας τον αριθμό του και δίπλα τον τελεστή ή την μεταβλητή που αντιστοιχεί.

i ← 1

j ← 200

k ← 1

Όσο i …(1) 100 και j … (2) επανάλαβε

Αν Α[i] … (3) B[j] τότε

Γ[… (4)] <– A[i]

i ← i … (5) 1

Αλλιώς

Γ[… (6)] ← Β[… (7)]

j ← j … (8) 1

Τέλος_αν

k ← k + 1

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

ΕΝΟΤΗΤΑ ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΕΝΟΤΗΤΑ: ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ – ΕΠΙΠΕΔΟ 6 (ΠΙΝΑΚΕΣ ΔΙΣΔΙΑΣΤΑΤΟΙ)

Απλά

ΧΡΗΣΙΜΕΣ ΓΝΩΣΕΙΣ

ΠΙΝΑΚΕΣ 2 ΔΙΑΣΤΑΣΕΩΝ 

ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ  ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ

3.3 ΠΙΝΑΚΕΣ

Ένας πίνακας μπορεί να είναι μονοδιάστατος, αλλά στη γενικότερη περίπτωση μπορεί να είναι δισδιάστατος, τρισδιάστατος και γενικά ν-διάστατος πίνακας. Όσον αφορά στους δισδιάστατους πίνακες σημειώνεται ότι, αν το μέγεθος των δύο διαστάσεων είναι ίσο, τότε ο πίνακας λέγεται τετραγωνικός (square) και γενικά συμβολίζεται ως πίνακας n x n.

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

ΑΕΠΠ ΓΛΩΣΣΑ

ΚΕΦΑΛΑΙΟ 9 ΠΙΝΑΚΕΣ

9.3 | ΠΟΛΥΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Ο διπλός εμφωλευμένος βρόχος που ακολουθεί τους δύο πρώτους απλούς βρόχους είναι η καρδιά του αλγορίθμου.

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

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

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

ΥΠΟΕΝΟΤΗΤΑ: ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΑΠΛΑ ΘΕΜΑΤΑ


Θέμα Α – Ημερήσια

Α4. Έστω πίνακας table με Μ γραμμές και Ν στήλες που περιέχει αριθμητικές τιμές. ∆ίνεται ο παρακάτω αλγόριθμος που υπολογίζει το άθροισμα κατά γραμμή, κατά στήλη και συνολικά.

1.

2.

3.

4

5.

6.

7.

8..

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

 

Αλγόριθμος Αθρ_Πίνακα

∆εδομένα // m, n, table //

sum ← 0

Για i από 1 μέχρι m

row [i] ← 0

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

Για j από 1 μέχρι n

col [j] ← 0

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

Για i από 1 μέχρι m

Για j από 1 μέχρι n

_____________________________

_____________________________

_____________________________

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

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

Αποτελέσματα // row, col, sum //

Τέλος Αθρ_Πίνακα

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Τα αθροίσματα των γραμμών καταχωρίζονται στον πίνακα row, των στηλών στον πίνακα col και το συνολικό άθροισμα στη μεταβλητή sum.
Να γράψετε στο τετράδιό σας τις εντολές που πρέπει να συμπληρωθούν στις γραμμές 12, 13 και 14, ώστε ο αλγόριθμος να επιτελεί τη λειτουργία που περιγράφτηκε.

Θέμα Α – Ημερήσια

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

k ← 1

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4

ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 5

ΑΝ … ΤΟΤΕ

Α[k] ← i

Α[…] ← …

Α[…] ← …

k … ←

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να ξαναγράψετε στο τετράδιό σας το παραπάνω τμήμα αλγορίθμου με τα κενά συμπληρωμένα, έτσι ώστε για τα μη μηδενικά στοιχεία ενός δισδιάστατου πίνακα ΠΙΝ[4,5] να τοποθετεί σε ένα μονοδιάστατο πίνακα Α[60] τις ακόλουθες πληροφορίες: τη γραμμή, τη στήλη, και κατόπιν την τιμή του.

 

Θέμα B – Επαναληπτικές Ημερήσια Παλαιό Σύστημα

Β2. Δίνεται μονοδιάστατος πίνακας Α[40] και το παρακάτω ημιτελές τμήμα αλγορίθμου, το οποίο αντιγράφει όλα τα στοιχεία του Α σε ένα δισδιάστατο πίνακα Β[8,5] κατά γραμμή. Δηλαδή, τα 5 πρώτα στοιχεία του μονοδιάστατου πίνακα τοποθετούνται στην πρώτη γραμμή του πίνακα Β, τα επόμενα 5 στη δεύτερη γραμμή κ.ο.κ.

I ← 1
K ← 1
Για M από 1 μέχρι …(1)

B[I, K] ← A[…(2)…]

(3)… ← …(4)…+ 1

Αν …(5)… > …(6)… τότε

I ← I + …(7)

K ← …(8)

Τέλος_αν

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

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

Α4. Ο παρακάτω αλγόριθμος αντιγράφει τα στοιχεία ενός μονοδιάστατου πίνακα Α[Y], όπου Υ = 􏰂 Μ * N, σε δισδιάστατο πίνακα Β[􏰂Μ, Ν􏰃] ξεκινώντας από την πρώτη στήλη και συνεχίζοντας με κάθε επόμενη στήλη γεμίζοντας καθεμιά από πάνω προς τα κάτω:

Αλγόριθμος Αντιγραφή 

Δεδομένα // Α,􏰂 Μ, Ν􏰃 // 

χ <– 􏰋…(1)

Για κ από 1 μέχρι …(2)

Για λ από 1 μέχρι …(3) 

χ􏰋 <– …(4)

Β[λ, κ] 􏰋 <– Α[…(5)…] 

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

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

Αποτελέσματα // Β // 

Τέλος Αντιγραφή

Ο αλγόριθμος περιέχει αριθμημένα κενά (1 έως 5). Να γράψετε στο τετράδιό σας τους αριθμούς των κενών και δίπλα από κάθε αριθμό την έκφραση που πρέπει να συμπληρωθεί ώστε ο αλγόριθμος να επιτελεί τη λειτουργία που περιγράφεται.

Β2. Δίνεται το παρακάτω ημιτελές τμήμα προγράμματος:

k←1

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5

ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4

ΑΝ ………… ΤΟΤΕ

Α[k] ← …

Α[…] ← …

Α[…] ← …

k ← …

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να ξαναγράψετε στο τετράδιό σας το παραπάνω τμήμα προγράμματος με τα κενά συμπληρωμένα, έτσι ώστε, για τα μη μηδενικά στοιχεία ενός δισδιάστατου πίνακα ακεραίων Π[5,4], να τοποθετεί σε ένα μονοδιάστατο πίνακα ακεραίων Α[60] τις ακόλουθες πληροφορίες με την εξής σειρά: τη γραμμή, τη στήλη και κατόπιν την τιμή του.

Μονάδες 10

Β1. Ένας πίνακας λέγεται αραιός (sparse) αν ένα μεγάλο ποσοστό των στοιχείων του έχουν μηδενική τιμή. Ένας δισδιάστατος αραιός πίνακας μπορεί να αναπαρασταθεί από έναν μονοδιάστατο όπου κάθε μη μηδενικό στοιχείο του δισδιάστατου αντιπροσωπεύεται στον μονοδιάστατο από μία τριάδα στοιχείων, δηλαδή <γραμμή, στήλη, τιμή>. Για παράδειγμα, ο παρακάτω πίνακας Α [4,5] που θέλουμε να τον διαχειριστούμε ως αραιό

0 7 0 0 0
1 2 0 0 -3
0 0 4 0 0
0 0 0 0 0

αντιπροσωπεύεται από τον μονοδιάστατο Β[15].

1 2 7 2 1 1 2 2 2 2 5 -3 3 4

Η αντίστροφη διαδικασία είναι από τον μονοδιάστατο πίνακα να παραχθεί ένας ισοδύναμος αραιός δισδιάστατος.

Έστω ένας πίνακας Μ[18] που αναπαριστά 6 μη μηδενικά στοιχεία. Δίνεται ο παρακάτω αλγόριθμος, ο οποίος από τον μονοδιάστατο Μ[18] δημιουργεί τον αραιό δισδιάστατο Δ[10,20].

Αλγόριθμος αντίστροφος 

Δεδομένα // Μ //

Για i από 1 μέχρι 20

Για j από 1 μέχρι 10 

Δ[… (1), …(2)] <– 0

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

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

Για i από 1 μέχρι 18 με_βήμα … (3)

α <– Μ[i]

β <– Μ[i + …(4)]

γ <– Μ[i + …(5)]

Δ [α, β] <– γ 

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

Αποτελέσματα // Δ // 

Τέλος αντίστροφος

Ο παραπάνω αλγόριθμος έχει 5 κενά αριθμημένα από (1) μέχρι (5). Για καθένα από τα κενά, να γράψετε στο τετράδιό σας τον αριθμό του και ό,τι χρειάζεται να συμπληρωθεί για να λειτουργήσει σωστά ο αλγόριθμος.

Μονάδες 10

Permanent link to this article: https://pervolischool.edu.gr/computer-science/algorithms-aepp/subjects-aepp/%cf%80%ce%b1%ce%bd%ce%b5%ce%bb%ce%bb%ce%ae%ce%bd%ce%b9%ce%b5%cf%82-%ce%b1%ce%b5%cf%80%cf%80-%cf%80%ce%af%ce%bd%ce%b1%ce%ba%ce%b5%cf%82-%cf%84%ce%b9%ce%bc%cf%8e%ce%bd/