Εισαγωγή στο Προγραμματισμό Αλγόριθμοι Ανδρέας Σάββα
Τι είναι Αλγόριθμος Είναι η βήμα προς βήμα λύση ενός προβλήματος.
Μαθηματικό παράδειγμα Πρόβλημα: Ποια είναι η τιμή του x στην πιο κάτω εξίσωση; 5x – 10 = 30 Αλγόριθμος (Λύση): Βήμα 1: 5x = 30 + 10 Βήμα 2: 5x = 40 Βήμα 3: x = 40/5 Βήμα 4: x = 8
Φτιάχνω ένα κέικ Βήμα 1: Ανάβω το φούρνο σε ψηλή θερμοκρασία για να προθερμανθεί. Βήμα 2: Ανακατεύω τα αυγά με τη ζάχαρη. Βήμα 3: Προσθέτω το βούτυρο, το αλεύρι και τα υπόλοιπα υλικά. Βήμα 4: Ανακατεύω για 5 λεπτά. Βήμα 5: Βάζω το μίγμα σε ένα ταψί και το ψήνω σε μέτριο φούρνο για 40 λεπτά. Βήμα 6: Το βγάζω από τον φούρνο και το αφήνω να κρυώσει.
Αλγόριθμοι Πρόβλημα: Πώς θα πάει το ρομπότ στο χαρτοφύλακα; Αλγόριθμος Βήμα 1: Προχώρα 3 τετράγωνα και στρίψε δεξιά. Βήμα 2: Προχώρα 1 τετράγωνο και στρίψε αριστερά. Βήμα 3: Προχώρα 2 τετράγωνα και στρίψε αριστερά. Βήμα 4: Προχώρα 2 τετράγωνα και στρίψε δεξιά. κλπ. Πρόβλημα: Πώς θα πάει το ρομπότ στο χαρτοφύλακα;
Τρόποι περιγραφής Αλγορίθμου (Μορφές Αλγόριθμου) Λεκτική περιγραφή Ψευδογλώσσα Λογικό διάγραμμα ή διάγραμμα ροής
Λεκτική περιγραφή αλγορίθμου Παράδειγμα: Γράψετε έναν αλγόριθμο που να διαβάζει και να υπολογίζει τον μέσο όρο τριών αριθμών. Αλγόριθμος: Βήμα 1: Ζήτα τον πρώτο αριθμό. Βήμα 2: Ζήτα τον δεύτερο αριθμό. Βήμα 3: Ζήτα τον τρίτο αριθμό. Βήμα 4: Πρόσθεσε τους τρεις αριθμούς για να βρεις το άθροισμα. Βήμα 5: Διαίρεσε το άθροισμα δια το 3. Βήμα 6: Παρουσίασε το αποτέλεσμα.
Λογικά Διαγράμματα ή Διαγράμματα Ροής Αρχή – Τέλος Είσοδος – Έξοδος δεδομένων Επεξεργασία Επεξεργασία – Εκτέλεση Υποπρογράμματος Έλεγχος συνθήκης Ροή Πληροφοριών Σχόλια
Λογικό Διάγραμμα Δ Ζ Athrisma a MesosOros b c Αρχή Ζήτα a Ζήτα b Athrisma a + b + c MesosOros athrisma / 3 Τύπωσε MesosOros Τέλος
Δομές Για τη λύση ενός προβλήματος χρησιμοποιούμε τρεις βασικές δομές: Διαδοχική δομή (sequential) Δομή Διακλάδωσης (conditional) Επαναληπτική Δομή (repetitive)
Παράδειγμα 2 Γράψετε έναν αλγόριθμο που να διαβάζει δύο αριθμούς και να εμφανίζει το κατάλληλο μήνυμα στην οθόνη αν είναι ή όχι ίσοι. Ζήτα a. Ζήτα b. Αν a = b τότε εμφάνισε μήνυμα στην οθόνη ότι οι δύο αριθμοί είναι ίσοι. αλλιώς εμφάνισε μήνυμα στην οθόνη ότι οι δυο αριθμοί δεν είναι ίσοι.
Δομή Διακλάδωσης Αρχή Ζήτα a Ζήτα b ΟΧΙ a = b; ΝΑΙ Τύπωσε: ”Οι δύο αριθμοί δεν είναι ίσοι” Τύπωσε: ”Οι δύο αριθμοί είναι ίσοι” Τέλος
Παράδειγμα 3 Γράψετε έναν αλγόριθμο που να διαβάζει δύο αριθμούς a και b και να βρίσκει το άθροισμα όλων των ακέραιων αριθμών από το a μέχρι το b, π.χ. a = 3, b = 7, Sum = 3 + 4 + 5 + 6 + 7 = 25 a = 1, b = 100, Sum = 1 + 2 + 3 + … + 100 = 5,050 Ζήτα a, b Sum 0 Metritis a Αν ο Metritis > b τότε πήγαινε στο βήμα 8 Sum Sum + Metritis Metritis Metritis + 1 Πήγαινε στο βήμα 4 Παρουσίασε Sum
Επαναληπτική Δομή Αρχή Ζήτα a, b Sum 0 i a i είναι ο Μετρητής TRUE i > b ? TRUE FALSE Sum Sum + i i i + 1 Παρουσίασε Sum Τέλος
Ασκήσεις Σχεδιάστε το λογικό διάγραμμα των πιο κάτω προβλημάτων: Παρουσίασε των μισθό ενός υπαλλήλου, αν το όνομα, οι ώρες εργασίας και ο μισθός του ανά ώρα δίνονται. Αν οι ώρες εργασίας του υπερβαίνουν τις 40, ο μισθός που παίρνει για αυτές τις ώρες είναι διπλάσιος του κανονικού. Δίνονται 4 αριθμοί X1, X2, X3, και X4, βρείτε και παρουσιάστε τον μικρότερο. Δίνονται δύο αριθμοί A και B. Βρείτε και παρουσιάστε το υπόλοιπο τις διαίρεσης τους B:A. (Βοήθημα: Συνεχίστε να αφαιρείτε το A από το B μέχρι να βρείτε ένα αριθμό πιο μικρό από το A. Π.χ. Για τη διαίρεση 20:6 το υπόλοιπο είναι 20 – 6 = 14; 14 – 6 = 8; 8 – 6 = 2; τότε Υπόλοιπο = 2).