Εισαγωγή στην Επιστήμη των Η/Υ Β ΓΕΛ Σημειώσεις στην Ψευδογλώσσα

Σχετικά έγγραφα
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Άσκηση 1. Ποια από τα κάτω αλφαριθμητικά είναι αποδεκτά ως ονόματα μεταβλητών σε έναν αλγόριθμο i. Τιμή

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος


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

Επαναληπτικές Διαδικασίες

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

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

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Εκχώρηση Τιμών

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές

Διάγραμμα Ροής. Σελίδα 1 από 10

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Πρόβλημα 29 / σελίδα 28

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΚΕΦΑΛΑΙΑ & 8.2 (ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ) ΘΕΩΡΙΑ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

ΦΡΟΝΤΙΣΤΗΡΙΟ ΦΑΣΜΑ 12/10/2014

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Φύλλο εργασίας 4 ο Δομή επανάληψης Εισαγωγή στις Αρχές της Επιστήμης Η/Υ.

Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών

Ενδεικτικές Ερωτήσεις Θεωρίας

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

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Ψευδοκώδικας. November 7, 2011

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον

Όνομα(τα): Όνομα(τα): Όνομα Η/Υ: Τμήμα: Ημερομηνία: Δομή Επιλογής

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2

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

Βασικές Έννοιες Αλγορίθμων. Τι είναι αλγόριθμος. Για να είναι αλγόριθμος. Καθοριστικότητα 20/5/2014. Σκοπός μαθήματος. Αλγόριθμος

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

1. Όλα τα προβλήματα μπορούν να λυθούν με τη βοήθεια HY. 2. Ο υπολογισμός του εμβαδού τετραγώνου είναι πρόβλημα άλυτο.

8.4. Δραστηριότητες - ασκήσεις

Λυμένες ασκήσεις με δομές επανάληψης και επιλογής. Εισαγωγή στην επιστήμη των Η/Υ της Β ΓενικούΛυκείου

Παλλατίδειο ΓΕΛ Σιδηροκάστρου

β. Ποιοι λόγοι θα μας οδηγούσαν στο να αναθέσουμε την επίλυση προβλημάτων στον υπολογιστή; (μονάδες 4) (Μονάδες 6)

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Β - Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: Β(ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ομή Επανάληψης

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

Σελίδα 1 από 7 ΔΙΑΓΩΝΙΣΜΑ ΕΚΠ. ΕΤΟΥΣ ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΘΕΡΙΝΑ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

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

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

ΔΟΜΗ ΕΠΙΛΟΓΗΣ. Οι διάφορες εκδοχές της

Πρόβλημα 37 / σελίδα 207

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΔΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 19/12/2008. Τμήμα ΓΤ1 Όνομα:...

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Μάριος Αγγελίδης

3. Να γραφεί πρόγραμμα που θα διαβάζει 100 ακεραίους αριθμούς από το πληκτρολόγιο και θα υπολογίζει το άθροισμά τους.

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

1 Ο Λύκειο Ρόδου. Β ΓΕΛ ΕισΑρχΕπ Η/Υ. Γεωργαλλίδης Δημήτρης

Β ΛΥΚΕΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΪΟΣ 2018

Φάσμα. προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

8. Επιλογή και επανάληψη

Πληροφορική 2. Αλγόριθμοι

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 16/12/2008. Τµήµα ΓΤ2 Όνοµα:...

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΚΕΦΑΛΑΙΟ 1-2β)

ΘΕΜΑ Β Β1. Να συμπληρώσετε τις παρακάτω προτάσεις χρησιμοποιώντας τις λέξεις Θεωρητική ή Εφαρμοσμένη:

Τάξη: Γ Λυκείου Κατεύθυνση: Τεχνολογική Μάθημα: Ανάπτυξη Εφαρμογών σε Προγ/κό Περιβάλλον Είδος Εξέτασης: Διαγώνισμα Ημερομηνία Εξέτασης:

ΘΕΜΑ Α / Η λογική έκφραση Χ KAI (ΟΧΙ Χ) είναι πάντα ψευδής κάθε τιμή της λογικής μεταβλητής Χ.

Σε καθεμιά από τις παρακάτω περιπτώσεις, να μετατρέψετε τη δομή επανάληψης ΟΣΟ στην δομή ΑΠΑΝΤΗΣΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΜΕΧΡΙΣ_ΟΤΟΥ Α<-54

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ ΘΕΩΡΙΑ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΑΣΚΗΣΕΙΣ ΣΤΗ ΟΜΗ ΕΠΙΛΟΓΗΣ (ΑΝΑΦΕΡΟΝΤΑΙ ΟΣΑ ΠΡΟΕΡΧΟΝΤΑΙ ΑΠΟ ΤΗΝ ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ)

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ - ΕΣΠΕΡΙΝΩΝ

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Transcript:

Εισαγωγή στην Επιστήμη των Η/Υ Β ΓΕΛ Σημειώσεις στην Ψευδογλώσσα 1. Εισαγωγή Η Ψευδογλώσσα, σύμφωνα με το σχολικό βιβλίο, είναι μια υποθετική γλώσσα αναπαράστασης αλγορίθμων με στοιχεία από κάποιες γλώσσες προγραμματισμού στην οποία όμως έχουν παραληφθεί οι λεπτομέρειες μιας τυπικής γλώσσας προγραμματισμού οι οποίες δεν είναι ουσιαστικές για την κατανόηση του αλγορίθμου από έναν άνθρωπο. Στην πραγματικότητα πρόκειται για μια απλή εξελληνισμένη γλώσσα προγραμματισμού, η οποία έχει ως σκοπό να εστιάσει στην δομή και αναπαράσταση του αλγορίθμου αποκρύβοντας τυπικές και τεχνικές λεπτομέρειες που υπάρχουν σε συνήθεις γλώσσες προγραμματισμού. 2. Βασική Δομή Αλγορίθμου (Προγράμματος) σε Ψευδογλώσσα Κάθε αλγόριθμος διατυπωμένος σε ψευδογλώσσα ξεκινά με τη γραμμή: Αλγόριθμος όνομα_αλγορίθμου Και τελειώνει με τη γραμμή: Τέλος όνομα_αλγορίθμου Έτσι η δομή κάθε αλγορίθμου μοιάζει κάπως έτσι: Αλγόριθμος όνομα_αλγορίθμου <Εντολές Αλγορίθμου> Τέλος όνομα_αλγορίθμου 3. Η Έννοια της Μεταβλητής Σε κάθε πρόβλημα υπάρχουν μεγέθη/ποσότητες των οποίων η τιμή μπορεί να μεταβάλλεται, δηλ. να αλλάζει τιμή. Αυτές οι ποσότητες ονομάζονται Μεταβλητές. Από την άλλη υπάρχουν μεγέθη/ποσότητες που δεν αλλάζουν τιμή. Αυτές οι ποσότητες ονομάζονται Σταθερές. Παράδειγμα 1: Να γραφεί αλγόριθμος ο οποίος θα διαβάζει την ακτίνα ενός κύκλου και θα υπολογίζει την περίμετρο και το εμβαδόν του. Στο παραπάνω πρόβλημα η ακτίνα, η περίμετρος και το εμβαδόν του κύκλου είναι ποσότητες οι οποίες μπορούν να μεταβάλλονται σε κάθε εκτέλεση του αλγορίθμου, συνεπώς είναι μεταβλητές. Από την άλλη ο αριθμός π=3,14159 (ο λόγος της περιμέτρου του κύκλου προς τη διάμετρό του) που θα χρησιμοποιηθεί για τον υπολογισμό της περιμέτρου και του εμβαδού δεν αλλάζει, συνεπώς είναι μια σταθερή. Παράδειγμα 2: Ένα καυστήρας πετρελαίου καταναλώνει 2 λίτρα πετρέλαιο ανά ώρα λειτουργίας. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τις ώρες λειτουργίας του καυστήρα σε ένα μήνα και το κόστος αγοράς ενός λίτρου πετρελαίου και θα υπολογίζει το κόστος λειτουργίας του καυστήρα. Στο παράδειγμα αυτό οι μεταβλητές είναι οι ώρες λειτουργίας του καυστήρα και η τιμή αγοράς ενός λίτρου πετρελαίου ενώ σταθερή είναι η κατανάλωση πετρελαίου από τον καυστήρα (2 lt/h) Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 1/14

