Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!! Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.1 Τι είναι αλγόριθμος Παραδείγματα αλγορίθμων: Η παρασκευή ενός κέικ Η εύρεση του μέγιστου κοινού διαιρέτη δύο αριθμών Η εκκίνηση ενός αυτοκινήτου Η πρωινή προετοιμασία για το σχολείο / νυχτερινή έξοδο Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!! Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.1 Κριτήρια ενός αλγορίθμου Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.1 Κριτήρια ενός αλγορίθμου Είσοδος (input): καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο Έξοδος (output): ο αλγόριθμος «παράγει» τουλάχιστον μία τιμή δεδομένων ως αποτέλεσμα Καθοριστικότητα (defineteness): να εξασφαλίζεται ο «ορισμός» κάθε εντολής Περατότητα (finiteness): ο αλγόριθμος τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης. (Διαφορετικά, λέγεται υπολογιστική διαδικασία) Αποτελεσματικότητα (effectiveness): ο αλγόριθμος αποτελείται από μεμονωμένες απλές-εκτελέσιμες εντολές Εκτός ύλης η παράγραφος 2.2 Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Ελεύθερο κείμενο: περιγραφή σε φυσική γλώσσα Ο πιο αδόμητος τρόπος αναπαράστασης. Ελλοχεύει ο κίνδυνος να παραβιαστεί το κριτήριο της αποτελεσματικότητας!!! Ανάπτυξη Εφαρμογών
Σαφώς καλύτερος τρόπος αναπαράστασης από το ελεύθερο κείμενο. Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Φυσική γλώσσα κατά βήματα: περιγραφή κατά βήματα Σαφώς καλύτερος τρόπος αναπαράστασης από το ελεύθερο κείμενο. Ανάπτυξη Εφαρμογών
Δεν χρησιμοποιείται πλέον συχνά. Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Διαγραμματικές τεχνικές: συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου (η πιο γνωστή είναι το διάγραμμα ροής (flow chart)) Δεν χρησιμοποιείται πλέον συχνά. Ανάπτυξη Εφαρμογών
Εκτελείται από τον υπολογιστή! Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Κωδικοποίηση (coding): πρόγραμμα γραμμένο είτε με μία ψευδογλώσσα είτε σε κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο. Εκτελείται από τον υπολογιστή! Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Αρχικά διαβάζουμε τους συντελεστές α, β, γ του τριωνύμου. Στη συνέχεια, υπολογίζουμε τη διακρίνουσα με τον τύπο β2-4αγ και ανάλογα με την τιμή της, υπολογίζουμε τις ρίζες του τριωνύμου. Δηλαδή, αν η διακρίνουσα είναι αρνητική, το τριώνυμο δεν επιλύεται στο σύνολο των πραγματικών αριθμών. Ενώ, αν η διακρίνουσα ισούται με μηδέν, η λύση είναι –β/2α. Τέλος, αν η διακρίνουσα είναι θετική, τότε το τριώνυμο έχει τις εξής δύο λύσεις: …… Αναπαράσταση αλγορίθμου με ελεύθερο κείμενο Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Διαβάζουμε τους συντελεστές α, β, γ Υπολογίζουμε τη διακρίνουσα (Δ=β2-4αγ) Αν Δ<0 τότε το τριώνυμο δεν επιλύεται Αν Δ=0 τότε χ=–β/2α Αν Δ>0 τότε χ1=(-β+ΤΡ(Δ))/2α και χ2=(-β-ΤΡ(Δ))/2α Αναπαράσταση αλγορίθμου σε φυσική γλώσσα κατά βήματα Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Αναπαράσταση αλγορίθμου με διάγραμμα ροής ΑΡΧΗ Διάβασε α, β, γ Δ β2-4αγ Εκτύπωσε ‘Δε λύνεται’ ΝΑΙ ΟΧΙ ΟΧΙ Εκτύπωσε … Δ < 0 Δ > 0 ΝΑΙ Εκτύπωσε ... ΤΕΛΟΣ Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.3 Περιγραφή & αναπαράσταση αλγορίθμων Αλγόριθμος Τριώνυμο Διάβασε α, β, γ Δ β2 – 4αγ Αν Δ<0 τότε Εκτύπωσε ‘Δεν υπάρχει λύση’ Αλλιώς_αν Δ=0 τότε χ -β/(2α) Εκτύπωσε χ Αλλιώς χ1 -β+ΤΡ(Δ)/(2α) χ2 -β+ΤΡ(Δ)/(2α) Εκτύπωσε χ1, χ2 Τέλος_αν Τέλος Τριώνυμο αναπαράσταση αλγορίθμου με κωδικοποίηση σε ψευδογλώσσα Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4 Βασικές συνιστώσες/εντολές Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4 Βασικές συνιστώσες/εντολές Τα τούβλα είναι τα δομικά στοιχεία ενός κτίσματος Οι εντολές είναι τα δομικά στοιχεία ενός αλγορίθμου Δομή ακολουθίας Δομή επιλογής Διαδικασίες πολλαπλών επιλογών Εμφωλευμένες Διαδικασίες Δομή επανάληψης Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2. 4 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας/Σειριακή δομή Η ακολουθιακή δομή εντολών χρησιμοποιείται για την αντιμετώπιση απλών προβλημάτων, όπου είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών. Παράδειγμα : Να διαβασθούν δύο αριθμοί, να υπολογισθεί και να εκτυπωθεί το γινόμενο τους. Αλγόριθμος Γινόμενο Διάβασε a, b c a * b Εκτύπωσε c Τέλος Γινόμενο Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2. 4 Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας/Σειριακή δομή Εκτελεστέες εντολές Δηλωτικές εντολές Αλγόριθμος Γινόμενο Διάβασε a, b c a * b Εκτύπωσε c Τέλος Γινόμενο Εντολή ανάγνωσης/εισόδου Εντολή εκχώρησης Εντολή εξόδου α,b,c: Μεταβλητές Εντολή είναι μία λέξη που προσδιορίζει μια σαφή ενέργεια Να γίνει το διάγραμμα ροής Να υλοποιηθεί σε ψευδογλώσσα www.pseudoglossa.gr Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας Αρχίζει με τη δηλωτική εντολή Αλγόριθμος … Τελειώνει με τη δηλωτική εντολή Τέλος … Εισαγωγή δεδομένων: Διάβασε … Κάθε λέξη της ψευδογλώσσας που προσδιορίζει μια σαφή ενέργεια αποκαλείται εντολή μεταβλητή έκφραση : εντολή εκχώρησης τιμής γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα εκχωρείται στη μεταβλητή Εκτύπωσε … : ή Εμφάνισε … Γράφει το αποτέλεσμα στον εκτυπωτή ή την οθόνη αντίστοιχα Κριτήρια αλγορίθμων: ικανοποιούνται; Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Δομή ακολουθίας Παράδειγμα : Με δεδομένη την ακτίνα, να υπολογισθεί το εμβαδόν του αντίστοιχου κύκλου και το εμβαδόν του τετραγώνου που είναι περιγεγραμμένο στον κύκλο αυτόν. Αλγόριθμος Εμβαδά Διάβασε ακτίνα εμβΚύκλου 3.14 * ακτίνα * ακτίνα πλευρά 2 * ακτίνα εμβΤετραγώνου πλευρά * πλευρά Εκτύπωσε εμβΚύκλου , εμβΤετραγώνου Τέλος Εμβαδά Ποια είναι τα δεδομένα και ποια τα ζητούμενα; Ποιες είναι οι μεταβλητές; Ποιες εντολές χρησιμοποιούνται; Θα μπορούσε να αλλάξει η αλληλουχία τους; Ικανοποιούνται τα κριτήρια των αλγορίθμων; Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Σταθερές (constants) Προκαθορισμένες τιμές που μένουν αμετάβλητες σε όλη τη διάρκεια εκτέλεσης ενός αλγορίθμου. Έχουν όνομα και τιμή (βλέπε συμβάσεις ονομάτων, σελ. 150) Έχουν τύπο (βλέπε §7.2 στη σελίδα 148) Αριθμητικές (Ακέραιες ή Πραγματικές), π.χ. 123, -5, 3.14 Αλφαριθμητικές ή Χαρακτήρες: Οποιοιδήποτε χαρακτήρες μέσα σε εισαγωγικά, π.χ. “Κώστας”, “Αποτελέσματα2ουΤετραμήνου” Λογικές, δύο τιμές: Αληθής, Ψευδής Παραδείγματα: π=3.14 g=10 ονοματεπώνυμο=“Θεόδωρος Κολοκοτρώνης” Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Μεταβλητές (variables) Ένα γλωσσικό αντικείμενο που παριστάνει ένα δεδομένο Έχουν όνομα και τιμή (βλέπε συμβάσεις ονομάτων, σελ. 150) Έχουν τύπο (βλέπε §7.2 στη σελίδα 148) Αριθμητικές (Ακέραιες ή Πραγματικές), π.χ. 123, -5, 3.14 Αλφαριθμητικές ή Χαρακτήρες: Οποιοιδήποτε χαρακτήρες μέσα σε εισαγωγικά, π.χ. “Κώστας”, “Αποτελέσματα2ουΤετραμήνου” Λογικές, δύο τιμές: Αληθής, Ψευδής Παραδείγματα: ποσό 10 σύνολοΜαθητών10ουΛυκείου 70+56+48 αιμοδοσία πίεση > 10 ΚΑΙ αιματοκρίτης > 38 Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Τελεστές (operators) Σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις Έχουν τύπο Αριθμητικοί: +, -, *, /, ^, div, mod (βλέπε §7.5 στη σελίδα 152) Συγκριτικοί: , <, =, , > Λογικοί: και, ή, όχι Ιεραρχία αριθμητικών πράξεων Παρενθέσεις Ύψωση σε δύναμη Πολλαπλασιασμός-Διαίρεση-DIV-MOD Πρόσθεση-Αφαίρεση Ιεραρχία τελεστών Αριθμητικοί Συγκριτικοί Λογικοί Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.1 Στοιχεία Ψευδογλώσσας Εκφράσεις (expressions) Σχηματίζονται από τελεστέους (σταθερές, μεταβλητές και συναρτήσεις) και από τελεστές. Αποδίδονται τιμές στις μεταβλητές και στις σταθερές και στη συνέχεια εκτελούνται οι πράξεις που ορίζουν οι τελεστές. Παραδείγματα: μαθητέςΑ1 + μαθητέςΑ2 + μαθητέςΑ3 5*α-β/2+4*(γ+1) 2*ημ(ω)+2^2 πίεση > 10 Βρέχει ή Χιονίζει Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επιλογής: αν…τότε Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επιλογής: αν…τότε Η δομή της επιλογής χρησιμοποιείται στις περιπώσεις που χρειάζεται να λαμβάνονται κάποιες αποφάσεις με βάση κάποια δεδομένα κριτήρια, που μπορεί να είναι διαφορετικά για κάθε διαφορετικό στιγμιότυπο ενός προβλήματος. Παράδειγμα : Να διαβαστεί ένας αριθμός και να εκτυπωθεί η απόλυτη τιμή του Αλγόριθμος Απόλυτη_Τιμή Διάβασε a Αν a < 0 τότε a a*(-1) Εκτύπωσε a Τέλος Απόλυτη_Τιμή Να γίνει και διάγραμμα ροής!!! Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επιλογής: αν…τότε…αλλιώς Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επιλογής: αν…τότε…αλλιώς Παράδειγμα: Να διαβασθούν δύο αριθμοί και να εκτυπωθούν με φθίνουσα σειρά (πρώτα ο μεγαλύτερος και μετά ο μικρότερος). Αλγόριθμος Διάταξη Διάβασε α, β αν α > β τότε Εμφάνισε α , β αλλιώς Εμφάνισε β ,α τέλος_αν Τέλος Διάταξη Ανάπτυξη Εφαρμογών
Δομή Επιλογής: Τι να διαβάσετε ΔΕΝ διαβάζουμε τα διαγράμματα ροής Θεωρία §2.4.2 Σαββάλα: 5.1, 5.2, 5.3, Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Διδακτικοί στόχοι να σχηματίζετε λογικές εκφράσεις να διατυπώνετε τις εντολές ελέγχου ΑΝ να επιλέγετε την καταλληλότερη εντολή ΑΝ να διατυπώνετε τις εντολές επανάληψης να επιλέγετε την καλύτερη δομή επανάληψης να συντάσσετε προγράμματα που χρησιμοποιούν και τις τρεις βασικές δομές: της ακολουθίας, της επιλογής και της επανάληψης. Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Λογικές Εκφράσεις Λογικές εκφράσεις Τελεστής Ελεγχόμενη σχέση Παράδειγμα = Ισότητα Done = ΑΛΗΘΕΣ <> Ανισότητα Ονομα1 <> 'Κώστας' > Μεγαλύτερο από Τιμή>10000 >= Μεγαλύτερο ή ίσο Χ+Υ >= (Α+Β)/Γ < Μικρότερο από Κλειδί < ‘Ωρολόγιον’ <= Μικρότερο ή ίσο Βάρος <= 500 Σύνθετες λογικές εκφράσεις Λογικοί τελεστές: ΚΑΙ, Η, ΌΧΙ. Έχουν χαμηλότερη ιεραρχία από τους αριθμητικούς τελεστές. Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: διάζευξη (Η) Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: διάζευξη (Η) Παράδειγμα : Να διαβαστούν οι συντεταγμένες ενός σημείου, και να εκτυπωθεί αν είναι πάνω στους άξονες ή όχι. Αλγόριθμος Σημείο_στο_χώρο Διάβασε x,y αν x=0 Η y=0 τότε Εκτύπωσε “Το σημείο (”, x, “,”, y, “) βρίσκεται πάνω στους άξονες” αλλιώς “) δεν βρίσκεται πάνω στους άξονες” τέλος_αν Τέλος Σημείο_στο_χώρο Το Η δύο προτάσεων είναι αληθές όταν τουλάχιστον μία είναι αληθής: x=0 P y=0 Q x=0 H y=0 P H Q A Α Ψ Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: σύζευξη (ΚΑΙ) Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: σύζευξη (ΚΑΙ) Παράδειγμα : Να διαβαστεί η ηλικία και να εκτυπώνεται αν είναι έφηβος (12 ηλικία 18) ή όχι. Το ΚΑΙ δύο προτάσεων είναι αληθές όταν και οι δύο είναι αληθείς: Αλγόριθμος έφηβος Διάβασε ηλικία αν ηλικία >= 12 ΚΑΙ ηλικία <= 18 τότε Εκτύπωσε “έφηβος” αλλιώς Εκτύπωσε “όχι έφηβος” τέλος_αν Τέλος έφηβος P Q P ΚΑΙ Q A Α Ψ Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: άρνηση (ΌΧΙ) Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: άρνηση (ΌΧΙ) Παράδειγμα : Κάποιος έχει αργία μόνο τις Κυριακές. Να διαβαστεί η ημέρα, και να τυπωθεί το μήνυμα «Δουλεύω! Όχι πάλι!», αν δουλεύει σήμερα. Το ΌΧΙ μίας πρότασης είναι αληθές όταν η πρόταση είναι ψευδής Αλγόριθμος Arbeit_Macht_Frei Διάβασε ημέρα αν OXI (ημέρα=“Κυριακή”) τότε Εκτύπωσε “Δουλεύω! Όχι πάλι!” τέλος_αν Τέλος Arbeit_Macht_Frei P OXI P A Ψ Α Ανάπτυξη Εφαρμογών
ΘΕΩΡΙΑ: Προτεραιότητα λογικών τελεστών: Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Λογικές Πράξεις: Προτεραιότητα, Συγκρίσεις ΘΕΩΡΙΑ: Προτεραιότητα λογικών τελεστών: 1η: ΌΧΙ π.χ. όχι Β και Α = (όχι Β) και Α 2η: ΚΑΙ π.χ. Α ή Β και Γ = Α ή (Β και Γ) 3η: Η π.χ. Α και όχι Β ή Γ = (Α και (όχι Β)) ή Γ ΘΕΩΡΙΑ: Συγκρίσεις Αλφαριθμητικών: Τα αλφαριθμητικά συγκρίνονται αλφαβητικά: “A” < “B” “Antoni” > “Amalia” “Ω” > “Ψητοπωλείο” ΘΕΩΡΙΑ: Συγκρίσεις Λογικών: Σύγκριση λογικών έχει έννοια μόνο στην περίπτωση = και < > Π.χ. done = Αληθές απάντηση1 < > απάντηση2 Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΑΝ Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΑΝ Σύνταξη ΑΝ συνθήκη ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι θετικός' πλήθος_θετικών <- πλήθος_θετικών + 1 ΤΕΛΟΣ_ΑΝ Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ Σύνταξη ΑΝ συνθήκη ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν ΑΛΛΙΩΣ εντολή-1 Εντολή-2 … εντολή-ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι θετικός’ Πλήθος_θετικών <- Πλήθος_θετικών+1 ΑΛΛΙΩΣ ΓΡΑΨΕ 'Ο αριθμός είναι αρνητικός ή 0’ Πλήθος_μη_θετικών <- Πλήθος_μη_θετικών +1 ΤΕΛΟΣ_ΑΝ Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Διαδικασίες πολλαπλών επιλογών Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Διαδικασίες πολλαπλών επιλογών Παράδειγμα : Να διαβασθεί ένας ακέραιος και να εκτυπωθεί η αντίστοιχη μέρα της εβδομάδας αν ο ακέραιος έχει τιμή 1 έως 7 διαφορετικά να εκτυπωθεί “λάθος ημέρα”. Οι διαδικασίες των πολλαπλών επιλογών χρησιμοποιούνται στα προβλήματα όπου μπορεί να ληφθούν διαφορετικές αποφάσεις ανάλογα με την τιμή που παίρνει μία μεταβλητή 1η Μορφή: αν… αλλιώς_αν Αλγόριθμος Ημέρα_εβδομάδας Διάβασε μέρα αν μέρα = 1 τότε Εκτύπωσε “Κυριακή” αλλιώς_αν μέρα = 2 τότε Εκτύπωσε “Δευτέρα” αλλιώς_αν μέρα = 3 τότε Εκτύπωσε “Τρίτη” αλλιώς_αν μέρα = 4 τότε Εκτύπωσε “Τετάρτη” αλλιώς_αν μέρα = 5 τότε Εκτύπωσε “Πέμπτη” αλλιώς_αν μέρα = 6 τότε Εκτύπωσε “Παρασκευή” αλλιώς_αν μέρα = 7 τότε Εκτύπωσε “Σάββατο” αλλιώς Εκτύπωσε “Έδωσες λάθος μέρα ”, μέρα τέλος_αν Τέλος Ημέρα_εβδομάδας Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Διαδικασίες πολλαπλών επιλογών Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Διαδικασίες πολλαπλών επιλογών Αλγόριθμος Ημέρα_εβδομάδας Διάβασε μέρα Επέλεξε μέρα Περίπτωση 1 Εκτύπωσε “Κυριακή” Περίπτωση 2 Εκτύπωσε “Δευτέρα” Περίπτωση 3 Εκτύπωσε “Τρίτη” Περίπτωση 4 Εκτύπωσε “Τετάρτη” Περίπτωση 5 Εκτύπωσε “Πέμπτη” Περίπτωση 6 Εκτύπωσε “Παρασκευή” Περίπτωση 7 Εκτύπωσε “Σάββατο” Περίπτωση αλλιώς Εκτύπωσε “Έδωσες λάθος μέρα”, μέρα, “.” τέλος_επιλογών Τέλος Ημέρα_εβδομάδας 2η Μορφή: Επέλεξε έκφραση Περίπτωση τιμές1 εντολές1 Περίπτωση τιμές2 εντολές2 …. Περίπτωση αλλιώς εντολέςαλλιώς τέλος_επιλογών Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ_ΑΝ Σύνταξη ΑΝ συνθήκη1 ΤΟΤΕ εντολή-1 εντολή-2 … ΑΛΛΙΩΣ_ΑΝ συνθήκη2 ΤΟΤΕ εντολή-1 εντολή-2 … ΑΛΛΙΩΣ εντολή-1 εντολή-2 … ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι θετικός’ Πλήθος_θετικών <- Πλήθος_θετικών + 1 ΑΛΛΙΩΣ_ΑΝ αριθμός < 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι αρνητικός’ Πλήθος_αρνητικών<- Πλήθος_αρνητικών + 1 ΑΛΛΙΩΣ ΓΡΑΨΕ 'Ο αριθμός είναι 0’ Πλήθος_0 <- Πλήθος_0 + 1 ΤΕΛΟΣ_ΑΝ Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΕΠΕΛΕΞΕ Παράδειγμα ΔΙΑΒΑΣΕ μήνας ΕΠΕΛΕΞΕ μήνας ΠΕΡΙΠΤΩΣΗ ‘Δεκ’, ‘Ιαν’,’Φεβ’ ΓΡΑΨΕ ‘Χειμώνας’ ΠΕΡΙΠΤΩΣΗ ‘Μαρ’, ‘Απρ’,’Μαι’ ΓΡΑΨΕ ‘Άνοιξη’ ΠΕΡΙΠΤΩΣΗ ‘Ιουν’, ‘Ιουλ’,’Αυγ’ ΓΡΑΨΕ ‘Καλοκαίρι’ ΠΕΡΙΠΤΩΣΗ ‘Σεπ’, ‘Οκτ’,’Νοε’ ΓΡΑΨΕ ‘Φθινόπωρο’ ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ ΓΡΑΨΕ ‘Έδωσες λάθος μήνα!’ ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ Σύνταξη ΕΠΕΛΕΞΕ έκφραση ΠΕΡΙΠΤΩΣΗ λίστα_τιμών1 εντολές1 ΠΕΡΙΠΤΩΣΗ λίστα_τιμών2 εντολές2 …… ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ εντολές_Αλλιώς ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Εμφωλευμένες Δομές Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Εμφωλευμένες Δομές Οι εντολές που βρίσκονται μέσα σε μια δομή επιλογής μπορεί να είναι επίσης δομή επιλογής. Τότε έχουμε εμφωλευμένες διαδικασίες. Αλγόριθμος Χριστουγεννιάτικα_δώρα Διάβασε φύλο, ηλικία αν φύλο = “Αρσενικό” τότε αν ηλικία >= 18 τότε Εκτύπωσε “Γραβάτα” αλλιώς Εκτύπωσε “Μπάλα” τέλος_αν Εκτύπωσε “Άρωμα” Εκτύπωσε “Κούκλα” Τέλος Χριστουγεννιάτικα_δώρα Παράδειγμα: Χριστουγεννιάτικα δώρα Να γραφεί αλγόριθμος που να δέχεται το φύλο και την ηλικία ενός ατόμου, και να εκτυπώνει το δώρο που θα του πάρουμε ως εξής: Άντρας Γραβάτα Γυναίκα Άρωμα Αγόρι Μπάλα Κορίτσι Κούκλα (Υποθέστε ότι για φύλο ο χρήστης δίνει «Αρσενικό» ή «Θηλυκό», χωρίς περίπτωση λάθους) Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Εμφωλευμένες Δομές Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Εμφωλευμένες Δομές Παρατήρηση: Με εμφωλευμένες δομές (διαδικασίες) μπορούμε να υλοποιήσουμε πολλαπλή επιλογή: Αλγόριθμος Χαρακτηρισμός_βαθμού Διάβασε βαθμός αν βαθμός = “Α” τότε Εκτύπωσε “Άριστα” αλλιώς αν βαθμός = “Β” τότε Εκτύπωσε “Καλά” αν βαθμός = “Γ” τότε Εκτύπωσε “Μέτρια” Εκτύπωσε “Λάθος Βαθμός” τέλος_αν Τέλος Χαρακτηρισμός_βαθμού Παράδειγμα: Χαρακτηρισμός βαθμού Να γραφεί αλγόριθμος που να δέχεται το βαθμό ως Α, Β ή Γ, και να τυπώνει “Άριστα”, “Καλά” ή “Μέτρια”, ή μήνυμα λάθους Προσοχή: Το τέλος_αν κλείνει το πιο κοντινό του αν. Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εμφωλευμένα ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι θετικός’ Πλήθος_θετικών <- Πλήθος_θετικών+1 ΑΛΛΙΩΣ ΑΝ αριθμός < 0 ΤΟΤΕ ΓΡΑΨΕ 'Ο αριθμός είναι αρνητικός’ Πλήθος_Αρν <- Πλήθος_Αρν +1 ΑΛΛΙΩΣ ΓΡΑΨΕ 'Ο αριθμός είναι 0’ Πλήθος_0 <- Πλήθος_0 +1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ Παράδειγμα ΔΙΑΒΑΣΕ νόμισμα ΔΙΑΒΑΣΕ μισθός ΑΝ νόμισμα=‘Δρχ’ ΤΟΤΕ ΑΝ μισθός> 500000 ΤΟΤΕ ΓΡΑΨΕ ‘Καλά λεφτά!’ ΑΛΛΙΩΣ ΓΡΑΨΕ ‘Εξαθλίωση…’ ΤΕΛΟΣ_ΑΝ ΑΛΛΙΩΣ_ΑΝ νόμισμα=‘Ευρώ’ ΤΟΤΕ ΑΝ μισθός> 1467,35 ΤΟΤΕ ΓΡΑΨΕ ‘Kala lefta!’ ΑΛΛΙΩΣ ΓΡΑΨΕ ‘Eksathliwsi…’ Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Τι να διαβάσετε Θεωρία: Παρ. 8.1, Ερωτήσεις 1-6 Παραδείγματα: Από Τετράδιο Μαθητή, Παρ.1, 2 (Το 2 χρειάζεται διορθώσεις) Ασκήσεις: Τετράδιο Μαθητή: ΔΤ1, ΔΤ2, ΔΕ1 με προσοχή, χωρίς περιττούς ελέγχους!, ΔΣ2 οπωσδήποτε Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης Η δομή της επανάληψης χρησιμοποιείται στις περιπώσεις όπου μία ακολουθία εντολών πρέπει να εφαρμοσθεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι κοινό. Παράδειγμα : Να γραφεί αλγόριθμος που να εμφανίζει τους αριθμούς από 1 έως 100. Αλγόριθμος Παράδειγμα_2.7 i 1 Όσο i <= 100 επανάλαβε Εμφάνισε i i i + 1 Τέλος_επανάληψης Τέλος Παράδειγμα _2.7 Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης: όσο-επανάλαβε Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης: όσο-επανάλαβε Η δομή επανάληψης χρησιμοποιείται στις περιπώσεις που χρειάζεται να εφαρμοστεί η ίδια ακολουθία εντολών πάνω σε διαφορετικά δεδομένα ενός συνόλου. π.χ. τόκος = ποσό * επιτόκιο Παράδειγμα : Να εκτυπωθούν όλοι οι αριθμοί από το 1 μέχρι το 100. Αλγόριθμος Μέτρημα μ 1 όσο μ <= 100 επανάλαβε Εμφάνισε μ μ μ + 1 τέλος_επανάληψης Τέλος Μέτρημα Ανάπτυξη Εφαρμογών
Αλγόριθμος Αστεράκια Διάβασε α όσο α > 0 επανάλαβε Εκτύπωσε “*” Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης : όσο-επανάλαβε (2) 1η μορφή : όσο συνθήκη επανάλαβε εντολές τέλος_επανάληψης Λειτουργία ελέγχεται η συνθήκη αν είναι αληθής: * εκτελούνται οι εντολές * πηγαίνει στο βήμα 1 3. αν είναι ψευδής: * πηγαίνει στην εντολή που ακολουθεί το τέλος_επανάληψης Παρατήρηση : Ο βρόγχος μπορεί να μην εκτελεστεί καμία φορά! Παράδειγμα : Να διαβάζεται ένας αριθμός και να τυπώνονται τόσα “*”. Αλγόριθμος Αστεράκια Διάβασε α όσο α > 0 επανάλαβε Εκτύπωσε “*” α α – 1 τέλος_επανάληψης Τέλος Αστεράκια Ζυγοί αριθμοί από 2 έως 100 Οι πρώτοι 100 ζυγοί αριθμοί Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης: Παραδείγματα Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης: Παραδείγματα Να γραφεί αλγόριθμος που θα διαβάζει θετικούς αριθμούς μέχρι να δοθεί κάποιος αρνητικός αριθμός οπότε και θα τυπώνει το πλήθος και τη μέση τιμή των θετικών και μηδενικών αριθμών που δόθηκαν. Αλγόριθμος Θετικοί_Αριθμοί Αθρ 0 πλήθος 0 διάβασε x όσο x > 0 επανάλαβε Αθρ Αθρ + x πλήθος πλήθος + 1 τέλος_επανάληψης εκτύπωσε “Πλήθος αριθμών: ”,πλήθος αν πλήθος > 0 τότε εκτύπωσε “Μέση τιμή:”,Αθρ/πλήθος τέλος_αν Τέλος Θετικοί_Αριθμοί Ανάπτυξη Εφαρμογών
Κεφάλαιο 8: Επιλογή και επανάληψη Εντολή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ Σύνταξη ΟΣΟ συνθήκη ΕΠΑΝΑΛΑΒΕ εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Η ΟΣΟ είναι η γενικότερη εντολή επανάληψης: μπορεί να υλοποιήσει όλες τις υπόλοιπες. Παράδειγμα i=1 βρέθηκε = ΨΕΥΔΕΣ ΟΣΟ ΌΧΙ βρέθηκε ΚΑΙ iΝ ΕΠΑΝΑΛΑΒΕ ΑΝ Α[i]=κλειδί ΤΟΤΕ βρέθηκε = ΑΛΗΘΕΣ θέση = i ΑΛΛΙΩΣ i=i+1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ανάπτυξη Εφαρμογών
Αλγόριθμος Παράδειγμα_2.8 Αρχή_επανάληψης Διάβασε x Εμφάνισε x Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης Παράδειγμα 2.8 : Να διαβάζονται και να εκτυπώνονται όσοι θετικοί αριθμοί δίνονται από το πληκτρολόγιο. Ο αλγόριθμος τελειώνει όταν δοθεί ένας αρνητικός αριθμός. Αλγόριθμος Παράδειγμα_2.8 Αρχή_επανάληψης Διάβασε x Εμφάνισε x Μέχρις_ότου x < 0 Τέλος Παράδειγμα _2.8 Ανάπτυξη Εφαρμογών
Αλγόριθμος Τηλέφωνο_Αθήνας αρχή_επανάληψης Διάβασε τηλ Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Δομή επανάληψης : αρχή_επανάληψης 2η μορφή : αρχή_επανάληψης εντολές μέχρις_ότου συνθήκη Λειτουργία εκτελούνται οι εντολές ελέγχεται η συνθήκη αν είναι ψευδής: * πηγαίνει στο βήμα 1 4. αν είναι αληθής: * πηγαίνει στην εντολή που ακολουθεί το μέχρις_ότου Παρατήρηση : - Ο βρόγχος εκτελείται πάντα τουλάχιστον μία φορά! -Χρησιμοποιείται συχνά για εισαγωγή έγκυρων δεδομένων Παράδειγμα : Να διαβάζεται ένας αριθμός που αντιστοιχεί οπωσδήποτε σε έγκυρο τηλέφωνο στην Αθήνα. Αλγόριθμος Τηλέφωνο_Αθήνας αρχή_επανάληψης Διάβασε τηλ μέχρις_ότου τηλ >= 2000000 και τηλ <= 9999999 Εμφάνισε τηλ Τέλος Τηλέφωνο_Αθήνας Ανάπτυξη Εφαρμογών