ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ"

Transcript

1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ - Γ ΛΥΚΕΙΟΥ) ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ Καθηγητής ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ vczioulas@yahoo.com site url :

2 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΑ ΒΙΒΛΙΟΥ 1. ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ σελ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ σελ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ σελ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ σελ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ σελ ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ σελ ΠΙΝΑΚΕΣ σελ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ σελ. 59 ΠΑΡΑΡΤΗΜΑTA Α. ΤΥΠΟΛΟΓΙΟ ΨΕΥΔΟΓΛΩΣΣΑΣ (Αλγόριθμοι) σελ. 65 Β. ΤΥΠΟΛΟΓΙΟ ΓΛΩΣΣΑΣ (Προγράμματα) σελ. 66 Γ. ΠΙΝΑΚΑΣ ASCII σελ. 67 Δ. ΜΟΝΤΕΛΑ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΙΝΑΚΩΝ σελ. 68 Μονοδιάστατοι Πίνακες σελ. 68 Δισδιάστατοι Πίνακες σελ. 70 Επεξεργασίες κατά γραμμές/στήλες σελ. 71 Τετραγωνικοί Πίνακες σελ. 72 2

3 ΚΕΦ.1 - ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΠΡΟΒΛΗΜΑ Είναι μια κατάσταση η οποία χρήζει αντιμετώπισης λύσης. Η λύση του δεν είναι γνωστή ούτε προφανής. Είναι μια κατάσταση η οποία επιθυμούμε να αλλάξει, ή ένας στόχος που θέλουμε να επιτύχουμε. Προβλήματα συναντάμε τόσο στην καθημερινή ζωή (στον προσωπικό ή κοινωνικό χώρο) όσο και σε διάφορους επιστημονικούς τομείς (π.χ στατιστικές, δημοσκοπήσεις) Παράδειγμα : Το πρόβλημα του έτους 2000 (millennium bug) εντοπιζόταν στο ότι οι υπολογιστές μετρούν την ημερομηνία μόνο με δύο στοιχεία για κάθε συνθετικό της π.χ. η ημερομηνία 8 Σεπτεμβρίου 1985 συμβολίζεται με τον κωδικό Η πρώτη ημέρα κάθε αιώνα συμβολίζεται με πράγμα που αναμένονταν ότι θα προκαλέσει σημαντικά προβλήματα στην ασφαλή λειτουργία των υπολογιστών στην αυγή του 21 ου αιώνα. Παράδειγματα : Μερικά από τα βασικά προβλήματα που αντιμετωπίζει σήμερα ο κόσμος είναι το ενεργειακό πρόβλημα, τα σοβαρά προβλήματα επιδημιών, η τρύπα του όζοντος, ο υποσιτισμός, φυσικά και έντονα καιρικά φαινόμενα, η ανεργία, τα ναρκωτικά, η ξενοφοβία κλπ. ΔΕΔΟΜΕΝΟ Είναι οποιοδήποτε στοιχείο μπορεί να γίνει αντιληπτό σε έναν τουλάχιστον παρατηρητή από μία από τις πέντε αισθήσεις. Είναι από τα στοιχεία του προβλήματος που θεωρούνται γνωστά ή δοσμένα και πάνω σε αυτά μπορούμε να στηριχτούμε για να την εύρεση του ζητούμενου. ΙΔΙΟΤΗΤΕΣ ΔΕΔΟΜΕΝΩΝ Τα δεδομένα είναι αδιαμφισβήτητα στοιχεία του προβλήματος που λειτουργούν σαν βάση για περαιτέρω σκέψεις και ενέργειες. Για αυτό το λόγο πρέπει να διακρίνονται από: Α) Ορθότητα (όχι λάθη) Β) Πληρότητα (όχι ελλιπή στοιχεία) Γ) Σαφήνεια (όχι αμφιβολίες) Όταν σε μια διατύπωση προβλήματος τα δεδομένα είναι ελλιπή ή ασαφή, ο επιλυτής πρέπει να επανέρθει αρκετές φορές θέτοντας ερωτήσεις προκειμένου να κατανοήσει το πρόβλημα. 3

4 ΕΠΕΞΕΡΓΑΣΙΑ ΔΕΔΟΜΕΝΩΝ Είναι διαδικασία κατά την οποία ένας μηχανισμός (ανθρώπινος εγκέφαλος ή ηλεκτρονικός υπολογιστής) δέχεται κάποια δεδομένα, τα επεξεργάζεται με ένα προκαθορισμένο τρόπο και παράγει κάποιες πληροφορίες, οι οποίες μας οδηγούν στην επίλυση του προβλήματος (στο ζητούμενο). ΠΛΗΡΟΦΟΡΙΑ Είναι οποιοδήποτε γνωσιακό στοιχείο προέρχεται από την επεξεργασία των δεδομένων. Η πληροφορία που παράγεται από την επεξεργασία των δεδομένων μπορεί να είναι και το τελικό ζητούμενο του προβλήματος. Αν δεν είναι, τότε θα αντιμετωπιστεί και αυτή σαν ένα επιπλέον δεδομένο στο οποίο θα στηριχτεί η διαδικασία επίλυσης του προβλήματος για την εύρεση του τελικού ζητούμενου. ΔΕΔΟΜΕΝΑ ΕΠΕΞΕΡΓΑΣΙΑ ΠΛΗΡΟΦΟΡΙΕΣ ΖΗΤΟΥΜΕΝΟ Είναι ό,τι ψάχνουμε να βρούμε στο πρόβλημα, δηλαδή το σημείο στο οποίο θέλουμε να φτάσουμε προκειμένου να βγούμε από την προβληματική κατάσταση στην οποία βρισκόμαστε. Είναι αντικείμενο έρευνας ή αναζητήσεως. Όταν ξεκινάμε να επιλύσουμε ένα πρόβλημα χωρίς να έχουμε κατανοήσει ποιο ακριβώς είναι το ζητούμενο, το αποτέλεσμα είναι η λανθασμένη επίλυση του προβλήματος. ΚΑΤΑΝΟΗΣΗ ΠΡΟΒΛΗΜΑΤΟΣ Προκειμένου να προσεγγίσουμε ένα πρόβλημα, πρέπει η διατύπωση τόσο των δεδομένων όσο και των ζητουμένων να γίνεται με τρόπο σαφή. Αν το πρόβλημα δεν γίνει κατανοητό, τότε κάθε προσπάθεια αντιμετώπισής του είναι καταδικασμένη σε αποτυχία. Η κατανόηση του προβλήματος είναι συνάρτηση δύο παραγόντων : της σωστής διατύπωσης εκ μέρους του δημιουργού της σωστής ερμηνείας εκ μέρους εκείνου που θα το αντιμετωπίσει 4

5 Σχετικά με τη διατύπωση, η άστοχη χρήση ορολογίας και η λανθασμένη σύνταξη μπορούν να προκαλέσουν παρερμηνείες και παραπλανήσεις. Σχετικά με την σωστή ερμηνεία, σημαντικό ρόλο παίζει το επίπεδο γνώσης και αντίληψης του χρήστη, το ενδιαφέρον του, η εμπειρία του και η ευφυία του. Η παρερμηνεία ενός προβλήματος είναι δυνατή ακόμα και όταν τηρούνται όλοι οι συντακτικοί και λεξιλογικοί κανόνες. Ένας ακόμη παράγοντας στη σωστή αντιμετώπιση του προβλήματος είναι και η αποσαφήνιση του χώρου στον οποίο αναφέρεται. ΚΑΘΟΡΙΣΜΟΣ ΑΠΑΙΤΗΣΕΩΝ Είναι η διαδικασία που ακολουθούμε προκειμένου να ανιχνεύσουμε τα δεδομένα που μας δίνει το πρόβλημα, καθώς και να αποσαφηνίσουμε ποια είναι τα ζητούμενα που ψάχνουμε να βρούμε. - Η σωστή επίλυση ενός προβλήματος προϋποθέτει τον ακριβή προσδιορισμό των δεδομένων (με σαφήνεια, ορθότητα και πληρότητα) που παρέχει το πρόβλημα, καθώς επίσης και τη λεπτομερειακή καταγραφή των ζητουμένων που αναμένονται σαν αποτελέσματα της επίλυσης. - Η διαδικασία εύρεσης όλων των δεδομένων μέσα σε ένα πρόβλημα δεν είναι πάντα εύκολη. Να σημειωθεί ότι δεν υπάρχει συγκεκριμένη μεθοδολογία εντοπισμού των δεδομένων ή αποσαφήνισης των ζητουμένων σε ένα πρόβλημα. - Συχνά απαιτείται μια σειρά από διευκρινιστικές ερωτήσεις είτε προς τον δημιουργό του προβλήματος είτε προς τον επιλυτή του. ΣΤΑΔΙΑ ΑΝΤΙΜΕΤΩΠΙΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ Απαιτείται η σωστή και πλήρης αποσαφήνιση των δεδομένων και ζητουμένων του προβλήματος. Το αρχικό πρόβλημα διασπάται σε επιμέρους απλούστερα υποπροβλήματα. Υλοποιείται η λύση του προβλήματος μέσα από την λύση των επιμέρους προβλημάτων. 5

6 ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝ Η κατηγοριοποίηση των προβλημάτων γίνεται βάσει τριών κριτηρίων. Για κάθε ένα από τα τρία κριτήρια, διακρίνουμε τρεις επιμέρους κατηγορίες προβλημάτων. Στον παρακάτω πίνακα φαίνονται τα κριτήρια καθώς και τα προβλήματα που αντιστοιχούν στο καθένα από αυτά. ΚΡΙΤΗΡΙΟ: ΔΥΝΑΤΟΤΗΤΑ ΕΠΙΛΥΣΗΣ ΕΠΙΛΥΣΙΜΑ Προβλήματα που η λύση τους είναι ήδη γνωστή και έχει διατυπωθεί. Αν δεν έχει διατυπωθεί τότε η συνάφειά τους με άλλα που έχουν ήδη επιλυθεί είναι τέτοια που κάνει και την δική τους δυνατότητα επίλυσης βέβαιη π.χ. ο υπολογισμός της περιμέτρου του κύκλου. ΑΝΟΙΚΤΑ Προβλήματα που η λύση τους δεν έχει ακόμα βρεθεί, αλλά δεν έχει αποδειχτεί και ότι δεν επιδέχονται λύση π.χ. ύπαρξη ζωής σε άλλους πλανήτες, το πρόβλημα της ενοποίησης των τεσσάρων πεδίων δυνάμεων κλπ ΑΛΥΤΑ Προβλήματα για τα οποία έχει αποδειχτεί ότι δεν έχουν λύση π.χ. τετραγωνισμός του κύκλου, η αποφυγή του γήρατος, η επίτευξη ταχύτητας μεγαλύτερης από του φωτός κλπ ΚΡΙΤΗΡΙΟ: ΒΑΘΜΟΣ ΔΟΜΗΣΗΣ ΚΡΙΤΗΡΙΑ Δυνατότητα Επίλυσης Βαθμός Δόμησης Είδος επίλυσης ΕΠΙΛΥΣΙΜΑ ΔΟΜΗΜΕΝΑ ΑΠΟΦΑΣΗΣ ΑΝΟΙΚΤΑ ΗΜΙΔΟΜΗΜΕΝΑ ΥΠΟΛΟΓΙΣΤΙΚΑ ΑΛΥΤΑ ΑΔΟΜΗΤΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΔΟΜΗΜΕΝΑ Προβλήματα που η επίλυσή τους προέρχεται από μία αυτοματοποιημένη διαδικασία π.χ. η επίλυση δευτεροβάθμιας εξίσωσης, η εύρεση του μέσου ενός ευθύγραμμου τμήματος. ΗΜΙΔΟΜΗΜΕΝΑ Προβλήματα που η λύση τους επιδιώκεται στα πλαίσια ενός εύρους πιθανών λύσεων αφήνοντας στον ανθρώπινο παράγοντα περιθώρια επιλογής π.χ. επιλογή μεταφορικού μέσου για ένα ταξίδι. 6

7 ΑΔΟΜΗΤΑ Προβλήματα που η λύση τους δεν μπορεί να δομηθεί, δηλαδή βασιζόμενα στην ανθρώπινη διαίσθηση δεν ακολουθούν αυτοματοποιημένη διαδικασία επίλυσης π.χ. η επιλογή του τόπου, του χρόνου και του τρόπου για την διεξαγωγή ενός πάρτι, η επιλογή του τόπου διακοπών κλπ ΚΡΙΤΗΡΙΟ : ΕΙΔΟΣ ΕΠΙΛΥΣΗΣ ΑΠΟΦΑΣΗΣ Προβλήματα των οποίων η απόφαση που πρόκειται να ληφθεί σαν λύση, απαντά σε κάποιο ερώτημα. Συνήθως τέτοια προβλήματα αφορούν σε κλειστού τύπου ερωτήσεις (Ναι ή Όχι, Σωστό ή Λάθος) π.χ τετραγωνίζεται ο κύκλος; ΥΠΟΛΟΓΙΣΤΙΚΑ Προβλήματα στα οποία απαιτείται η διενέργεια υπολογισμών προκειμένου να δοθεί σαν απάντηση στο πρόβλημα μια αριθμητική τιμή που θα ικανοποιεί τα δεδομένα π.χ. ο υπολογισμός μιας μαθηματικής πράξης. ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ Προβλήματα στα οποία ζητάμε να βρούμε το βέλτιστο αποτέλεσμα, δηλαδή αυτό το αποτέλεσμα που ικανοποιεί με το καλύτερο δυνατό τρόπο τα δεδομένα π.χ. εύρεση της ταχύτερης (ή αργότερης) διαδρομής για να φτάσουμε σε ένα σημείο. Σημείωση Ένα πρόβλημα έχει νόημα να κριθεί με βάση το 2 ο ή το 3 ο κριτήριο, εφόσον είναι επιλύσιμο. Σε ένα άλυτο πρόβλημα δεν έχει νόημα ο βαθμός δόμησης ή το είδος επίλυσης. ΔΟΜΗ ΠΡΟΒΛΗΜΑΤΟΣ Είναι τα συστατικά μέρη από τα οποία αποτελείται ένα πρόβλημα καθώς επίσης και τον τρόπο με τον οποίο αυτά τα μέρη συνδέονται μεταξύ τους. Η κατανόηση του προβλήματος είναι απαραίτητη προϋπόθεση πριν την διαδικασία της ανάλυσης του προβλήματος η οποία και αναδεικνύει τη δομή του. Ο κατακερματισμός - ανάλυση ενός προβλήματος σε απλούστερα υποπροβλήματα παρέχει μια σειρά από πλεονεκτήματα: αναδύει τη δομή του προβλήματος μειώνει την δυσκολία αντιμετώπισής του διευκολύνει την αναλυτική σκέψη του επιλυτή 7

8 Υπάρχουν δύο τρόποι απεικόνισης της δομής ενός προβλήματος: α) ΦΡΑΣΤΙΚΑ Λεκτική περιγραφή σε ποια επιμέρους προβλήματα αναλύεται το κυρίως πρόβλημα καθώς και τα υποπροβλήματα που προκύπτουν. β) ΔΙΑΓΡΑΜΜΑΤΙΚΑ Γραφικός τρόπος απεικόνισης της δομής του προβλήματος μέσω της Διαγραμματικής Αναπαράστασης. ΔΙΑΓΡΑΜΜΑΤΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ - Είναι διαγραμματικός τρόπος απεικόνισης ενός προβλήματος, όπου το αρχικό πρόβλημα, λόγω της συνθετότητάς του, διασπάται σε επιμέρους υποπροβλήματα τα οποία είναι απλούστερα του αρχικού. - Κάθε πρόβλημα ή υποπρόβλημα αναπαρίσταται γεωμετρικά από ένα ορθογώνιο παραλληλόγραμμο. - Κάθε ένα από τα επιμέρους προβλήματα μπορεί να αναλυθεί περαιτέρω σε νέα υποπροβλήματα τα οποία θα βρίσκονται ένα επίπεδο πιο κάτω. - Η Διαγραμματική Αναπαράσταση συμβάλει στην καλύτερη κατανόηση ενός προβλήματος και στην σχεδίαση της λύσης του. - Όσο προχωράει η ανάλυση του προβλήματος σε απλούστερα υποπροβλήματα, τόσο ελαττώνεται η δυσκολία αντιμετώπισής του Μορφή Διαγραμματικής Αναπαράστασης Προβλήματος 8

9 Παρατήρηση : Σε κάθε περίπτωση ένα πρόβλημα μπορεί να αναλυθεί τόσο, όσο κρίνει ο ίδιος ο επιλυτής του σύμφωνα με το μέγεθος της δυσκολίας του. Έτσι για παράδειγμα, ένα συγκεκριμένο πρόβλημα κάποιος επιλυτής μπορεί να το προσεγγίσει αναλύοντάς το σε πέντε επίπεδα, ενός κάποιος άλλος επιλυτής σε τρία ή τέσσερα επίπεδα κλπ. ΠΡΟΒΛΗΜΑ ΚΑΙ ΥΠΟΛΟΓΙΣΤΗΣ Τα προβλήματα δεν απαιτούν πάντα για την λύση τους την παρουσία υπολογιστών. Οι υπολογιστές έκαναν την εμφάνισή τους πολύ μετά την εμφάνιση των προβλημάτων. Η σύγκριση των λειτουργιών ανθρώπου και υπολογιστή οδηγεί στο συμπέρασμα ότι : O άνθρωπος υπερέχει ποιοτικά του υπολογιστή λόγω των σύνθετων συλλογισμών που μπορεί να κάνει. O υπολογιστής υπερέχει ποσοτικά του ανθρώπου λόγω της ταχύτητας στην εκτέλεση των πράξεων. Ο άνθρωπος υπερτερεί του υπολογιστή σε προβλήματα που απαιτούν πολυπλοκότητα συλλογισμών. Οι λόγοι ανάθεσης της επίλυσης ενός προβλήματος στον υπολογιστή είναι : Η πολυπλοκότητα των υπολογισμών (ποσοτική διαφορά) Η επαναληπτικότητα των διαδικασιών Η ταχύτητα εκτέλεσης των πράξεων Το μεγάλο πλήθος των δεδομένων Σε γενικές γραμμές, οι τρεις βασικές λειτουργίες που μπορεί να εκτελεί ο υπολογιστής είναι οι εξής : Πρόσθεση, αφού είναι η βασική πράξη και βάσει αυτής υλοποιούνται οι υπόλοιπες πράξεις Σύγκριση, που αποτελεί την βασική λειτουργία στις λογικές πράξεις Μεταφορά δεδομένων, που προηγείται και έπεται της επεξεργασίας δεδομένων 9

10 ΚΕΦ.2 - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΑΛΓΟΡΙΘΜΟΣ Είναι έννοια που αφορά σε μεθόδους επίλυσης προβλημάτων. Οι ρίζες της κρατούν από την αρχαιότητα με γνωστότερους αλγορίθμους αυτούς του Ευκλείδη (για τον υπολογισμό του μέγιστου κοινού διαιρέτη δύο αριθμών) και του Ερατοσθένη (για την εύρεση των πρώτων αριθμών από 1 έως N). Η λέξη προέρχεται από μια μελέτη του πέρση μαθηματικού Abu Ja far Mohammed ibn Musa al Khowarizmi (825 π.χ). ΟΡΙΣΜΟΣ Είναι μια πεπερασμένη ακολουθία βημάτων ή ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο μήκος χρόνου, με σκοπό την επίλυση ενός προβλήματος. ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΣ ΔΙΑΔΙΚΑΣΙΑ ΕΠΙΛΥΣΗΣ ΖΗΤΟΥΜΕΝΑ ΕΝΤΟΛΗ: Είναι καθένα από τα αριθμημένα βήματα του αλγορίθμου. ΕΚΤΕΛΕΣΤΗΣ: Είναι αυτός που πρόκειται να εκτελέσει τις εντολές του αλγορίθμου (υπολογιστής ή άνθρωπος), για αυτό και οι εντολές θα πρέπει να είναι κατανοητές σε αυτόν. ΠΡΟΓΡΑΜΜΑ: Είναι ένας αλγόριθμος εκφρασμένος κατά τέτοιο τρόπο ώστε να γίνει κατανοητός από τον υπολογιστή. Ένας αλγόριθμος δεν συνδέεται αποκλειστικά με προβλήματα πληροφορικής, η μαθηματικά και άλλα επιστημονικά προβλήματα. Μπορεί να αποτελεί εργαλείο και για την επίλυση κοινών καθημερινών προβλημάτων. Παραδείγματα καθημερινών αλγορίθμων Η σειρά εκτέλεσης των βημάτων (αλληλουχία) δεν είναι υποχρεωτική για την επίλυση του προβλήματος Δημιουργία Γευματος Συγκέντρωσε τα υλικά Προετοίμασε τα σκεύη Παρασκεύασε το φαγητό Ετοίμασε τη σαλάτα Στρώσε το τραπέζι Γευμάτισε ό,τι προετοίμασες Καθάρισε το τραπέζι Πλύνε πιάτα και κουζινικά Ψήσιμο καφέ Βάλε νερό στο μπρίκι Δώσε ποσότητα καφέ Δώσε ποσότητα ζάχαρης Βάλε το μπρίκι στο μάτι Άναψε το μάτι της κουζίνας Ανακάτεψε μέχρι να φουσκώσει Βάλε το καφέ στο φλιτζάνι 10

