ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός του αλγορίθμου και να περιγραφεί σύντομα η προέλευση του όρου. Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών και κανόνων (όχι άπειρες) που στοχεύουν στην επίλυση ενός προβλήματος. Οι ενέργειες αυτές θα πρέπει να είναι σαφώς καθορισμένες και να τερματίζoυν σε πεπερασμένο χρόνο. Με άλλα λόγια ο αλγόριθμος είναι η σαφής περιγραφή των βημάτων για την ολοκλήρωση μιας διαδικασίας. Ο όρος αλγόριθμος ήταν σπάνιος όρος ο οποίος σήμαινε «συστηματική διαδικασία αριθμητικών χειρισμών» και προήλθε από μια μελέτη ενός Πέρση μαθηματικού. Με την ανάπτυξη των υπολογιστών ο αλγόριθμος σημαίνει συστηματική διαδικασία επίλυση προβλημάτων με υπολογιστή. 2.2 Να περιγραφούν τα κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος.
Τα κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος είναι: 1. Είσοδος: κάθε αλγόριθμος πρέπει να έχει καμία, μία ή περισσότερες τιμές δεδομένων ως είσοδο. 2. Έξοδος: ο αλγόριθμος πρέπει να παράγει τουλάχιστον ένα αποτέλεσμα, είτε προς τον χρήστη είτε προς έναν άλλο αλγόριθμο. 3. Καθοριστικότητα: τα βήματα του αλγορίθμου πρέπει να είναι σαφώς καθορισμένα προς τον τρόπο εκτέλεσής τους. 4. Περατότητα: ο αλγόριθμος πρέπει να τερματίζει μετά από ένα πεπερασμένο αριθμό βημάτων. 5. Αποτελεσματικότητα: κάθε εντολή του αλγορίθμου να είναι απλή και να είναι εκτελέσιμη. 2.3 Να περιγραφεί ο αλγόριθμος δημιουργίας Ελληνικού γλυκού καφέ με βήματα. Βρες το μπρίκι. Άνοιξε το συρτάρι όπου υπάρχουν ο καφές και η ζάχαρη.. Τοποθέτησε στο μπρίκι μια κουταλιά καφέ. Τοποθέτησε στο μπρίκι δυο κουταλιές ζάχαρη. Πρόσθεσε ένα φλιτζάνι νερό. Ανακάτεψε τον. Ψήσε τον καφέ μέχρι να φουσκώσει. Σέρβιρέ τον. 2.4 Γιατί η έννοια του αλγόριθμου είναι θεμελιώδης για την επιστήμη της Πληροφορικής; Η μελέτη των αλγορίθμων είναι βασική στην Πληροφορική, γιατί είναι η πρώτη ύλη για τη μελέτη και εμβάθυνση, σε πάρα πολλές γνωστικές περιοχές της επιστήμης της Πληροφορικής. 2.5 Από ποιες σκοπιές μελετά η πληροφορική τους αλγορίθμους; Η πληροφορική μελετά τους αλγορίθμους από τις ακόλουθες σκοπιές : 1. Υλικού: Η ταχύτητα εκτέλεσης (ολοκλήρωσης) ενός αλγορίθμου εξαρτάται από την αρχιτεκτονική και την ταχύτητα του υπολογιστή που εκτελείται. 2. Γλωσσών Προγραμματισμού: Η γλώσσα προγραμματισμού και οι δυνατότητες που προσφέρει επηρεάζει τη δομή και τις εντολές του αλγορίθμου. Για παράδειγμα οι γλώσσες χαμηλού επιπέδου (π.χ. C) είναι ταχύτερες από τις γλώσσες υψηλού επιπέδου (π.χ. Pascal). 3. Θεωρητική: Ελέγχεται αν πράγματι υπάρχει κάποιος αποδοτικός αλγόριθμος για την επίλυση ενός προβλήματος. 4. Αναλυτική: Μελετώνται οι υπολογιστικοί πόροι που απαιτούνται για την εκτέλεση ενός αλγορίθμου. 2.6 Με ποιους τρόπους μπορεί να περιγραφεί ένας αλγόριθμος; Ποιος είναι ο καλύτερα δομημένος τρόπος; Οι συνήθεις τρόποι αναπαράστασης ενός αλγορίθμου είναι:
1. Με ελεύθερο κείμενο, δηλ. περιγραφή σε μορφή έκθεσης. Αποτελεί τον λιγότερο επεξεργασμένο και τον πιο αδόμητο τρόπο παρουσίασης ενός αλγορίθμου. Μπορεί να οδηγήσει σε μη εκτελέσιμο αλγόριθμο, γιατί μπορεί εύκολα να παραβιαστεί το κριτήριο της αποτελεσματικότητας 2. Με διαγραμματικές τεχνικές, που συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου. Η πιο γνωστή διαγραμματική τεχνική, είναι το διάγραμμα ροής. Οι διαγραμματικές τεχνικές χρησιμοποιούνται όλο και πιο σπάνια στην πράξη. 3. Με φυσική γλώσσα κατά βήματα, με τον κίνδυνο όμως να παραβιασθεί το κριτήριο τηςκαθοριστηκότητας των αλγορίθμων 4. Με κωδικοποίηση, δηλαδή με ένα πρόγραμμα γραμμένο, είτε σε ψευδογλώσσα είτε σε κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο. Ο πιο καλά δομημένος τρόπος είναι η κωδικοποιηση γιατί οι εντολές είναι σαφώς καθορισμένες και μπορεί να εκτελεσθεί άμεσα από τον υπολογιστή. 2.7 Τι είναι οι μεταβλητές και τι οι σταθερές; Μεταβλητές : Μία μεταβλητή είναι μία θέση στον υπολογιστή με συγκεκριμένο όνομα, που χρησιμοποιήτε για να παραστήσει ένα στοιχείο δεδομένου. Στην μεταβλητή εκχωρείται μία τιμή, η οποία μπορεί να αλλάζει κατά την διάρκεια εκτέλεσης του αλγορίθμου. Σταθερές : Οι σταθερές είναι προκαθορισμένες τιμές στην μνήμη ενός υπολογιστή που παραμένουν αμετάβλητες σε όλη την διάρκεια της εκτέλεσης ενός αλγορίθμου. 2.8 Σε ποιες κατηγορίες διακρίνονται οι μεταβλητές και οι σταθερές Ανάλογα με το είδος της τιμής που λαμβάνουν οι μεταβλητές και οι σταθερές διακρίνονται σε : 1. Αριθμητικές οι οποίες χωρίζονται σε : Ακέραιες, οι οποίες έχουν σαν τιμές ακέραιους αριθμούς π.χ 10, -20, 0, 1234 Πραγματικές, οι οποίες παίρνουν τιμές πραγματικούς αριθμούς π.χ. 10.7, 20.2,-2.5,0,0.8 2. Αλφαριθμητικές ή Χαρακτήρας. Οι μεταβλητές αυτού του τύπου δέχονται σαν τιμές έναν ή περισσότερους χαρακτήρες και οι τιμές τους περικλείονται σε διπλά εισαγωγικά, Π.χ. "Ανάπτυξη", "Παράδειγμα", "π1", "Τι ημερομηνία έχουμε;". 3. Λογικές, οι οποίες παίρνουν μόνο δυο διαφορετικές τιμές, ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ και σημαίνουν αντίστοιχα ότι κάτι ισχύει ή όχι. 2.9 Ποιοι είναι οι κανόνες ονοματολογίας μεταβλητών, σταθερών και αλγορίθμων; Οι κανόνες που ακολουθούμε για να ονομάζουμε σωστά τις μεταβλητές, τις σταθερές και τους αλγορίθμους είναι οι ακόλουθοι: 1. Τα ονόματα μπορούν να περιέχουν μόνο,.συνδυασμούς από γράμματα (πεζά ή κεφαλαία), αριθμοί και την κάτω παύλα (_). 2. Ένα όνομα πρέπει να περιέχει τουλάχιστον ένα γράμμα και να αρχίζει από γράμμα. 3. Δεν μπορούν να χρησιμοποιηθούν ως ονόματα οι δεσμευμένες λέξεις, δηλ. λέξεις όπως το Διάβασε, Εμφάνισε κ.α. οι οποίες έχουν συγκεκριμένη λειτουργία στον αλγόριθμο.
2.10 Τι είναι οι τελεστές; Σε ποιες κατηγορίες διακρίνονται και ποια είναι η ιεραρχία τους ; Οι τελεστές είναι τα σύμβολά που χρησιμοποιούνται στις διάφορες πράξεις. Διακρίνονται στις εξής κατηγορίες 1. Αριθμητικοί τελεστές Οι αριθμητικοί τελεστές και η σειρά ιεράρχησης τους δίνονται παρακάτω : 1) Ύψωση σε δύναμη ( ^ ) 2) Διαίρεση ( / ) 3) Πολλαπλασιασμός ( * ) 4) Πηλίκο ακέραιης διαίρεσης δύο ακέραιων αριθμών ( div ) 5) Υπόλοιπο ακέραιης διαίρεσης δύο ακεραίων αριθμών ( mod ) 6) Πρόσθεση ( + ) 7) Αφαίρεση ( - ) 2. Λογικοί τελεστές 3. Τελεστές σύγκρισης 2.11 Ποιες είναι οι αλγοριθμικές συνιστώσες. Οι αλγοριθμικές συνιστώσες αναφέρονται στον τρόπο που εκτελείται ένα σύνολο εντολών ενός αλγορίθμου. Υπάρχουν τρεις αλγοριθμικές συνιστώσες : 1. Ακολουθιακή δομή 2. Δομή Επιλογής 3. Δομή Επανάληψης 2.12Πότε χρησιμοποιείται η ακολουθιακή δομή και από ποιες εντολές αποτελείτε Η ακολουθιακή δομή εντολών (σειριακά βήματα) χρησιμοποιείται για την αντιμετώπιση απλών προβλημάτων όπου είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών. Αποτελείτε από συνδυασμό τριών εντολών. 1. Διάβασε ( εντολή εισόδου ) 2. (εκχώρηση ή εντολή υπολογισμού) 3. Εμφάνισε ή Εκτύπωσε ή Γράψε (εντολή εξόδου) Στην ακολουθιακή δομή οι εντολές εκτελούνται με την σειρά, δηλ αρχικά εκτελείται η εντολή1 κατόπιν η ενολή2 κ.ο.κ. 2.13 Να εξηγηθεί η εντολή Διάβασε. Η εντολή εισόδου διάβασε χρησιμοποιείται για την εισαγωγή δεδομένων στον αλγόριθμο. Η σύνταξη της εντολής είναι η εξής: Διάβασε Μεταβλητή!, Μεταβλητή2,..., ΜεταβλητήΝ Η εντολή διάβασε, διαβάζει μια ή περισσότερες τιμές που πληκτρολόγησε ο χρήστης και τις εισάγει στη μεταβλητή ή τις μεταβλητές που ακολουθούν την εντολή. Συνεπώς, κάθε φορά που θα βλέπουμε την εντολή διάβασε σε έναν αλγόριθμο, θα καταλαβαίνουμε ότι ο χρήστης πρέπει να πληκτρολογήσει τόσες τιμές όσες και οι μεταβλητές.
Αν θέλουμε να διαβάσουμε ένα πλήθος τιμών, δηλ. να δώσουμε τιμή από το πληκτρολόγιο σε ένα πλήθος μεταβλητών, μπορούμε να τις διαβάσουμε όλες μαζί με μία εντολή διάβασε ή να τις διαβάσουμε με πολλές συνεχόμενες εντολές διάβασε. Για παράδειγμα, τα ακόλουθα τμήματα κώδικα είναι ισοδύναμα: 2.14 Να εξηγηθεί η εντολή Εκχώρησης. Η εντολή εκχώρησης ή εντολή υπολογισμού έχει την εξής μορφή: Μεταβλητή Έκφραση Αρχικά γίνεται υπολογισμός της έκφρασης που υπάρχει και το αποτέλεσμα εκχωρείται (αποδίδεται) στη μεταβλητή που βρίσκεται αριστερά. Αριστερά τις εντολής εκχώρησης επιτρέπεται να υπάρχει μόνο ένα όνομα μεταβλητής ενώ δεξιά μπορεί να υπάρχουν σύνθετες εκφράσεις. 2.15 Να εξηγηθεί η εντολή Εμφάνισε. Η εντολή εξόδου Εμφάνισε ή Γράψε εμφανίζει τις πληροφορίες που παράγει ένας αλγόριθμος στην οθόνη του υπολογιστή ενώ η εντολή τύπωσε Εκτύπωσε εκτυπώνει τις πληροφορίες στον εκτυπωτή. Οι πληροφορίες μπορεί να είναι μηνύματα (ακολουθίες χαρακτήρων), τιμές μεταβλητών, ακόμη και ολοκληρωμένες εκφράσεις όπου γίνεται υπολογισμός τους και κατόπιν εμφανίζεται η τιμή τους. Η σύνταξη της εντολής είναι: Εμφάνισε ή Γράψε ή Εκτύπωσε Πληροφορία!, Πληροφορία2,..., ΠληροφορίαΝ Δηλ. την εντολή Εμφάνισε (και τα συνώνυμά της) την χρησιμοποιούμε όταν θέλουμε να εμφανίσουμε κάποιες πληροφορίες στον χρήστη. Όταν οι πληροφορίες είναι σε διπλά εισαγωγικά, τότε εμφανίζεται στον χρήστη το περιεχόμενο που βρίσκεται μέσα στα διπλά εισαγωγικά, ως έχει. Αν οι πληροφορίες είναι εκτός των εισαγωγικών, θεωρούνται μεταβλητές ή εκφράσεις και εμφανίζεται η τιμή τους. 2.16 Τι είναι τα σχόλια σε έναν αλγόριθμο; Τα σχόλια είναι επεξηγηματικές φράσεις που μπορούν να προστεθούν σε οποιοδήποτε σημείο ενός αλγορίθμου. Τα σχόλια εισάγονται με το θαυμαστικό (!). Ότι ακολουθεί το θαυμαστικό θεωρείται επεξήγηση του αλγορίθμου και δεν εκτελείται. Για παράδειγμα ο επόμενος αλγόριθμος περιέχει δυο σχόλια: Αλγόριθμος Παράδειγμα! Διαβάζονται δυο αριθμοί Διάβασε α, β γ α + β! Πρόσθεση αριθμών Εμφάνισε γ Τέλος Παράδειγμα
2.17 Ποια σύμβολα χρησιμοποιούνται στα διαγράμματα ροής; Ένα διάγραμμα ροής αποτελείται από ένα σύνολο γεωμετρικών σχημάτων, όπου το καθένα δηλώνει μία συγκεκριμένη ενέργεια ή λειτουργία, Τα γεωμετρικά σχήματα ενώνονται μεταξύ τους με βέλη, που δηλώνουν τη σειρά εκτέλεσης των ενεργειών αυτών. Τα κυριότερα χρησιμοποιούμενα γεωμετρικά σχήματα είναι τα εξής: 'Έλλειψη : δηλώνει την αρχή και το τέλος του κάθε αλγορίθμου. Ρόμβος: δηλώνει μία ερώτηση με δύο ή περισσότερες εξόδους για απάντηση ΑΡΧΗ ΤΕΛΟΣ ΑΛΗΘΗΣ Ορθογώνιο: δηλώνει την εκτέλεση μίας ή περισσότερων πράξεων. Πλάγιο παραλληλόγραμμο : Δηλώνει είσοδο ή έξοδο στοιχείων ΛΟΓΙΚΗ ΣΥΝΘΗΚ Η ΕΚΤΕΛΕΣΗ ΠΡΑΞΕΩΝ ΕΙΣΟΔΟ Σ ΕΞΟΔΟ Σ Βέλος : Δηλώνει την ροή εκτέλεσης του αλγορίθμου ή ή ή ΨΕΥΔΗΣ ΣΗΜΑΝΤΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ 2 ΟΥ & 7 ΟΥ ΚΕΦΑΛΑΙΟΥ Αν μία τιμή περιέχει διπλά εισαγωγικά, τότε αναφέρεται πάντα σε αλφαριθμιτική μεταβλητή ανεξάρτητα από το τι περιέχει στα διπλά εισαγωγικά. Οι εντολές και τα ονόματα μεταβλητών, σταθερών και αλγορίθμων μπορούν να γράφονται με πεζά ή κεφαλαία γράμματα ή με συνδυασμούς αυτών. Για τον υπολογισμό του DIV πρέπει να διαιρέσουμε τον πρώτο με τον δεύτερο και από το αποτέλεσμα να κρατήσουμε τον ακέραιο. Το MOD δύο ακεραίων αριθμών είναι το υπόλοιπο της ακέραιης διαίρεσης των δύο αριθμών. Για να υπολογίζεται πάντα σωστά πρέπει να κάνουμε την εξής πράξη π.χ. a mod b = a b * π (π: πηλίκο) Πρέπει να χρησιμοποιούμε παρενθέσεις όταν έχουμε κλάσματα για να μην συμβεί κάποιο λάθος. Οι αγκύλες δεν επιτρέπονται να χρησιμοποιούνται ποτέ. Αν σε μία μεταβλητή αποδοθεί τιμή που αντιστοιχεί σε μία κατηγορία μεταβλητής, δεν μπορεί ποιο κάτω στον αλγόριθμο να τις αποδοθεί τιμή κάποιας άλλης κατηγορίας. Για να εμφανιστεί η τιμή μιας μεταβλητής θα πρέπει προηγουμένως να τις έχει αποδοθεί κάποια τιμή με Διάβασε είτε με την εντολή Εκχώρησε. Διαφορετικά η εκτέλεση του αλγορίθμου δεν θα είναι δυνατή και θα οδηγήσει σε λάθος. Για να βοηθήσουμε κάποιον να καταλάβει την λειτουργία του αλγορίθμου πρέπει να εμφανίζονται κατάλληλα μηνύματα όταν ζητούνται τα δεδομένα ή όταν εμφανίζονται τα αποτελέσματα. Βασική Δομή Σύνταξης ενός αλγορίθμου. Βασική Δομή Σύνταξης ενός προγράμματος
Αλγόρθμος Όνομα_Αλγορίθμου ΠΡΟΓΡΑΜΜΑ Όνομα_Προγράμματος Μεταβλητές ΜΕΤΑΒΛΗΤΕΣ Ακέραιες : Μεταβ1,.ΜεταβΝ ΑΚΕΡΑΙΕΣ:Μεταβ1,.ΜεταβΝ Πραγματικές : Μεταβ1, ΜεταβΝ ΠΡΑΓΜΑΤΙΚΕΣ:Μεταβ1, ΜεταβΝ Αλφαριθμιτικές : Μεταβ1, ΜεταβΝ ΧΑΡΑΚΤΗΡΕΣ : Μεταβ1,Μετ Λογικές : Μεταβ1, ΜεταβΝ ΛΟΓΙΚΕΣ : Μεταβ1, ΜεταβΝ Σταθερές ΣΤΑΘΕΡΕΣ Μεταβ = Τιμή Μεταβ = Τιμή Αρχή ΑΡΧΗ Εμφάνισε ΓΡΑΨΕ Διάβασε ΔΙΑΒΑΣΕ. Τέλος Όνομα_Αλγορίθ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΌνομΠρογραμ Τρόπος απεικόνισης των συνηθέστερων μαθηματικών συναρτήσεων Μαθηματικός Τρόπος Αλγοριθμικός τρόπος α α/β β α*β α*β α 2 α^2 Ημίτονο ΗΜ(χ) Συνημίτονο ΣΥΝ(χ) Εφαπτομενη ΕΦ(χ) Τετραγωνική Ρίζα Τ_Ρ(χ) Λογάριθμος ΛΟΓ(χ) e x Ε(χ) Ακέραιο μέρος Α_Μ(χ) Απολυτη τιμή Α_Τ(χ)