Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!! Κεφάλαιο 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.4.5 Δομή επανάληψης Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Πολλαπλασιασμός αλά ρωσικά Έτσι πολλαπλασιάζουν οι Η/Υ και όσοι δεν ξέρουν προπαίδεια! Απαιτείται μόνο πολλαπλασιασμός και διαίρεση με το 2! Οι Η/Υ πραγματοποιούν πράξεις μεταξύ δυαδικών αριθμών! πολλαπλασιασμός ενός δυαδικού αριθμού με το 2 ολίσθηση προς τα αριστερά διαίρεση ενός δυαδικού αριθμού με το 2 ολίσθηση προς τα δεξιά (Για τα ανήσυχα πνεύματα, περισσότερες πληροφορίες στο blog στο βοηθητικό υλικό.) Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Πολλαπλασιασμός αλά ρωσικά Ελεύθερο κείμενο Έστω 2 θετικοί ακέραιοι αριθμοί. Οι αριθμοί γράφονται δίπλα δίπλα. Ο πρώτος συνεχώς διπλασιάζεται, ενώ ο δεύτερος διαιρείται με το 2 αγνοώντας το δεκαδικό μέρος. Η διαδικασία αυτή συνεχίζεται μέχρι στη 2η στήλη να προκύψει μονάδα. Το γινόμενο είναι το άθροισμα των στοιχείων της 1ης στήλης όπου αντίστοιχα στη 2η υπάρχει περιττός αριθμός! (Διόρθωση στις παλιές εκδόσεις βιβλίων!) 45 19 45 90 9 90 180 4 360 2 720 1 720 855 Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Πολλαπλασιασμός αλά ρωσικά Φυσική γλώσσα κατά βήματα Ανάπτυξη Εφαρμογών
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.4.5 Δομή επανάληψης Πολλαπλασιασμός αλά ρωσικά Ψευδοκώδικας Ανάπτυξη Εφαρμογών