11 ΚΡΙΤΗΡΙΑ ΠΛΗΡΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΥ Ένας αλγόριθμος χρειάζεται να είναι πλήρης, δηλαδή να ικανοποιεί τα παρακάτω πέντε κριτήρια. ΕΙΣΟΔΟΣ (input) Ένας αλγόριθμος δέχεται καμία, μία ή πολλές τιμές δεδομένων που του δίνονται ως είσοδοι. Η περίπτωση που έχουμε μηδέν δεδομένα είναι όταν: τα παράγει ο ίδιος ο αλγόριθμος (συναρτήσεις παραγωγής τυχαίων αριθμών για δημιουργία ή επεξεργασία πρωτογενών τιμών) αποτελούν γνωστές τιμές από την διατύπωση του προβλήματος. ΕΞΟΔΟΣ (output) Κάθε αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία ή περισσότερες τιμές εξόδου που είναι τα αποτελέσματά του. Αυτά τα αποτελέσματα απευθύνονται προς έναν χρήστη ή προς ένα επόμενο αλγόριθμο που θα τα χρησιμοποιήσει ως νέα δεδομένα. ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ (definiteness) Κάθε εντολή θα πρέπει να είναι αυστηρά καθορισμένη, δηλαδή να μην αφήνει καμία αμφιβολία για τον τρόπο εκτέλεσής της, να πληρεί κάθε δυνατό περιορισμό π.χ. μια εντολή διαίρεσης θα πρέπει να λαμβάνει υπόψη και την περίπτωση που ο διαιρέτης έχει την τιμή 0. Χ Α * Β (αυστηρά καθορισμένη εντολή) Χ Α / Β (μη καθορισμένη εντολή, αφού το Β μπορεί να είναι 0) Χ Α / (Β 3) (μη καθορισμένη εντολή αφού το Β μπορεί να είναι 3) Χ Τ_Ρ(Α) (μη καθορισμένη εντολή, αφού το Α μπορεί να είναι < 0) ΠΕΡΑΤΟΤΗΤΑ (finiteness) Ο αλγόριθμος θα πρέπει να επιλύει το πρόβλημα με την εκτέλεση πεπερασμένου αριθμού εντολών σε πεπερασμένο χρόνο. Μια διαδικασία που δεν τελειώνει μετά από πεπερασμένο αριθμό βημάτων ονομάζεται «Υπολογιστική Διαδικασία» και δεν αποτελεί αλγόριθμο. ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ (effectiveness) Κάθε εντολή του αλγορίθμου πρέπει να είναι απλή, δηλαδή δεν αρκεί να έχει ορισθεί αλλά να είναι και εκτελέσιμη. π.χ. η εκχώρηση πραγματικής τιμής σε ακέραια μεταβλητή δεν αποτελεί μια αποτελεσματική εντολή. Χ Α + Καλημέρα Ζ 5 > 4 (αναποτελεσματικές εντολές αφού δεν επιτρέπεται να γίνει αριθμητική ή λογική πράξη μεταξύ μιας αριθμητικής και μίας αλφαριθμητικής τιμής). 11

12 ΜΕΘΟΔΟΙ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΑΛΓΟΡΙΘΜΩΝ Ενας αλγόριθμος μπορεί να αναπαρασταθεί με τέσσερις τρόπους παρουσίασης : ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ (free text) Είναι ο πιο αδόμητος και ανεπεξέργαστος τρόπος παρουσίασης, όπου ο αλγόριθμος εκφράζεται χρησιμοποιώντας απλή ελληνική γλώσσα, όπως ακριβώς όταν μιλάμε. Όταν χρησιμοποιούμε το ελεύθερο κείμενο υπάρχει ο κίνδυνος να παραβιασθεί το κριτήριο της αποτελεσματικότητας. ΦΥΣΙΚΗ ΓΛΩΣΣΑ ΜΕ ΒΗΜΑΤΑ (natural language) Ο αλγόριθμος είναι εκφρασμένος σε ελληνική γλώσσα, όπου οι προτάσεις είναι χωρισμένες σε παραγράφους και τα βήματα είναι αριθμημένα. Εδώ υπάρχει ο κίνδυνος να παραβιαστεί το κριτήριο της καθοριστικότητας. ΚΩΔΙΚΟΠΟΙΗΣΗ (coding) Χρήση ενός προγράμματος (εκφρασμένου σε ψευδογλώσσα ή κάποια γλώσσα προγραμματισμού) που όταν εκτελεστεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο. Μερικές λέξεις που χρησιμοποιούνται στην κωδικοποίηση έχουν αυστηρά καθορισμένη έννοια και τρόπο χρήσης και ονομάζονται «δεσμευμένες λέξεις». ΔΙΑΓΡΑΜΜΑΤΙΚΕΣ ΤΕΧΝΙΚΕΣ (diagramming techniques) Η πιο γνωστή τεχνική είναι τα Διαγράμματα Ροής, τα οποία και αποτελούν έναν γραφικό τρόπο παρουσίασης του αλγορίθμου, σύμφωνα με τον οποίο τα διάφορα βήματα του αλγορίθμου παριστάνονται με ειδικά σύμβολα (γεωμετρικά σχήματα) που παρουσιάζονται παρακάτω : 12

13 ΠΑΡΑΔΕΙΓΜΑ ΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ Να δοθεί αλγόριθμος που ελέγχει αν ένας μαθητής προβιβάζεται στην επόμενη τάξη ή όχι. Ο μαθητής προβιβάζεται, όταν ο μέσος όρος προφορικού και γραπτού βαθμού είναι μεγαλύτερος του 9.5. Ο αλγόριθμος θα πρέπει να υπολογίζει τον μέσο όρο της γραπτής και προφορικής βαθμολογίας του μαθητή εμφανίζοντας μήνυμα για το αν περνάει ή όχι την τάξη. (Α) ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ Πάρε τον γραπτό και προφορικό βαθμό του μαθητή. Πρόσθεσε τους δύο βαθμούς και διαίρεσε το άθροισμα με το 2. Αν το αποτέλεσμα είναι μεγαλύτερο από το 9.5, τότε ο μαθητής περνάει την τάξη, διαφορετικά δεν την περνάει (Β) ΦΥΣΙΚΗ ΓΛΩΣΣΑ ΜΕ ΒΗΜΑΤΑ Πάρε τον γραπτό βαθμό του μαθητή Πάρε τον προφορικό βαθμό του μαθητή Πρόσθεσε τους δύο βαθμούς για εύρεση αθροίσματος Διαίρεσε το άθροισμα με το 2 για εύρεση μέσου όρου Αν ο μέσος όρος είναι μεγαλύτερος του 9.5 εμφάνισε μήνυμα «ΠΕΡΝΑΕΙ» Αν ο μέσος όρος δεν είναι μεγαλύτερος του 9.5 εμφάνισε μήνυμα «ΔΕΝ ΠΕΡΝΑΕΙ» (Γ) ΚΩΔΙΚΟΠΟΙΗΣΗ Αλγόριθμος Μαθητής Διάβασε Γραπτός, Προφορικός Αθροισμα Γραπτός + Προφορικός ΜΟ Αθροισμα / 2 Αν ΜΟ > 9.5 τότε Εμφάνισε Περνάει Αλλιώς Εμφάνισε Δεν Περνάει Τέλος_αν Τέλος Μαθητής (Δ) ΔΙΑΓΡΑΜΜΑΤΙΚΕΣ ΤΕΧΝΙΚΕΣ - (ΔΡΔ) 13

14 ΣΤΟΙΧΕΙΑ ΑΛΓΟΡΙΘΜΟΥ Ένας αλγόριθμος διατυπωμένος σε ψευδογλώσσα αρχίζει πάντα με τη λέξη «Αλγόριθμος» ακολουθούμενη από το όνομα του αλγορίθμου και τελειώνει με την λέξη «Τέλος» ακολουθούμενη πάλι από το ίδιο όνομα. ΤΕΛΕΣΤΕΟΙ Αλγόριθμος Όνομα εντολή 1 εντολή 2... εντολή Ν Τέλος Όνομα Είναι οντότητες στις οποίες εφαρμόζονται οι πράξεις και διακρίνονται σε σταθερές και μεταβλητές. ΣΤΑΘΕΡΕΣ Γενική μορφή αλγορίθμου Είναι προκαθορισμένες τιμές που παραμένουν αμετάβλητες καθόλη τη διάρκεια εκτέλεσης του αλγορίθμου. Οι σταθερές τιμές μέσα σε ένα αλγόριθμο μπορεί να είναι ώρες 24 κυριολεκτικές υπό μορφή απλής τιμής (π.χ 24, 3.14, π 3,14 Μαρία, Αληθής) ή συμβολικές υπό μορφή όνομα Maria αναγνωριστικών ονομάτων. βρέθηκε Αληθής ΜΕΤΑΒΛΗΤΕΣ Είναι γλωσικά αντικείμενα που χρησιμοποιούνται για να παραστήσουν στοιχεία δεδομένων. Η διαφορά τους από τις σταθερές είναι ότι δέχονται μια αρχική τιμή η οποία επιτρέπεται και να αλλάξει κατά τη διάρκεια εκτέλεσης του αλγορίθμου π.χ x 4 y 2.5 μάθημα ΑΕΠΠ x x * y μάθημα ΑΟΔΕ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Οι σταθερές και μεταβλητές διακρίνονται σε τρία είδη, ανάλογα με τις τιμές που επιτρέπεται να πάρουν : Αριθμητικές - Ακέραιες (π.χ 10, 25, 0, -30, 17, -41) Αριθμητικές - Πραγματικές (π.χ 2.5, -6.8, 3.3, 0.4, -1.0) Αλφαριθμητικές (π.χ Mary30, 10, Hello World!! ) Λογικές (π.χ Αληθής, Ψευδής ) 14

15 Οι αριθμητικές τιμές είναι αριθμοί ακέραιοι ή πραγματικοί. Οι αλφαριθμητικές τιμές αποτελούνται από συμβολοσειρές (μέσα σε διπλά εισαγωγικά) όπου τα σύμβολα που περιέχουν μπορεί να είναι γράμματα, ψηφία ή σημεία στίξης. Οι λογικές τιμές είναι μόνο δύο, Αληθής και Ψευδής. Οι λογικές μεταβλητές χρησιμοποιούνται συνήθως μέσα σε συνθήκες (λογικές εκφράσεις). Άρα για παράδειγμα η αριθμητική τιμή 10 δεν έχει καμία σχέση με την αλφαριθμητική τιμή "10" που είναι μία συμβολοσειρά αποτελούμενη από τα ψηφία 1 και 0. Άρα στο παρακάτω απόσπασμα X 10 Y "10" Z X + 2 Z Y + 2 (επιτρεπτή εντολή) (λάθος εντολή μη αποτελεσματική) ΚΑΝΟΝΕΣ ΟΝΟΜΑΤΩΝ Τα αναγνωριστικά που επιλέγουμε για το όνομα ενός αλγορίθμου, όπως και για τα ονόματα των σταθερών και μεταβλητών του, πρέπει να πληρούν τους εξής περιορισμούς : Αποτελούνται από επιτρεπτά σύμβολα γράμματα ελληνικά (Α..Ω, α..ω) ή λατινικά (A..Z, a..z) ψηφία (0..9) σύμβολο _ (underscore) Πρέπει υποχρεωτικά να αρχίζουν με γράμμα Δεν αποτελούν δεσμευμένες λέξεις της ψευδογλώσσας Δεν περιέχουν κενά ή άλλα σύμβολα Παραδείγματα εσφαλμένων ονομάτων : 100Α, ΑΒ@, Κόστος$, Διάβασε, Μέση Τιμή Είναι λέξεις που έχουν αυστηρά προκαθορισμένη σημασία στον Δεσμευμένες λέξεις αλγόριθμο. Χρησιμεύουν είτε στα να κάνουν πιο ομοιόμορφη τη γλώσσα του κώδικα (π.χ Αλγόριθμος, Τέλος, Δεδομένα, Αποτελέσματα), είτε στο να περιγράφουν τις εντολές της ψευδογλώσσας (π.χ Διάβασε, Εμφάνισε, Εκτύπωσε κλπ). Για εκπαιδευτικούς λόγους συνήθως αποδίδονται με έντονο χρώμα (bold). 15

16 ΤΕΛΕΣΤΕΣ Είναι τα σύμβολα που υλοποιούν τις διάφορες πράξεις. Διακρίνονται σε τρία είδη : Αριθμητικοί Συγκριτικοί Λογικοί +, -, *, /, div, mod, ^ =,,,,, ΚΑΙ, Η, ΟΧΙ Τελεστές div - mod 17 div 5 = 3 17 mod 5 = 2 5 div 17 = 0 5 mod 17 = 5 Οι αριθμητικοί τελεστές χρησιμοποιούνται για τις πράξεις μεταξύ αριθμητικών σταθερών και μεταβλητών π.χ α + β * γ β^2-4*α*γ Οι συγκριτικοί τελεστές χρησιμοποιούνται στις συνθήκες για να συγκρίνουν δύο αριθμητικές, αλφαριθμητικές ή λογικές ποσότητες π.χ. Αν (Χ > 0) τότε Αν (όνομα "Alfa Romeo") τότε Αν (flag = Αληθής) τότε Οι λογικοί τελεστές χρησιμοποιούνται στις λογικές πράξεις για την δημιουργία πιο σύνθετων συνθηκών. Οι πράξεις αυτές έχουν πάντα σαν αποτέλεσμα την λογική τιμή Αληθής ή Ψευδής π.χ ΕΚΦΡΑΣΕΙΣ (ΚΑΙ) ΣΥΖΕΥΞΗ : Αν (x>0) KAI (x<10) τότε ( Η ) ΔΙΑΖΕΥΞΗ : Αν (day = "Δευτέρα") H (day = "Τρίτη") τότε (ΟΧΙ) ΑΡΝΗΣΗ : Αν ΟΧΙ (name = "Γιώργος") τότε Είναι προτάσεις που αποτελούνται από τελεστέους (σταθερές και μεταβλητές) και τελεστές. Το αποτέλεσμα που προκύπτει από την αποτίμηση της έκφρασης, μπορεί να αποδίδεται σε μία μεταβλητή, ή να συνιστά στην εκτέλεση μιας πράξης. Η τελική τιμή της έκφρασης εξαρτάται από την ιεραρχία των πράξεων και την χρήση των παρενθέσεων. 1) Από τα αριστερά προς τα δεξιά 2) Παρενθέσεις ( ) αρχικά οι εσωτερικές 3) Δυνάμεις ( ^ ) 4) Πολλαπλασιασμοί ( * ) Διαιρέσεις ( /, div, mod ) 5) Προσθέσεις ( + ) Αφαιρέσεις ( - ) 6) Συγκρίσεις ( =,,,,, ) 7) Λογικές ( ΟΧΙ, ΚΑΙ, Η ) κανόνες προτεραιοτήτων 16

17 ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ ΤΙΜΗΣ Η εντολή εκχώρησης έχει την γενική μορφή : Μεταβλητή Έκφραση Το σύμβολο διαβάζεται «γίνεται» ή «εκχώρησε» και δεν έχει καμία σχέση με το σύμβολο της ισότητας ( = ), αφού δεν πρόκειται για εξίσωση. Το σύμβολο του βέλους δείχνει την φορά της εκχώρησης. Η έκφραση στα δεξιά του τελεστή εκχώρησης ( ) μπορεί να είναι αριθμητική ή λογική π.χ. Α 5 Χ Α + 3 (αριθμητική έκφραση, Χ = 8) Υ Α > 10 (λογική έκφραση, Υ = Ψευδής) Η σημασιολογία της εντολής είναι ότι υπολογίζεται η τιμή της έκφρασης που βρίσκεται στα δεξιά του συμβόλου, και το αποτέλεσμα που βρίσκουμε εκχωρείται στην μεταβλητή που βρίσκεται στα αριστερά του συμβόλου. Μία μεταβλητή μπορεί να βρίσκεται και δεξιά και αριστερά του τελεστή εκχώρησης π.χ. Χ Χ + 2 η αριθμητική τιμή της μεταβλητής Χ αυξάνεται κατά 2. Α ΟΧΙ(Α) ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΑΛΓΟΡΙΘΜΟΥ η λογική τιμή της μεταβλητής Α αλλάζει στην αντίθετη τιμή Είσοδος δεδομένων σε έναν αλγόριθμο γίνεται με την εντολή Διάβασε που συντάσσεται ως εξής: Διάβασε μεταβλητή 1, μεταβλητή 2,, μεταβλητή Ν Με την εντολή Διάβασε διακόπτεται η ροή εκτέλεσης του αλγορίθμου, μέχρι τη στιγμή που ο χρήστης θα εισάγει (από το πληκτρολόγιο) τόσα δεδομένα όσα χρειάζονται για τις μεταβλητές που βρίσκονται δεξιά της εντολής Διάβασε. Η έξοδος των αποτελεσμάτων γίνεται με την εντολή Εμφάνισε (ή την εντολή Εκτύπωσε ή την εντολή Γράψε) που συντάσσεται ως εξής: Εμφάνισε αποτέλεσμα 1, αποτέλεσμα 2,, αποτέλεσμα Ν Το κάθε αποτέλεσμα που εμφανίζεται μπορεί να είναι μεταβλητή, σταθερά, μαθηματική παράσταση ή συμβολοσειρά π.χ. οι παρακάτω εντολές εμφανίζουν τα διπλανά αποτελέσματα στην οθόνη. 17

18 Εναλλακτικά της εντολής Διάβασε, τα δεδομένα εισόδου (αν υπάρχουν) περιγράφονται στη δεύτερη γραμμή του αλγορίθμου εντός των συμβόλων: Δεδομένα //... // Εναλλακτικά της εντολής Εμφάνισε (στην οθόνη) ή Εκτύπωσε (στον εκτυπωτή), τα αποτελέσματα εξόδου δίνονται στην προτελευταία γραμμή του αλγορίθμου εντός των συμβόλων: Αποτελέσματα //... // Εναλλακτικοί τρόποι εισόδου - εξόδου Αλγόριθμος Αθροισμα Διάβασε Α, Β Σ Α + Β Εμφάνισε Σ Τέλος Αθροισμα Αλγόριθμος Αθροισμα Διάβασε Α, Β Σ Α + Β Αποτελέσματα // Σ // Τέλος Αθροισμα Αλγόριθμος Αθροισμα Δεδομένα // Α, Β // Σ Α + Β Εμφάνισε Σ Τέλος Αθροισμα Αλγόριθμος Αθροισμα Δεδομενα // Α, Β // Σ Α + Β Αποτελέσματα // Σ // Τέλος Αθροισμα Αν στην διατύπωση ενός προβλήματος ζητείται να διαβαστούν τα δεδομένα του ή να εμφανιστούν τα αποτελέσματά του, τότε ακολουθούμε την μέθοδο των εντολών Διάβασε, Εμφάνισε. Διαφορετικά αν η διατύπωση του προβλήματος δεν ζητά κάτι τέτοιο, τότε μπορούν να εφαρμοστούν οι εντολές Δεδομένα // // και Αποτελέσματα // // για τη διαχείριση εισόδου και εξόδου. ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ ΣΥΝΘΗΚΕΣ Συνθήκη είναι μια λογική έκφραση η οποία μπορεί πάντα να πάρει δύο εναλλακτικές τιμές, Αληθής ή Ψευδής. ΑΠΛΕΣ ΣΥΝΘΗΚΕΣ Μια απλή συνθήκη βασίζεται στη σύγκριση δύο τιμών με χρήση κατάλληλων συγκριτικών τελεστών (=, >, <,,, ). ΑΛΗΘΕΙΣ ΨΕΥΔΕΙΣ 5 > > 10.3 A < F Β > Δ = 10 John john ΑΒΓ = ΑΒC ΣΥΝΘΕΤΕΣ ΣΥΝΘΗΚΕΣ Μπορούμε να δημιουργήσουμε σύνθετες συνθήκες χρησιμοποιώντας τους λογικούς τελεστές ΚΑΙ (σύζευξη), Ή (διάζευξη), ΟΧΙ (άρνηση). Τα αποτελέσματα κάθε πράξης, φαίνονται στον παρακάτω πίνακα αληθείας. Θεωρούμε ότι τα Α, Β είναι λογικές μεταβλητές ή λογικές εκφράσεις (συνθήκες). Α Β Α ΚΑΙ Β Α Η Β ΟΧΙ (Α) Αληθής Αληθής Αληθής Αληθής Ψευδής Αληθής Ψευδής Ψευδής Αληθής Ψευδής Ψευδής Αληθής Ψευδής Αληθής Αληθής Ψευδής Ψευδής Ψευδής Ψευδής Αληθής 18

19 ΣΥΖΕΥΞΗ : Το αποτέλεσμα είναι Αληθής όταν και οι δύο συνθήκες είναι Αληθής. Σε κάθε άλλη περίπτωση είναι Ψευδής. ΔΙΑΖΕΥΞΗ : Το αποτέλεσμα είναι Αληθής όταν τουλάχιστον μία από τις δύο συνθήκες είναι Αληθής. Σε διαφορετική περίπτωση είναι Ψευδής. ΑΡΝΗΣΗ : Το αποτέλεσμα είναι Αληθής αν η συνθήκη είναι Ψευδής και Ψευδής αν η συνθήκη είναι Αληθής. Οι τελεστές ΚΑΙ και Η χρειάζονται δύο τελεστέους (συνθήκες) για να εφαρμοστούν. Αντιθέτως, ο τελεστής ΟΧΙ εφαρμόζεται σε έναν τελεστέο. Έστω ότι: α 5 β 7 γ -3 α > 0 ΚΑΙ α < 10 α > β Η α < 10 β α ΚΑΙ β γ ΟΧΙ (β > α) γ >= α ΚΑΙ α < β α = β Η α = γ (Αληθής) (Αληθής) (Αληθής) (Ψευδής) (Ψευδής) (Ψευδής) Παρατήρηση: Τις συνθήκες τις συναντάμε κυρίως μέσα στις δομές επιλογής και επανάληψης ή ακόμα και σε εντολές εκχώρησης (αρκεί η μεταβλητή στην οποία εκχωρείται μια λογική έκφραση, να είναι μία λογική μεταβλητή) π.χ. α 10 ( α ακέραια μεταβλητή με τιμή 10 ) y a > 5 ( y λογική μεταβλητή με τιμή Αληθής ) ΔΟΜΕΣ ΕΝΤΟΛΩΝ (ΑΛΓΟΡΙΘΜΙΚΕΣ ΔΟΜΕΣ - ΣΥΝΙΣΤΩΣΕΣ) Στον Δομημένο Προγραμματισμό όλες οι διαδικασίες ακολουθούν τρία βασικά σχήματα δομών εντολών. Χρησιμοποιώντας δηλαδή τις τρεις βασικές δομές εντολών, μπορούμε να λύσουμε το οποιοδήποτε πρόβλημα. Οι τρεις αυτές δομές είναι : Α) ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Σύμφωνα με την δομή αυτή, οι εντολές του αλγορίθμου εκτελούνται σειριακά (διαδοχικά, ακολουθιακά), δηλαδή η μία μετά την άλλη. Ο αλγόριθμος ξεκινάει με την επικεφαλίδα, ακολουθεί η είσοδος των δεδομένων, η επεξεργασία τους, η έξοδος των αποτελεσμάτων και τέλευταία η εντολή του τέλους του αλγορίθμου. Β) ΔΟΜΗ ΕΠΙΛΟΓΗΣ Με την δομή αυτή καταργείται η ακολουθιακή ροή εκτέλεσης των εντολών του αλγορίθμου. Οι εντολές δεν εκτελούνται σειριακά. Αυτό γίνεται βάσει του αποτελέσματος της συνθήκης μιας εντολής επιλογής, που μπορεί να πάρει δύο εναλλακτικές τιμές, (Αληθής ή Ψευδής). Βάσει του αποτελέσματος, μόνο ένα τμήμα της εντολής επιλογής εκτελείται κάθε φορά. Γ) ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Και στη δομή αυτή καταργείται η ακολουθιακή ροή εκτέλεσης των εντολών. Βάσει του αποτελέσματος μιας συνθήκης, επαναλαμβάνεται για κάποιες φορές ένα συγκεκριμένο τμήμα εντολών του αλγορίθμου. Στις εντολές επανάληψης χρειάζεται προσοχή ώστε να μην καταστρατηγηθεί η ιδιότητα της περατότητας του αλγορίθμου (ατελείωτες επαναλήψεις). 19