Ορισμός 1: Μεταβλητή σε έναν αλγόριθμο/πρόγραμμα είναι κάθε ποσότητα/μέγεθος το οποίο μπορεί να μεταβάλλεται, δηλ. μπορεί να αλλάζει τιμή. Ορισμός 2: Σταθερή σε έναν αλγόριθμο/πρόγραμμα είναι κάθε ποσότητα/μέγεθος το οποίο δεν μπορεί να μεταβάλλεται, δηλ. δεν μπορεί να αλλάζει τιμή. 3.1 Ονομασία Μεταβλητών Σε κάθε μεταβλητή πρέπει να εκχωρείται ένα όνομα. Τα ονόματα των μεταβλητών μπορούν α αποτελούνται από ελληνικούς ή λατινικούς χαρακτήρες, κεφαλαίους ή πεζούς (Α..Ω, α..ω, A..Z, a..z), αριθμούς (0..9) και τον χαρακτήρα κάτω παύλα ( _ ). Τα πρώτο γράμμα του ονόματος μιας μεταβλητής πρέπει υποχρεωτικά να είναι γράμμα (και όχι αριθμός ή κάτω παύλα). Έτσι τα ονόματα: a1, Τιμή, Κόστος_Τεμαχίου, μέσος_όρος και ΜέσοςΌρος είναι αποδεκτά ενώ τα 13α και _αριθμός δεν είναι. Γενικά υπάρχει αρκετή ελευθερία στην ονοματοδοσία μεταβλητών όμως μια καλή πρακτική είναι να δίνονται στις μεταβλητές ονόματα που περιγράφουν κάπως το περιεχόμενό τους, δηλ. σε τι αντιστοιχούν οι μεταβλητές. Έτσι στο Παράδειγμα 1 η ακτίνα του κύκλου μπορεί μεν να αναπαρασταθεί ως k, m123 ή με_τρέλα_και_κορδέλα, όμως κανένα από αυτά τα ονόματα δεν παραπέμπει σε ακτίνα κύκλου. Προτιμότερα είναι τα ονόματα: R, ρ, r, radius ή ακτίνα. 3.2 Απόδοση τιμής σε Μεταβλητή: Η Εντολή Εκχώρησης Κατά την εκτέλεση ενός αλγορίθμου/προγράμματος από τον Η/Υ οι μεταβλητές του προγράμματος αποθηκεύονται στη μνήμη RAM. Για κάθε μεταβλητή δεσμεύεται μια θέση μνήμης στη RAM. Στη θέση αυτή αποθηκεύεται κάθε στιγμή η τρέχουσα τιμή της μεταβλητής. H αναφορά και η χρήση των μεταβλητών στον αλγόριθμό γίνεται με το όνομά τους. Η απόδοση τιμής σε μία μεταβλητή γίνεται με τη χρήση της εντολής εκχώρησης η οποία έχει τη μορφή: Μεταβλητή Έκφραση Η εντολή αυτή σημαίνει ότι στη Μεταβλητή στο αριστερό μέρος εκχωρείται η τιμή της Έκφρασης στα δεξιά (δηλ. η Μεταβλητή παίρνει την τιμή της Έκφρασης). Η Έκφραση μπορεί να είναι ένας απλός αριθμός ή γενικότερα μια σταθερά, μπορεί να είναι μια άλλη μεταβλητή ή μπορεί να είναι μια σύνθετη έκφραση η οποία αντιστοιχεί σε κάποιον υπολογισμό. Παράδειγμα 3: a 3 Η μεταβλητή a παίρνει την τιμή 3 a b Η μεταβλητή a παίρνει την τιμή της μεταβλητής b a (b+c) / 2 Η μεταβλητή a παίρνει την τιμή (b+c) / 2, όπου b και c είναι δύο αριθμητικές μεταβλητές Σημαντική Παρατήρηση: Κάθε μεταβλητή μπορεί σε κάθε στιγμή να έχει (δηλ να αποθηκεύει) μόνο μία τιμή: την πιο πρόσφατη που της εκχωρήθηκε. Έτσι μετά την εκτέλεση των εντολών: a 3 a 4 a 7 Η τιμή της μεταβλητής a θα είναι η τελευταία που της εκχωρήθηκε, δηλ. η τιμή 7. Με την εκχώρηση μιας νέας τιμής η προηγούμενη τιμή της μεταβλητής χάνεται (συνεπώς αν χρειαζόμαστε την προηγούμενη τιμή θα πρέπει να την αποθηκεύσουμε κάπου αλλού (π.χ. σε μια άλλη μεταβλητή) πριν την εκχώρηση της νέας) Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 2/14

