Κεφάλαιο 2 - Εισαγωγή
Το κεφάλαιο 2 αναφέρεται στην έννοια του αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.
Τα πέντε κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος είναι:
Να έχει δεδομένα εισόδου που θα επεξεργαστεί
Να περιέχει απλές εντολές (αποτελεσματικότητα)
Κάθε εντολή να ορίζεται χωρίς αμφιβολία ως προς την εκτέλεσή της, π.χ. διαίρεση με το μηδέν (καθοριστικότητα)
Να ολοκληρώνεται μετά από πεπερασμένο αριθμό βημάτων (περατότητα)
Ένας αλγόριθμος μπορεί να αναπαρασταθεί με:
Ελεύθερο κείμενο
Διαγραμματικές τεχνικές (διάγραμμα ροής)
Φυσική γλώσσα κατά βήματα
Κωδικοποίηση (πρόγραμμα γραμμένο σε ψευδογλώσσα είτε σε γλώσσα προγραμματισμού)
Για την συγγραφή ενός αλγορίθμου χρησιμοποιούνται:
Μεταβλητές: Πρόκειται για ένα γλωσσικό αντικείμενο (το οποίο μπορούμε να χαρακτηρίσουμε και όνομα) όπου χρησιμοποιείται για να αναπαραστήσει ένα στοιχείο εισόδου. Μπορούμε να θεωρήσουμε τις μεταβλητές ως θέσεις μνήμης με συγκεκριμένο όνομα όπου περιέχεται μια τιμή η οποία και μπορεί να μεταβάλλεται κατά την εκτέλεση του αλγορίθμου. Οι μεταβλητές διακρίνονται σε:
Αριθμητικές: που αποθηκεύουν τιμές όπως 70, -32,5 κ.ο.κ.
Αλφαριθμητικές: που αποθηκεύουν τιμές όπως "Ιάσονας", " abc " κ.ο.κ.
Τα ονόματα των μεταβλητών μπορούν να περιλαμβάνουν πεζά ή κεφαλαία γράμματα, αριθμούς και το χαρακτήρα κάτω παύλα ( _ ). Το όνομα πρέπει να ξεκινά από χαρακτήρα και όχι αριθμό χωρίς κενά. Αν επιθυμούμε την ύπαρξη δυο λέξεων τότε χρησιμοποιείται ή κάτω παύλα π.χ. Μέγιστη_Τιμή. Δεν επιτρέπεται να χρησιμοποιηθεί ως όνομα μεταβλητής κάποια από τις δεσμευμένες λέξεις της γλώσσας προγραμματισμού ή ακόμη και της ψευδογλώσσας που χρησιμοποιείται για την απεικόνιση του αλγορίθμου
Ουσιαστικά, χρησιμποποιούμε μια μεταβλητή για να αποθηκεύσουμε σε αυτήν κάποια τιμή (είσοδο δεδομένων από το χρήστη ή το αποτέλεσμα κάποιας έκφρασης). Όταν χρησιμοποιούμε την μεταβλητή επικαλούμαστε την τιμή που αυτή περιέχει
Αποδεκτά ονόματα μεταβλητών: τιμή1, μέσος_όρος, ΜέγιστηΤιμή, Α10
Μη αποδεκτά ονόματα μεταβλητών: 12a, μέση τιμή
Σταθερές: Πρόκειται για προκαθορισμένες τιμές που παραμένουν αμετάβλητες κατά την εκτέλεση του αλγορίθμου. Και αυτές διακρίνονται σε αριθμητικές, αλφαριθμητικές και λογικές. Η έννοια της σταθεράς θα γίνει καλύτερα αντιληπτή στο κεφάλαιο 7
Τελεστές: Πρόκειται για τα γνωστά σύμβολα των πράξεων
Αριθμητικοί: +, -, *, /, ^ για την ύψωση σε δύναμη π.χ. το 82 συμβολίζεται με 8^2. Ακόμη υπάρχουν και οι τελεστές div και mod. Ο τελεστής div επιστρέφει το πηλίκο της διαίρεσης δυο αριθμών και το mod το υπόλοιπο αντίστοιχα. Έτσι, 13 div 3 = 4 ενώ 13 mod 3 = 1. Ο τελεστής mod χρησιμοποιείται στις περιπτώσεις όπου πρέπει να διερευνηθεί αν κάποιος αριθμός είναι άρτιος ή περιττός, δηλαδή αν είναι πολλαπλάσιο του 2 ή όχι. Έτσι, 4 mod 2 = 0 ενώ 13 mod 2 = 1
Παρατηρήσεις για τον τελεστή mod : Οι τελεστές δεν παρουσιάζονται επαρκώς στο βιβλιο. Από το βιβλίο μαθηματικών της Β' Λυκείο (σελίδα 176), παρατηρούμε οτι στην πράξη a mod b, το b πρέπει να είναι θετικός αριθμός ενώ το a μπορεί να είναι και αρνητικό. Έτσι:
2 mod 5 = 2 9 mod 5 = 4
7 mod 5 = 2 -1 mod 5 = 4
-3 mod 5 = 2 -7 mod 5 = 4
Συγκριτικοί: >, <, >= , <=, = και <>
Λογικοί: και, ή, όχι οι οποίοι συνδέουν συνθήκες. Το αποτέλεσμα είναι πάντα μια λογική τιμή: αληθής ή ψευδής
Εκφράσεις: Συνδυασμοί μεταβλητών ή σταθερών και τελεστών. Το αποτέλεσμα μιας έκφρασης αποδίδεται σε μια μεταβλητή με εκχώρηση τιμής π.χ. τιμή ← α + β, όπου το αποτέλεσμα του αθροίσματος των τιμών των μεταβλητών α και β θα εκχωρηθεί στη μεταβλητή τιμή (το βελάκι δείχνει την ενέργεια). Η τελική τιμή μια εκχώρησης εξαρτάται από την ιεραρχία των πράξεων (γνωστή από τα μαθηματικά) και τις παρενθέσεις
Αποδεκτές εκφράσεις: τιμή ← 5, τιμή ← "αρκετά", τιμή ← α * β, τιμή ← τιμή + 3
Μη αποδεκτές εκφράσεις: τιμή ← 5 + "χ", τιμή ← ασ ← 6, α + τιμή ← 6
Διάγραμμα ροής. Ένας από τους δυνατούς τρόπους απεικόνισης αλγορίθμων είναι και το διάγραμμα ροής. Τα σύμβολα αυτά είναι:
Δομή ακολουθίας
Όταν για την εκτέλεση ενός αλγορίθμου απαιτείται σειριακή εκτέλεση εντολών
Παράδειγμα 1: Ανάγνωση και εκτύπωση 2 αριθμών.
Αλγόριθμος Παράδειγμα_1 |
Σχολιασμός διαγράμματος ροής: |
- Οι εντολές εκτελούνται σειριακά με τη φορά των βελών - Πάντοτε θα υπάρχει 1 έλλειψη για αρχή και μία για τέλος |
Σχολιασμός ψευδοκώδικα:
Οι εντολές εκτελούνται σειριακά όπως παρατίθενται στον αλγόριθμος
Στην αρχή του αλγορίθμου πραγματοποιείται η είσοδος των δεδομένων και τελευταία ενέργεια είναι η έξοδος – εκτύπωσή τους
Πάντοτε ξεκινάμε με τη λέξη Αλγόριθμος και ακολουθεί το όνομα του αλγορίθμου. Το όνομα ενός αλγορίθμου ακολουθεί τους ίδιους κανόνες με το όνομα μιας μεταβλητής. Επιπλέον, δεν μπορεί να χρησιμοποιείται ίδιο όνομα για μια μεταβλητή και για τον αλγόριθμο. Αυτές οι λέξεις καθώς και όλες όσες είναι έντονα γραμμένες καλούνται δεσμευμένες λέξεις και δεν επιτρέπται να παρουσιαστούν αλλιώς, ούτε να χρησιμοποιηθούν με λάθος τρόπο
Για την χρησιμοποίηση της τιμής κάποιας μεταβλητής πρέπει οπωσδήποτε να έχει προηγηθεί εκχώρηση τιμής σε αυτή τη μεταβλητή είτε με εντολή εκχώρησης είτε με είσοδο δεδομένων απο το χρήστη. Πιο πρακτικά, δεν μπορούμε να χρησιμοποιήουμε μια μεταβλητή στο δεξί τμήμα μιας εντολής εκχώρησης ή σε μια εκτύπωση αν προηγουμένως δεν έχει λάβει τιμή στον αλγόριθμο - αρχικοποίηση
Η πρώτη ή οι πρώτες εντολές πραγματοποιούν είσοδο δεδομένων. Αυτό μπορεί να γίνει με την εντολή Διάβασε ακολουθούμενη από τα ονόματα μεταβλητών ή με την εντολή Δεδομένα (δες αλγόριθμο)
Όταν η εκφώνηση αναφέρει ρητώς την ανάγνωση των δεδομένων από το χρήστη τότε χρησιμοποιείται η εντολή Διάβασε. Σε διαφορετική περίπτωση π.χ. όταν η εκφώνηση αναφέρει «έστω μεταβλητή Ν που περιέχει το πλήθος αριθμών», τότε μπορούμε να εισάγουμε την τιμή της μεταβλητής Ν στον αλγόριθμό μας με την εντπλή Δεδομένα. Όμοια για την έξοδο και τις εντολές Εκτύπωσε (για αποστολή εκτύπωσης στον εκτυπωτή), Εμφάνισε (για εμφάνιση των στοιχείων στην οθόνη) και της της εντολής Αποτελέσματα