20 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ ΑΠΛΗ Αν η συνθήκη είναι αληθής τότε εκτελούνται οι εντολές, αλλιώς δεν γίνεται τίποτα. Αν έχουμε μόνο μία εντολή να εκτελέσουμε τότε το τμήμα Τέλος_αν μπορεί να παραληφθεί. ΣΥΝΘΕΤΗ Αν η συνθήκη είναι αληθής τότε εκτελούνται οι εντολές 1, διαφορετικά εκτελούνται οι εντολές 2. Ένα μόνο τμήμα εντολών εκτελείται πάντα. ΠΟΛΛΑΠΛΗ Οι συνθήκες ελέγχονται με την σειρά, μέχρι να βρεθεί κάποια αληθής, οπότε και εκτελούνται οι αντίστοιχες εντολές της (μόνο). Αν όλες οι συνθήκες είναι ψευδείς, τότε εκτελούνται οι εντολές τις ΑΛΛΙΩΣ. Το τμήμα ΑΛΛΙΩΣ είναι προαιρετικό. 20

21 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ Όσο επανάλαβε Όσο η συνθήκη είναι αληθής, εκτελούνται οι εντολές που βρίσκονται μέσα στο σώμα της εντολής ΟΣΟ. Όταν η συνθήκη γίνει ψευδής, η εντολή ΟΣΟ τερματίζει την εκτέλεσή της. Αρχή_επανάληψης... Μέχρις_οτου Οι εντολές στο σώμα της ΜΕΧΡΙΣ_ΟΤΟΥ εκτελούνται τουλάχιστον 1 φορά. Η επαναληπτική τους εκτέλεση συνεχίζεται όσο η συνθήκη είναι ψευδής. Όταν η συνθήκη γίνει αληθής, η εντολή ΜΕΧΡΙΣ_ΟΤΟΥ τερματίζει την εκτέλεσή της. Για... από... μέχρι... με_βήμα... Η μεταβλητή παίρνει όλες τις τιμές από το τ1 μέχρι το τ2, μεταβαλόμενη κάθε φορά κατά β δηλ. (τ1, τ1+β, τ1+2β, τ1+3β,..). Ο αριθμός των τιμών που παίρνει κάθε φορά η μεταβλητή προσδιορίζει και το πλήθος των επαναλήψεων εκτέλεσης της εντολής ΓΙΑ. Όταν το βήμα είναι 1, το τμήμα με_βήμα μπορεί να παραλειφθεί. Σε περίπτωση που το βήμα είναι 0 προκύπτει ατέρμων βρόχος. 21

22 ΒΑΣΙΚΕΣ ΔΙΑΦΟΡΕΣ ΤΩΝ ΕΝΤΟΛΩΝ ΕΠΑΝΑΛΗΨΗΣ Οι εντολές ΟΣΟ και ΜΕΧΡΙΣ_ΟΤΟΥ χρησιμοποιούνται επιβεβλημένα μέσα σε ένα αλγόριθμο, όταν ο αριθμός των επαναλήψεων είναι άγνωστος. Αντιθέτως, όταν ο αριθμός των επαναλήψεων είναι γνωστός, τότε η χρήση της εντολή ΓΙΑ είναι η καλύτερη δυνατή. Η εντολή ΟΣΟ εκτελείται επαναληπτικά όσο η συνθήκη της είναι αληθής. Μόλις η συνθήκη της γίνει ψευδής, σταματά την εκτέλεσή της. Αντιθέτως, η εντολή ΜΕΧΡΙΣ_ΟΤΟΥ εκτελείται επαναληπτικά όσο η συνθήκη της είναι ψευδής. Μόλις η συνθήκη της γίνει αληθής, σταματά η εκτέλεσή της. Η εντολή ΟΣΟ μπορεί να μην εκτελεστεί και καμία φορά, αν την πρώτη φορά που θα ελέγξουμε την συνθήκη της, την βρούμε ψευδή. Αυτό γίνεται γιατί η συνθήκη προηγείται των εντολών. Αντιθέτως, η εντολή ΜΕΧΡΙΣ_ΟΤΟΥ θα εκτελεστεί τουλάχιστον μια φορά, αφού οι εντολές προηγούνται της συνθήκης. Σε μια εντολή επανάληψης, το τμήμα που επαναλαμβάνεται καλείται βρόχος (loop). Όταν ένας αλγόριθμος ξεκινήσει μια επανάληψη και δεν καταφέρει να βγει από αυτή, τότε η άπειρη αυτή ανακύκλωση ονομάζεται ατέρμων βρόχος. ΠΑΡΑΔΕΙΓΜΑ (αντιστοιχίες εντολών επανάληψης) i 1 i 1 Για i από 1 μέχρι 100 με_βήμα 1 Όσο (i 100) επανέλαβε Αρχή_Επανάληψης Εμφάνισε i Εμφάνισε i Εμφάνισε i i i + 1 i i + 1 Μεχρις_Ότου (i > 100) Και οι τρεις παραπάνω εντολές κάνουν το ίδιο πράγμα (εμφανίζουν τους αριθμούς από 1 έως 100). Οι δύο πρώτες (ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ) για να εξασφαλίσουν την περατότητα, προσαυξάνουν τον δείκτη i κατά 1 μέσα σε κάθε επανάληψη, πράγμα που στην τρίτη εντολή (ΓΙΑ) γίνεται αυτόματα από το βήμα. Η ΟΣΟ έχει την συνθήκη στην αρχή και η ΜΕΧΡΙΣ ΟΤΟΥ στο τέλος της επανάληψης. Οι συνθήκες περιέχουν εντελώς αντίθετους συγκριτικούς τελεστές, αλλά όμως κάνουν το ίδιο πράγμα, δηλαδή ελέγχουν τον δείκτη i να μην υπερβεί το πάνω όριο που είναι 100. ΠΑΡΑΔΕΙΓΜΑΤΑ (εντολής ΓΙΑ) Εντολή Φορές - Επαναλήψεις Τιμές δείκτη ι Για ι από 1 μέχρι φορές 1,2,3,...,10 Για ι από 10 μέχρι 1 με_βήμα 1 10 φορές 10,9,8,...,1 Για ι από 0 μέχρι 1 με_βήμα φορές 0.0, 0.1,..., 1.0 Για ι από 5 μέχρι 5 1 φορά 5 Για ι από 5 μέχρι 1 0 φορές --- Για ι από 0 μέχρι φορές 0,1,2,...,10, Για ι από 0 μέχρι 10 με_βήμα 2 6 φορές 0,2,4,6,8,10 Για ι από 1 μέχρι 2 με_βήμα 0 άπειρες φορές 1,1,1,1,. 22

23 ΠΑΡΑΔΕΙΓΜΑ (μετατροπή εντολής ΓΙΑ σε ΟΣΟ και αντίστροφα) Έστω ότι θέλουμε να εμφανίσουμε όλους τους άρτιους αριθμούς από το 1 έως το 100 Για Α από 2 μέχρι 100 με_βήμα 2 Εμφάνισε Α Τέλος_επανάληψης Α 2 Οσο Α 100 επανάλαβε Εμφάνισε Α Α Α + 2 Τέλος_επανάληψης ΑΠΑΙΤΟΥΜΕΝΕΣ ΕΝΕΡΓΕΙΕΣ ΓΙΑ ΟΣΟ Αρχικοποίηση μεταβλητής Α από 2 Α 2 Έλεγχος τελικής τιμής μέχρι 100 Α 100 Βήμα προσαύξησης ή μείωσης με_βήμα 2 Α Α + 2 (*) Οι ενέργειες είναι ανάλογες στην περίπτωση που το βήμα είναι αρνητικό ΕΜΦΩΛΕΥΜΕΝΕΣ ΔΟΜΕΣ Είναι σύνθετες δομές εντολών, σύμφωνα με τις οποίες, μέσα στο σώμα μιας δομής εντολών ανοίγει και ολοκληρώνεται μια άλλη δομή εντολών, του ιδίου ή άλλου τύπου. Οι εντολές που ανοίγουν τελευταίες πρέπει να κλείνουν πρώτες π.χ. Παραδείγματα εμφωλευμένων δομών: Αν (Συνθ) τότε Αν (Συνθ) τότε Εντολές Αλλιώς εντολές Τέλος_αν Τέλος_αν Για i από 1 μέχρι 10 Όσο (j < 20) επανάλαβε εντολές Τέλος_επανάληψης εντολές Τέλος_επανάληψης Αρχή_Επανάληψης Αν (Συνθ) τότε εντολές αλλιώς εντολές τέλος_αν Μέχρις_Οτου (Συνθ) 23

24 ΠΑΡΑΔΕΙΓΜΑΤΑ ΔΡΔ ΕΜΦΩΛΕΥΜΕΝΩΝ ΔΟΜΩΝ ΕΝΤΟΛΩΝ ΕΜΦΩΛΕΥΜΕΝΕΣ ΑΝ..ΑΛΛΙΩΣ Αν (Συνθήκη 1) τότε Εντολές 1 αλλιώς Αν (Συνθήκη 2) τότε Εντολές 2 αλλιώς Αν (Συνθήκη 3) τότε Εντολές 3 αλλιώς Εντολές 4 Τέλος_αν Τέλος_αν Τέλος_αν ΕΜΦΩΛΕΥΜΕΝΕΣ ΌΣΟ Όσο (Συνθήκη 1) επανάλαβε Εντολές 1 Όσο (Συνθήκη 2) επανάλαβε Εντολές 2 Τέλος_επανάληψης Τέλος_επανάληψης ΕΜΦΩΛΕΥΜΕΝΕΣ ΜΕΧΡΙΣ_ΟΤΟΥ Αρχή_Επανάληψης Εντολές 1 Αρχή_επανάληψης Εντολές 2 Μέχρις_ότου (Συνθήκη 2) Μέχρις_ότου (Συνθήκη 1) 24

25 ΣΧΟΛΙΑ (Comments) Είναι επεξηγηματικές φράσεις του αλγορίθμου, οι οποίες για να διαχωριστούν από τις λέξεις κλειδιά του αλγορίθμου (δεσμευμένες λέξεις και εντολές), γράφονται προτάσοντας σε αυτές τον χαρακτήρα! Δηλαδή ότι ακολουθεί τον χαρακτήρα! μέσα στον αλγόριθμο και μέχρι το τέλος της τρέχουσας γραμμής, θεωρείται ως σχόλιο (επεξηγηματική φράση) και δεν λαμβάνεται υπόψη ως εντολή από τον αλγόριθμο. ΓΕΝΙΚΗ ΔΟΜΗ ΑΛΓΟΡΙΘΜΟΥ Σκελετός αλγορίθμου υπό μορφή Ψευδογλώσσας Αλγόριθμος Όνομα_Αλγορίθμου Δεδομένα //... // εντολές Αποτελέσματα //... // Τέλος Όνομα_Αλγορίθμου ΟΛΙΣΘΗΣΗ (SHIFT) Μέσα στον υπολογιστή τα δεδομένα παρουσιάζονται με δυαδικά ψηφία 0 και 1 Ένας αριθμός μπορεί για παράδειγμα να παρασταθεί από 1 byte δηλαδή από 8 bits π.χ Ολίσθηση προς τα αριστερά σημαίνει ότι χάνεται το αριστερότερο ψηφίο της δυαδικής ακολουθίας η οποία και συμπληρώνεται από τα δεξιά με 0 Ολίσθηση προς τα δεξιά σημαίνει ότι χάνεται το δεξιότερο ψηφίο της δυαδικής ακολουθίας η οποία και συμπληρώνεται από τα αριστερά με 0 Η ολίσθηση προς τα αριστερά ισοδυναμεί με πολλαπλασιασμό επί 2 Η ολίσθηση προς τα δεξιά ισοδυναμεί με ακέραια διαίρεση διά 2 ΠΑΡΑΔΕΙΓΜΑ αρχικός αριθμός ολίσθηση προς τα αριστερά ολίσθηση προς τα δεξιά 25

26 Ο υπολογιστής προκειμένου να εκτελέσει τον πολλαπλασιασμό μεταξύ δύο αριθμών Α και Β, βασίζεται στην πράξη της ολίσθησης υποβάλλοντας τον ένα αριθμό (έστω Α) σε συνεχείς διπλασιασμούς (αριστερή ολίσθηση) και τον άλλο αριθμό (έστω Β) σε συνεχείς ακέραιους υποδιπλασιασμούς (δεξιά ολίσθηση) Ο αλγόριθμος που ακολουθεί ο υπολογιστής για να υπολογίσει το γινόμενο δύο αριθμών, είναι γνωστός ως Πολλαπλασιαμός αλά Ρωσικά Αλγόριθμος Πολλαπλασιασμός_Ρωσικά Δεδομένα // Α, Β // S 0 Όσο Β > 0 επανάλαβε Αν Β mod 2 = 1 τότε S S + Α Τέλος_Αν Α Α * 2 Β B div 2 Τέλος_επανάληψης Αποτελέσματα // S // Τέλος Πολλαπλασιαμός_Ρωσικά ΠΑΡΑΔΕΙΓΜΑ : Έστω ότι θέλουμε να υπολογίσουμε το γινόμενο των αριθμών 45 και 19 Θεωρούμε τον αριθμό 45 ως Α και τον αριθμό 19 ως Β (ή αντίστροφα) Διπλασιάζουμε συνεχώς τον αριθμό Α και υποδιπλασιάζουμε ακέραια τον αριθμό Β Η διαδικασία συνεχίζεται μέχρι ο αριθμός Β να γίνει 0 Ελέγχουμε την στήλη του Β και όσοι αριθμοί είναι περιττοί προσθέτουμε τα αντίστοιχα Α Το άθροισμα των Α είναι και το τελικό αποτέλεσμα (γινόμενο Α*Β) Α Β Αθροισμα

27 ΚΕΦ.3 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ Είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς η απλοποιημένη όψη της. Είναι ακατέργαστα γεγονότα που κάθε φορά η επιλογή τους εξαρτάται από τον τύπο του προβλήματος. Ο συσχετισμός και η επεξεργασία των δεδομένων (μέσω ενός αλγορίθμου) παράγουν την πληροφορία. Η μέτρηση, η κωδικοποίηση και η μετάδοση της πληροφορίας αποτελεί αντικείμενο μελέτης ενός ιδιαίτερου κλάδου της Πληροφορικής που ονομάζεται Θεωρία Πληροφοριών (Information Theory). ΜΕΛΕΤΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ Η Πληροφορική μελετά τα δεδομένα κάτω από τις εξής σκοπιές : ΥΛΙΚΟΥ Αφορά στο πώς η μηχανή επιτρέπει στα δεδομένα να αποθηκευτούν στην κύρια μνήμη και στις περιφερειακές συσκευές με διάφορες αναπαραστάσεις (κώδικας ASCII, κώδικας EBCDIC, δυαδική μορφή, συμπλήρωμα ως προς 1 ή 2). ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Οι γλώσσες υψηλού επιπέδου επιτρέπουν την χρήση διαφόρων τύπων μεταβλητών για την περιγραφή ενός δεδομένου (π.χ ακέραιες. πραγματικές, χαρακτήρες κλπ). Η αποδοτική αποθήκευση των μεταβλητών στο υπολογιστή αναλαμβάνεται από τον μεταφραστή κάθε γλώσσας. ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων είναι ένα σύνολο από δεδομένα συν τις λειτουργίες που μπορεί να γίνουν πάνω σε αυτά π.χ. η εγγραφή (record) είναι μια δομή δεδομένων αποτελούμενη από πεδία (fields) που αποθηκεύουν τα χαρακτηριστικά ενός είδους ή αντικειμένου. Το αρχείο είναι μια άλλη δομή δεδομένων που αποτελείται από πολλές εγγραφές. ΑΝΑΛΥΣΗΣ ΔΕΔΟΜΕΝΩΝ Αφορά στους τρόπους καταγραφής και αλληλοσυσχέτισης των δεδομένων ώστε να παραχθεί γνώση για πραγματικά γεγονότα (Βάσεις Δεδομένων, Μοντελοποίηση Δεδομένων, Αναπαράσταση Γνώσης). 27

28 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Τα δεδομένα ενός προβλήματος αποθηκεύονται συστηματικά (και όχι τυχαία) στη κύρια ή στη δευτερεύουσα μνήμη του υπολογιστή υπό μορφή δομών δεδομένων. Δομή Δεδομένων είναι ένα σύνολο αποθηκευόμενων δεδομένων μαζί με τις λειτουργίες (ενέργειες, πράξεις) που επεξεργάζονται τα δεδομένα αυτά. Κάθε μορφή δομής δεδομένων αποτελείται από ένα σύνολο κόμβων (στοιχείων) Οι πράξεις που γίνονται πάνω στις δομές δεδομένων είναι οι εξής οκτώ : ΠΡΟΣΠΕΛΑΣΗ Πρόσβαση σε κόμβο για εξέταση ή τροποποίηση του περιεχομένου του ΕΙΣΑΓΩΓΗ Προσθήκη νέου ή νέων κόμβων στην δομή ΔΙΑΓΡΑΦΗ Αφαίρεση κόμβου ή κόμβων από τη δομή Πράξεις που απαγορεύονται στις στατικές δομές (πίνακες) ΑΝΑΖΗΤΗΣΗ Προσπέλαση κόμβων με σκοπό να εντοπιστούν αυτοί που πληρούν μια συγκεκριμένη ιδιότητα (π.χ. Σειριακή, Δυαδική Αναζήτηση) ΤΑΞΙΝΟΜΗΣΗ Διάταξη των κόμβων της δομής κατά αύξουσα ή φθίνουσα σειρά του περιεχομένου τους (π.χ. Ταξινόμηση Φυσαλίδα) ΑΝΤΙΓΡΑΦΗ Μερικοί ή όλοι οι κόμβοι μιας δομής αντιγράφονται σε μία άλλη δομή ΣΥΓΧΩΝΕΥΣΗ Δύο ή περισσότερες δομές συνενώνονται σε μία νέα ενιαία δομή ΔΙΑΧΩΡΙΣΜΟΣ Διάσπαση δομής σε δύο ή περισσότερες επιμέρους δομές Παρατηρήσεις: Σπάνια χρησιμοποιούνται και οι οκτώ πράξεις σε κάποια δομή. Κάποια δομή μπορεί να είναι αποδοτικότερη από κάποια άλλη με κριτήριο κάποια λειτουργία, ή λιγότερο αποδοτική για κάποια άλλη λειτουργία. 28

29 Ο αλγόριθμος και οι δομές δεδομένων είναι έννοιες που εξαρτώνται άμεσα μεταξύ τους και για το λόγο αυτό, το πρόγραμμα τις βλέπει σαν μια αδιάσπαστη ενότητα. Ο Wirth (1976) συνδέει τους αλγόριθμους και τις δομές δεδομένων μέσα από την παρακάτω εξίσωση (κανόνα): ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑΤΑ ΔΙΑΚΡΙΣΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ Οι Δομές Δεδομένων διακρίνονται σε δύο βασικές κατηγορίες : τις στατικές δομές (static data structure) και τις δυναμικές δομές (dynamic data structure) ΣΤΑΤΙΚΕΣ Αποθηκεύονται σε συνεχόμενες θέσεις μνήμης. Έχουν σταθερό μέγεθος. Στην πράξη υλοποιούνται με Πίνακες. Το μέγεθος τους καθορίζεται κατά την ώρα του προγραμματισμού, δηλαδή τη στιγμή της μετάφρασης και όχι την στιγμή της εκτέλεσης. ΔΥΝΑΜΙΚΕΣ Δεν αποθηκεύονται σε διαδοχικές θέσεις μνήμης αλλά σε τυχαίες (δυναμική παραχώρηση της μνήμης). Δεν έχουν σταθερό μέγεθος, αλλά ο αριθμός των κόμβων τους μεγαλώνει και μικραίνει καθώς εισάγονται ή διαγράφονται δεδομένα (εν εξελίξει της εκτέλεσης του προγράμματος). Όλες οι σύγχρονες γλώσσες προγραμματισμού παρέχουν δυναμικές δομές δεδομένων. 29