3.3 Απόδοση τιμής σε Μεταβλητή: Η Εντολή Διάβασε Εκτός από την εντολή εκχώρησης η απόδοση τιμής σε μια μεταβλητή μπορεί να γίνει και με χρήση της εντολής Διάβασε: Διάβασε λίστα_μεταβλητών Η λίστα_μεταβλητών μπορεί να αποτελείται από μία ή περισσότερες μεταβλητές Παράδειγμα 4: Διάβασε α Διάβασε β, γ, δ Διαβάζει την τιμή της μεταβλητής α Διαβάζει (διαδοχικά) τις τιμές των μεταβλητών β, γ και δ Σημαντική Παρατήρηση: Η εντολή Διάβασε διαφέρει από την εντολή εκχώρησης ( ). Η διαφορά είναι ότι στην εντολή εκχώρησης η τιμή της μεταβλητής καθορίζεται κατά τη συγγραφή του αλγορίθμου ενώ στην εντολή Διάβασε η τιμή καθορίζεται κατά την εκτέλεση του αλγορίθμου. Η εντολή Διάβασε, επειδή χρησιμοποιείται για την εισαγωγή δεδομένων στον αλγόριθμο, είναι μια Εντολή Εισόδου. 4. Εμφάνιση τιμών και αποτελεσμάτων Σύμφωνα με τα χαρακτηριστικά των αλγορίθμων, ένας αλγόριθμος πρέπει να έχει μία τουλάχιστον έξοδο, δηλ. να δημιουργεί κάποιο αποτέλεσμα. Για την εμφάνιση των αποτελεσμάτων ενός αλγορίθμου αλλά και γενικότερα για την εμφάνιση μηνυμάτων (π.χ. ενδιάμεσα αποτελέσματα, μηνύματα και οδηγίες προς το χρήστη του αλγορίθμου) χρησιμοποιείται μια ειδική κατηγορία εντολών, οι Εντολές Εξόδου. Σε αντιστοιχία με τις Εντολές Εισόδου, οι Εντολές Εξόδου χρησιμοποιούνται για να εξάγουν αποτελέσματα, πληροφορίες και μηνύματα από τον αλγόριθμο. Η Ψευδογλώσσα ορίζει τρεις Εντολές Εξόδου: Γράψε, Εμφάνισε, Εκτύπωσε. Και οι τρεις εντολές συντάσσονται με τον ίδιο τρόπο: Εμφάνισε λίστα_μεταβλητών_ή/και_σταθερών Η λίστα_μεταβλητών_ή/και_σταθερών μπορεί να αποτελείται από μία ή περισσότερες μεταβλητές και σταθερές σε οποιαδήποτε σειρά και χωρισμένες με, (κόμμα) Παράδειγμα 5: Εμφάνισε α Εμφανίζει την τιμή της μεταβλητής α Γράψε "Το αποτέλεσμα είναι: ", αποτέλεσμα Εμφανίζει τη φράση "Το αποτέλεσμα είναι: " ακολουθούμενη από την τιμή της μεταβλητής αποτέλεσμα Εκτύπωσε "Δώσε την τιμή του προϊόντος: " Εμφανίζει τη φράση "Δώσε την τιμή του προϊόντος: " Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 3/14

5. Δομή Ακολουθίας Η Δομή Ακολουθίας είναι η πρώτη από τις τρεις βασικές αλγοριθμικές δομές. Όπως φανερώνει το όνομά της, στη δομή ακολουθίας οι εντολές του αλγορίθμου εκτελούνται ακολουθιακά, δηλαδή η μία μετά την άλλη (από πάνω προς τοα κάτω). Πρόκειται για την πιο απλή δομή αλγορίθμου και χρησιμοποιείται όταν έχουμε εντολές που πρέπει να εκτελεστούν στη σειρά (χωρίς πιθανές διακλαδώσεις και επαναλήψεις) Παράδειγμα 6: Να γραφεί αλγόριθμος ο οποίος να διαβάζει δύο αριθμούς και να υπολογίζει το μέσο όρο τους. Αλγόριθμος Μέσος_Όρος Διάβασε α, β ΜΟ (α + β) / 2 Εμφάνισε "Ο Μέσος Όρος του,α, και του, β, είναι:", ΜΟ Τέλος Μέσος_Όρος Παράδειγμα 7: Να γραφεί αλγόριθμος που να διαβάζει τη χοντρική τιμή (ΧΤ) ενός προϊόντος, το ποσοστό κέρδους (ΠΚ) του εμπόρου και το ποσοστό ΦΠΑ (ΠΦΠΑ) του προϊόντος και να υπολογίζει την λιανική του τιμή (ΛΤ) με και χωρίς ΦΠΑ (ΛΤ_ΧΦΠΑ). Η λιανική τιμή χωρίς ΦΠΑ (ΛΤ_ΧΦΠΑ) βρίσκεται αν στην χοντρική τιμή προστεθεί το ποσοστό κέρδους του εμπόρου. Κατόπιν, σε αυτή την τιμή προσθέτουμε το ποσοστό του ΦΠΑ για να έχουμε την τελική λιανική τιμή. Για τον υπολογισμό θα χρησιμοποιήσουμε τη δομή ακολουθίας: Αλγόριθμος Λιανική_Τιμή Εμφάνισε "Δώσε τη χοντρική τιμή του προϊόντος: " Διάβασε ΧΤ Εμφάνισε "Δώσε το ποσοστό κέρδους του εμπόρου: " Διάβασε ΠΚ Εμφάνισε "Δώσε το ποσσοτό ΦΠΑ του προϊόντος: " Διάβασε ΠΦΠΑ ΛΤ_ΧΦΠΑ ΧΤ + ΧΤ * ΠΚ / 100 Εμφάνισε "Η λιανική τιμή του προϊόντος χωρίς ΦΠΑ είναι: ", ΛΤ_ΧΦΠΑ, " ευρώ" ΛΤ ΛΤ_ΧΦΠΑ + ΛΤ_ΧΦΠΑ * ΠΦΠΑ / 100 Εμφάνισε "Η λιανική τιμή του προϊόντος με ΦΠΑ είναι: ", ΛΤ, " ευρώ" Τέλος Λιανική_Τιμή Σημαντική Παρατήρηση: Προσέξτε ότι οι εντολές εξόδου δε χρησιμοποιούνται μόνο στο τέλος του αλγορίθμου για να προβάλουν τα τελικά αποτελέσματα αλλά χρησιμοποιούνται και μέσα στον αλγόριθμο για να εμφανίσουν ενδιάμεσα αποτελέσματα αλλά και να δώσουν οδηγίες στο χρήστη του προγράμματος. Αυτή η πρακτική βοηθά πολύ στην ευκολότερη και φιλικότερη χρήση του προγράμματος. Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 4/14

