Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα. Είδαμε τι είναι πρόβλημα, τι είναι αλγόριθμος και τέλος τι είναι πρόγραμμα. Πρέπει να μπορείτε να ξεχωρίζετε αυτές τις έννοιες και να αντιλαμβάνεστε ότι όταν μιλάμε για υπολογιστικά προβλήματα και μόνον τότε αφού τα κατανοήσουμε αναλαμβάνουμε να τα επιλύσουμε με το μυαλό μας πρώτα και κατόπιν παίρνουμε μολύβι και χαρτί και γράφουμε με βήματα κωδικοποιημένα (αλγόριθμος = ψευδογλώσσα) τη λύση που βρήκαμε. Αφού λοιπόν γράψουμε σε κωδικοποιημένη μορφή την λύση του προβλήματος μας περνάμε σε μια γλώσσα προγραμματισμού (όποια ξέρουμε και μας βολεύει καλύτερα) τη λύση αυτή και βλέπουμε πως με τη χρήση του προγράμματος αυτού θα επιλύω το συγκεκριμένο πρόβλημα. Όλα τα προβλήματα (τα υπολογιστικά πάντα) λύνονται με τη χρήση 3 και μόνον δομών. Οι δομές αυτές είναι: 1. Η δομή ακολουθίας ή σειριακή δομή Σε αυτή τη δομή οι εντολές στον αλγόριθμο ή το πρόγραμμα εκτελούνται όλες με τη σειρά. Σε αυτή την περίπτωση δεν υπάρχει εντολή που δεν εκτελείται. 2. Η δομή επιλογής Σε αυτή τη δομή υπάρχουν εντολές που δεν εκτελούνται αφού κάποια συνθήκη είναι αυτή που θα κρίνει αν θα εκτελεστούν ή όχι μια σειρά εντολών. 3. Τέλος υπάρχει και η δομή επανάληψης που θα δούμε αργότερα. Πρέπει να γνωρίζετε τι είναι μεταβλητές, τι είναι τελεστές (σύμβολα πράξεων), πόσων ειδών μεταβλητές γνωρίζετε, πόσων ειδών τελεστές γνωρίζετε. Πρέπει να γνωρίζετε με πόσους τρόπους αναπαρίσταται ένας αλγόριθμος (διαγραμματικά και με ψευδοκώδικα) Αφού λοιπόν γνωρίζετε καλά τα παραπάνω θα πρέπει να μπορείτε να λύνεται ασκήσεις απλές έως και λίγο πιο πολύπλοκες με τη χρήση των παραπάνω δομών. Από τους τελεστές πρέπει να γνωρίζετε ότι διακρίνουμε 3 είδη τελεστών: 1. Τους αριθμητικούς (δηλ τα σύμβολα των πράξεων) Αυτοί είναι: +(πρόσθεση), -(αφαίρεση), *(πολ/μός), / (διαίρεση), ^(ύψωση σε δύναμη), DIV (ακέραιο πηλίκο μιας διαίρεσης) και τέλος MOD(ακέραιο υπόλοιπο μιας διαίρεσης) Για τους αριθμητικούς τελεστές ισχύει η προτεραιότητα των πράξεων όπως και στα μαθηματικά. Δηλαδή: α. ^ ύψωση σε δύναμη β. *,/,DIV,MOD γ. +,- Βεβαίως μπορείτε να χρησιμοποιήσετε και παρενθέσεις όπως γνωρίζετε από τα μαθηματικά. Ας δούμε μερικά παραδείγματα με MOD και DIV.
1. 15 DIV 6 = 2 (Δηλ το 6 χωράει 3 φορές στο 15 ) 2. 15 MOD 6 = 3 (Δηλ το υπόλοιπο της διαίρεσης 15:6 είναι 3) 3. 8 DIV 5 = 1 8 MOD 5 = 3 4. 8 DIV 3 = 2 8 MOD 3 = 2 5. 9 DIV 5 = 1 9 MOD 5 = 4 6. 10 DIV 8 = 1 10 MOD 8 = 2 Ας δούμε που χρησιμοποιούμε τα MOD και DIV σε προγράμματα. Έστω ότι διαβάζω έναν διψήφιο αριθμό οποιονδήποτε ανάμεσα στο [10 99]. Θέλω να βρώ τις μονάδες και τις δεκάδες του αριθμού Άρα θα γράψω Διάβασε χ (όπου χ ο διψήφιος αριθμός) δεκάδες χ DIV 10 (οι δεκάδες του διψήφιου αριθμού είναι χ DIV 10) μονάδες χ MOD 10 (οι μονάδες του διψήφιου αριθμού είναι χ MOD 10) Πράγματι έστω ο αριθμός είναι ο 78. Οι δεκάδες του είναι 7 οι μονάδες του 8. Άρα πράγματι 78 DIV 10 = 7 και 78 MOD 10 = 8. Αν τώρα μου ζητηθεί να βρώ τον ανάποδο του 78 αυτός είναι ο 87 ή με λίγα λόγια ο μονάδες * 10 + δεκάδες. Βρέστε το ίδιο και για τριψήφιο αριθμό. Δηλ αν ο τριψήφιος σας είναι ο 738 να σας εμφανίζει ο αλγόριθμός τον 837. Αν είναι ο 854 να εμφανίζει το 458. Ας πάμε να δούμε κάποιον αλγόριθμο με δομή ακολουθίας. 1. Γράψτε αλγόριθμο (ψευδοκώδικα) όπου θα διαβάζετε την βάση (β) και το ύψος (υ) ενός τριγώνου και θα βρίσκετε το εμβαδό του Ε. Αλγόριθμος Εμβ_τριγωνου Διάβασε β,υ Ε (1/2)*β*υ Εμφάνισε Ε Τέλος 2. Το ίδιο το παραπάνω σε πρόγραμμα ΠΡΟΓΡΑΜΜΑ Εμβ_τριγωνου ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:β,υ,Ε ΑΡΧΗ ΔΙΑΒΑΣΕ β,υ
Ε (1/2)*β*υ ΓΡΑΨΕ Ε ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 3. Να γράψετε αλγόριθμο στον οποίο θα διαβάζετε μια τιμή χ και θα βρίσκει την τιμή της συνάρτησης ψ=3χ 2-7χ+6 Αλγόριθμος τιμησυν Διάβασε χ ψ 3*χ^2-7*χ+6 Εμφάνισε ψ Τέλος τιμησυν Νομίζω τα παραπάνω αρκούν για την κατανόηση της δομής ακολουθίας. Βεβαίως θα πρέπει να γνωρίζετε να γράφετε τον αλγόριθμο στη δομή ακολουθίας και διαγραμματικά (διάγραμμα ροής) Τέλος θα πρέπει να γνωρίζεται την δομή επιλογής και κυρίως την δομή απλής επιλογής και δομή σύνθετης επιλογής. Ας δούμε μερικές ασκήσεις 1. Να γραφεί αλγόριθμος στον οποίο θα διαβάζουμε έναν αριθμό και θα βρίσκουμε την απόλυτη τιμή του. Αλγόριθμος απ_τιμή Διάβασε α Αν α<0 τότε α (-1)*α Τελος_Αν Εμφάνισε α Τέλος απ_τιμή Εδώ αν ο αριθμός α είναι θετικός τότε η αν δεν εκτελείτε και μας δείχνει κατευθείαν τον ίδιον τον αριθμό. Αν ο αριθμός είναι αρνητικός τότε εκτελείται η αν και στην μεταβλητή αν τοποθετείται η απόλυτη τιμή του α δηλαδή η θετική της τιμή. Και κατόπιν αυτή εμφανίζεται. Δηλαδή είτε ο α είναι θετικός είτε αρνητικός εμφανίζεται πάντα ο θετικός άρα η απόλυτη τιμή του. 2. Να γραφεί αλγόριθμος στον οποίο θα διαβάζουμε δύο αριθμούς και θα εμφανίζεται ο μεγαλύτερος από τους δύο. Αλγόριθμος μεγαλυτερος Διάβασε α,β Αν α>β τότε
Εμφάνισε α Αλλιώς Εμφάνισε β Τέλος_Αν Τέλος μεγαλύτερος Εδώ να σημειώσουμε ότι αλλιώς σημαίνει όχι α>β δηλ α<β. Ασκήσεις για το σπίτι 1. Να γραφτεί αλγόριθμος στον οποίο θα διαβάζετε 3 αριθμούς και θα εμφανίζεται ο μεγαλύτερος από αυτούς. Σημείωση Σε αυτή την περίπτωση εργαζόμαστε ως εξής: Θεωρώ ότι ο μεγαλύτερος είναι ο α και τον ονομάζω μαχ Δηλ μαχ α Αν β>α τοτε μαχ β Δηλαδή εδώ αν το β είναι > α στη θέση του μαχ βάζω το β Τέλος_αν Αν γ>β τότε μαχ γ Τέλος_αν Ας πάρω 3 τυχαίους αριθμούς 4,17,8 Σύμφωνα με το παραπάνω Βάζω στο μαχ 4 Μετά ελέγχω αν το 17>4. Ισχύει Άρα θα βάλω μαχ 17 Στο τέλος ελέγχω αν 17 > 8 Δεν είναι άρα δεν θα εκτελεστεί η 2 Αν και επομένως θα μείνει το μαχ 17. Δοκιμάστε να βρείτε το μέγιστο ανάμεσα σε 4 αριθμούς και τον μικρότερο ανάμεσα τους. 2. Να γραφτεί αλγόριθμος στον οποίο θα δίνουμε έναν αριθμό α. Έστω ότι ο αριθμός αυτός μπορεί να πάρει μόνον τις τιμές 1,2,3,4,5,6,7. Ανάλογα λοιπόν με την τιμή που θα πάρει ο αριθμός θα εμφανίζεται και η αντίστοιχη ημέρα της εβδομάδας. Δηλ αν ο αριθμός που θα δοθεί είναι 1 τότε θα εμφανιστεί η ημέρα Δευτέρα. Αν ο αριθμός που θα δοθεί θα εμφανιστεί Τρίτη κοκ. 3. Να γραφτεί αλγόριθμος ο οποίος θα διαβάζει έναν αριθμό και θα μου εμφανίζει τον αντίστροφο του. Συμβουλή
Βρείτε ποια είναι η συνθήκη σας. (Αν ο αριθμός είναι 0 ποιος είναι ο αντίστροφος του;) 4. Να γραφτεί αλγόριθμος ο οποίος θα βρίσκει την τιμή της συνάρτησης ψ = 3 5 1 για κάθε χ Πού βρίσκεται η παγίδα. Για ποια τιμή του χ δεν υπάρχει λύση, άρα αυτή είναι και η συνθήκη μας. Να θυμίσω ότι η ύλη μας είναι το από το Κεφ1 του site μέχρι τη δομή επανάληψης.