30 ΠΙΝΑΚΕΣ Πίνακας είναι μια στατική δομή δεδομένων που περιέχει πάντα στοιχεία του ιδίου τύπου (δηλαδή ακέραιες, πραγματικές, χαρακτήρες ή λογικές τιμές). Οι πίνακες χαρακτηρίζονται από τις διαστάσεις τους καθώς και από τον τύπο των στοιχείων που περιέχουν. Έτσι έχουμε μονοδιάστατους, δισδιάστατους, τρισδιάστατους ή πολυδιάστατους πίνακες. Μονοδιάστατοι Έχουν μία διάσταση και σχηματικά έχουν την μορφή μιας γραμμής ή μιας στήλης. Κάθε στοιχείο χαρακτηρίζεται από το όνομα του πίνακα και έναν αριθμό εντός αγκύλης (διατακτικός αριθμός, η δείκτης) που αφορά στην αντίστοιχη θέση του στοιχείου μέσα στον πίνακα π.χ table [ i ] Δισδιάστατοι Έχουν δύο διαστάσεις και κατά την χρήση τους αναφέρονται πρώτα οι γραμμές (οριζόντιες) και μετά οι στήλες (κάθετες). Κάθε στοιχείο χαρακτηρίζεται από το όνομα του πίνακα και δύο αριθμούς (διατακτικοί αριθμοί ή δείκτες) εντός αγκύλης που ο πρώτος αφορά στην αντίστοιχη γραμμή και ο δεύτερος στην αντίστοιχη στήλη του πίνακα π.χ table [ i, j ] Όταν ο πίνακας έχει ίδιο αριθμό γραμμών και στηλών, καλείται «Τετραγωνικός». 30

31 ΥΠΟΔΕΙΞΕΙΣ (Προσπέλασης στοιχείων) Όταν θέλουμε να επεξεργαστούμε ένα πίνακα (δηλαδή να τον διαβάσουμε, να τον εμφανίσουμε ή να τον τροποποιήσουμε) πρέπει να κάνουμε την ίδια δουλειά για κάθε ένα από τα στοιχεία του ξεχωριστά. Για την επεξεργασία των στοιχείων ενός πίνακα συνήθως χρησιμοποιούμε την επαναληπτική δομή ΓΙΑ Αν ο πίνακας είναι μονοδιάστατος, τότε για να διατρέξουμε τα στοιχεία του χρειάζεται μία εντολή ΓΙΑ από 1 μέχρι Ν, όπου Ν θα είναι το σύνολο των στοιχείων του πίνακα Αν ο πίνακας είναι δισδιάστατος, τότε για να διατρέξουμε τα στοιχεία του χρειάζονται δύο εμφωλευμένες εντολές ΓΙΑ, όπου η πρώτη θα είναι από 1 μέχρι Μ (πίνακας Μ γραμμών) και η δεύτερη θα είναι από 1 μέχρι Ν (πίνακας Ν στηλών) Πιο συγκεκριμένα, η ανάγνωση των στοιχείων των δύο πινάκων της προηγούμενης σελίδας θα γίνει ως εξής: Μονοδιάστατος table 10 θέσεων Για i από 1 μέχρι 10 Διάβασε table[ i ] Τέλος_επανάληψης Δισδιάστατος table 5*6 κατά γραμμές Για i από 1 μέχρι 5 Για j από 1 μέχρι 6 Διάβασε table[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Δισδιάστατος table 5*6 κατά στήλες Για j από 1 μέχρι 6 Για i από 1 μέχρι 5 Διάβασε table[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Παρόμοια λειτουργία προσπέλασης των στοιχείων ακολουθούμε και στην περίπτωση της εμφάνισης ή της τροποποίησης τους. 31

32 ΣΤΟΙΒΑ Είναι μία δομή δεδομένων που μοιάζει με μία στοίβα από πιάτα. Τα στοιχεία εισάγονται και εξάγονται από την στοίβα βάσει της τεχνικής LIFO (Last in First out) δηλαδή το τελευταίο στοιχείο που εισάγεται στη στοίβα, εξάγεται πρώτο. ΚΥΡΙΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΩΘΗΣΗ (PUSH) Τοποθέτηση ενός νέου στοιχείου στην κορυφή της στοίβας ΑΠΩΘΗΣΗ (POP) Εξαγωγή του στοιχείου από την κορυφή της στοίβας D C C C B B B B A A A A Έλεγχος αν η στοίβα είναι γεμάτη Υπερχείλιση (overflow) Έλεγχος αν υπάρχει τουλάχιστον ένα στοιχείο στη στοίβα. Υποχείλιση (underflow) Υλοποιείται με : Έναν μονοδιάστατο πίνακα (έστω Α). Μία βοηθητική μεταβλητή (με όνομα συνήθως top) που λειτουργεί ως δείκτης και δείχνει στην κορυφή της στοίβας. Άρα οι κύριες λειτουργίες μεταφράζονται στις εξής ενέργειες: ΩΘΗΣΗ top top + 1 Είσοδος στοιχείου στην Α[top] ΑΠΩΘΗΣΗ Έξοδος στοιχείου από Α[top] top top

33 ΟΥΡΑ Είναι μια δομή δεδομένων στην οποία τα στοιχεία εισάγονται και εξάγονται βάσει της τεχνικής FIFO (First in First out) δηλαδή το πρώτο στοιχείο που εισάγεται, εξάγεται πρώτο. Η ουρά αποτελεί ως προς την επίδοσή της, αντικείμενο μελέτης ενός κλάδου των μαθηματικών που ονομάζεται Επιχειρησιακή Έρευνα. ΚΥΡΙΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΕΙΣΑΓΩΓΗ (ENQUEUE) Εισαγωγή στοιχείου στο πίσω άκρο της ουράς ΕΞΑΓΩΓΗ (DEQUEUE) Εξαγωγή από το εμπρός άκρο της ουράς Α Β C A B C D A B C D B C D Υλοποιείται με : Μονοδιάστατο πίνακα (έστω Α). Δύο βοηθητικές μεταβλητές (δείκτες) που η μία δείχνει στο πρώτο στοιχείο της ουράς (front ή εμπρός) και η άλλη στο τελευταίο στοιχείο (rear ή πίσω). Άρα οι εξής λειτουργίες μεταφράζονται στις εξής πράξεις : ΕΙΣΑΓΩΓΗ rear rear + 1 Εισαγωγή στοιχείου στην A[rear] θέση ΕΞΑΓΩΓΗ Εξαγωγή στοιχείου από A[front] front front + 1 Κάθε φορά θα πρέπει να γίνεται έλεγχος κατά την εισαγωγή αν υπάρχει ελεύθερος χώρος στον πίνακα και κατά την εξαγωγή αν υπάρχει ένα τουλάχιστον στοιχείο 33

34 ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΖΗΤΗΣΗΣ Η αναζήτηση ενός συγκεκριμένου στοιχείου σε ένα πίνακα, είναι μία λειτουργία που εξαρτάται από δύο βασικούς παράγοντες : Αν ο πίνακας περιέχει επαναλαμβανόμενα στοιχεία Αν ο πίνακας είναι ταξινομημένος ή όχι Η μέθοδος της Σειριακής ή Γραμμικής Αναζήτησης είναι η πιο απλή μέθοδος. Ο Αλγόριθμος ελέγχει μια-μια τις θέσεις του πίνακα με την σειρά για να δει αν περιέχουν το προς αναζήτηση στοιχείο. Μόλις το στοιχείο βρεθεί, ο αλγόριθμος επιστρέφει την θέση του πίνακα που το περιέχει. Αν ο πίνακας είναι μη ταξινομημένος και περιέχει επαναλήψεις στοιχείων, ο αλγόριθμος θα ελέγξει όλες τις θέσεις του πίνακα, έστω και αν το στοιχείο έχει ήδη βρεθεί. Αν ο πίνακας είναι ταξινομημένος και περιέχει επαναλήψεις, τότε αν το στοιχείο βρεθεί, ο αλγόριθμος ελέγχει και την επόμενη θέση του πίνακα. Αν δεν βρεθεί τότε σταματάει, αλλιώς συνεχίζει ελέγχοντας την επόμενη κοκ. Αν ο πίνακας δεν περιέχει επαναλήψεις, τότε ο αλγόριθμος σταματάει μόλις το στοιχείο βρεθεί. Αυτό ισχύει είτε ο πίνακας είναι ταξινομημένος είτε όχι. Το τέλος εκτέλεσης του αλγορίθμου γίνεται χρησιμοποιώντας μια λογική μεταβλητή (συνήθως έχει όνομα done, found, βρέθηκε), η οποία παίζει το ρόλο της σημαίας (flag) και είναι ψευδής όσο το στοιχείο δεν βρέθηκε, ενώ γίνεται αληθής όταν βρεθεί. Η Σειριακή μέθοδος είναι η πιο απλή αλλά και η πιο αναποτελεσματική μέθοδος. Η χρήση της δικαιολογείται όταν : 1. Ο πίνακας είναι μη ταξινομημένος 2. Ο πίνακας είναι μικρού μεγέθους (ν 20) 3. Η αναζήτηση γίνεται σπάνια Άλλη μέθοδος αναζήτησης που χρησιμοποιείται μόνο όταν ο πίνακας είναι ταξινομημένος και είναι σαφώς γρηγορότερη μέθοδος, είναι η Δυαδική Αναζήτηση. 34

35 ΑΛΓΟΡΙΘΜΟΙ ΤΑΞΙΝΟΜΗΣΗΣ Ταξινόμηση είναι η τακτοποίηση των κόμβων μιας δομής δεδομένων με μια ιδιαίτερη σειρά, συνήθως αύξουσα. Σκοπός της ταξινόμησης είναι να διευκολύνει την αναζήτηση στοιχείων στον πίνακα. Δοθέντων των στοιχείων α 1, α 2,.., α ν η ταξινόμηση συνίσταται στη μετάθεση της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μια σειρά α κ1, α κ2,.., α κν έτσι ώστε δοθείσης μιας συνάρτησης διάταξης F να ισχύει: F(α κ1 ) F(α κ2 ) F(α κν ) Η Ταξινόμηση Ευθείας Ανταλλαγής (Φυσαλίδα) βασίζεται στην αρχή της σύγκρισης και ανταλλαγής ζευγών γειτονικών στοιχείων. Η ανταλλαγή των στοιχείων ονομάζεται αντιμετάθεση, και για την υλοποίησή της χρησιμοποιείται μια βοηθητική μεταβλητή, έστω temp. temp A[j] A[j] A[j-1] A[j-1] temp Κάθε φορά γίνονται διαδοχικές προσπελάσεις στον πίνακα και μετακινείται το μικρότερο κλειδί προς τις αρχικές θέσεις του πίνακα. Σε κάθε πέρασμα του αλγορίθμου από τον πίνακα ταξινομείται και ένα στοιχείο. Σε ένα πίνακα μεγέθους Ν στοιχείων, χρειάζονται Ν-1 περάσματα για να ταξινομηθεί. Ο αλγόριθμος Φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης. Εναλλακτικές μέθοδοι ταξινόμησης είναι η «ταξινόμηση με επιλογή», η «ταξινόμηση με παρεμβολή» και η «γρήγορη ταξινόμηση» 35

36 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΔΕΥΤΕΡΕΥΟΥΣΑΣ ΜΝΗΜΗΣ Σε μεγάλες εφαρμογές, επειδή η κύρια μνήμη (RAM) δεν επαρκεί ως αποθηκευτικός χώρος δεδομένων, γίνεται χρήση της δευτερεύουσας μνήμης (κυρίως του μαγνητικού δίσκου), όπου τα δεδομένα σώζονται υπό μορφή αρχείων. Μια βασική διαφορά κύριας και δευτερεύουσας μνήμης, είναι ότι στη δευτερεύουσα τα δεδομένα διατηρούνται ακόμα και στην περίπτωση που διακοπεί η παροχή ρεύματος. Έτσι τα δεδομένα διατηρούνται και μετά τον τερματισμό του προγράμματος, ενώ στις δομές δεδομένων της κύριας μνήμης, όπως είναι οι πίνακες, αυτό δεν ισχύει. Η δευτερεύουσα μνήμη είναι οργανωμένη σε ειδικές δυναμικές δομές δεδομένων που ονομάζονται αρχεία. Τα στοιχεία ενός αρχείου ονομάζονται εγγραφές (records) και κάθε μία από αυτές αποτελείται από πεδία (fields). Κάποια από τα πεδία ταυτοποιούν την εγγραφή ενώ κάποια άλλα απλά περιγράφουν διάφορα χαρακτηριστικά της. Το πεδίο που ταυτοποιεί μια εγγραφή ονομάζεται Πρωτεύον Κλειδί (primary key), ή απλά κλειδί. Με δεδομένο ένα πρωτεύον κλειδί, μπορεί να χρησιμοποιηθεί και δεύτερο πεδίο για να ταυτοποιήσουμε μια εγγραφή. Αυτό το πεδίο ονομάζεται δευτερεύον κλειδί (secondary key) ΠΑΡΑΔΕΙΓΜΑ ΑΡΧΕΙΟΥ: ΜΑΘΗΤΕΣ εγγραφή πρωτεύον κλειδί Αριθμός μητρώου δευτερεύον κλειδί Ονοματεπώνυμο Έτος γέννησης Τάξη Τμήμα Τηλέφωνο πεδία 36

37 ΚΕΦ.6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ H ENNOIA TOY ΠΡΟΓΡΑΜΜΑΤΟΣ Ως γνωστόν, τα στάδια αντιμετώπισης ενός προβλήματος είναι : Ακριβής προσδιορισμός του προβλήματος Ανάπτυξη αντίστοιχου αλγορίθμου Διατύπωση αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή (προγραμματισμός) Το πρόγραμμα είναι η υλοποίηση του αλγορίθμου σε μία κατάλληλη γλώσσα προγραμματισμού. Βασικά στοιχεία του προγράμματος είναι τα δεδομένα του και οι δομές δεδομένων πάνω στα οποία και ενεργεί (αποτελούν αδιάσπαστη ενότητα). Στην ουσία, ο υπολογιστής καταλαβαίνει μόνο δύο καταστάσεις, οι οποίες αντιπροσωπεύονται με τα ψηφία 0 και 1 (ηλεκτρικές τάσεις). Έτσι εκτελεί ταχύτατα στοιχειώδεις ενέργειες οι οποίες είναι εκφρασμένες σε ακολουθίες αυτών των ψηφίων. ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ Οι γλώσσες προγραμματισμού αναπτύχθηκαν με σκοπό την επικοινωνία μεταξύ ανθρώπου μηχανής. Οι πρώτοι υπολογιστές ήταν τεράστιοι σε μέγεθος με περιορισμένη ταχύτητα, ενώ σήμερα ισχύει το ακριβώς αντίθετο. Οι βασικές αρχές των υπολογιστών (που διατυπώθηκαν το 1945 απο τον Φον Νόυμαν) και των γλωσσών προγραμματισμού παραμένουν ίδιες μέχρι σήμερα. ΓΛΩΣΣΕΣ ΜΗΧΑΝΗΣ Το πρόγραμμα γλώσσας μηχανής είναι μία ακολουθία δυαδικών ψηφίων (ψηφία 0, 1) που αποτελούν εντολές προς τον επεξεργαστή για στοιχειώδεις λειτουργίες. Είναι επίπονος και ακατανόητος τρόπος προγραμματισμού αφού οι εντολές δίνονται στη μητρική γλώσσα του υπολογιστή. Στην ουσία ο υπολογιστής αναδιαρθρώνεται (ρύθμιση διακοπτών, καλωδίων) παρά προγραμματίζεται κάθε φορά, πράγμα χρονοβόρο αφού πρέπει να επαναλαμβάνεται για κάθε νέο υπολογισμό (π.χ ENIAC). Ακόμα και σήμερα οι εντολές ενός προγράμματος μετατρέπονται από τον υπολογιστή σε γλώσσα μηχανής, προκειμένου να εκτελεστούν. 37

38 ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ ΓΛΩΣΣΕΣ ΧΑΜΗΛΟΥ ΕΠΙΠΕΔΟΥ Είναι πιο κατανοητές στον άνθρωπο από τις ακολουθίες 0, 1. Χρησιμοποιούν συμβολισμούς για να υποδηλώσουν πράξεις (ADD, SUB, MUL, DIV, LOAD, JUMP, SHIFT κλπ). Οι εντολές μετατρέπονται εσωτερικά από τον υπολογιστή σε ακολουθίες 0, 1 (συμβολομετάφραση) και εκτελούνται. Η μετάφραση αναλαμβάνεται από ένα ειδικό μεταφραστικό πρόγραμμα που ονομάζεται Συμβολομεταφραστής (Assembler). Οδηγούν σε μακροσκελή προγράμματα που είναι δύσκολο να γραφούν, να συντηρηθούν και να μεταφερθούν. Είναι χαμηλού επιπέδου γλώσσες γιατί εξαρτώνται από την αρχιτεκτονική του υπολογιστή (δεν έχουν μεταφερσιμότητα). ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ (3 ης Γενιάς) Εμφανίστηκαν στα τέλη του 50 για καλύτερη επικοινωνία ανθρώπου Η/Υ. Μεταφράζονται από τον υπολογιστή σε γλώσσα μηχανής από ένα ειδικό πρόγραμμα που ονομάζεται Μεταγλωττιστής (Compiler). Μπορούν να μεταφερθούν και να εκτελεστούν και σε άλλο υπολογιστή υπό την προϋπόθεση ότι αυτός διαθέτει τον αντίστοιχο μεταγλωττιστή. Χρησιμοποιούν ως εντολές απλές λέξεις της αγγλικής γλώσσας και ακολουθούν αυστηρούς συντακτικούς κανόνες. Καμία γλώσσα δεν μπορεί να καλύψει τις απαιτήσεις σε όλους τους τομείς δραστηριοτήτων. ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ ΧΑΜΗΛΟΥ ΕΠΙΠΕΔΟΥ Πέρασμα σε γλώσσες ανεξάρτητες από την αρχιτεκτονική του υπολογιστή Προσπάθεια για πιο κατανοητές και ανθρώπινες γλώσσες ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ 38

39 FORTRAN ΠΑΡΑΔΕΙΓΜΑΤΑ ΓΛΩΣΣΩΝ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ Αναπτύχθηκε από την IBM το 1957 (ως μεταφραστής τύπων). Κατάλληλη για επίλυση μαθηματικών και επιστημονικών προβλημάτων. Υστερούσε στη διαχείριση αρχείων δεδομένων και αλφαριθμητικών πληροφοριών. Γνώρισε πολλές βελτιώσεις με κυριότερες τις 4, 77, 90/95 και Visual Fortran. Χρησιμοποιείται και σήμερα σε επιστημονικές εφαρμογές. COBOL Αναπτύχθηκε το 1960 (από την G.Hopper αξιωματικό του Π.Ναυτικού των ΗΠΑ). Κατάλληλη για ανάπτυξη εμπορικών και διαχειριστικών εφαρμογών (αρχείων δεδομένων). Χρησιμοποιήθηκε από πολλές επιχειρήσεις και την Δημόσια Διοίκηση. Κάθε πρόγραμμα διαθέτει 4 υποδιαιρέσεις (divisions) οδηγώντας σε μακροσκελή προγράμματα. Βρίσκει χρήση ακόμα και σήμερα. ALGOL Αναπτύχθηκε από ευρωπαίους επιστήμονες το 1960 για γενικής χρήσης προγράμματα. Είχε ελάχιστη πρακτική εφαρμογή. Άσκησε επιρροή σε επόμενες γλώσσες. PL/1 Αναπτύχθηκε στα μέσα του 60. Προσπάθησε ανεπιτυχώς να καλύψει όλους τους τομείς προγραμματισμού (επιστημονικούς και εμπορικούς), δηλαδή να συνδυάσει Fortran και Cobol. LISP - PROLOG Γλώσσες που χρησιμοποιούνται στον χώρο της Τεχνητής Νοημοσύνης (Έμπειρα Συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών). Η Lisp (επεξεργασία λιστών από σύμβολα) αναπτύχθηκε στα μέσα του 60 από το ΜΙΤ και η Prolog στις αρχές του 70. BASIC Αρχικά αναπτύχθηκε ως γλώσσα γενικής χρήσης για εκπαίδευση αρχαρίων. Τα προγράμματα είναι σύντομα και εκτελούνται με την βοήθεια διερμηνευτή (interpreter). Σύντομα έγινε η δημοφιλέστερη γλώσσα στους μικροϋπολογιστές. Η Microsoft την καθιέρωσε μέσα από τις εκδόσεις QuickBasic και Visual Basic σαν πρότυπο ανάπτυξης εφαρμογών σε pc. 39

40 PASCAL Αναπτύχθηκε απο τον καθηγητή N.Wirth το 1970 που βασίστηκε πάνω στην Algol. Κατάλληλη για εκπαίδευση και για δημιουργία ισχυρών προγραμμάτων γενικής χρήσης. Είναι γλώσσα κατάλληλη για την δημιουργία δομημένων προγραμμάτων (απλών στη συγγραφή και στη κατανόηση). Αποτέλεσε βάση για την ανάπτυξη ισχυρότερων γλωσσών όπως ADA και Modula-2. C Αναπτύχθηκε το 1972 από τον D.Ritchie στην εταιρία Bell της ΑΤ&Τ. Χρησιμοποιήθηκε για την δημιουργία του λειτουργικού συστήματος UNIX. Είναι λητή στην έκφραση, αλλά πλούσια σε τελεστές και τύπους δεδομένων. Έχει κοινά χαρακτηριστικά με την Pascal. Είναι δομημένη διαδικασιακή γλώσσα γενικής χρήσης. Κατάλληλη για ανάπτυξη δομημένων εφαρμογών αλλά έχει ταυτόχρονα και δυνατότητες γλωσσών χαμηλού επιπέδου. Οδήγησε στην ανάπτυξη της γλώσσας C++ που είναι μια γλώσσα αντικειμενοστραφούς προγραμματισμού (και όχι δομημένου) ο οποίος πρωτοπαρουσιάστηκε το 70. JAVA Είναι μια αντικειμενοστραφής γλώσσα. Αναπτύχθηκε από την εταιρία Sun. Κατάλληλη για εφαρμογές που εκτελούνται σε Κατανεμημένα Περιβάλλοντα (δηλαδή σε διαφορετικούς υπολογιστές που συνδέονται στο Διαδίκτυο και έχουν διαφορετικά λειτουργικά συστήματα). ΓΛΩΣΣΕΣ ΓΡΑΦΙΚΩΝ ΠΕΡΙΒΑΛΛΟΝΤΩΝ Εκμεταλλεύονται την γραφική επικοινωνία μεταξύ χρήστη και υπολογιστή Ακολουθούν τις αρχές του Οπτικού Προγραμματισμού (Visual Programming), δηλαδή ολόκληρο το περιβάλλον τις εφαρμογής δημιουργείται με γραφική υποστήριξη π.χ. μενού, πλαίσια διαλόγου Ακολουθούν τις αρχές του Οδηγούμενου από το Γεγονός Προγραμματισμού (Event Driven Programming), δηλαδή η ενεργοποίηση των λειτουργιών του προγράμματος γίνεται με την εκτέλεση ενός γεγονότος π.χ. κλικ ποντικιού Τέτοιες γλώσσες είναι οι Visual Basic, Visual C++, Java. Πλεονεκτήματα Γλωσσών Υψηλού Επιπέδου Φυσικότερες και πιο ανθρώπινες, πιο κοντά στα προβλήματα που επιλύουν Ανεξαρτησία από τον τύπο του υπολογιστή (υψηλή μεταφερσιμότητα) Ευκολία εκμάθησης και εκπαίδευσης Εύκολη διόρθωση λαθών και συντήρηση 40

41 ΓΛΩΣΣΕΣ 4 ης ΓΕΝΙΑΣ Αποκρύπτουν πολλές λεπτομέρειες από τις τεχνικές προγραμματισμού και τις ιδιομορφίες της αρχιτεκτονικής του υπολογιστή, με αποτέλεσμα να διευκολύνουν τον χρήστη. Σε αντίθεση με τις γλώσσες υψηλού επιπέδου (3 ης γενιάς) που απευθύνονται μόνο σε προγραμματιστές, οι γλώσσες 4 ης γενιάς είναι πιο φιλικές προς το χρήστη. Λέγονται και γλώσσες ερωταπαντήσεων γιατί ο χρήστης μπορεί να υποβάλλει ερωτήσεις στο σύστημα και να παίρνει πληροφορίες από υπάρχουσες Βάσεις Δεδομένων, καθορίζοντας και τον τρόπο εμφάνισής τους. Παράδειγμα αποτελεί η γλώσσα SQL. Άλλες γλώσσες διαχείρισης Βάσεων Δεδομένων Η dbase στα τέλη του 70 μπορούσε να χρησιμοποιηθεί και από άτομα με ελάχιστες γνώσεις προγραμματισμού, με πιο διαδεδομένη έκδοση τη dbase III Plus που εξέλιξή της υπήρξε ο Clipper. Τα προϊόντα αυτά που συχνά ονομάζονται xbase αποτέλεσαν τον πρόδρομο σημερινών πακέτων διαχείρησης βάσεων δεδομένων όπως η Access. ΤΑΞΙΝΟΜΗΣΗ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Οι γλώσσες προγραμματισμού είναι πάρα πολλές και καθεμία καλύπτει και υπερέχει σε ένα ξεχωριστό πεδίο εφαρμογών. Οι γλώσσες υψηλού επιπέδου διακρίνονται στις εξής κατηγορίες : Διαδικασιακές ή Αλγοριθμικές Αντικειμενοστραφείς Συναρτησιακές Μη Διαδικασιακές Ερωταπαντήσεων Pascal, Basic, C, Fortran, Cobol,Algol,PL/1 Java, C++, Visual Basic Lisp Prolog SQL Με βάση την περιοχή χρήσης διακρίνουμε τις εξής κατηγορίες : Γενικής χρήσης Basic, Pascal Επιστημονικής κατεύθυνσης Fortran Εμπορικής κατεύθυνσης Cobol Προγραμματισμού Συστημάτων C, C++ Τεχνητής Νοημοσύνης Lisp, Prolog Ειδικής Χρήσης Χρήση στη ρομποτική, στη σχεδίαση ολοκληρωμένων κυκλωμάτων, στα συστήματα διαχείρισης βάσεων δεδομένων, στην εκπαίδευση μέσω υπολογιστή κλπ. ΚΑΝΟΝΑΣ Δεν υπάρχει γλώσσα που να είναι αντικειμενικά καλύτερη από τις άλλες, αλλά καταλληλότερη ανάλογα με το είδος της εφαρμογής. 41

42 Η επιλογή της γλώσσας προγραμματισμού γίνεται με βάση : Το είδος εφαρμογής Το υπολογιστικό περιβάλλον που θα εκτελεστεί Τα προγραμματιστικά περιβάλλοντα που διαθέτουμε Τις γνώσεις του προγραμματιστή ΣΤΟΙΧΕΙΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μια γλώσσα προσδιορίζεται από τέσσερα βασικά στοιχεία: ΑΛΦΑΒΗΤΟ Είναι το σύνολο των στοιχείων που χρησιμοποιεί η γλώσσα. Για παράδειγμα η ελληνική γλώσσα περιέχει 24 γράμματα (πεζά και κεφαλαία), 10 ψηφία από 0 έως 9 και τα σημεία στίξης. Το αντίστοιχο συμβαίνει και με την αγγλική γλώσσα. ΛΕΞΙΛΟΓΙΟ Είναι το υποσύνολο όλων των ακολουθιών που δημιουργούνται από τα στοιχεία του αλφαβήτου και είναι δεκτές από τη γλώσσα. Για παράδειγμα οι λέξεις ΟΣΟ, ΓΙΑ, ΔΙΑΒΑΣΕ κλπ είναι δεκτές από τη γλώσσα, ενώ οι ΤΕΛΟΣ, ΕΠΑΝΕΛΑΒΕ κλπ δεν είναι. ΓΡΑΜΜΑΤΙΚΗ Αποτελείται από δύο μέρη, το τυπικό (ή τυπολογικό) και το συντακτικό : Τυπικό είναι το σύνολο των κανόνων που ορίζουν αν μια λέξη είναι (ορθογραφικά) αποδεκτή. Για παράδειγμα η λέξη ΓΡΑΨΕ είναι αποδεκτή, ενώ η ΓΡΑΠΣΕ δεν είναι. Συντακτικό είναι το σύνολο των κανόνων που ορίζει την νομιμότητα της σύνδεσης και διάταξης των λέξεων για την δημιουργία προτάσεων (αφορά δηλαδή στην ορθή σύνταξη των εντολών). Για παράδειγμα: η εντολή ΑΝ (Χ = 0) ΤΟΤΕ είναι σωστή, ενώ η ΟΣΟ (Χ > 0) ΤΟΤΕ είναι λάθος. ΣΗΜΑΣΙΟΛΟΓΙΑ Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων, εκφράσεων και προτάσεων σε μια γλώσσα. Είναι δηλαδή η εσωτερική σημασία των εντολών που αποφασίζεται από τον δημιουργό της γλώσσας π.χ. η σημασιολογία την εντολής ΓΡΑΨΕ Χ είναι ότι θα εμφανίσει στην οθόνη την τιμή που βρίσκεται στη θέση (κελί) της μνήμης που έχει από το μεταφραστή του προγράμματος δεσμευτεί για την μεταβλητή Χ. 42

43 ΦΥΣΙΚΕΣ ΚΑΙ ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ Οι φυσικές γλώσσες είναι αυτές που χρησιμοποιούν οι άνθρωποι προκειμένου να επικοινωνήσουν μεταξύ τους. Χαρακτηριστικό τους είναι ότι εξελίσσονται συνεχώς αφού συνέχεια νέες λέξεις δημιουργούνται και οι κανόνες γραμματικής και σύνταξης αλλάζουν. Οι τεχνητές γλώσσες, που είναι οι γλώσσες προγραμματισμού, χρησιμοποιούνται για την επικοινωνία ανθρώπου μηχανής. Αυτές χαρακτηρίζονται από στασιμότητα, αφού κατασκευάζονται συνειδητά για ένα συγκεκριμένο λόγο. Οι αλλαγές που δέχονται προκειμένου να διορθώσουν κάποιες αδυναμίες ή να καλύψουν μεγαλύτερο εύρος εφαρμογών είναι συνήθως σε επίπεδο διαλέκτου (π.χ GW Basic, Quick Basic, Visual Basic) επίπεδο επέκτασης (π.χ C, C++) ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓ/ΣΜΟΣ Η ιεραρχική σχεδίαση βασίζεται στην μέθοδο «από πάνω προς τα κάτω» (Top- Down Design), που όπως είναι ήδη γνωστόν περιλαμβάνει : τον καθορισμό των βασικών λειτουργιών του προβλήματος σε ανώτερο επίπεδο. την διάσπαση των λειτουργιών αυτών σε μικρότερες λειτουργίες, μέχρι το τελευταίο επίπεδο που είναι τόσο απλές που δεν μπορούν να υποστούν περαιτέρω διάσπαση. Την σύνθεση των λύσεων των επιμέρους προβλημάτων για την παραγωγή της λύσης του συνολικού προβλήματος. Άρα, σκοπός της ιεραρχικής σχεδίασης είναι η διάσπαση του αρχικού προβλήματος σε επιμέρους προβλήματα. Η ιεραρχική σχεδίαση υλοποιείται με τμηματικό προγραμματισμό, σύμφωνα με τον οποίο κάθε υποπρόβλημα αντιμετωπίζεται ως ανεξάρτητη ενότητα (module). Πλεονεκτήματα του τμηματικού προγραμματισμού : Διευκολύνει την δημιουργία του προγράμματος Μειώνει τα λάθη Ευκολότερη παρακολούθηση, κατανόηση και συντήρηση του προγράμματος 43

44 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Είναι η μεθοδολογία που σήμερα έχει επικρατήσει σε όλες σχεδόν τις σύγχρονες γλώσσες, και είναι επινόηση του καθηγητή E. Dijkstra το Στηρίζεται στη χρήση τριών και μόνο στοιχειωδών λογικών δομών : - Ακολουθία - Επιλογή - Επανάληψη Όλα τα προγράμματα γράφονται χρησιμοποιώντας μόνο αυτές τις τρεις δομές, ή συνδυασμό τους. Κάθε προγραμματιστής μπορεί να γράφει σύνθετα προγράμματα μειώνοντας ταυτόχρονα τα λάθη και διευκολύνοντας την κατανόση και συντήρηση. Κάθε πρόγραμμα καθώς και κάθε ενότητα προγράμματος, έχει μόνο μία είσοδο και μόνο μία έξοδο. Ο Δομημένος Προγραμματισμός περιέχει τις έννοιες της Ιεραρχικής Σχεδίασης και του Τμηματικού Προγραμματισμού Η λογική του δομημένου προγραμματισμού ξεκίνησε από την ανάγκη κατάργησης ή τουλάχιστον περιορισμού της χρήσης της εντολής GOTO (Πήγαινε στο), η οποία προκαλούσε την αλλαγή της ροής εκτέλεσης του προγράμματος. Η αλόγιστη χρήση της εντολής αυτής άλλαζε συνεχώς την ροή του προγράμματος και έκανε δύσκολη την κατανόηση, την παρακολούθηση και την συντήρησή του. Παρακάτω δίνονται για παράδειγμα ένα αδόμητο και ένα δομημένο απόσπασμα αλγορίθμου που εκτελούν την ίδια ακριβώς εργασία Αδόμητος τρόπος (χρήση GOTO) ΑN (Χ > 0) ΤΟΤΕ GOTO 1 AN (X = 0) TOTE GOTO 2 ΓΡΑΨΕ Αρνητικός GOTO 4 1: ΓΡΑΨΕ Θετικός GOTO 4 2: ΓΡΑΨΕ Μηδέν 4:! Συνέχεια Δομημένος τρόπος ΑΝ (Χ > 0) ΤΟΤΕ ΓΡΑΨΕ Θετικός ΑΛΛΙΩΣ_ΑΝ (Χ = 0) ΤΟΤΕ ΓΡΑΨΕ Μηδέν ΑΛΛΙΩΣ ΓΡΑΨΕ Αρνητικός ΤΕΛΟΣ_ΑΝ Πλεονεκτήματα του δομημένου προγραμματισμού Δημιουργία απλούστερων προγραμμάτων Άμεση μεταφορά αλγορίθμων σε προγράμματα Εύκολη ανάλυση του προγράμματος σε τμήματα Περιορισμός λαθών κατά την ανάπτυξη Ευκολία ανάγνωσης και κατανόησης από τρίτους Ευκολία διόρθωσης και συντήρησης 44

45 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Κάθε πρόγραμμα που γράφεται, πρέπει να μετατραπεί σε γλώσσα κατανοητή από τον υπολογιστή, ώστε να μπορεί να εκτελεστεί. Αυτή είναι η γλώσσα μηχανής. Υπάρχουν δύο βασικές κατηγορίες μεταφραστικών προγραμμάτων που το επιτυγχάνουν αυτό. Οι Μεταγλωττιστές και οι Διερμηνευτές. ΜΕΤΑΓΛΩΤΤΙΣΤΗΣ (Compiler) Δέχεται σαν είσοδο το πρόγραμμα της γλώσσας υψηλού επιπέδου και παράγει το ισοδύναμο της γλώσσας μηχανής. Αυτό είναι ανεξάρτητο από το αρχικό πρόγραμμα και εκτελείται σε οποιονδήποτε υπολογιστή. Κάνει έλεγχο συντακτικών λαθών και σε περίπτωση που βρεθούν το πρόγραμμα υποβάλλεται ξανά προς μεταγλώττιση μέχρι να παραχθεί το σωστό εκτελέσιμο. Άρα κάθε πρόγραμμα πριν εκτελεστεί πρέπει πρώτα να περάσει από διαδικασία μεταγλώττισης (αρκετές φορές μέχρι να διορθωθούν όλα τα λάθη) και της σύνδεσης. ΔΙΕΡΜΗΝΕΥΤΗΣ (Interpreter) ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ ΚΑΙ ΣΥΝΔΕΣΗΣ Διαβάζει μία μία τις εντολές του αρχικού προγράμματος και ταυτόχρονα μεταφράζει και εκτελεί την καθεμιά σε εντολές γλώσσας μηχανής. Σε αντίθεση με τον μεταγλωττιστή, κάνει άμεση εκτέλεση και άρα άμεση διόρθωση. Είναι όμως πιο αργός από το ισοδύναμο εκτελέσιμο πρόγραμμα του μεταγλωττιστή. ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΑΦΡΑΣΗΣ ΚΑΙ ΕΚΤΕΛΕΣΗΣ 45

46 Στα σύγχρονα προγραμματιστικά περιβάλλοντα compiler και interpreter παρουσιάζονται μαζί. O interpreter χρησιμοποιείται κατά τη φάση της δημιουργίας του προγράμματος. Ο compiler χρησιμοποιείται για την τελική έκδοση και εκμετάλλευση του προγράμματος. ΠΗΓΑΙΟ (Source) : Είναι το αρχικό πρόγραμμα μετά την συγγραφή του από τον προγραμματιστή. Αποτελεί ένα απλό αρχείο κειμένου που δημιουργείται με τον συντάκτη (editor). ΑΝΤΙΚΕΙΜΕΝΟ (Object) : Είναι το πρόγραμμα που παράγεται μετά την μεταγλώττιση του πηγαίου προγράμματος. Είναι σε μορφή κατανοητή από τον υπολογιστή (δυαδικά ψηφία) αλλά δεν είναι εκτελέσιμο. Για να εκτελεστεί χρειάζεται σύνδεση με άλλα προγράμματα. ΣΥΝΔΕΤΗΣ (Linker) Το πρόγραμμα που επιτυγχάνει την σύνδεση με άλλα υποπρογράμματα ονομάζεται Συνδέτης Φορτωτής (linker ή loader). Αναλαμβάνει να συνδέσει και να συμπληρώσει το αντικείμενο με άλλα τμήματα προγράμματος, που έχουν γραφεί χωριστά και είναι απαραίτητα για την εκτέλεσή του. Τα τμήματα προγράμματος που συνδέονται στο αντικείμενο μπορεί να είναι γραμμένα από τον ίδιο τον προγραμματιστή ή να βρίσκονται σε βιβλιοθήκες προγραμμάτων (libraries) της γλώσσας. ΕΚΤΕΛΕΣΙΜΟ (Executable) Είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή. Το εκτελέσιμο πρόγραμμα παράγεται μόνο όταν το αρχικό έχει γραφεί χωρίς συντακτικά λάθη (δηλαδή έχει περάσει επιτυχώς το στάδιο της μεταγλώττισης). ΚΑΤΗΓΟΡΙΕΣ ΛΑΘΩΝ Συντακτικά: εμφανίζονται κατά την μεταγλώττιση και οφείλονται σε παραβίαση των γραμματικών κανόνων της γλώσσας. Προκύπτουν συνήθως από ορθογραφικά ή συντακτικά σφάλματα (π.χ αναγραμματισμός εντολών), παράληψη δηλώσεων μεταβλητών ή ασυμβατότητα τύπων και πρέπει πάντα να διορθωθούν για να παραχθεί το εκτελέσιμο πρόγραμμα π.χ. Χ (Α + Β + Γ) : 3 Λογικά: εμφανίζοντα κατά την εκτέλεση και είναι πιο σημαντικά λάθη και δυσκολότερα στην διόρθωση αφού οφείλονται σε εσφαλμένη υλοποίηση του αλγορίθμου π.χ. Χ Α + Β + Γ / 3 ΣΥΝΤΑΚΤΗΣ (Editor) : Είναι ειδικό πρόγραμμα που χρησιμοποιείται για την συγγραφή του αρχικού προγράμματος (πηγαίου). Λειτουργεί ως ένας μικρός επεξεργαστής κειμένου που επιτρέπει την γρήγορη συγγραφή προγραμμάτων 46

47 ΑΠΑΙΤΟΥΜΕΝΑ ΠΡΟΓΡΑΜΜΑΤΑ Ένα προγραμματιστικό περιβάλλον χρειάζεται να διαθέτει μια σειρά προγραμμάτων προκειμένου να επιτρέπει στον προγραμματιστή να δημιουργήσει, να μεταφράσει και να εκτελέσει ένα πρόγραμμα: Α) Συντάκτης, Β) Μεταγλωττιστής, Γ) Συνδέτης Συντάκτης ΠΗΓΑΙΟ ΠΗΓΑΙΟ Μεταγλωττιστής ΤΕΛΙΚΟ ΤΕΛΙΚΟ Συνδέτης ΕΚΤΕΛΕΣΙΜΟ 47