6. Εναλλακτική εισαγωγή δεδομένων: Οι Εντολές Δεδομένα και Αποτελέσματα Εκτός από την εντολές εισόδου (Διάβασε) και εξόδου (Εμφάνισε, Γράψε, Εκτύπωσε) η Ψευδογλώσσα ορίζει δύο ακόμη εντολές για είσοδο δεδομένων και έξοδο αποτελεσμάτων. Πρόκειται για την εντολής Δεδομένα και την εντολή Αποτελέσματα. Η εντολή Δεδομένα γράφεται πάντα στη 2η σειρά του αλγορίθμου (μετά την εντολή Αλγόριθμος) και περιγράφει εντός των συμβόλων // // τα δεδομένα του αλγορίθμου. Τα δεδομένα αυτά είναι μεταβλητές στις οποίες πρέπει να δοθεί τιμή πριν την έναρξη εκτέλεσης του αλγορίθμου. Αντίστοιχα η εντολή Αποτελέσματα γράφεται πάντα προτελευταία (πριν την εντολή Τέλος) και περιέχει εντός των συμβόλων // // τις μεταβλητές εξόδου με τα αποτελέσματα του αλγορίθμου. Η χρήση των εντολών Δεδομένα και Αποτελέσματα απαλλάσσει τον αλγόριθμο από τις λεπτομέρειες εισόδου και εξόδου και επιτρέπει στον συντάκτη του να επικεντρωθεί στη λύση του προβλήματος. Η χρήση τους συνίσταται ιδιαίτερα στην περίπτωση μεγάλου πλήθους δεδομένων εισόδου ή εξόδου (π.χ. σε προβλήματα επεξεργασίας πινάκων) Παράδειγμα 8: Οι δύο ακόλουθοι αλγόριθμοι είναι ισοδύναμοι: Αλγόριθμος Μέσος_Όρος Διάβασε α, β ΜΟ (α + β) / 2 Εμφάνισε ΜΟ Τέλος Μέσος_Όρος Αλγόριθμος Μέσος_Όρος Δεδομένα // α, β // ΜΟ (α + β) / 2 Αποτελέσματα // ΜΟ // Τέλος Μέσος_Όρος Σημαντική Παρατήρηση: Αν και γενικά ο συντάκτης του αλγορίθμου έχει την ευχέρεια να επιλέξει τη μέθοδο εισόδου και εξόδου δεδομένων, χρειάζεται λίγη προσοχή στη διατύπωση του προβλήματος καθώς σε ορισμένες περιπτώσεις η εκφώνηση οδηγεί στη χρήση του ενός από τους δύο τρόπους. Έτσι, όταν η εκφώνηση ενός θέματος λέει «Να γραφεί αλγόριθμος που να διαβάσει έναν αριθμό α και» τότε πρέπει να χρησιμοποιηθεί η εντολή Διάβασε ενώ αν λέει «Δίδεται ένας αριθμός α, Να γραφεί αλγόριθμος ο οποίος» τότε πρέπει να χρησιμοποιηθεί η εντολή Δεδομένα. 7. Δομή Επιλογής Πολλές φορές στην καθημερινότητά μας ο τρόπος που λύνουμε κάποια προβλήματα (δηλ. οι ενέργειες που επιλέγουμε για να τα λύσουμε) εξαρτάται από τις συνθήκες που ισχύουν εκείνη τη στιγμή αναφορικά με το πρόβλημα. Με απλά λόγια, πολλές φορές πρέπει να πάρουμε αποφάσεις ή να προσαρμόσουμε τη συμπεριφορά μας ανάλογα με τις τρέχουσες συνθήκες. Για παράδειγμα, αν ο καιρός είναι βροχερός θα πάρω ομπρέλα, αν έχει ήλιο θα πάρω τα γυαλιά ηλίου, αν κάνει κρύο θα φορέσω παλτό, αν πηγαίνω για γυμναστική θα φορές φόρμα και αθλητικά παπούτσια, αν πηγαίνω σε club θα βάλω βραδινό φόρεμα κ.ο.κ. Με εντελώς αντίστοιχο τρόπο σε έναν αλγόριθμο χρειάζεται πολλές φορές να επιλέξουμε διαφορετική σειρά ενεργειών (διαφορετικό δρόμο λύσης) ανάλογα με κάποια συνθήκη. Για παράδειγμα, κατά τον υπολογισμό του τελικού αποτελέσματος ενός μαθητή, αν ο μέσος όρος του είναι μεγαλύτερος ή ίσος με 10 ο μαθητής προάγεται, διαφορετικά απορρίπτεται ή, κατά τον υπολογισμό της επίδοσης του μαθητή, αν ο μέσος όρος είναι μεγαλύτερος από 18,5 η επίδοση είναι άριστα, διαφορετικά αν είναι μεγαλύτερος από 16 είναι πολύ καλά κ.ο.κ. Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 5/14

H Δομή Επιλογής, η δεύτερη από τις τρεις βασικές αλγοριθμικές δομές, υλοποιεί ακριβώς αυτή τη δυνατότητα, δηλ. ο αλγόριθμος διαφοροποιεί τη συμπεριφορά του (τις ενέργειες που θα εκτελέσει) ανάλογα με μία συνθήκη ή ένα κριτήριο. Με άλλα λόγια, με τη δομή επιλογής ο αλγόριθμος επιλέγει (εξ ου και το όνομα Δομή Επιλογής ) ποιο δρόμο (δηλ. ποια σειρά εντολών θα εκτελέσει) αφού πρώτα ελέγξει μια (λογική) συνθήκη. Στα διαγράμματα ροής η δομή επιλογής απεικονίζεται με ένα ρόμβο από τον οποίο ξεκινούν δύο διαφορετικές σειρές εντολών ανάλογα με το αν η συνθήκη που ελέγχεται είναι Αληθής, δηλ. ισχύει ή είναι Ψευδής, δηλ. ΔΕΝ ισχύει: Αληθής / Ναι / Ισχύει <Συνθήκη> Ψευδής / Όχι / Δεν ισχύει Εντολές αν η συνθήκη είναι Αληθής, δηλ. ισχύει Εντολές αν η συνθήκη είναι Ψευδής, δηλ. ΔΕΝ ισχύει Η δομή επιλογής στην Ψευδογλώσσα (όπως και στις περισσότερες γλώσσες προγραμματισμού) έχει τις εξής δύο μορφές: α) Αν <Συνθήκη> τότε <Εντολές αν η συνθήκη είναι Αληθής, δηλ. ισχύει> Τέλος_αν και β) Αν <Συνθήκη> τότε <Εντολές αν η συνθήκη είναι Αληθής, δηλ. ισχύει> αλλιώς <Εντολές αν η συνθήκη είναι Ψευδής, δηλ. ΔΕΝ ισχύει> Τέλος_αν Προσέξτε τη χρήση του Τέλος_αν το οποίο είναι απαραίτητο για να δηλωθεί το τέλος της δομής επιλογής. Η μορφή (α) είναι η πιο απλή. Σε αυτή τη μορφή ελέγχεται η <Συνθήκη> και αν είναι Αληθής, δηλ. αν η συνθήκη ισχύει τότε εκτελούνται οι <Εντολές αν η συνθήκη είναι Αληθής, δηλ. ισχύει>. Αν η συνθήκη είναι Ψευδής (δηλ. ΔΕΝ ισχύει) τότε οι εντολές δεν εκτελούνται. Παράδειγμα 9: Να γραφεί αλγόριθμος, ο οποίος να διαβάζει έναν αριθμό. Αν ο αριθμός είναι θετικός ο αλγόριθμος να εμφανίζει σχετικό μήνυμα. Αλγόριθμος Έλεγχος_Θετικού Διάβασε α Αν α > 0 τότε Εμφάνισε Ο αριθμός, α, είναι θετικός Τέλος_αν Τέλος Έλεγχος_Θετικού Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 6/14