48 ΚΕΦ.7 - ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η υλοποίηση ενός αλγορίθμου γίνεται πάντα με μία γλώσσα προγραμματισμού. Η επιλογή της κατάλληλης γλώσσας δεν είναι εύκολη και εξαρτάται από το είδος του προγράμματος. Σχετικά με τις διάφορες γλώσσες πρέπει να γνωρίζουμε τα εξής : Δεν υπάρχει καλύτερη γλώσσα προγραμματισμού, αλλά καταλληλότερη για συγκεκριμένο τύπο εφαρμογών. Κάθε γλώσσα εξαρτάται σε μεγάλο βαθμό από τον εξοπλισμό και το λειτουργικό σύστημα. Σχεδόν όλες οι γλώσσες έχουν κοινά χαρακτηριστικά (τύπους δεδομένων, βασικές δομές, εντολές). Οι αλγόριθμοι του σχολικού βιβλίου υλοποιούνται με μία γλώσσα προγραμματισμού που έχει το όνομα «ΓΛΩΣΣΑ» και περιέχει κάποια χαρακτηριστικά από τις σύγχρονες γλώσσες όπως Pascal, Visual Basic, C, C++, Java κλπ. ΑΛΦΑΒΗΤΟ ΓΛΩΣΣΑΣ ΓΡΑΜΜΑΤΑ Κεφαλαία και Πεζά του Ελληνικού Λατινικού Αλφαβήτου (Α-Ω, α-ω, Α-Ζ, a-z) ΨΗΦΙΑ 0 9 και ΕΙΔΙΚΟΙ ΧΑΡΑΚΤΗΡΕΣ + - * / =. ( ),! & _ κενός χαρακτήρας ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η «ΓΛΩΣΣΑ» υποστηρίζει τους εξής τέσσερις τύπους δεδομένων : ΑΚΕΡΑΙΟΣ Περιλαμβάνει τους ακέραιους αρνητικούς και θετικούς π. χ 253, 0, -40, 3490 ΠΡΑΓΜΑΤΙΚΟΣ Περιλαμβάνει τους πραγματικούς (δεκαδικούς) αριθμούς π. χ , 0.25, ΧΑΡΑΚΤΗΡΑΣ Περιλαμβάνει δεδομένα τα οποία ονομάζονται αλφαριθμητικά και μπορεί να περιέχουν οποιοδήποτε χαρακτήρα παράγεται από το πληκτρολόγιο. Πρέπει πάντα να περικλείονται μέσα σε απλά εισαγωγικά π.χ. 'Κ', 'Hello', '10', 'ΑΒ30', 'George' ΛΟΓΙΚΟΣ Δέχεται μόνο δύο τιμές Αληθής και Ψευδής 48

49 Στην πραγματικότητα τα δεδομένα καταχωρούνται στη μνήμη του Η/Υ καταλαμβάνοντας συγκεκριμένο αριθμό θέσεων (bytes). Ανάλογα με τον τύπο δεδομένων της, κάθε μεταβλητή καταλαμβάνει διαφορετικό αριθμό bytes στη μνήμη. Έτσι μια ακέραια (integer) μεταβλητή δεσμεύει 1, 2 ή 4 bytes στη μνήμη, ενώ μια πραγματική (real) 4 ή 8 bytes. ΣΤΑΘΕΡΕΣ Είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά την διάρκεια εκτέλεσης του προγράμματος, δηλαδή γλωσσικά αντικείμενα που παίρνουν μόνο μια ειδική τιμή. Κάθε σταθερά ανήκει σε έναν από τους παραπάνω τέσσερις τύπους δεδομένων. Η δήλωση σταθεράς γίνεται στην αρχή του προγράμματος μετά την επικεφαλίδα ως εξής : ΣΤΑΘΕΡΕΣ Όνομα = Τιμή... Όνομα = Τιμή ΜΕΤΑΒΛΗΤΕΣ Είναι ποσότητες που οι τιμές τους μπορούν να μεταβάλλονται κατά τη διάρκεια εκτέλεσης του προγράμματος, δηλαδή γλωσσικά στοιχεία που χρησιμοποιούνται για να παραστήσουν στοιχεία δεδομένων, των οποίων η τιμή μπορεί να αλλάζει κατά την εκτέλεση του προγράμματος. Οι μεταβλητές που χρησιμοποιούνται στο πρόγραμμα, αντιστοιχούνται από τον μεταγλωττιστή (compiler) σε συγκεκριμένες θέσεις της μνήμης. Η τιμή της μεταβλητής είναι η τιμή που βρίσκεται στην αντίστοιχη θέση της μνήμης (που έχει δεσμευτεί για την μεταβλητή αυτή). Το διπλανό σχέδιο δείχνει την αντιστοίχιση των μεταβλητών Χ, Α και Β στη μνήμη του υπολογιστή (να θεωρηθεί ότι ως τιμή εισόδου δίνεται το 2), βάσει του τμήματος εντολών που εκτελούνται. Ενώ η τιμή της μεταβλητής αλλάζει, αυτό που μένει αναλλοίωτο είναι ο τύπος δεδομένων της (δηλαδή ακέραιος, πραγματικός, χαρακτήρας ή λογικός). 49