Στην πιο σύνθετη μορφή (β) πάλι ελέγχεται η <Συνθήκη> όμως εδώ τα ενδεχόμενα είναι δύο: Αν η συνθήκη είναι Αληθής (δηλ. ισχύει) τότε εκτελούνται οι <Εντολές αν η συνθήκη είναι Αληθής, δηλ. ισχύει>, αλλιώς (αν η συνθήκη είναι Ψευδής (δηλ. ΔΕΝ ισχύει)) εκτελούνται οι <Εντολές αν η συνθήκη είναι Ψευδής, δηλ. ΔΕΝ ισχύει>. Παράδειγμα 10: Να γραφεί αλγόριθμος ο οποίος να διαβάζει έναν αριθμό και να εμφανίζει την απόλυτη τιμή του Αλγόριθμος Απόλυτη_Τιμή Διάβασε α Αν α > 0 τότε Εμφάνισε Η απόλυτη τιμή του, α, είναι, α αλλιώς Εμφάνισε Η απόλυτη τιμή του, α, είναι, -α Τέλος_αν Τέλος Απόλυτη_Τιμή Η <Συνθήκη> η οποία ελέγχεται από τη δομή επιλογής είναι μια Λογική Συνθήκη (ή Λογική Έκφραση) δηλ. είναι μια συνθήκη (ή έκφραση αν προτιμάτε) η οποία μπορεί να αποτιμηθεί (δηλ. να έχει τιμή) Αληθής ή Ψευδής. Οι μορφές μια λογικής συνθήκης ή έκφρασης είναι αρκετές. Η πιο απλή είναι αυτή στην οποία χρησιμοποιείται ένας τελεστής σύγκρισης (<, =, >,,,, στο βιβλίο αναφέρονται ως συγκριτικοί τελεστές) για να συγκρίνει δύο ποσότητες (συνήθως αριθμούς). Στα παραδείγματα 9 και 10 είδαμε ήδη τη χρήση της συνθήκης α > 0. Παράδειγμα 11: α > β Αληθής όταν η μεταβλητή α έχει τιμή μεγαλύτερη της β γ = δ Αληθής όταν οι μεταβλητές α και β έχουν την ίδια τιμή α γ + δ Αληθής όταν η μεταβλητή α έχει τιμή διάφορη του αθροίσματος των γ και δ α + β 0 Αληθής όταν η το άθροισμα των α και β είναι μικρότερο του μηδενός. Ένα ακόμη παράδειγμα αλγορίθμου με χρήση της δομής επιλογής: Παράδειγμα 12: Να γραφεί αλγόριθμος ο οποίος να διαβάζει τους βαθμούς ενός μαθητή στο Α και Β τετράμηνο (Τ1, Τ2) και στη γραπτή εξέταση (ΓΡ) σε ένα μάθημα, να υπολογίζει την προφορική και την τελική βαθμολογία του και να εμφανίζει μήνυμα αν αυτός προάγεται η όχι. Αρχικά υπολογίζεται η προφορική βαθμολογία (ΠΒ) ως ο μέσος όρος των τετραμήνων. Η τελική βαθμολογία (ΤΒ) είναι ο μέσος όρος προφορικής βαθμολογίας και γραπτών ΓΡ. Αν η τελική βαθμολογία (ΤΒ) είναι μεγαλύτερη ή ίση του 10 τότε ο μαθητής προάγεται αλλιώς απορρίπτεται. Αλγόριθμος Βαθμολογία Διάβασε Τ1, Τ2, ΓΡ ΠΒ (Τ1 + Τ2) / 2 ΤΒ (ΠΒ + ΓΡ) / 2 Αν ΤΒ 10 τότε Εμφάνισε "Ο μαθητής προάγεται με βαθμό", ΤΒ αλλιώς Εμφάνισε "O μαθητής απορρίπτεται" Τέλος_αν Τέλος Βαθμολογία 7.1 Πολλαπλή Δομή Επιλογής Από τα ως τώρα παραδείγματα φαίνεται ότι η δομή επιλογής επιτρέπει την επιλογή μεταξύ μόνο δύο δρόμων (ανάλογα με το αν η συνθήκη είναι αληθής ή όχι). Στην πράξη όμως πολύ συχνά έχουμε περιπτώσεις όπου οι επιλογές μας δεν είναι μόνο δύο αλλά περισσότερες, Τέτοιο παράδειγμα αποτελεί η επίλυση δευτεροβάθμιας εξίσωσης. Δευτεροβάθμια Εξίσωση (ή Τριώνυμο) είναι κάθε εξίσωση της μορφής: αx 2 + βx + γ = 0 με α, β, γ R Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 7/14

και α 0. Για την επίλυση της εξίσωσης υπολογίζουμε αρχικά τη διακρίνουσα Δ = β 2-4αγ και κατόπιν διακρίνουμε τρεις περιπτώσεις: (α) Αν Δ < 0 η εξίσωση δεν έχει πραγματικές ρίζες (αδύνατη) (β) Αν Δ = 0 η εξίσωση έχει μία διπλή πραγματική ρίζα ρ = -β / 2α (γ) Αν Δ > 0 η εξίσωση έχει δύο άνισες πραγματικές ρίζες ρ 1,2 = (-β ± Δ) / 2α Όπως ειπώθηκε η δομή επιλογής μας επιτρέπει να διαλέξουμε μία ανάμεσα σε δύο μόνο δυνατές επιλογές ενώ στην περίπτωση της δευτεροβάθμιας εξίσωσης οι επιλογές μας (ανάλογα με την τιμή της Δ) είναι τρεις. Πώς ξεπερνάμε αυτό το πρόβλημα ; Η απάντηση είναι απλή. Θα χρησιμοποιήσουμε ακόμη μία δομή επιλογής. Αρχικά, λοιπόν, θα εξετάσουμε την περίπτωση αν Δ < 0. Αν η απάντηση είναι ΝΑΙ τότε είμαστε στην περίπτωση (α). Αν όμως η απάντηση (στο αν Δ < 0) είναι ΟΧΙ σημαίνει ότι είτε Δ = 0 (περίπτωση (β)) είτε Δ > 0 (περίπτωση (γ)). Για να αποσαφηνίσουμε και αυτή την περίπτωση χρησιμοποιούμε μία ακόμη δομή επιλογής για να εξετάσουμε αν Δ = 0. Πάλι οι πιθανές απαντήσεις είναι δύο: Αν η απάντηση είναι ΝΑΙ τότε είμαστε στην περίπτωση (β) ενώ αν η απάντηση είναι ΟΧΙ τότε αναγκαστικά (αφού δεν ισχύει ούτε Δ < 0 ούτε Δ = 0) ισχύει Δ > 0 και βρισκόμαστε στην περίπτωση (γ). Δείτε το διάγραμμα ροής που περιγράφει τον αλγόριθμο επίλυσης της δευτεροβάθμιας εξίσωσης. Παρατηρήστε ιδιαίτερα τη χρήση της δομής επιλογής (ρόμβος) Για την υποστήριξη των πολλαπλών επιλογών η Ψευδογλώσσα ορίζει μια ειδική μορφή της δομής επιλογής, την πολλαπλή δομή επιλογής η οποία συντάσσεται ως εξής: Αν <Συνθήκη_1> τότε <Εντολές αν η συνθήκη_1 είναι Αληθής, δηλ. ισχύει> αλλιώς_αν <Συνθήκη_2> τότε <Εντολές αν η συνθήκη_2 είναι Αληθής, δηλ. ισχύει>... αλλιώς_αν <Συνθήκη_Ν> τότε <Εντολές αν η συνθήκη_ν είναι Αληθής, δηλ. ισχύει> αλλιώς <Εντολές αν καμία από τις συνθήκες (1..Ν) δεν είναι Αληθής> Τέλος_αν Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 8/14