50 Η δήλωση μεταβλητών γίνεται πάντα μετά την δήλωση των σταθερών ως εξής : ΜΕΤΑΒΛΗΤΕΣ Τύπος : Λίστα Μεταβλητών... Τύπος : Λίστα Μεταβλητών Σωστή τακτική είναι να επιλέγονται ονόματα μεταβλητών που να παραπέμπουν στο περιεχόμενό τους (δηλαδή για μια μεταβλητή που συμβολίζει τον μισθό ενός υπαλλήλου, δεν βοηθάει να δώσουμε ονόματα όπως Χ ή Α ή Μ αλλά ονόματα όπως Salary, Misthos, Mis, Sal, ΜΙΣΘΟΣ, μισθός, Μ, μ κλπ ΟΝΟΜΑΤΑ Τα ονόματα που επιλέγουμε για τις σταθερές και μεταβλητές του προγράμματος πρέπει να πληρούν τους εξής περιορισμούς: Αποτελούνται από γράμματα (ελληνικά ή λατινικά), νούμερα και το σύμβολο _ (underscore) Πρέπει υποχρεωτικά να αρχίζουν με γράμμα Δεν αποτελούν δεσμευμένες λέξεις της ΓΛΩΣΣΑΣ Δεν περιέχουν κενά ή άλλα σύμβολα Παραδείγματα λανθασμένων ονομάτων : 100Α, ΑΒ@, Κόστος$, ΤΟΤΕ, Μέση Τιμή ΤΕΛΕΣΤΕΣ DIV (ακέραιο πηλίκο διαίρεσης) MOD (ακέραιο υπόλοιπο διαίρεσης) ΑΡΙΘΜΗΤΙΚΟΙ ΣΥΓΚΡΙΤΙΚΟΙ ΛΟΓΙΚΟΙ + = ΚΑΙ - < > Η * > ΟΧΙ / >= ^ < DIV <= MOD ΣΥΝΑΡΤΗΣΕΙΣ (ενσωματωμένες μαθηματικές) Οι πιο συχνά χρησιμοποιούμενες συναρτήσεις είναι : ΗΜ (Χ) Ημίτονο Χ ΛΟΓ (Χ) Λογάριθμος του Χ ΣΥΝ (Χ) Συνημίτονο Χ Ε (Χ) e x ΕΦ (Χ) Εφαπτομένη Χ Α_Μ (Χ) Ακέραιο μέρος του Χ Τ_Ρ (Χ) Τετραγωνική ρίζα του Χ Α_Τ (Χ) Απόλυτη τιμή του Χ 50

51 ΙΕΡΑΡΧΙΑ ΠΡΑΞΕΩΝ Όλες οι μεταβλητές που εμφανίζονται σε μία έκφραση, πρέπει να έχουν προηγουμένως δηλωθεί στο τμήμα Σταθερών και Μεταβλητών. Η ιεραρχία που ακολουθείται στις πράξεις έχει ως εξής : Από αριστερά προς τα δεξιά Παρενθέσεις (πρώτα οι εσωτερικές) ( ) Ύψωση σε δύναμη ^ Πολλαπλασιασμοί και διαιρέσεις *, /, div, mod Προσθέσεις και αφαιρέσεις +, - Συγκριτικοί τελεστές >, <, =, >=, <=, <> Λογικοί τελεστές KAI, H, OXI Ένα από τα πιο συνηθισμένα λάθη είναι ο διαφορετικός αριθμός αριστερών από δεξιές παρενθέσεις. ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ Η τιμή του δεξιού μέλους της εντολής εκχώρησης αποδίδεται στην μεταβλητή του αριστερού μέλους. Μεταβλητή Έκφραση Το σύμβολο εκχώρησης είναι το αριστερό βέλος και πρέπει να διαφοροποιείται από το σύμβολο =, το οποίο χρησιμοποιείται σε συνθήκες ως συγκριτικός τελεστής και στο τμήμα ορισμού σταθερών ως τελεστής απόδοσης τιμής. Σε μια εντολή εκχώρησης, η μεταβλητή και η τιμή της έκφρασης που της εκχωρείται πρέπει να είναι του ιδίου τύπου δεδομένων. ΕΝΤΟΛΕΣ ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ Τα δεδομένα εισάγονται από μια μονάδα εισόδου που είναι το πληκτρολόγιο και γράφονται σε μια μονάδα εξόδου που είναι η οθόνη. Για την ανάγνωση των δεδομένων χρησιμοποιείται η εντολή ΔΙΑΒΑΣΕ. Για την εμφάνιση αποτελεσμάτων χρησιμοποιείται η εντολή ΓΡΑΨΕ. Οτιδήποτε περιέχεται μέσα σε εισαγωγικά στην εντολή ΓΡΑΨΕ, αποτελεί συμβολοσειρά (αλφαριθμητική σταθερά) και εμφανίζεται στην οθόνη ως έχει. 51

52 ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Κάθε πρόγραμμα έχει συγκεκριμένη δομή. Ξεκινάει με την επικεφαλίδα του που περιέχει το όνομά του, ακολουθείται από το τμήμα δήλωσης σταθερών (αν έχει) και μεταβλητών και ολοκληρώνεται με το κυρίως μέρος το οποίο περικλείεται ανάμεσα σε εντολές ΑΡΧΗ και ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ. Οι δεσμευμένες λέξεις της ΓΛΩΣΣΑΣ γράφονται με κεφαλαία γράμματα. Αν ο πρώτος χαρακτήρας της γραμμής είναι το θαυμαστικό (!), τότε η γραμμή περιέχει μη εκτελέσιμες εντολές, οι οποίες ονομάζονται σχόλια και έχουν επεξηγηματικό χαρακτήρα. Αν μια εντολή δεν χωράει σε μία γραμμή, τότε συνεχίζει στην επόμενη γραμμή που ο πρώτος χαρακτήρας της είναι ο (&). Κάθε πρόγραμμα της ΓΛΩΣΣΑΣ έχει την εξής μορφή : Επικεφαλίδα Τμήμα ορισμού σταθερών Τμήμα δήλωσης μεταβλητών Κύριο τμήμα εντολών ΠΡΟΓΡΑΜΜΑ Όνομα ΣΤΑΘΕΡΕΣ Όνομα = τιμή... ΜΕΤΑΒΛΗΤΕΣ Τύπος : Λίστα Παραμέτρων... ΑΡΧΗ... εντολές... ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 52

53 ΚΕΦ.8 - ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ Η «ΓΛΩΣΣΑ» χρησιμοποιεί ακριβώς τις ίδιες δομές εντολών με τους αλγορίθμους. Ο μόνος περιορισμός σε σχέση με τους αλγορίθμους, είναι ότι οι δεσμευμένες λέξεις των εντολών της «ΓΛΩΣΣΑΣ» γράφονται με κεφαλαία γράμματα. ΔΟΜΕΣ ΕΝΤΟΛΩΝ ΕΠΙΛΟΓΗΣ ΑΝ ( Συνθ ) ΤΟΤΕ εντολές ΤΕΛΟΣ_ΑΝ Κλείνει πάντα με ΤΕΛΟΣ_ΑΝ ανεξάρτητα από το πλήθος των εντολών που περιέχει ΑΝ (α >= 0) ΤΟΤΕ ρίζα Τ_Ρ(α) ΤΕΛΟΣ_ΑΝ ΑΝ (Συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ εντολές ΤΕΛΟΣ_ΑΝ ΑΝ (A < B) ΤΟΤΕ min A ΑΛΛΙΩΣ min B ΤΕΛΟΣ_ΑΝ ΑΝ (Συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ_ΑΝ (Συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ_ΑΝ (Συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ εντολές ΤΕΛΟΣ_ΑΝ ΑΝ (x < 10) ΤΟΤΕ ΓΡΑΨΕ 'ΑΠΟΡΡΙΠΤΕΤΑΙ' ΑΛΛΙΩΣ_ΑΝ (x < 12) ΤΟΤΕ ΓΡΑΨΕ 'ΜΕΤΡΙΑ' ΑΛΛΙΩΣ_ΑΝ (x < 15) ΤΟΤΕ ΓΡΑΨΕ 'ΚΑΛΑ' ΑΛΛΙΏΣ_ΑΝ (x < 18) ΤΟΤΕ ΓΡΑΨΕ 'ΠΟΛΥ ΚΑΛΑ' ΑΛΛΙΩΣ ΓΡΑΨΕ 'ΑΡΙΣΤΑ' ΤΕΛΟΣ_ΑΝ 53

54 ΔΟΜΕΣ ΕΝΤΟΛΩΝ ΕΠΑΝΑΛΗΨΗΣ ΟΣΟ (Συνθ) ΕΠΑΝΑΛΑΒΕ εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ εντολές ΜΕΧΡΙΣ_ΟΤΟΥ (Συνθ) ΓΙΑ μεταβλητή ΑΠΟ τ1 ΜΕΧΡΙ τ2 ΜΕ ΒΗΜΑ β εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΕΝΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ Οι συνθήκες μπορούν να περιέχουν συγκρίσεις ανάμεσα σε αριθμητικές αλλά και αλφαριθμητικές τιμές (αλφαβητικά). AN αριθμός = 0 ΤΟΤΕ ΌΣΟ λέξη < > 'Hello' ΕΠΑΝΑΛΑΒΕ ΑΝ Χ+Υ >= (Α+Β)/Γ ΤΟΤΕ Όταν οι αριθμητικοί, οι συγκριτικοί και οι λογικοί τελεστές συνδυάζονται σε μια έκφραση, οι αριθμητικές πράξεις εκτελούνται πρώτες, ακουλουθούν οι συγκρίσεις και τέλος γίνονται οι λογικές πράξεις. ΑΝ (Χ + 2 > 8) Ή (Χ Υ * 2 <= 10) ΤΟΤΕ Αν σε μία δομή επιλογής μπορούν να χρησιμοποιηθούν εναλλακτικά είτε εμφωλευμένα ΑΝ είτε λογικοί σύνδεσμοι (ΚΑΙ, Η, ΟΧΙ), τότε προτιμάται το δεύτερο λόγω ταχύτητας. ΑΝ (Β < 80) ΤΟΤΕ ΑΝ (Υ < 1.70) ΤΟΤΕ ΓΡΑΨΕ 'ελαφρύς, κοντός' ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΑΝ (Β < 80) ΚΑΙ (Υ < 1.70) ΤΟΤΕ ΓΡΑΨΕ 'ελαφρύς, κοντός' ΤΕΛΟΣ_ΑΝ 54

55 Η χρήση εμφωλευμένων ΑΝ οδηγεί σε πολύπλοκες δομές που αυξάνουν την πιθανότητα σφάλματος. Καλό είναι να αποφεύγεται ο έλεγχος περιττών συνθηκών μέσα στις εντολές επιλογής. ΑΝ (ποσ <= 100) ΤΟΤΕ κόστος ποσ * 3.5 ΑΛΛΙΩΣ_ΑΝ (ποσ > 100) ΚΑΙ (ποσ <= 200) ΤΟΤΕ κόστος ποσ * 4.5 ΑΛΛΙΩΣ_ΑΝ (ποσ > 200) ΚΑΙ (ποσ <= 500) ΤΟΤΕ κόστος ποσ * 7.5 ΑΛΛΙΩΣ κόστος ποσ * 8.5 ΤΕΛΟΣ_ΑΝ ΑΝ (ποσ <= 100) ΤΟΤΕ κόστος ποσ * 3.5 ΑΛΛΙΩΣ_ΑΝ (ποσ <= 200) ΤΟΤΕ κόστος ποσ * 4.5 ΑΛΛΙΩΣ_ΑΝ (ποσ <= 500) ΤΟΤΕ κόστος ποσ * 7.5 ΑΛΛΙΩΣ κόστος ποσ * 8.5 ΤΕΛΟΣ_ΑΝ Στις εντολές επανάληψης πρέπει υποχρεωτικά να υπάρχει μέσα στο βρόχο μία εντολή που να μεταβάλλει την τιμή της μεταβλητής που ελέγχεται με την συνθήκη. Διαφορετικά έχουμε άπειρη ανακύκλωση. Α 1 ΟΣΟ (Α <= 100) ΕΠΑΝΑΛΑΒΕ Α Α +... ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Α 1 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ Α Α +... ΜΕΧΡΙΣ_ΟΤΟΥ (Α > 100) Στην περίπτωση που δεν είναι γνωστός ο αριθμός των επαναλήψεων, είναι προσωπική επιλογή του προγραμματιστή για το ποια από τις εντολές επανάληψης θα χρησιμοποιήσει (ΟΣΟ ή ΜΕΧΡΙΣ_ΟΤΟΥ). Κάθε εντολή επανάληψης ΓΙΑ μπορεί να υλοποιηθεί με εντολές ΟΣΟ ή ΜΕΧΡΙΣ_ΟΤΟΥ. ΓΙΑ Α ΑΠΟ 1 ΜΕΧΡΙ 50 ΜΕ ΒΗΜΑ 2 ΓΡΑΨΕ Α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Α 1 ΟΣΟ (Α <= 50) ΕΠΑΝΑΛΑΒΕ ΓΡΑΨΕ Α Α Α + 2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Α 1 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Α Α Α + 2 ΜΕΧΡΙΣ_ΟΤΟΥ (Α > 50) 55

56 Το αντίθετο δεν ισχύει πάντα, δηλαδή αν ο αριθμός των επαναλήψεων είναι γνωστός τότε μπορούμε άνετα να μετατρέψουμε μια ΟΣΟ ή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ, ενώ αν ο αριθμός των επαναλήψεων είναι άγνωστος, η μετατροπή αυτή καθίσταται αδύνατη. ΔΙΑΒΑΣΕ Α ΟΣΟ (Α <> 0) ΕΠΑΝΑΛΑΒΕ S S + A ΔΙΑΒΑΣΕ Α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Α ΑΝ Α <> 0 ΤΟΤΕ S S + A ΤΕΛΟΣ_ΑΝ ΜΕΧΡΙΣ_ΟΤΟΥ (Α = 0) ΓΙΑ Α ΑΠΟ ; ΜΕΧΡΙ ; ΜΕ ΒΗΜΑ ; S S + A ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ αδύνατη υλοποίηση ΕΜΦΩΛΕΥΜΕΝΕΣ ΔΟΜΕΣ : ΙΔΙΟΤΗΤΕΣ ΒΡΟΧΩΝ Ο εσωτερικός βρόχος πρέπει να βρίσκεται όλος μέσα στον εξωτερικό (ο βρόχος που ξεκινάει τελευταίος πρέπει να ολοκληρώνεται πρώτος). Η είσοδος σε κάθε βρόχο γίνεται υποχρεωτικά από την αρχή του. Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής και στους δύο βρόχους, όταν είναι εμφωλευμένοι. ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 20 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. 56

57 ΚΕΦ.9 ΠΙΝΑΚΕΣ Ένας πίνακας είναι μία στατική δομή δεδομένων που περιέχει αντικείμενα του ιδίου τύπου και αποθηκεύεται σε διαδοχικές θέσεις την μνήμης. Κάθε ένα από τα αντικείμενα ονομάζεται στοιχείο του πίνακα και η αναφορά σε αυτό γίνεται χρησιμοποιώντας το όνομα του πίνακα και έναν δείκτη μέσα σε αγκύλες. Α[3] Μαθητές[7] Β[5,8] προσπέλαση του 3 ου στοιχείου ενός πίνακα με όνομα Α προσπέλαση του 7 ου στοιχείου ενός πίνακα με όνομα Μαθητές προσπέλαση του στοιχείου της 5 ης γραμμής και 8 ης στήλης ενός πίνακα με όνομα Β Η ανάγνωση, η επεξεργασία και η εκτύπωση των στοιχείων ενός πίνακα γίνεται εύκολα με την εντολή επανάληψης ΓΙΑ Η χρήση του πίνακα δεν είναι πάντα απαραίτητη, παρά μόνο σε περιπτώσεις που κρίνεται αναγκαία η αποθήκευση μιας σειράς ομοειδών στοιχείων για περεταίρω επεξεργασία. ΠΑΡΑΔΕΙΓΜΑ 1 Να γραφεί πρόγραμμα που διαβάζει τις 30 θερμοκρασίες ενός μήνα και υπολογίζει και εμφανίζει την μέση θερμοκρασία του μήνα. ΠΡΟΓΡΑΜΜΑ Χωρίς_πίνακα ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Θ,S,ΜΟ ΑΚΕΡΑΙΕΣ: ι ΑΡΧΗ S 0 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 30 ΔΙΑΒΑΣΕ Θ S S + Θ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ S / 30 ΓΡΑΨΕ ΜΟ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Η χρήση του πίνακα σε αυτό το παράδειγμα δεν κρίνεται απαραίτητη, αφού και οι 30 διαφορετικές τιμές αποθηκεύονται διαδοχικά στη μεταβλητή Θ. Το πρόγραμμα υπολογίζει το άθροισμα και τον μέσο όρο των 30 τιμών χωρίς την ανάγκη πίνακα. Με την λήξη της εντολής ΓΙΑ, η μεταβλητή Θ θα διατηρεί την τελευταία (30 η ) τιμή ΠΑΡΑΔΕΙΓΜΑ 2 Αν στο παραπάνω πρόγραμμα ζητηθεί να εμφανιστούν και οι θερμοκρασίες των ημερών που είναι μικρότερες της μέσης τιμής, τότε η χρήση πίνακα κρίνεται αναγκαία. ΠΡΟΓΡΑΜΜΑ Με_πίνακα ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Θ[30],S,ΜΟ ΑΚΕΡΑΙΕΣ: ι ΑΡΧΗ S 0 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 30 ΔΙΑΒΑΣΕ Θ[ ι ] S S + Θ[ ι ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ S / 30 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 30 ΑΝ Θ[ ι ] < ΜΟ ΤΟΤΕ ΓΡΑΨΕ Θ[ ι ] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 57

58 Ο πίνακας Θ του προηγούμενου παραδείγματος, καταχωρεί ακολουθιακά (σε συνεχόμενα κελιά) τις 30 τιμές του στην μνήμη, όπως φαίνεται στο διπλανό σχήμα. ΠΛΕΟΝΕΚΤΗΜΑΤΑ Η χρήση πινάκων είναι ο πιο βολικός τρόπος για την διαχείριση πολλών δεδομένων του ιδίου τύπου. Αν τα δεδομένα που εισάγονται σε ένα πρόγραμμα πρέπει να διατηρούνται στη μνήμη μέχρι το τέλος της εκτέλεσης (για περαιτέρω επεξεργασία), τότε η χρήση ενός πίνακα είναι απαραίτητη. ΜΕΙΟΝΕΚΤΗΜΑΤΑ Οι πίνακες απαιτούν μνήμη. Κάθε πίνακας δεσμεύει κατά την δήλωσή του πολλές θέσεις μνήμης, άσχετα από τον αν τις χρησιμοποιεί όλες ή όχι. Οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος. Επειδή έχουν σταθερό μέγεθος, δεν μπορούν να καλύψουν την ανάγκη για επιπλέον θέσεις αν αυτό χρειαστεί μέσα στο πρόγραμμα. ΤΥΠΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ Υπολογισμός αθροισμάτων στοιχείων πίνακα Εύρεση μεγίστου ελαχίστου σε πίνακα Ταξινόμηση του πίνακα (φυσαλίδα) Αναζήτηση ενός στοιχείου σε πίνακα (σειριακή ή δυαδική) Συγχώνευση δύο πινάκων 58

59 ΚΕΦ.10 - ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Όπως γνωρίζουμε ήδη, τα σύνθετα προβλήματα προκειμένου να αντιμετωπισθούν και να γραφούν τα αντίστοιχα προγράμματα, πρέπει πρώτα να ακολουθηθεί η τεχνική της Ιεραρχικής Σχεδίασης (top-down design) από πάνω προς τα κάτω. Έτσι κάθε δοθέν πρόβλημα αναλύεται σε μικρότερα και αυτά σε ακόμα μικρότερα μέχρι το σημείο στο οποίο φτάνουμε σε προβλήματα με προφανή και εύκολη λύση. Τότε οι αλγόριθμοι και τα τμήματα προγράμματος μπορούν να σχεδιαστούν και να γραφούν εύκολα για κάθε υποπρόβλημα. Τμηματικός Προγραμματισμός είναι η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. ΥΠΟΠΡΟΓΡΑΜΜΑ (Subprogram) Είναι ένα τμήμα προγράμματος που επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα. ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ Ο χωρισμός του προγράμματος σε υποπρογράμματα προϋποθέτει το αρχικό πρόβλημα να έχει αναλυθεί σε υποπροβλήματα βάσει της ιεραρχικής σχεδίασης. Αυτά τα υποπροβλήματα είναι μεταξύ τους ανεξάρτητα. Δεν υπάρχουν κανόνες σωστής ανάλυσης. Ο τμηματικός προγραμματισμός απαιτεί μελέτη και ανάλυση του προβλήματος, εμπειρία στο προγραμματισμό, γνώσεις και ταλέντο. ΙΔΙΟΤΗΤΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ Να έχει μία μόνο είσοδο και μία έξοδο Η είσοδος γίνεται πάντα από την αρχή του, ακολουθεί σειρά ενεργειών επεξεργασίας και η έξοδος γίνεται πάντα από το τέλος του. Να είναι ανεξάρτητο από τα άλλα Δηλαδή κάθε υποπρόγραμμα σχεδιάζεται, αναπτύσσεται και συντηρείται αυτόνομα, χωρίς να επηρεάζει τα άλλα. Να μην είναι πολύ μεγάλο Πρέπει να εκτελεί μόνο μία λειτουργία, ώστε να είναι κατανοητό και να ελέγχεται 59

60 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΜΗΜΑΤΙΚΟΥ ΠΡΟΓ/ΣΜΟΥ Εύκολη ανάπτυξη αλγορίθμου και προγράμματος Με σταδιακή επίλυση των υποπροβλημάτων και δημιουργία αντίστοιχων υποπρογραμμάτων και όχι κατευθείαν αντιμετώπιση του αρχικού προβλήματος. Εύκολη κατανόηση και διόρθωση προγράμματος Ένα υποπρόγραμμα μπορεί να διορθωθεί ευκολότερα από ότι το συνολικό πρόγραμμα, χωρίς βέβαια η διόρθωση να επηρεάζει κάποιο άλλο. Επίσης με την τμηματοποίηση, το πρόγραμμα είναι ευκολότερο να κατανοηθεί και να διαβαστεί από κάποιον συντηρητή προγραμματιστή. Λιγότερος χρόνος και προσπάθεια για συγγραφή προγράμματος Επειδή η ίδια λειτουργία μέσα σε ένα πρόγραμμα μπορεί να επαναλαμβάνεται, για το λόγο αυτό γράφουμε ένα υποπρόγραμμα που εκτελεί την λειτουργία αυτή και το καλούμε από πολλά σημεία μέσα στο πρόγραμμα. Έτσι μειώνεται ο χρόνος συγγραφής καθώς και η πιθανότητα λάθους. Επέκταση δυνατοτήτων στις γλώσσες προγραμματισμού Ένα υποπρόγραμμα μπορεί να χρησιμοποιηθεί σε περισσότερα του ενός προγράμματα. Η χρήση του είναι ίδια με αυτήν των ενσωματωμένων συναρτήσεων που παρέχει η γλώσσα προγραμματισμού (π.χ. ημίτονο, συνημίτονο). Αν μια γλώσσα δεν υποστηρίζει μια λειτουργία, τότε αυτή παρέχεται από τα υποπρογράμματα μιας άλλης γλώσσας μέσω της χρήσης βιβλιοθηκών υποπρογραμάτων. ΠΑΡΑΜΕΤΡΟΙ Η ενεργοποίηση ενός υποπρογράμματος γίνεται μέσα από την κλήση του (το κάλεσμά του) Η κλήση ενός υποπρογράμματος γίνεται από το αρχικό πρόγραμμα ή από κάποιο άλλο υποπρόγραμμα που λέγεται Κύριο Πρόγραμμα Το υποπρόγραμμα δέχεται τιμές από το τμήμα προγράμματος που το καλέι και αφού κάνει την εκτέλεσή του, επιστρέφει σε αυτό νέες τιμές, αποτελέσματα Οι τιμές που περνούν μεταξύ των υποπρογραμμάτων ονομάζονται παράμετροι και είναι σαν τις κοινές μεταβλητές. 60

61 ΚΑΤΗΓΟΡΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ Ανάλογα με την λειτουργία που εκτελούν, τα υποπρογράμματα διακρίνονται σε δύο βασικές κατηγορίες : διαδικασίες (εκτελούν κάθε λειτουργία που μπορεί να εκτελέσει και το πρόγραμμα) συναρτήσεις (η χρήση τους είναι πιο περιορισμένη). Και οι δύο τύποι υποπρογραμμάτων τοποθετούνται μετά το τέλος του κυρίου προγράμματος, ενώ ο τρόπος κλήσης και σύνταξής τους είναι διαφορετικός. ΣΥΝΑΡΤΗΣΗ (Function) Είναι τύπος υποπρογράμματος που υπολογίζει μία τιμή (αριθμητική, χαρακτήρα ή λογική) και την επιστρέφει μέσα από το όνομά της, όπως οι μαθηματικές συναρτήσεις. Η συνάρτηση επιστρέφει την τιμή στο υποπρόγραμμα που την κάλεσε και η χρήση της είναι παρόμοια με αυτή των ενσωματωμένων συναρτήσεων που παρέχει η γλώσσα προγραμματισμού. Οι τιμή που επιστρέφει μπορεί να είναι κάθε δυνατού τύπου δεδομένων, δηλαδή ακεραίου, πραγματικού, χαρακτήρα, λογικού. Η βασική δομή μιας συνάρτησης είναι η ακόλουθη : ΣΥΝΑΡΤΗΣΗ όνομα (λίστα παραμέτρων) : τύπος συνάρτησης Τμήμα δηλώσεων ΑΡΧΗ όνομα έκφραση ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Το όνομα της συνάρτησης πρέπει να είναι έγκυρο σύμφωνα με τους κανόνες της ΓΛΩΣΣΑΣ. Η λίστα παραμέτρων είναι μια λίστα από μεταβλητές, στις οποίες μεταβιβάζονται τιμές από το κυρίως πρόγραμμα κατά την κλήση της συνάρτησης. Επειδή η συνάρτηση επιστρέφει την τιμή της στο κυρίως πρόγραμμα μέσα από το όνομά της, θα πρέπει στο σώμα της να περιέχει μια εντολή εκχώρησης τιμής στο όνομα της συνάρτησης (δηλαδή όνομα έκφραση). 61

62 ΣΗΜΕΙΩΣΗ Μια συνάρτηση μπορεί να κληθεί ακριβώς στα ίδια σημεία του προγράμματος που καλούνται οι ενσωματωμένες μαθηματικές συναρτήσεις της ΓΛΩΣΣΑΣ, δηλαδή: εντολές εκχώρησης π.χ. Χ συναρ(α,β) εντολές εξόδου π.χ. ΓΡΑΨΕ 'Αποτέλεσμα = ', συναρ(α,β) λογικές εκφράσεις π.χ. ΑΝ συναρ(α,β) >= 12 ΤΟΤΕ ΠΑΡΑΔΕΙΓΜΑ κλήση συνάρτησης ΠΡΟΓΡΑΜΜΑ Παράδειγμα ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:Α,Β,M ΑΡΧΗ ΔΙΑΒΑΣΕ Α, Β Μ MAX(Α,Β) ΓΡΑΨΕ Μ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ MAX(Χ,Υ): ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Χ,Υ ΑΡΧΗ ΑΝ Χ > Υ ΤΟΤΕ MAX Χ ΑΛΛΙΩΣ MAX Υ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΔΙΚΑΣΙΑ (Procedure) Είναι τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος (είσοδο δεδομένων, εκτύπωση αποτελεσμάτων, τροποποίηση τιμής μεταβλητών κλπ). Η διαδικασία μεταβιβάζει τιμές στα άλλα υποπρογράμματα με χρήση παραμέτρων και όχι του ονόματός της Το όνομα της διαδικασίας πρέπει να είναι έγκυρο σύμφωνα με τους κανόνες της ΓΛΩΣΣΑΣ. Η βασική δομή μιας διαδικασίας είναι η ακόλουθη : ΔΙΑΔΙΚΑΣΙΑ όνομα (λίστα παραμέτρων) Τμήμα δηλώσεων ΑΡΧΗ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Από την λίστα παραμέτρων (μεταβλητών), κάποιες χρησιμοποιούνται για να μεταβιβάσουν τιμές μέσα στη διαδικασία από την κλήση της και κάποιες για να επιστρέψουν τιμές μέσα στο κυρίως πρόγραμμα. Να σημειωθεί ότι η λίστα παραμέτρων στην διαδικασία δεν είναι υποχρεωτική. 62

63 Η κλήση της διαδικασίας γίνεται ξεχωριστή εντολή με την δεσμευμένη λέξη ΚΑΛΕΣΕ που ακολουθείται από το όνομα και την λίστα παραμέτρων της διαδικασίας ΚΑΛΕΣΕ όνομα διαδικασίας (λίστα παραμέτρων) Με την κλήση της διαδικασίας, η εκτέλεση του κυρίως προγράμματος διακόπτεται και εκτελούνται οι εντολές του σώματος της διαδικασίας. Όταν ολοκληρωθεί η εκτέλεση των εντολών της διαδικασίας, η εκτέλεση του προγράμματος συνεχίζεται από την επόμενη εντολή (επιστροφή στο σημείο κλήσης). ΠΑΡΑΔΕΙΓΜΑ κλήση διαδικασίας ΠΡΟΓΡΑΜΜΑ Παράδειγμα ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α,Β,μεγ,ελαχ ΑΡΧΗ ΔΙΑΒΑΣΕ Α, Β ΚΑΛΕΣΕ TEST(Α,Β,μεγ,ελαχ) ΓΡΑΨΕ μεγ ΓΡΑΨΕ ελαχ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ TEST(Χ,Υ,max,min) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Χ,Υ,max,min ΑΡΧΗ ΑΝ Χ > Υ ΤΟΤΕ max Χ min Y ΑΛΛΙΩΣ max Υ min X ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΠΡΑΓΜΑΤΙΚΕΣ & ΤΥΠΙΚΕΣ ΠΑΡΑΜΕΤΡΟΙ Κατά την κλήση ενός υποπρογράμματος γίνεται πέρασμα τιμών από τις παραμέτρους του κυρίως προγράμματος στο υποπρόγραμμα που καλείται. Οι παράμετροι που βρίσκονται στην εντολή κλήσης αποτελούν την λίστα πραγματικών παραμέτρων, ενώ αυτές που βρίσκονται μέσα στο υποπρόγραμμα που καλείται αποτελούν την λίστα τυπικών παραμέτρων. Οι πραγματικές παράμετροι δηλώνονται πάντα μέσα στο κυρίως πρόγραμμα ενώ οι τυπικές μέσα στο υποπρόγραμμα στο οποίο χρησιμοποιούνται. Τα ονόματα των πραγματικών και των αντίστοιχων τυπικών παραμέτρων μπορεί να είναι και τα ίδια (όμως οι μεταβλητές είναι διαφορετικές). Όλες οι μεταβλητές ισχύουν τοπικά, δηλαδή μόνο μέσα στο τμήμα προγράμματος στο οποίο έχουν δηλωθεί. Σε κάποιες γλώσσες προγραμματισμού οι τυπικές παράμετροι ονομάζονται ορίσματα, ενώ οι πραγματικές παράμετροι απλά παράμετροι. Η λίστα τυπικών παραμέτρων καθορίζει τις παραμέτρους στη δήλωση του υποπρογράμματος, ενώ η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση του υποπρογράμματος. 63

64 Οι λίστες των παραμέτρων πρέπει να ακολουθούν τους εξής κανόνες: Ο αριθμός των πραγματικών και των τυπικών παραμέτρων πρέπει να είναι ίδιος. Κάθε πραγματική παράμετρος αντιστοιχίζεται με την τυπική παράμετρο που βρίσκεται στην αντίστοιχη θέση μέσα στη λίστα παραμέτρων του υποπρογράμματος. Οι αντίστοιχες τυπικές και πραγματικές παράμετροι (που συνδέονται μεταξύ τους κατά την κλήση) πρέπει να είναι του ιδίου τύπου δεδομένων. ΚΛΗΣΗ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΣΤΟΙΒΑΣ Όταν ένα υποπρόγραμμα καλείται από το κυρίως πρόγραμμα, τότε η διεύθυνση επιστροφής (return address) αποθηκεύεται (ωθείται - push) προσωρινά από τον μεταφραστή σε μία στοίβα που ονομάζεται στοίβα χρόνου εκτέλεσης (execution time stack). Όταν το υποπρόγραμμα ολοκληρώνεται, η διεύθυνση επιστροφής απωθείται (pop) από την στοίβα και έτσι ο έλεγχος του προγράμματος μεταφέρεται και πάλι στο κυρίως πρόγραμμα. Με τον τρόπο αυτό το κυρίως πρόγραμμα μπορεί να θυμάται το σημείο στο οποίο θα πρέπει να επιστρέψει μετά την ολοκλήρωση του υποπρογράμματος, έτσι ώστε να συνεχίσει την εκτέλεση των εντολών του π.χ. Έστω ότι το υποπρόγραμμα Α καλεί το υποπρόγραμμα Β που καλεί το υποπρόγραμμα Γ. Οι διευθύνσεις επιστροφής των υποπρογραμμάτων Α και Β ωθούνται με την σειρά σε μία στοίβα και απωθούνται με την αντίστροφη σειρά κατά την φάση της εκάστοτε επιστροφής στο σημείο της κλήσης. 64

65 ΠΑΡΑΡΤΗΜΑ Α ΤΥΠΟΛΟΓΙΟ ΨΕΥΔΟΓΛΩΣΣΑΣ Τίτλος αλγορίθμου Αλγόριθμος Όνομα_Αλγορίθμου Τερματισμός αλγορίθμου Τέλος Όνομα_Αλγορίθμου Τελεστές Αριθμητικοί : + - * / div mod ^ Συγκριτικοί : = < > Λογικοί : και ή όχι Δεδομένα εισόδου : Δεδομένα // // Έξοδος αποτελεσμάτων : Αποτελέσματα // // Είσοδος - Έξοδος Εκχώρηση τιμής Εισαγωγή δεδομένων: Διάβασε μετ1, μετ2,, μετν Εμφάνιση στην οθόνη: Εμφάνισε αποτ1, αποτ2,, αποτν Εκτύπωση στον εκτυπωτή: Εκτύπωσε αποτ1, αποτ2,, αποτν μεταβλητή σταθερά μεταβλητή μεταβλητή μεταβλητή έκφραση Δομές επιλογής Αν συνθ τότε εντολές Τέλος_αν Αν (συνθ) τότε εντολές Αλλιώς_αν (συνθ) τότε εντολές Αλλιώς_αν (συνθ) τότε εντολές Αλλιώς εντολές Τέλος_αν Αν συνθ τότε εντολές 1 αλλιώς εντολές 2 Τέλος_αν Δομές επανάληψης Σχόλια Όσο (συνθ) επανάλαβε Αρχή_Επανάληψης εντολές εντολές Μέχρις_Ότου (συνθ) Για μεταβ από τιμή1 μέχρι τιμή2 με_βήμα β Εντολές! ότι ακολουθεί το θαυμαστικό στην ίδια γραμμή είναι σχόλιο 65

66 ΠΑΡΑΡΤΗΜΑ Β ΤΥΠΟΛΟΓΙΟ ΓΛΩΣΣΑΣ Τίτλος προγράμματος Τερματισμός προγράμματος Τύποι Δεδομένων Ορισμός σταθερών Δήλωση μεταβλητών Τελεστές ΠΡΟΓΡΑΜΜΑ Όνομα_Προγράμματος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΑΚΕΡΑΙΕΣ, ΠΡΑΓΜΑΤΙΚΕΣ, ΧΑΡΑΚΤΗΡΕΣ, ΛΟΓΙΚΕΣ ΣΤΑΘΕΡΕΣ όνομα_1 = τιμή1 όνομα_ν = τιμήν ΜΕΤΑΒΛΗΤΕΣ Τύπος δεδομένων : λίστα μεταβλητών Τύπος_δεδομένων : λίστα μεταβλητών Αριθμητικοί : + - * / div mod ^ Συγκριτικοί : = <= < >= > Λογικοί : ΚΑΙ Ή ΟΧΙ Είσοδος - Έξοδος Εισαγωγή δεδομένων: Εμφάνιση στην οθόνη: ΔΙΑΒΑΣΕ μετ1, μετ2,, μετν ΓΡΑΨΕ αποτ1, αποτ2,, αποτν Συναρτήσεις ΗΜ (Χ) Ημίτονο Χ ΛΟΓ (Χ) Λογάριθμος του Χ ΣΥΝ (Χ) Συνημίτονο Χ Ε (Χ) e x ΕΦ (Χ) Εφαπτομένη Χ Α_Μ (Χ) Ακέραιο μέρος του Χ Τ_Ρ (Χ) Τετραγωνική ρίζα του Χ Α_Τ (Χ) Απόλυτη τιμή του Χ Εκχώρηση τιμής Δομές επιλογής Δομές επανάληψης Σχόλια μεταβλητή έκφραση ΑΝ συνθ ΤΟΤΕ εντολές ΤΕΛΟΣ_ΑΝ ΑΝ (συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ_ΑΝ (συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ_ΑΝ (συνθ) ΤΟΤΕ εντολές ΑΛΛΙΩΣ εντολές ΤΕΛΟΣ_ΑΝ ΌΣΟ (συνθ) ΕΠΑΝΑΛΑΒΕ εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ συνθ ΤΟΤΕ εντολές 1 ΑΛΛΙΩΣ εντολές 2 ΤΕΛΟΣ_ΑΝ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ εντολές ΜΕΧΡΙΣ_ΌΤΟΥ (συνθ) ΓΙΑ μεταβ ΑΠΟ τιμή1 ΜΕΧΡΙ τιμή2 ΜΕ ΒΗΜΑ β εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ! ότι ακολουθεί το θαυμαστικό στην ίδια γραμμή είναι σχόλιο 66

67 ΠΑΡΑΡΤΗΜΑ Γ ΠΙΝΑΚΑΣ ASCII 67

68 ΠΑΡΑΡΤΗΜΑ Δ ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Συνήθεις αλγόριθμοι για ένα πίνακα Α με Ν στοιχεία ΕΥΡΕΣΗ ΑΘΡΟΙΣΜΑΤΟΣ & ΜΕΣΟΥ ΟΡΟΥ Δεδομένα // Α,Ν // Σ 0 Για ι από 1 μέχρι Ν Σ Σ + Α[ι] ΜΟ Σ/Ν Αποτελέσματα // Σ,ΜΟ // ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ - ΕΛΑΧΙΣΤΟΥ Δεδομενα // Α,Ν // max Α[1] min Α[1] Για ι από 2 μέχρι Ν Αν Α[ι] > max τότε max Α[ι] Τέλος_αν Αν Α[ι] < min τότε min Α[ι] Τέλος_αν Αποτελέσματα // max,min // ΑΝΑΣΤΡΟΦΗ ΜΟΝΟΔΙΑΣΤΑΤΟΥ Δεδομένα // Α,Ν // Για ι από 1 μέχρι Ν div 2 temp Α[ι] A[ι] A[N+1-ι] A[N+1-ι] temp Αποτελέσματα // A // ΣΥΝΕΝΩΣΗ ΠΙΝΑΚΩΝ Α[Ν],Β[Μ] Δεδομένα // Α,B,Ν,M // Για ι από 1 μέχρι Ν Γ[ι] Α[ι] Τέλος_επανάληψης κ Ν+1 Για ι από 1 μέχρι Μ Γ[κ] Β[ι] κ κ + 1 Τέλος_επανάληψης Αποτελέσματα // Γ // ΜΗΔΕΝΙΣΜΟΣ ΣΤΟΙΧΕΙΩΝ ΠΙΝΑΚΑ Δεδομένα // Α,Ν // Για ι από 1 μέχρι Ν Α[ι] 0 Αποτελέσματα // Α // ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ - ΕΛΑΧΙΣΤΟΥ (με θέσεις) Δεδομενα // Α,Ν // max Α[1] min Α[1] minp 1 maxp 1 Για ι από 2 μέχρι Ν Αν Α[ι] > max τότε max Α[ι] maxp ι Τέλος_αν Αν Α[ι] < min τότε min Α[ι] minp ι Τέλος_αν Αποτελέσματα // max,min,maxp,minp // ΣΥΓΧΩΝΕΥΣΗ ΤΑΞΙΝ. ΠΙΝΑΚΩΝ Α[Ν],Β[Μ] Δεδομένα // Α,Β,Ν,Μ // ι 1 j 1 k 1 Όσο ι Ν και j Μ επανάλαβε Αν Α[ι] < Β[j] τότε Γ[k] A[ι] ι ι + 1 Αλλιώς Γ[k] Β[j] j j + 1 Τέλος_αν k k + 1 Τέλος_επανάληψης Αν ι > Ν τότε Για χ από j μέχρι Μ Γ[k] Β[χ] k k + 1 Τέλος_επανάληψης Αλλιώς Για χ από ι μέχρι Ν Γ[k] Α[χ] k k + 1 Τέλος_επανάληψης Τέλος_αν Αποτελέσματα // Γ // 68

69 ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΧΩΡΙΣ ΕΠΑΝΑΛΗΨΕΙΣ) Δεδομένα // Α,Ν,key // ι 1 found Ψευδής Όσο (ι Ν) και (found = Ψευδής) επανάλαβε Αν (Α[ι] = key) τότε found Αληθής pos ι αλλιώς ι ι + 1 Τέλος_Αν Αν (found = Αληθής) τότε Εμφάνισε "Βρέθηκε στη θέση",pos αλλιώς Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΜΕ ΕΠΑΝΑΛΗΨΕΙΣ) Δεδομένα // Α,Ν,key // found Ψευδής Για ι από 1 μέχρι Ν Αν Α[ι] = key τότε found Αληθής Εμφάνισε "Βρέθηκε στη θέση",i Τέλος_Αν Αν found = Ψευδής τότε Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΧΩΡΙΣ ΕΠΑΝΑΛΗΨΕΙΣ) (πίνακας ταξινομημένος) Δεδομενα // Α,Ν,key // ι 1 found Ψευδής Όσο (ι Ν) και (found = Ψευδής) και & (Α[ι] <= key) επανάλαβε Αν (Α[ι] = key) τότε found Αληθής pos ι αλλιώς ι ι + 1 Τέλος_Αν Αν (found = Αληθής) τότε Εμφάνισε "Βρέθηκε στη θέση",pos αλλιώς Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΜΕ ΕΠΑΝΑΛΗΨΕΙΣ) (πίνακας ταξινομημένος) Δεδομένα // Α,Ν,key // ι 1 found Ψευδής Όσο (ι Ν) και (Α[ι] <= key) επανάλαβε Αν Α[ι] = key τότε found Αληθής Εμφάνισε "Βρέθηκε στη θέση",ι Τέλος_Αν ι ι + 1 Αν found = Ψευδής τότε Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν ΤΑΞΙΝΟΜΗΣΗ ΕΥΘΕΙΑΣ ΑΝΤΑΛΛΑΓΗΣ ΦΥΣΑΛΙΔΑ Δεδομένα // Α,Ν // Για ι από 2 μέχρι Ν Για j από Ν μέχρι ι με_βήμα 1 Αν Α[j-1] > Α[j] τότε temp Α[j-1] A[j-1] A[j] A[j] temp Τέλος_Αν Αποτελέσματα // Α // ΕΞΥΠΝΗ ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΑΛΙΔΑ (χωρίς περιττές επαναλήψεις) Δεδομένα // Α,Ν // ι 2 F Ψευδής Όσο ι Ν και F = Ψευδής επανάλαβε F Αληθής Για j από N μέχρι ι με_βήμα -1 Αν Α[j-1] > Α[j] τότε temp Α[j-1] A[j-1] A[j] A[j] temp F Ψευδής Τέλος_Αν ι ι + 1 Τέλος_επανάληψης Αποτελέσματα // Α // 69

70 ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Συνήθεις αλγόριθμοι για ένα πίνακα Α με Ν γραμμές και Μ στήλες ΕΥΡΕΣΗ ΑΘΡΟΙΣΜΑΤΟΣ & ΜΕΣΟΥ ΟΡΟΥ Δεδομένα // Α,Ν,Μ // Σ 0 Για ι από 1 μέχρι Ν Για j από 1 μέχρι Μ Σ Σ + Α[ι,j] ΜΟ Σ/(Ν*Μ) Αποτελέσματα // Σ,ΜΟ // ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ - ΕΛΑΧΙΣΤΟΥ Δεδομένα // Α,Ν,Μ // max Α[1,1] min Α[1,1] Για ι από 1 μέχρι Ν Για j από 1 μέχρι Μ Αν Α[ι,j] > max τότε max Α[ι,j] Τέλος_αν Αν Α[ι,j] < min τότε min Α[ι,j] Τέλος_αν Αποτελέσματα // max,min // ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ - ΕΛΑΧΙΣΤΟΥ (με θέσεις) Δεδομενα // Α,Ν,Μ // max Α[1,1] min Α[1,1] minγ 1 minσ 1 maxγ 1 maxσ 1 Για ι από 1 μέχρι Ν Για j από 1 μέχρι Μ Αν Α[ι,j] > max τότε max Α[ι,j] maxγ ι maxσ j Τέλος_αν Αν Α[ι,j] < min τότε min Α[ι,j] minγ ι minσ j Τέλος_αν Τέλος_επανάληψης Αποτελέσματα // max,min,maxγ,maxσ & minγ,minσ // ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΧΩΡΙΣ ΕΠΑΝΑΛΗΨΕΙΣ) Δεδομενα // Α,Ν,Μ,key // ι 1 found Ψευδής Όσο (ι Ν) και (found = Ψευδής) επανάλαβε j 1 Όσο (j M) και (found = Ψευδής) επανάλαβε Αν (Α[ι,j] = key) τότε found Αληθής pos1 ι pos2 j αλλιώς j j + 1 Τέλος_Αν ι ι + 1 Αν (found = Αληθής) τότε Εμφάνισε "Βρέθηκε στη θέση",pos1,pos2 αλλιώς Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ (ΜΕ ΕΠΑΝΑΛΗΨΕΙΣ) Δεδομένα // Α,Ν,M,key // found Ψευδής Για ι από 1 μέχρι Ν Για j απο 1 μεχρι Μ Αν Α[ι,j] = key τότε found Αληθής Εμφάνισε "Βρέθηκε στην",ι,j Τέλος_Αν Αν found = Ψευδής τότε Εμφάνισε "Στοιχείο δεν βρέθηκε" Τέλος_Αν 70

71 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΤΑ ΓΡΑΜΜΕΣ ΣΤΗΛΕΣ ΕΥΡΕΣΗ ΑΘΡΟΙΣMΑΤΩΝ - MO / ΓΡΑΜΜΕΣ ΕΥΡΕΣΗ ΑΘΡΟΙΣΜΑΤΩΝ - MO / ΣΤΗΛΕΣ Δεδομένα // Α,Ν,Μ // Για ι από 1 μέχρι Ν Σ 0 Για j από 1 μέχρι Μ Σ Σ + Α[ι,j] ΜΟ Σ / Μ Εμφάνισε Σ, MO Δεδομένα // Α,Ν,Μ // Για j από 1 μέχρι M Σ 0 Για i από 1 μέχρι N Σ Σ + Α[ι,j] MO Σ / Ν Εμφάνισε Σ, MO ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ / ΓΡΑΜΜΕΣ ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ / ΣΤΗΛΕΣ Δεδομένα // Α,Ν,Μ // Για ι από 1 μέχρι Ν max A[ι,1] Για j από 2 μέχρι Μ Αν Α[ι,j] > max τότε max Α[ι,j] Τέλος_Αν Εμφάνισε max Δεδομένα // Α,Ν,Μ // Για j από 1 μέχρι M max A[1,j] Για i από 2 μέχρι N Αν Α[ι,j] > max τότε max Α[ι,j] Τέλος_Αν Εμφάνισε max ΤΟΠΟΘΕΤΗΣΗ ΣΕ ΠΙΝΑΚΑ B ΤΩΝ ΚΑΤA ΓΡΑΜΜΕΣ ΑΠΟΤΕΛΕΣΜΑΤΩΝ TOY A ΤΟΠΟΘΕΤΗΣΗ ΣΕ ΠΙΝΑΚΑ B ΤΩΝ ΚΑΤΑ ΣΤΗΛΕΣ ΑΠΟΤΕΛΕΣΜΑΤΩΝ TOY A Δεδομένα // Α,Ν,Μ // Για ι από 1 μέχρι Ν Για j από 1 μέχρι Μ Β[ι] Δεδομένα // Α,Ν,Μ // Για j από 1 μέχρι Μ Για i από 1 μέχρι Ν Β[j] 71

72 ΤΕΤΡΑΓΩΝΙΚΟΙ ΠΙΝΑΚΕΣ Αν στον παρακάτω τετραγωνικό πίνακα N*N θεωρήσουμε τον δείκτη i ως δείκτη γραμμών και τον δείκτη j ως δείκτη στηλών, τότε για κάθε στοιχείο (i,j) του πίνακα μπορούμε να αποφανθούμε ότι βρίσκεται: Στην κύρια διαγώνιο αν i = j στοιχείο (i,i) Πάνω από την κύρια διαγώνιο αν i < j Κάτω από την κύρια διαγώνιο αν i > j Στην δευτερεύουσα διαγώνιο αν i + j = N+1 στοιχείο (i,n+1-i) Πάνω από την δευτερεύουσα διαγώνιο αν i + j < N+1 Κάτω από την δευτερεύουσα διαγώνιο αν i + j > N+1 ΕΥΡΕΣΗ ΑΘΡΟΙΣΜΑΤΟΣ ΣΤΟΙΧΕΙΩΝ ΔΙΑΓΩΝΙΩΝ Α τρόπος (προσπέλαση ολόκληρου του πίνακα) Δεδομένα // Α,Ν // Σ1 0 Σ2 0 Για ι από 1 μέχρι Ν Για j από 1 μέχρι Ν Αν ι = j τότε Σ1 Σ1 + Α[ι,j] Τέλος_Αν Αν ι+j = N+1 τότε Σ2 Σ2 + Α[ι,j] Τέλος_Αν Αποτελέσματα // Σ1,Σ2 // ΕΜΦΑΝΙΣΗ ΣΤΟΙΧΕΙΩΝ ΑΝΩ ΤΡΙΓΩΝΙΚΟΥ (ΜΟΝΟ) Για ι από 1 μέχρι Ν-1 Για j από ι+1 μέχρι Ν Εμφάνισε Α[ι,j] Τέλος_επανάληψης Τέλος_επανάληψης Β τρόπος (προσπέλαση μόνω των διαγωνίων) Δεδομένα // Α,Ν // Σ1 0 Σ2 0 Για ι από 1 μέχρι Ν Σ1 Σ1 + Α[ι,ι] Σ2 Σ2 + Α[ι,Ν+1-ι] Αποτελέσματα // Σ1,Σ2 // ΕΜΦΑΝΙΣΗ ΣΤΟΙΧΕΙΩΝ ΚΑΤΩ ΤΡΙΓΩΝΙΚΟΥ (ΜΟΝΟ) Για j από 1 μέχρι Ν-1 Για ι από j+1 μέχρι Ν Εμφάνισε Α[ι,j] Τέλος_επανάληψης Τέλος_επανάληψης 72

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

Διαβάστε περισσότερα

Επανάληψη Θεωρίας. Καστούμης Γιώργος

Επανάληψη Θεωρίας. Καστούμης Γιώργος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 1 Ορισµοί: Με τον όρο πρόβληµα εννοείται µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή,

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός

Διαβάστε περισσότερα

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

Διαβάστε περισσότερα

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

Διαβάστε περισσότερα

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία: Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του Αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών (όχι άπειρες), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

Διαβάστε περισσότερα

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ ΣΤΟΙΒΑΣ ΚΑΙ ΟΥΡΑΣ Α ΜΕΡΟΣ ΘΕΩΡΙΑ ΓΙΑ ΠΙΝΑΚΕΣ 3.1

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές

Διαβάστε περισσότερα

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς K εφ. 1 σχολικού βιβλίου 1. Επιλύσιμο είναι ένα πρόβλημα για το οποίο ξέρουμε ότι έχει λύση, αλλά αυτή δεν έχει βρεθεί ακόμη. 2. Για

Διαβάστε περισσότερα

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

1 Ανάλυση Προβλήματος

1 Ανάλυση Προβλήματος 1 Ανάλυση Προβλήματος 1.1 Η Έννοια Πρόβλημα Τι είναι δεδομένο; Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή, με μία από τις πέντε αισθήσεις του. Τι είναι επεξεργασία

Διαβάστε περισσότερα

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο Εισαγωγή - Βασικές έννοιες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Αλγόριθμος Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων

Διαβάστε περισσότερα

ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ

ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ ΑΕΠΠ ΚΑΤΕΥΘΥΝΣΗΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΚΑΤΕΥΘΥΝΣΗ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ) ΕΥΑΓΓΕΛΟΣ Χ. ΖΙΟΥΛΑΣ (ΚΑΘΗΓΗΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ) e-mail

Διαβάστε περισσότερα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

Διαβάστε περισσότερα

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

Διαβάστε περισσότερα

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων; ΦΡΟΝΤΙΣΤΗΡΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΘΕΜΑ Α ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ 01/03/2015 Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1.

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

Διαβάστε περισσότερα

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας είναι ένα δεδομένο. Τα δεδομένα μπορούν να αναπαραστήσουν αφαιρετικά την πραγματικότητα δηλαδή να μας δείχνουν μία απλοποιημένη όψη

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις

Διαβάστε περισσότερα

Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό Η έννοια του προβλήματος Τι είναι πρόβλημα; ΠΡΟΒΛΗΜΑΤΑ ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ Πρόβλημα είναι κάθε κατάσταση που μας απασχολεί και χρήζει αντιμετώπισης,

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός... 1 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Διάρκεια 3 ώρες Στοιχεία Μαθητή: Όνομα... Επώνυμο... Βαθμός... 2 Θεμα Α (30%) Α1 ΣΩΣΤΟ - ΛΑΘΟΣ 1. Ένα υποπρόγραμμα δεν μπορεί να κληθεί περισσότερες

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ. Πρόβλημα είναι μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ. Πρόβλημα είναι μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ 1. Τι ονομάζουμε πρόβλημα; Πρόβλημα είναι μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2. Τι ονομάζουμε επίλυση προβλήματος;

Διαβάστε περισσότερα

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Είσοδος:

Διαβάστε περισσότερα

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis

Διαβάστε περισσότερα

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

Διαβάστε περισσότερα

Κεφάλαιο 1 Ανάλυση προβλήματος

Κεφάλαιο 1 Ανάλυση προβλήματος Κεφάλαιο 1 Ανάλυση προβλήματος 1.1 Η έννοια πρόβλημα Με τον όρο πρόβλημα εννοείται μια κατάσταση η οποία χρειάζεται αντιμετώπιση, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 1.2 Κατανόηση

Διαβάστε περισσότερα

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

! Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση του παρ/λου προγ/σμου ΑΡΧΗ ΝΑΙ Διάβα σε a Εκτύπ ωσε a > a 0 ΟΧΙ ΤΕΛΟΣ Σύμβολα διαγράμματος ροής 1 Ακέραιος τύπος 14 0-67 2 Πραγματικός τύπος

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές έννοιες αλγορίθμων Εισαγωγή Αρχικά εξηγείται ο όρος αλγόριθμος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληροί κάθε

Διαβάστε περισσότερα

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη. 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2015 Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) ΣΥΝΟΛΟ

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1ο ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

ΚΕΦΑΛΑΙΟ 1ο ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΚΕΦΑΛΑΙΟ 1ο ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ Στέργιος Παλαμάς 2006- ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ: Πλήρης Κατανόηση του Προβλήματος Προσδιορισμός των Συστατικών Μερών του Προβλήματος Ανάλυση Προβλήματος σε απλούστερα Προσδιορισμός

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές

Διαβάστε περισσότερα

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

Διαβάστε περισσότερα

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: ΑΕσΠΠ 1 / 8 I. ΑΛΓΟΡΙΘΜΟΣ 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: i. Είσοδος : χρήση μιας μεταβλητής που δεν έχει πάρει προηγουμένως τιμή. ii. Έξοδος : ο αλγόριθμος δεν εμφανίζει

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 1.1 Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα

Διαβάστε περισσότερα

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 2. Η έννοια του προβλήματος 2 2. Η έννοια του προβλήματος 2.1 Το πρόβλημα στην επιστήμη των Η/Υ 2.2 Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8 1. Δώστε τον ορισμό του αλγόριθμου. Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που

Διαβάστε περισσότερα

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

Διαβάστε περισσότερα

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα. 1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα. ΑΠΑΝΤΗΣΗ Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2015-2016 Θέμα Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις προτάσεις 1-4 και δίπλα τη λέξη ΣΩΣΤΟ,

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 1 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 1 ο Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα σημαντικών ιστορικών ή επιστημονικών προβλημάτων. Με τον όρο Πρόβλημα, εννοείται μια κατάσταση η οποία χρήζει αντιμετώπισης,και απαιτεί λύση

Διαβάστε περισσότερα

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

Διαβάστε περισσότερα

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων; ΦΡΟΝΤΙΣΤΗΡΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΘΕΜΑ Α ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ 01/03/2015 Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1.

Διαβάστε περισσότερα

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4) Βασικές Έννοιες Αλγορίθμων Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4) Δομές εντολών Υπάρχουν διάφορα είδη εντολών όπως, ανάθεσης ή εκχώρησης τιμής, εισόδου εξόδου, κ.ά., αλλά γενικά χωρίζονται σε τρείς

Διαβάστε περισσότερα

θέμα των Πανελλαδικών Εξετάσεων

θέμα των Πανελλαδικών Εξετάσεων Θέμα 2000. 1. Σωστό (Σ) Λάθος (Λ). i. Η περατότητα ενός αλγορίθμου αναφέρεται στο γεγονός ότι καταλήγει στη λύση του προβλήματος μετά από πεπερασμένο αριθμό βημάτων (εντολών). Μονάδες 4 ii. Για να αναπαραστήσουμε

Διαβάστε περισσότερα

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος Θέμα 1 Δίνονται τα παρακάτω τμήματα αλγορίθμου Α. βαλίτσα Αληθής εισιτήριο Αληθής ταξίδι βαλίτσα και εισιτήριο Τι τιμή θα έχει η λογική μεταβλητή

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2 1. 1-Σ, 2-Σ, 3-Λ, 4-Σ, 5-Σ 2. 1-α, 2-α, 3-β, 4-β, 5-α, 6-α, 7-α, 8-β, 9-β, 10-β 3. Τι ονομάζουμε αλγόριθμο; Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας

Διαβάστε περισσότερα

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου Ορισµοί κεφαλαίου Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Σηµαντικά σηµεία κεφαλαίου Κριτήρια

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Τελευταίο Μάθημα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Τελευταίο Μάθημα Τελευταίο Μάθημα 1. Να χαρακτηρίσετε καθεμία από τις παρακάτω προτάσεις, ως σωστές (Σ) ή λανθασμένες (Λ) Ο χαρακτήρας του κενού ανήκει στο αλφάβητο της γλώσσας. Σ Λ Σε μία αλφαριθμητική τιμή μπορεί να

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

Θέμα 1 ο. Επαναληπτικό ΛΥΣΕΙΣ

Θέμα 1 ο. Επαναληπτικό ΛΥΣΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΣΤΡΙΤΣΙΟΥ ΠΑΡΑΣΚΕΥΗ 5 Μαΐου 2014 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ

Διαβάστε περισσότερα

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Πληροφορική ΙΙ Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Πληροφορική ΙΙ», 2015-2016 Μάθημα 1: Εισαγωγή στους Αλγόριθμους Αλγόριθμος είναι μια πεπερασμένη

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Α1. α. Να γράψετε στο τετράδιό σας τον

Διαβάστε περισσότερα

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Τι γνωρίζετε για τη στοίβα και τι για την ουρά; (Μονάδες 7) Στοίβα (Stack) είναι μια δομή στην οποία

Διαβάστε περισσότερα

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3)

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3) Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α Α1. Να χαρακτηρίσετε σωστή (Σ) ή λανθασμένη (Λ) καθεμία από τις παρακάτω προτάσεις: 1. Ένα επιλύσιμο πρόβλημα είναι και δομημένο. 2. Ένας από τους

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ σε ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΑΕΠΠ) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ σε ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΑΕΠΠ) Δημιουργία - Συγγραφή Costas Chatzinikolas info@costaschatzinikolas.gr Τελευταία Ενημέρωση:

Διαβάστε περισσότερα

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 29 ΜΑΪΟΥ 2013 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΘΕΜΑΤΑ ΘΕΜΑ A Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-6 και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2 ο. αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. 7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π.

ΚΕΦΑΛΑΙΟ 2 ο. αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. 7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 2 ο 1. Τι είναι αλγόριθµος; Η θεωρία των αλγορίθµων έχει µεγάλη παράδοση και η ηλικία ορισµένων από αυτών είναι µερικών χιλιάδων χρόνων, όπως του Ευκλείδη για τον υπολογισµό του ΜΚ δύο αριθµών

Διαβάστε περισσότερα

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων Αλγόριθµος : Είναι ένα σύνολο βηµάτων, αυστηρά καθορισµένων κι εκτελέσιµων σε πεπερασµένο χρόνο, που οδηγούν στην επίλυση ενός προβλήµατος. Χαρακτηριστικά ενός σωστού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Θέμα Α Α1. α. Να γράψετε στο τετράδιό σας τον

Διαβάστε περισσότερα

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Η Δομή Επανάληψης Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Οι 2 πρώτες διδακτικές ώρες στην τάξη Η τρίτη διδακτική ώρα στο εργαστήριο Γενικός Διδακτικός Σκοπός Ενότητας Να εξοικειωθούν

Διαβάστε περισσότερα

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος. Δομές Δεδομένων Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο Φυσικό Επίπεδο RAM Πίνακας 8 10 17 19 22 Ταξινομημένος Πίνακας 5 8 10 12 17 Δένδρο 8 5 10 12 19 17

Διαβάστε περισσότερα

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΔΕΥΤΕΡΑ 11 ΑΠΡΙΛΙΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ

Διαβάστε περισσότερα

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης ΘΕΜΑ Α A1 Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις α-δ και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη. a. Σε μία εντολή εκχώρησης του αποτελέσματος

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

Διαβάστε περισσότερα

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2012-2013 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α Α1 Α2 1. Μέχρι το 1976

Διαβάστε περισσότερα

Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών Ι

Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών Ι Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών Ι Περιλαμβάνει τα πρώτα θέματα όλων των πανελληνίων εξετάσεων από το 2000 μέχρι και σήμερα ΑΠΟΛΥΤΗΡΙΕΣ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ 2000 A. Να γράψετε στο τετράδιό σας

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Επιμέλεια : Δρεμούσης Παντελής Κεφάλαια 2,7,8 1. Τι είναι αλγόριθμος; Μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία: Πίνακες Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του όρου «δεδομένα». Δεδομένα αποτελούν οποιαδήποτε στοιχεία μπορούν να εξαχθούν από τη διατύπωση του προβλήματος και η επιλογή τους εξαρτάται

Διαβάστε περισσότερα

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση: ΘΕΜΑ Α Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι λανθασμένη. 1. Η ταξινόμηση είναι μια από τις βασικές

Διαβάστε περισσότερα