Παράδειγμα 13: Να γραφεί αλγόριθμος ο οποίος επιλύει τη δευτεροβάθμια εξίσωση αx 2 + βx + γ = 0 με α, β, γ R Αλγόριθμος Τριώνυμο Εμφάνισε "Δώσε τους συντελεστές της εξίσωσης" Διάβασε α, β, γ Δ β^2-4*α*γ Αν Δ<0 τότε Εμφάνισε "Η εξίσωση δεν έχει πραγματικές ρίζες" αλλιώς_αν Δ=0 τότε ρ -β / (2 * α) Εμφάνισε "Η εξίσωση έχει διπλή πραγματική ρίζα ρ =",ρ αλλιώς ρ1 (-β + Τ_Ρ(Δ)) / (2 * α) ρ2 (-β - Τ_Ρ(Δ)) / (2 * α) Εμφάνισε "Η εξίσωση έχει δύο πραγματικές ρίζες ρ1 =",ρ1,"και ρ2 =",ρ2 τέλος_αν Τέλος Τριώνυμο 7.2 Σύνθετες Λογικές Συνθήκες Οι λογικές συνθήκες (εκφράσεις) που μπορούν να χρησιμοποιηθούν στη Δομή Επιλογής (όπως και στη Δομή Επανάληψης, όπως θα δούμε αργότερα) μπορούν να έχουν και πιο σύνθετη μορφή χρησιμοποιώντας τις τρεις βασικές λογικές πράξεις: και (σύζευξη), ή (διάζευξη) και όχι (άρνηση) (όπως ορίζονται στην Άλγεβρα Boole). Αν Α και Β είναι δύο λογικές εκφράσεις (που συνεπώς μπορούν να λάβουν τις τιμές Αληθής ή Ψευδής) τότε ο πίνακας τιμών (αληθείας) των Α και Β για τις τρεις λογικές πράξεις είναι ο εξής: Α Β Α και Β Α ή Β όχι Α Αληθής Αληθής Αληθής Αληθής Ψευδής Αληθής Ψευδής Ψευδής Αληθής Ψευδής Αληθής Ψευδής Αληθής Αληθής Ψευδής Ψευδής Ψευδής Ψευδής Πίνακας 1. Πίνακας αληθείας για τις τρεις λογικές πράξεις Η προτεραιότητα (από την υψηλότερη στη χαμηλότερη) των λογικών πράξεων είναι: 1. όχι 2. και 3. ή Επειδή η χρήση πολλών λογικών τελεστών στην ίδια έκφραση συχνά δημιουργούν σύγχυση για τη σειρά εκτέλεσης των πράξεων, συνίσταται ανεπιφύλακτα η χρήση παρενθέσεων που ξεκαθαρίζει τα πράγματα. Σε μια σύνθετη λογική έκφραση εκτελούνται πρώτα οι αριθμητικές και οι συγκριτικές πράξεις και τελευταίες οι λογικές. Παράδειγμα 14: Να γραφεί αλγόριθμος ο οποίος θα αποφαίνεται αν ένα έτος είναι δίσεκτο. Ένα έτος είναι δίσεκτο όταν: Διαιρείται με το 4 και δεν διαιρείται με το 100 ή διαιρείται με το 400. Αλγόριθμος Δίσεκτο Εμφάνισε "Δώσε το έτος που θες να εξετάσεις αν είναι δίσεκτο" Διάβασε έτος Αν (έτος mod 4 = 0) και (όχι (έτος mod 100 = 0)) ή (έτος mod 400 = 0) τότε Εμφάνισε "Το έτος",έτος,"είναι δίσεκτο" αλλιώς Εμφάνισε "Το έτος",έτος,"δεν είναι δίσεκτο" τέλος_αν Τέλος Δίσεκτο Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 9/14

8. Δομή Επανάληψης Η Δομή Επανάληψης είναι η τρίτη και τελευταία βασική αλγοριθμική δομή. Όπως δηλώνει και το όνομά της, χρησιμοποιείται στις περιπτώσεις που ένα μέρος (μια ομάδα εντολών) ενός αλγορίθμου πρέπει να εκτελεστεί περισσότερες από μία φορές. Για παράδειγμα κατά τον υπολογισμό του μέσου όρου Ν αριθμών ο αλγόριθμος πρέπει επαναληπτικά νε προσθέσει Ν αριθμούς ξεκινώντας από τον 1ο, σε αυτόν να προσθέσει τον 2ο, στο νέο άθροισμα προσθέτει τον 3ο κ.ο.κ. μέχρι τον Ν-ιοστό. Ή κατά την έκδοση των αποτελεσμάτων των μαθητών στο τέλος της σχολικής χρονιάς, ο αλγόριθμος υπολογισμού του μέσου όρου και της επίδοσης πρέπει να επαναληφθεί τόσες φορές όσοι είναι και οι μαθητές. Η Δομή Επανάληψης έχει διάφορες μορφές στις διάφορες γλώσσες προγραμματισμού που την υλοποιούν. Σε κάθε περίπτωση όμως, η κεντρική ιδέα είναι ότι μια ομάδα εντολών εκτελείται επαναληπτικά πολλές φορές. Ο αριθμός των επαναλήψεων καθορίζεται συνήθως είτε μέσω μια συνθήκης (δηλ. οι εντολές εκτελούνται επαναληπτικά όσο μια συνθήκη ισχύει ή μέχρι μια συνθήκη να ισχύσει) είτε μέσω ενός μετρητή (που μετρά των αριθμό των επαναλήψεων). Οι βασικές μορφές της Δομής Επανάληψης είναι τρεις: 8.1 Η εντολή: Όσο επανάλαβε Η εντολή Όσο επανάλαβε υλοποιεί τη γενικότερη μορφή της Δομής Επανάληψης. Σε μορφή διαγράμματος ροής η μορφή της είναι η εξής: Αληθής / Ναι / Ισχύει <Συνθήκη> Εντολές που επαναλαμβάνονται Ψευδής / Όχι / Δεν ισχύει Η λογική της εντολής είναι απλή: Όσο η <Συνθήκη> είναι αληθής επαναλαμβάνονται (εκτελούνται) οι <Εντολές που επαναλαμβάνονται>. Μόλις η <Συνθήκη> πάψει να είναι αληθής τότε ο αλγόριθμος συνεχίζει με την εκτέλεση των επόμενων εντολών του. Η σύνταξη της εντολής είναι η εξής: Όσο <Συνθήκη> επανάλαβε <Εντολές που επαναλαμβάνονται> Παράδειγμα 15: Να γραφεί αλγόριθμος ο οποίος θα διαβάζει διαδοχικά θετικούς φυσικούς αριθμούς και θα τους αθροίζει μέχρι το άθροισμά τους να ξεπεράσει το 100. Στο τέλος να εμφανίζει το συνολικό άθροισμα καθώς και το πόσοι αριθμοί δόθηκαν. Αλγόριθμος Άθροιση πλήθος 0!αρχικά το πλήθος των αριθμών μηδενίζεται άθροισμα 0!το συνολικό άθροισμα των αριθμών αρχικοποιείται και αυτό στο μηδέν Όσο άθροισμα < 100 επανάλαβε Διάβασε αριθμός άθροισμα άθροισμα + αριθμός πλήθος πλήθος + 1 Εμφάνισε 'Το τελικό άθροισμα είναι', άθροισμα, 'και δόθηκαν', πλήθος, 'αριθμοί' Τέλος Άθροιση Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 10/14

Σημείωση: Το κομμάτι του κειμένου που ξεκινά με το! είναι επεξηγηματικά σχόλια για τον αλγόριθμο και όχι εντολές. Υπάρχει μόνο για να εξηγεί τη λειτουργία του κώδικα στους πιθανούς αναγνώστες. Ακολουθεί ένα λίγο πιο σύνθετο παράδειγμα αλγορίθμου που θα μπορούσε να χρησιμοποιεί μια τράπεζα: Παράδειγμα 16: Να γραφεί αλγόριθμος ο οποίος θα διαβάζει το ποσό που προτίθεται να καταθέσει σε προθεσμιακή κατάθεση ένα επενδυτής καθώς και το ετήσιο επιτόκιο της κατάθεσης και θα υπολογίζει σε πόσα έτη η σωρευτική απόδοση της κατάθεσης θα ξεπεράσει το 10% (θεωρήστε ότι οι τόκοι στο τέλος κάθε έτους προστίθενται στο αρχικό κεφάλαιο). Αλγόριθμος Κατάθεση Εμφάνισε 'Δώσε το αρχικό ποσό της κατάθεσης:' Διάβασε αρχποσό Εμφάνισε 'Δώσε το επιτόκιο (%) της κατάθεσης:' Διάβασε επιτόκιο έτη 0 τρέχονποσό αρχποσό Όσο (τρέχονποσό αρχποσό * 1.10) επανάλαβε τρέχονποσό τρέχονποσό * (1 + επιτόκιο/100) έτη έτη + 1 Εμφάνισε 'Η κατάθεση θα ξεπεράσει σε απόδοση το 10% σε', έτη, 'έτη' Εμφάνισε 'Το τελικό ποσό που θα λάβει ο καταθέτης είναι', τρέχονποσό Τέλος Κατάθεση 8.2 Η εντολή: Επανάλαβε Μέχρις_ότου Η εντολή Επανάλαβε Μέχρις_ότου υλοποιεί και αυτή τη δομή επανάληψης. Η βασική διαφορά με την εντολή Όσο επανάλαβε είναι ότι εδώ η συνθήκη ελέγχου της επανάληψης δεν ελέγχεται πριν την εκτέλεση των εντολών της επανάληψης αλλά μετά. Δείτε το σχετικό διάγραμμα ροής: Εντολές που επαναλαμβάνονται Ψευδής / Όχι / Δεν ισχύει <Συνθήκη> Η λογική της Επανάλαβε Μέχρις_ότου είναι, κατά κάποιο τρόπο, ανάποδη από αυτή της Όσο επανάλαβε: Οι <Εντολές που επαναλαμβάνονται> επαναλαμβάνονται (εκτελούνται) μέχρις ότου η <Συνθήκη> να γίνει αληθής. Όσο η <Συνθήκη> παραμένει ψευδής η επανάληψη των εντολών συνεχίζεται. Η σύνταξη της εντολής είναι η εξής: Επανάλαβε <Εντολές που επαναλαμβάνονται> Μέχρις_ότου <Συνθήκη> Αληθής / Ναι / Ισχύει Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 11/14

Σημαντική παρατήρηση: Αν και πολλές φορές η προτίμηση σε μία από τις δύο μορφές της δομής επανάληψης είναι θέμα είτε προσωπικής επιλογής του προγραμματιστή είτε σαφέστερης και απλούστερης διατύπωσης ενός αλγορίθμου, οι δύο μορφές δεν είναι πάντα ισοδύναμες. Η ουσιαστική λεπτομέρεια που τις διαφοροποιεί και την οποία πρέπει να προσέχουν οι προγραμματιστές είναι, ότι ενώ οι <Εντολές που επαναλαμβάνονται> στην Όσο επανάλαβε μπορεί να μην εκτελεστούν καμία φορά (αν η <Συνθήκη> είναι εξ αρχής ψευδής) στην Επανάλαβε Μέχρις_ότου οι <Εντολές που επαναλαμβάνονται> εκτελούνται τουλάχιστον μία φορά αφού η <Συνθήκη> ελέγχεται μετά την εκτέλεσή τους! Συνεπώς κατά την επιλογή της μίας ή της άλλης εντολής χρειάζεται λίγη προσοχή ώστε η συμπεριφορά του αλγορίθμου να είναι η επιθυμητή σε όλες τις περιπτώσεις. Παράδειγμα 17: Να γραφεί αλγόριθμος ο οποίος θα ζητά από το χρήστη να δίνει θετικούς φυσικούς αριθμούς και θα ελέγχει αν αυτοί είναι αυτοί είναι άρτιοι οπότε θα τυπώνει ένα σχετικό μήνυμα. Το πρόγραμμα θα σταματά όταν θα έχουν δοθεί 5 άρτιοι αριθμοί Αλγόριθμος Άρτιοι πλήθοςάρτιων 0!Μηδένισε το πλήθος των άρτιων αριθμών Επανάλαβε Εμφάνισε 'Δώσε τον αριθμό που θέλεις να ελέγξεις αν είναι άρτιος' Διάβασε αριθμός Αν (αριθμός mod 2 = 0) τότε!αν ο αριθμός είναι άρτιος Εμφάνισε 'Ο', αριθμός, 'είναι άρτιος'!εμφάνισε το σχετικό μήνυμα πλήθοςάρτιων πλήθοςάρτιων + 1!Αύξησε το πλήθος των άρτιων κατά ένα αλλιώς Εμφάνισε 'Ο', αριθμός, 'δεν είναι άρτιος' Τέλος_αν Μέχρις_ότου πλήθοςάρτιων = 5!Η επανάληψη σταματά όταν το πλήθος των άρτιων αριθμών γίνει 5 Τέλος Άρτιοι 8.3 Η εντολή: Για από μέχρι Η εντολή Για από μέχρι είναι η τρίτη μορφή υλοποίησης της Δομής Επανάληψης. Η διαφορά με τις δύο προηγούμενες μορφές είναι ότι εδώ ο έλεγχος τερματισμού της επανάληψης δε γίνεται με χρήση κάποιας λογικής συνθήκη αλλά με χρήση ενός μετρητή που μετρά πόσες φορές θα εκτελεστούν οι <Εντολές που επαναλαμβάνονται>. Μόλις ο μετρητής φτάσει στο προκαθορισμένο όριο επαναλήψεων η εκτέλεση των εντολών σταματά. Το διάγραμμα ροής της εντολής είναι το εξής: Για <μετρητής> από <αρχική τιμή> μέχρι <τελική τιμή> [με_βήμα <βήμα>] Εντολές που επαναλαμβάνονται Ο <μετρητής> είναι μία μεταβλητή που παίζει το ρόλο του μετρητή, ξεκινά από την <αρχική τιμή> και αυξάνεται μέχρι την <τελική τιμή>. Αν δεν έχει ορισθεί κάποιο βήμα μεταβολής τότε ο <μετρητής> αυξάνεται κατά μία μονάδα τη φορά, αν όμως ορισθεί κάποιο βήμα μεταβολής (το οποίο δε χρειάζεται να είναι ακέραιο) τότε ο <μετρητής> μεταβάλλεται κάθε φορά κατά <βήμα> (το οποίο μπορεί να είναι και αρνητικό οπότε η μέτρηση γίνεται τότε αντίστροφα). Οι <Εντολές που επαναλαμβάνονται> εκτελούνται μέχρι ο <μετρητής> να φτάσει στην <τελική τιμή>. Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 12/14

Η σύνταξη της εντολής είναι η εξής: Για <μετρητής> από <αρχική τιμή> μέχρι <τελική τιμή> [με_βήμα <βήμα>] <Εντολές που επαναλαμβάνονται> Η εντολή Για από μέχρι μπορεί να χρησιμοποιηθεί όταν ο αριθμός των επαναλήψεων είναι συγκεκριμένος. Σε αυτή μάλιστα την περίπτωση συχνά προτιμάται έναντι της Όσο επανάλαβε και της Επανάλαβε Μέχρις_ότου καθώς η διατύπωσή της είναι απλούστερη και σαφέστερη. Χρειάζεται μόνο κάποια προσοχή στον ορισμό της <αρχικής τιμής> της <τελικής τιμής> αλλά και του <βήματος> ώστε ο αριθμός των επαναλήψεων να είναι ο σωστός. Λ.χ. αν <αρχικη τιμή> < <τελική τιμή> τότε πρέπει <βήμα> > 0 ενώ αν <αρχική τιμή> > <τελική τιμή> τότε πρέπει <βήμα> < 0. Αν τεθεί <βήμα> = 0 η επανάληψη θα εκτελείται αενάως (για πάντα). Παράδειγμα 18: Να γραφεί αλγόριθμος ο οποίος θα εμφανίζει τα τετράγωνα όλων των αριθμών από 1 μέχρι το 100 Αλγόριθμος Τετράγωνα Για i από 1 μέχρι 100 Εμφάνισε 'Το τετράγωνο του', i, 'είναι', i^2 Τέλος Τετράγωνα Παράδειγμα 19: Να γραφεί αλγόριθμος ο οποίος θα εμφανίζει όλα τα πολλαπλάσια του 3 από το 1 μέχρι το 99 χωρίς να εκτελεί πολλαπλασιασμό με το 3. Αλγόριθμος Πολλαπλάσια3 Για i από 3 μέχρι 99 με_βήμα 3 Εμφάνισε i Τέλος Πολλαπλάσια Ακολουθεί ένα απλό πρόβλημα το οποίο επιλύεται με τη χρήση και των τριών μορφών της Δομής Επανάληψης Παράδειγμα 20: Να γραφεί αλγόριθμος ο οποίος θα διαβάζει 10 αριθμούς, θα τους αθροίζει και θα υπολογίζει το μέσο όρο τους. Αλγόριθμος ΜέσοςΌρος!Με χρήση της Όσο Επανάλαβε άθροισμα 0 i 0 Όσο i < 10 επανάλαβε Εμφάνισε 'Δώσε τον επόμενο αριθμό:' Διάβασε αριθμός άθροισμα άθροισμα + αριθμός i i + 1 Εμφάνισε 'Το άθροισμα των αριθμών που έδωσες είναι', άθροισμα, 'και ο μέσος όρος τους', άθροισμα/10 Τέλος ΜέσοςΌρος Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 13/14

Αλγόριθμος ΜέσοςΌρος!Με χρήση της Επανάλαβε Μέχρις_ότου άθροισμα 0 i 0 Επανάλαβε Εμφάνισε 'Δώσε τον επόμενο αριθμό:' Διάβασε αριθμός άθροισμα άθροισμα + αριθμός i i + 1 Μέχρις_ότου i = 10 Εμφάνισε 'Το άθροισμα των αριθμών που έδωσες είναι', άθροισμα, 'και ο μέσος όρος τους', άθροισμα/10 Τέλος ΜέσοςΌρος Αλγόριθμος ΜέσοςΌρος!Με χρήση της Για από μέχρι άθροισμα 0 Για i από 1 μέχρι 10 Εμφάνισε 'Δώσε τον επόμενο αριθμό:' Διάβασε αριθμός άθροισμα άθροισμα + αριθμός Εμφάνισε 'Το άθροισμα των αριθμών που έδωσες είναι', άθροισμα, 'και ο μέσος όρος τους', άθροισμα/10 Τέλος ΜέσοςΌρος Δ. Σκυριανόγλου ΠΕ 19 Πληροφορικής 14/14