ΚΕΦΑΛΑΙΟ 1 : Ανάλυση προβλήματος

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

Download "ΚΕΦΑΛΑΙΟ 1 : Ανάλυση προβλήματος"

Transcript

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

2 Η επεξεργασία δεδομένων είναι μία διαδικασία κατά την οποία ένας μηχανισμός (π.χ. ο Η/Υ) κάνει πράξεις και υπολογισμούς στα δεδομένα ώστε να προκύψει μία χρήσιμη πληροφορία. Για παράδειγμα: η μέση θερμοκρασία κατά τον μήνα Μάρτιο (πληροφορία), προκύπτει από τον υπολογισμό του μέσου όρου (επεξεργασία) των ημερήσιων θερμοκρασιών του μήνα (δεδομένα). Η πληροφορία είναι γνωσιακό στοιχείο που προκύπτει από την επεξεργασία των δεδομένων. 2 Κατηγορίες προβλημάτων: Με κριτήριο τη δυνατότητα επίλυσης, τα χωρίζουμε σε: Επιλύσιμα Ανοικτά Άλυτα Η λύση τους είναι γνωστή κι έχει διατυπωθεί (π.χ. το πρόβλημα του υπολογισμού του εμβαδού του κύκλου) Η λύση τους δεν έχει βρεθεί αλλά παράλληλα δεν έχει αποδειχτεί ότι δεν επιδέχονται λύση (π.χ. το πρόβλημα της ενοποίησης των τεσσάρων δυνάμεων της φυσικής). Έχουμε παραδεχτεί ότι δεν υπάρχει λύση (π.χ. ο τετραγωνισμός του κύκλου) Τα επιλύσιμα προβλήματα, ανάλογα με το βαθμό δόμησης των λύσεων τους (πόσο αυτόματα δηλαδή βγαίνει η λύση τους) διακρίνονται σε: Δομημένα Ημιδομημένα Αδόμητα Η λύση τους είναι μία αυτοματοποιημένη διαδικασία (π.χ. η επίλυση της δευτεροβάθμιας εξίσωσης) Η λύση τους μπορεί να προέλθει από πλήθος πιθανών λύσεων που εμείς επιλέγουμε (π.χ. το πρόβλημα του πώς θα πάμε εκδρομή σε ένα μέρος. Μπορούμε να διαλέξουμε ένα πλήθος από πιθανούς τρόπους κτλ) Η λύση τους δεν είναι αυτοματοποιημένη, δηλαδή δεν μπορούμε να βρούμε ένα συγκεκριμένο τρόπο λύσης. Για την επίλυσή τους βασιζόμαστε στην ανθρώπινη διαίσθηση και εμπειρία (π.χ. ο τρόπος οργάνωσης ενός πάρτι) Με κριτήριο το είδος επίλυσης, τα χωρίζουμε σε: Απόφασης Υπολογιστικά Βελτιστοποίησης Η λύση σε αυτά τα προβλήματα είναι του τύπου «Ναι» και «Όχι». (π.χ. ο αριθμός 101 είναι πρώτος;) Για την επίλυση απαιτείται η διενέργεια υπολογισμών. (π.χ. για τον αριθμό Ν να βρεθεί το Ν!) Η λύση που ζητάμε είναι το βέλτιστο αποτέλεσμα για τα συγκεκριμένα δεδομένα. (π.χ. ποιος είναι ο συντομότερος δρόμος για να πάμε σε ένα μέρος) Οι λόγοι που αναθέτουμε την επίλυση ενός προβλήματος σε Η/Υ είναι: 1) Η πολυπλοκότητα των υπολογισμών. 2) Η ταχύτητα εκτέλεσης των πράξεων. 3) Ο μεγάλος όγκος δεδομένων.

3 4) Η επαναληπτικότητα των διαδικασιών. 3 Ο Η/Υ στα κυκλώματά του, εκτελεί μόνο τρεις λειτουργίες: 1) Πρόσθεση (όλες οι άλλες αριθμητικές πράξεις γίνονται μέσω πρόσθεσης). 2) Σύγκριση (που αποτελεί βασική λειτουργία των λογικών πράξεων). 3) Μεταφορά δεδομένων. Γενικότερα, η ικανότητα του Η/Υ εκφράζεται σε ποσοτικό επίπεδο ενώ η ικανότητα του ανθρώπου σε ποιοτικό επίπεδο. Σκεφτείτε πόσους υπολογισμούς κάνει ο Η/Υ στο σκάκι για να βρει μια καλή κίνηση, ενώ ο άνθρωπος το κάνει με πολύ λιγότερες.

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

5 Βασικά στοιχεία αλγορίθμου: 5 1) Σταθερές: Αφορούν ποσότητες που δεν μεταβάλλονται κατά τη διάρκεια εκτέλεσης του αλγόριθμου. Είναι τριών ειδών: i. Αριθμητικές π.χ. 100, -5, π ii. Αλφαριθμητικές π.χ. Νίκος, Νομός Ηρακλείου. Ονομάζονται και λεκτικά ή συμβολοσειρές. Περικλείονται σε. iii. Λογικές π.χ. True, False. 2) : Αφορούν ποσότητες που μεταβάλλονται κατά τη διάρκεια εκτέλεσης του αλγορίθμου. Παριστάνουν μια θέση μνήμης που περιέχει μία τιμή. Το περιεχόμενο αυτής της θέσης (η τιμή της) αλλάζει. X Όνομα μεταβλητής Name 100 Τιμή Νίκος Στις μεταβλητές δίνουμε ένα όνομα (αναγνωριστικό) και αυτό χρησιμοποιούμε στον αλγόριθμο. Η τιμή της αλλάζει με μία εντολή εκχώρησης τιμής π.χ. Χ 100 ή Name Νίκος. Ανάλογα με το είδος του δεδομένου που εκχωρείται η μεταβλητή διακρίνεται σε: i. Αριθμητική π.χ. Χ 100 ii. Αλφαριθμητική π.χ. Name Νίκος iii. Λογική π.χ. Έγγαμος False. Επιπλέον, οι αριθμητικές μεταβλητές διακρίνονται σε: i. Ακέραιες, αν δέχονται ακέραια τιμή π.χ. 5, -8 ii. Πραγματικές, αν δέχονται πραγματική τιμή π.χ. 5.8, ) Τελεστές: Είναι τα γνωστά σύμβολα. Είναι 3 ειδών: i. Αριθμητικοί: +, -, * (πολλ/σμός), / (διαίρεση), ^ (ύψωση σε δύναμη), DIV (ακέραια διαίρεση), MOD (ακέραιο υπόλοιπο). Π.χ. Χ 5 * 2, Χ 3^4 (=81), Χ 5 DIV 2 (= 2 πηλίκο), Χ 5 MOD 2 (= 1 υπόλοιπο) ii. Λογικοί: AND, OR, NOT π.χ. Έγκυρος (Χ>1) AND (X<=20) iii. Συγκριτικοί: >, >=, <, <=, <> (διάφορο) 4) Εκφράσεις: Συνδυάζουν όλα τα παραπάνω, π.χ. Έγκυρος (Χ>1) AND (X<=20) Βασικές εντολές αλγορίθμου: 1) Εντολή εισόδου: Διάβασε, π.χ. Διάβασε Χ. Στη μεταβλητή Χ εισάγεται μια τιμή. 2) Εντολή εξόδου: Τύπωσε ή Εμφάνισε π.χ. Τύπωσε Χ 3) Εντολή εκχώρησης τιμής: Μεταβλητή Έκφραση. Αριστερά βάζουμε το όνομα της μεταβλητής και δεξιά μία τιμή ή έκφραση. π.χ. Χ (2 * 4)/3. Το αποτέλεσμα της πράξης εκχωρείται στη μεταβλητή. Μπορούμε λοιπόν να τοποθετήσουμε τιμές σε μεταβλητές:

6 i. Με εντολή εισόδου Διάβασε, και ii. Κατευθείαν με μία εντολή εκχώρησης. 6 Αλγοριθμικές δομές: Εννοούμε τον τρόπο που θέτουμε τα βήματα (εντολές) στον αλγόριθμο, ώστε να έχουμε σωστή και αυστηρή (δομημένη) σύνταξη και να πληρούνται τα χαρακτηριστικά του. Οι αλγοριθμικές δομές είναι τρεις: i. Ακολουθιακή: Οι εντολές εκτελούνται η μία μετά την άλλη. ii. Επιλογής: Μία ομάδα εντολών εκτελούνται ανάλογα με την τιμή μιας συνθήκης (απόφαση). iii. Επαναληπτική: Μία ομάδα εντολών εκτελούνται συνεχώς επαναληπτικά ανάλογα με την τιμή μιας συνθήκης (βρόχος loop). Ακολουθιακή δομή: Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει τη βάση και το ύψος ενός τριγώνου και υπολογίζει και τυπώνει το Εμβαδόν του. Σημείωση: Πρέπει να εισαχθούν δύο αριθμητικά δεδομένα (Βάση και Ύψος) και να εξαχθεί σαν αποτέλεσμα το Εμβαδόν. Για την αποθήκευση των τιμών θέλουμε τρεις μεταβλητές. Αλγόριθμος Εμβαδόν_τριγώνου Ακέραιοι: Βάση, Ύψος Πραγματικός: Εμβαδόν Αρχή Διάβασε Βάση Διάβασε Ύψος Εμβαδόν (Βάση * Ύψος) / 2 Τύπωσε Εμβαδόν Τέλος Εμβαδόν_τριγώνου Δομή επιλογής: Αν <συνθήκη> τότε Εντολές Τέλος_αν Έχει τρεις μορφές: Αν <συνθήκη> τότε Εντολές1 Αλλιώς Εντολές2 Τέλος_αν Επίλεξε μεταβλητή Περίπτωση 1 : Εντολές1 Περίπτωση 2 : Εντολές2... Περίπτωση ν : Εντολέςν Τέλος_επιλογών Μορφή Ι Μορφή ΙΙ Μορφή ΙΙΙ Μορφή Ι: Εάν η συνθήκη δώσει True (αληθής), τότε εκτελείται η ομάδα εντολών.

7 7 Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει έναν ακέραιο αριθμό κι αν αυτός είναι θετικός να βγάζει το μήνυμα «Είναι θετικός». Αλγόριθμος Θετικός Ακέραιος: Χ! ο αριθμός θα εισαχθεί στην μεταβλητή με όνομα Χ Αρχή Διάβασε Χ Αν Χ > 0 τότε Τύπωσε «Είναι θετικός» Τέλος_αν Τέλος Θετικός Μορφή ΙΙ: Αν η συνθήκη δώσει True (αληθής), τότε εκτελείται η ομάδα των Εντολών1, ενώ αν δώσει False (ψευδής) εκτελείται η ομάδα Εντολών2. Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει έναν ακέραιο αριθμό κι αν αυτός είναι θετικός να βγάζει το μήνυμα «Είναι θετικός», ενώ αν είναι αρνητικός να βγάζει το μήνυμα «Δεν είναι θετικός». Αλγόριθμος Έλεγχος_αριθμού Ακέραιος: Χ! ο αριθμός θα εισαχθεί στην μεταβλητή με όνομα Χ Αρχή Διάβασε Χ Αν Χ > 0 τότε Τύπωσε «Είναι θετικός» αλλιώς Τύπωσε «Δεν είναι θετικός» Τέλος_αν Τέλος Έλεγχος_αριθμού Μορφή ΙΙΙ: Στην πολλαπλή επιλογή εξετάζεται η τιμή μιας μεταβλητής μέσα σε ένα πλήθος τιμών. Αν ισούται με κάποια από τις περιπτώσεις τότε εκτελείται η αντίστοιχη ομάδα εντολών. Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει τον αριθμό της ημέρας και τυπώνει την αντίστοιχη περιγραφή. Αλγόριθμος Μέρα_εβδομάδας Ακέραιος: Μέρα

8 Αρχή Διάβασε Μέρα Επίλεξε Μέρα Περίπτωση 1: Τύπωσε «Είναι Κυριακή» Περίπτωση 2: Τύπωσε «Είναι Δευτέρα» Περίπτωση 3: Τύπωσε «Είναι Τρίτη» Περίπτωση 4: Τύπωσε «Είναι Τετάρτη» Περίπτωση 5: Τύπωσε «Είναι Πέμπτη» Περίπτωση 6: Τύπωσε «Είναι Παρασκευή» Περίπτωση 7: Τύπωσε «Είναι Σάββατο» Τέλος_επιλογών Τέλος Μέρα_εβδομάδας 8 Εμφωλευμένες δομές ελέγχου: Πρόκειται για τις περιπτώσεις που έχουμε μία δομή Αν...τότε... μέσα σε μία άλλη. Αν <συνθήκη1> τότε Εντολές1 αλλιώς Αν <συνθήκη2> τότε Εντολές2 Τέλος_αν Τέλος_αν Πιο απλά γράφεται Αν <συνθήκη1> τότε Εντολές1 αλλιώς_αν <συνθήκη2> τότε Εντολές2 Τέλος_αν Μπορούμε να έχουμε πολλά αλλιώς_αν καταλήγοντας σε μία μορφή πολλαπλής επιλογής, όπου είναι καλύτερα να εκφραστεί με την εντολή Επίλεξε... Τέλος_επιλογών. Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει το βαθμό ενός μαθητή και τυπώνει το χαρακτηρισμό του, π.χ. εάν διαβάζει 19 να τυπώνει «Άριστα». Αλγόριθμος Χαρακτηρισμός_βαθμού Πραγματικός: Β! ο βαθμός που θα διαβαστεί Αρχή Διάβασε Β Αν Β < 10 τότε Τύπωσε «Καλώς» αλλιώς_αν Β >= 10 AND Β < 12.5 τότε Τύπωσε «Μέτρια» αλλιώς_αν Β >= 12.5 AND Β < 15.5 τότε Τύπωσε «Καλά» αλλιώς_αν Β >= 15.5 AND Β < 18.5 τότε Τύπωσε «Πολύ καλά»

9 αλλιώς_αν Β >= 18.5 AND Β <= 20 τότε Τύπωσε «Άριστα» Τέλος_αν 9 Τέλος Χαρακτηρισμός_βαθμού Η παραπάνω εμφωλευμένη επιλογή μπορεί να γραφτεί ισοδύναμα και πιο σύντομα με την επιλογή Επίλεξε...Τέλος_επιλογών. Πώς?

10 Επαναληπτική δομή: Έχει τρεις μορφές: 10 Όσο <συνθήκη> επανέλαβε Εντολές Μορφή Ι Αρχή_επανάληψης Εντολές Μέχρις ότου <συνθήκη> Μορφή ΙΙ Για <μετρητής> από <αρχική τιμή> μέχρι <τελική τιμή> [με βήμα Βήμα] Εντολές Μορφή ΙΙΙ Σημείωση: Στις περισσότερες περιπτώσεις (και πάντα στη μορφή ΙΙΙ) χρειαζόμαστε μία μεταβλητή-μετρητή. Ο μετρητής (συνήθως τον ονομάζουμε i) μετρά τον αριθμό των επαναλήψεων. Μορφή Ι: Όσο η συνθήκη δίνει True οι Εντολές εκτελούνται συνεχώς. Αν δώσει False τότε σταματάει η επανάληψη. Να σημειωθεί ότι πρώτα ελέγχεται η συνθήκη. Συνεπώς οι Εντολές μπορούν να εκτελεστούν μηδέν, μία ή περισσότερες φορές. Παράδειγμα: Να γραφεί αλγόριθμος που διαβάζει 10 αριθμούς και υπολογίζει το άθροισμά τους. Αλγόριθμος Άθροισμα_αριθμών Ακέραιος: Χ! ο αριθμός που διαβάζεται Ακέραιος: SUM! εδώ θα αποθηκευτεί το άθροισμα Ακέραιος: i! ο μετρητής Αρχή i 1! ο μετρητής αρχικοποιείται πριν ξεκινήσει η επανάληψη SUM 0! το ίδιο και το άθροισμα Όσο i <= 10 επανέλαβε Διάβασε Χ! κάνε εισαγωγή του αριθμού στη μεταβλητή Χ SUM SUM + X! πρόσθεσέ τον στο άθροισμα i i + 1! αυξάνουμε τον μετρητή πριν κάνει την επόμενη! επανάληψη Τύπωσε Το άθροισμα είναι :, SUM Τέλος Άθροισμα_αριθμών

11 Σε αυτό το παράδειγμα ο αριθμός των επαναλήψεων είναι γνωστός. Όταν είναι γνωστός ο αριθμός των επαναλήψεων προτιμότερη είναι η Τρίτη μορφή Για...από...μέχρι.... Παράδειγμα 2: (επαναληπτική είσοδος αγνώστου πλήθους στοιχείων) Να γραφεί αλγόριθμος που διαβάζει μια ακολουθία αριθμών όπου ο τελευταίος είναι 0 και να υπολογίζει το άθροισμά τους. Αλγόριθμος Άθροισμα_αριθμών Ακέραιος: Χ Ακέραιος: SUM! δεν χρειαζόμαστε μετρητή μιας και το πλήθος των αριθμών είναι άγνωστο. Το μόνο που! γνωρίζουμε είναι ότι ο τελευταίος αριθμός είναι το 0. Άρα θα διαβάζει ο Η/Υ μέχρι να! συναντήσει το 0. Αρχή SUM 0 Διάβασε Χ! ο πρώτος διαβάζεται πριν μπει στην επανάληψη Όσο Χ <> 0 επανέλαβε SUM SUM + X! πρόσθεσέ τον στο άθροισμα Διάβασε Χ! διάβασε τον επόμενο Τύπωσε Το άθροισμα είναι :, SUM Τέλος Άθροισμα_αριθμών 11 Μορφή ΙΙ: Εκτελείται πρώτα η ομάδα των εντολών και μετά ελέγχεται η συνθήκη. Συνεπώς οι εντολές εκτελούνται μία ή περισσότερες φορές. Εδώ, όσο η συνθήκη δίνει False η επανάληψη εκτελείται, εάν δώσει True σταματά. Ισχύει δηλαδή το αντίθετο από την Όσο...επανέλαβε. Για το ίδιο παράδειγμα 2, με τη μορφή ΙΙ θα γράφαμε: Αλγόριθμος Άθροισμα_αριθμών Ακέραιος: Χ Ακέραιος: SUM! δεν χρειαζόμαστε μετρητή μιας και το πλήθος των αριθμών είναι άγνωστο. Το μόνο που! γνωρίζουμε είναι ότι ο τελευταίος αριθμός είναι το 0. Άρα θα διαβάζει ο Η/Υ μέχρι να! συναντήσει το 0. Αρχή SUM 0 Αρχή_επανάληψης Διάβασε Χ SUM SUM + X μέχρις_ότου Χ = 0 Τύπωσε Το άθροισμα είναι :, SUM Τέλος Άθροισμα_αριθμών

12 Μορφή ΙΙΙ: Είναι η καταλληλότερη κι ενδείκνυται όταν γνωρίζουμε τον αριθμό των επαναλήψεων. Χρησιμοποιεί απαραίτητα μετρητή. Η μορφή αυτή ενσωματώνει: o Την αρχικοποίηση του μετρητή. o Τον έλεγχο της συνθήκης, αν φτάσαμε στην τελική τιμή. o Την αύξηση του μετρητή. Αν δεν καθορίσουμε βήμα, τότε εννοείται βήμα 1. Το παραπάνω παράδειγμα 1 ισοδύναμα γράφεται: Αλγόριθμος Άθροισμα_αριθμών Ακέραιος: Χ! ο αριθμός που διαβάζεται Ακέραιος: SUM! εδώ θα αποθηκευτεί το άθροισμα Ακέραιος: i! ο μετρητής Αρχή SUM 0 Για i από 1 μέχρι 10 Διάβασε Χ SUM SUM + X Τύπωσε Το άθροισμα είναι :, SUM Τέλος Άθροισμα_αριθμών 12 Σύνδεση λογικών προτάσεων: Στις δομές ελέγχου και στις επαναληπτικές δομές χρησιμοποιούμε <συνθήκη> για να καθοδηγήσουμε τον Η/Υ προς ένα ή άλλο μονοπάτι εκτέλεσης εντολών. Η <συνθήκη> είναι μια λογική πρόταση που δίνει True ή False και μπορεί να είναι: Απλή: π.χ. i < 10 ή Σύνθετη: π.χ. Β >= 18.5 AND B <=20 Στη δεύτερη περίπτωση, χρησιμοποιούμε λογικές προτάσεις που συνδέονται μεταξύ τους με τους λογικούς τελεστές AND ή OR. Επίσης, χρησιμοποιούμε και το ΝΟΤ (όχι) για την αντιστροφή της τιμής μιας πρότασης. πρόταση Α πρόταση Β Α OR B A AND B NOT A True True True True False True False True False False False True True False True False False False False True Γενικά, στην περίπτωση OR, όταν μία πρόταση είναι αληθής (True) τότε βγαίνει συνολικά αληθής. Στην περίπτωση του AND, όταν μία πρόταση είναι ψευδής (False) τότε βγαίνει συνολικά ψευδής.

13 Πολλαπλασιασμός αλά ρώσικα: 13 Είναι μία μέθοδος πολλαπλασιασμού δύο αριθμών. Συγκεκριμένα, άν έχουμε δύο αριθμούς Χ και Y και θέλουμε Χ*Y τότε αυτό γίνεται ως εξής: i. Βήμα 1: Ο Χ διπλασιάζεται και ο Y υποδιπλασιάζεται, κρατώντας μόνο το ακέραιο μέρος. ii. Βήμα 2: Συνεχίζουμε το Βήμα 1, μέχρι ο Y να φτάσει το 1. iii. Βήμα 3: Το γινόμενο θα είναι το άθροισμα των στοιχείων Χ στα βήματα που το Y είναι περιττός. π.χ. Χ = 45, Y = 19 Χ Υ Άθροισμα 855 Αλγόριθμος Πολλαπλασιασμός_αλά_ρώσικα Ακέραιοι: Χ, Υ Ακέραιος: P! το αποτέλεσμα-γινόμενο Αρχή P 0! αρχικοποίηση γινομένου Όσο Υ > 0 επανέλαβε Αν (Υ MOD 2) = 1 τότε! αν το υπόλοιπο της διαίρεση του Υ με το 2 είναι 1 P P + X! πρόσθεσε το Χ στο άθροισμα Τέλος_αν Χ Χ * 2 Υ Y DIV 2 Τύπωσε Το γινόμενο είναι :, P Τέλος Πολλαπλασιασμός_αλά_ρώσικα! διπλασιασμός του Χ! υποδιπλασιασμός του Υ. Παίρνουμε το πηλίκο του!υ με το 2

14 Σπουδαιότητα των αλγορίθμων στην Πληροφορική: 14 Η Πληροφορική μελετά τους αλγορίθμους από τις ακόλουθες σκοπιές: 1) Υλικού: Η ταχύτητα εκτέλεσης ενός αλγορίθμου επηρεάζεται από το υπάρχον hardware του Η/Υ. Δηλαδή, από την ταχύτητα του επεξεργαστή, της μνήμης, των δίσκων κτλ. 2) Γλωσσών προγραμματισμού: Κάθε γλώσσα προγραμματισμού έχει τα δικά της ιδιαίτερα χαρακτηριστικά που επηρεάζουν τον αριθμό και τον τρόπο δόμησης των εντολών του αλγόριθμου που θα χρησιμοποιηθούν για την επίλυση του προβλήματος. 3) Θεωρητική: Εξετάζουμε αν υπάρχει ή όχι κάποιος αποδοτικός αλγόριθμος για την επίλυση ενός συγκεκριμένου προβλήματος. 4) Αναλυτική: Εξετάζουμε τους υπολογιστικούς πόρους που σπαταλά ένας αλγόριθμος κατά την εκτέλεσή του. Δηλαδή, πόσο χρόνο απασχολεί τον επεξεργαστεί, πόση RAM δεσμεύει, πόσο χρόνο απαιτεί για λειτουργίες εισόδου / εξόδου κτλ.

15 15 ΚΕΦΑΛΑΙΟ 3 : Δομές Δεδομένων και Αλγόριθμοι Δομή δεδομένων: Είναι ένας τρόπος αποθήκευσης (οργάνωσης) δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. Η δομή αποτελείται από ένα σύνολο κόμβων. Κάθε κόμβος περιέχει μια απλή τιμή (αριθμός, αλφαριθμητικό κτλ) η μία πιο σύνθετη τιμή (π.χ. μια εγγραφή). π.χ. δομή λίστας που περιέχει ακέραιους αριθμούς: π.χ. δομή λίστας που περιέχει εγγραφές (Εγγραφή = μία ομάδα τιμών διαφορετικού τύπου σχετικά με ένα αντικείμενο. Π.χ. μία εγγραφή μαθητή περιέχει το όνομα, το επώνυμο, το έτος γέννησης, την τάξη του κτλ.) Νίκος Σταμάτης 1989 Γ1 Κώστας Αλεξίου 1988 Γ2 Άκης Γεωργίο υ 1988 Γ1 Βασικές λειτουργίες (πράξεις) επί των δομών: Προσπέλαση (access) Αναζήτηση (searching) Εισαγωγή (insertion) Διαγραφή (deletion) Ταξινόμηση (sorting) Αντιγραφή (copying) Συγχώνευση (merging) Διαχωρισμός (separation) Είναι η δυνατότητα πρόσβασης σε ένα κόμβο με σκοπό την ανάγνωση ή τροποποίηση του περιεχομένου του. Προσπελαύνονται οι κόμβοι μιας δομής με σκοπό να εντοπιστεί κάποιος που περιέχει μία συγκεκριμένη τιμή. Προσθήκη νέου κόμβου στη δομή. Αφαίρεση ενός κόμβου από τη δομή. Διατάσουμε τους κόμβους της δομής σε αύξοντα ή φθίνουσα σειρά (π.χ. αλφαβητικά κατά επώνυμο ή όνομα). Όλοι ή μερικοί κόμβοι αντιγράφονται σε μία άλλη δομή. Δύο ή περισσότερες δομές συνενώνονται σε μία ενιαία δομή Μία δομή διασπάται σε δύο ή περισσότερες. Είναι το αντίστροφο της συγχώνευσης.

16 Για λειτουργία δημιουργείται και ένας αλγόριθμος. Αρκετές φορές υπάρχουν διαφορετικοί αλγόριθμοι που υλοποιούν μία συγκεκριμένη λειτουργία (π.χ. υπάρχουν αρκετοί αλγόριθμοι για τη λειτουργία της ταξινόμησης). Όταν συμβαίνει αυτό, επιλέγουμε ένα αλγόριθμο που είναι πιο αποδοτικός (π.χ. πιο γρήγορος) για τα συγκεκριμένα δεδομένα. 16 Κατηγορίες δομών δεδομένων: ΠΡΌΓΡΑΜΜΑ = ΔΟΜΈΣ ΔΕΔΟΜΈΝΩΝ + ΑΛΓΌΡΙΘΜΟΙ Στατικές Το μέγεθός τους είναι καθορισμένο (σταθερό) και δεν μεταβάλλεται κατά την διάρκεια εκτέλεσης του προγράμματος. Οι κόμβοι αποθηκεύονται σε συνεχόμενες θέσεις στη μνήμη. Δυναμικές Το μέγεθός τους δεν είναι καθορισμένο (δεν είναι σταθερό) και μεταβάλλεται κατά τη διάρκεια εκτέλεσης του προγράμματος. Μπορούν να εισάγονται νέοι κόμβοι και να διαγράφονται υπάρχοντες. Οι κόμβοι δεν αποθηκεύονται σε συνεχόμενες θέσεις στη μνήμη. Πίνακες: Χαρακτηριστικός εκπρόσωπος των στατικών δομών. Περιέχει ένα σταθερό σύνολο κόμβων (θέσεις) που αποθηκεύονται σε συνεχόμενες θέσεις στη μνήμη. Επίσης, όλα τα στοιχεία είναι του ίδιου τύπου (δηλαδή ακέραιοι, πραγματικοί κτλ). 1) Μονοδιάστατοι πίνακες (μιας γραμμής ή μιας στήλης) Π.χ. Πίνακας ακεραίων Π[5] Πίνακας αλφαριθμητικών Π[4] Νίκος Γιάννης Μαρία Τάσος Οι αριθμοί κάτω από τις θέσεις του πίνακα δηλώνουν τον αριθμό θέσης του πίνακα. Ο αριθμός θέσης λέγεται και δείκτης. Ο πίνακας ορίζεται ως εξής: τύπος όνομα_πίνακα [διαστάσεις]. Π.χ. ακέραιος Π[5], δηλώνει ένα πίνακα μιας γραμμής πέντε θέσεων (στήλες) που περιέχει ακέραιους. Για να αναφερθούμε στο περιεχόμενο μιας θέσης του πίνακα βάζουμε το όνομα[θέση]. Π.χ., Π[1] = το περιεχόμενο της θέσης 1, Π[6] = το περιεχόμενο της θέσης 6. 2) Δισδιάστατοι πίνακες (πολλών γραμμών και στηλών)

17 Εδώ έχουμε περισσότερες από μία γραμμές. Κάθε γραμμή έχει ένα σύνολο θέσεων (στήλες). Στο παρακάτω παράδειγμα ο πίνακας ορίζεται ως εξής: ακέραιος Π[3,4]. Η πρώτη διάσταση αναφέρεται στις γραμμές και η δεύτερη στις στήλες. Γενικά, ορίζεται ως Π[Μ,Ν] για ένα πίνακα ΜxΝ Π[1,1] Π[1,2] Π[1,3] Π[1,4] 2 Π[2,1] Π[2,1] Π[2,3] Π[2,4] 3 Π[3,1] Π[3,2] Π[3,3] Π[3,4] Για να αναφερθούμε στο περιεχόμενο μιας θέσης του δισδιάστατου πίνακα βάζουμε το όνομα[γραμμή,στήλη]. Δηλαδή, η θέση προσδιορίζεται από τον αριθμό της γραμμής και της στήλης. Π.χ., Π[1,2] = το περιεχόμενο της θέσης στη γραμμή 1 και στήλη 2, Π[3,2] = το περιεχόμενο της θέσης στη γραμμή 3 και στήλη Τυπικές επεξεργασίες (λειτουργίες σε έναν πίνακα: Διάβασμα των στοιχείων του πίνακα, δηλαδή εισαγωγή τιμών στις θέσεις του, Εκτύπωση των στοιχείων του πίνακα, Υπολογισμός του αθροίσματος των στοιχείων του, Εύρεση του ελάχιστου ή μέγιστου στοιχείου του, Αναζήτηση ενός στοιχείου, Ταξινόμηση του πίνακα, Συγχώνευση δύο πινάκων. Στους αλγόριθμους του πίνακα χρησιμοποιούμε ως επί το πλείστον, τη δομή Για...από...μέχρι... Αλγόριθμοι μονοδιάστατου πίνακα: 1) Διάβασμα στοιχείων (δηλαδή εισαγωγή στοιχείων στις θέσεις του πίνακα) Αλγόριθμος Διάβασμα_στοιχείων Ακέραιος: Π[Ν]! Ν θέσεις Ακέραιος: i! ο δείκτης θέσεις Αρχή Για i από 1 μέχρι Ν Διάβασε Π[i] Τέλος Διάβασμα_στοιχείων 2) Εκτύπωση στοιχείων

18 18 Αλγόριθμος Εκτύπωση_στοιχείων Ακέραιος: Π[Ν]! Ν θέσεις Ακέραιος: i! ο δείκτης θέσεις Αρχή Για i από 1 μέχρι Ν Εκτύπωσε Π[i] Τέλος Εκτύπωση_στοιχείων 3) Υπολογισμός αθροίσματος στοιχείων Αλγόριθμος Άθροισμα_στοιχείων Ακέραιος: Π[Ν]! Ν θέσεις Ακέραιος: i! ο δείκτης θέσεις Ακέραιος: SUM Αρχή SUM 0 Για i από 1 μέχρι Ν SUM SUM + Π[i] Τύπωσε Το άθροισμα είναι:, SUM Τέλος Άθροισμα_στοιχείων 4) Υπολογισμός μέσου όρου (ΜΟ) στοιχείων Αλγόριθμος ΜΟ_στοιχείων Ακέραιος: Π[Ν] Ακέραιος: i Ακέραιος: SUM Πραγματικός: MO Αρχή SUM 0 Για i από 1 μέχρι Ν SUM SUM + Π[i]! Ν θέσεις! ο δείκτης θέσεις ΜΟ SUM/N Τύπωσε Το άθροισμα είναι:, MO Τέλος ΜΟ_στοιχείων! αρχικοποίηση πριν μπει στην επανάληψη

19 19 5) Εύρεση μέγιστου στοιχείου Αλγόριθμος Max_στοιχείων Ακέραιος: Π[Ν]! Ν θέσεις Ακέραιος: i! ο δείκτης θέσεις Ακέραιος: Max Αρχή Max Π[1]! θέτουμε σαν αρχική τιμή στο Max το πρώτο στοιχείο του! πίνακα Για i από 2 μέχρι Ν Αν Π[i] > Max τότε! αν το i στοιχείο είναι μεγαλύτερο από την! τρέχουσα τιμή του Max, τότε Max Π[i]! βάλε στο Max το i στοιχείο Τέλος_αν Τύπωσε Το μέγιστο στοιχείο του πίνακα είναι:, Max Τέλος Max_στοιχείων Η εύρεση του ελαχίστου είναι παρόμοια. Αλλάζει μόνο η ανισότητα, δηλαδή ελέγχουμε εάν Π[i] < Min. 6) Αναζήτηση στοιχείου Εδώ θα δούμε την σειριακή μέθοδο (γραμμική αναζήτηση). Η λογική είναι: Σαρώνουμε τον πίνακα και εξετάζουμε σε κάθε θέση αν το στοιχείο της θέσης αυτής είναι ίσο με αυτό που ψάχνουμε. Αν ναι, τότε σταματάμε. Πότε χρησιμοποιούμε την μέθοδο αυτή? i. Όταν ο πίνακας είναι μη ταξινομημένος ii. Ο πίνακας είναι μικρού μεγέθους (π.χ. Ν <=20) iii. Η αναζήτηση να πραγματοποιείται σπάνια, διότι η μέθοδος αυτή είναι σχετικά αργή. Θα χρειαστούμε μια μεταβλητή βρέθηκε λογικού τύπου, που θα γίνει True αν το στοιχείο βρεθεί. Επίσης, δεν γνωρίζουμε σε ποια θέση βρίσκεται Μπορεί να είναι στην 1 η θέση, αλλά μπορεί να είναι και στη Νστη θέση. Θα χρησιμοποιήσουμε και μια μεταβλητή θέση, που θα κρατήσει τη θέση όπου βρέθηκε. Αλγόριθμος Σειριακή_αναζήτηση Ακέραιος: Π[Ν]! Ν θέσεις Ακέραιος: i! ο δείκτης θέσεις

20 Αρχή Ακέραιος: key Ακέραιος: Θέση Λογική: Βρέθηκε! αυτό που ψάχνουμε! ο αριθμός θέσης όπου βρίσκεται το στοιχείο! θα γίνει True εάν βρεθεί το στοιχείο Βρέθηκε False Θέση 0 i 1 Όσο (i <= N) AND (Βρέθηκε = False) επανέλαβε Αν Π[i] = key τότε Βρέθηκε True Θέση i αλλιώς i i + 1 Τέλος_αν! προχώρα στην επόμενη θέση Αν Βρέθηκε = True τότε Τύπωσε Το στοιχείο βρέθηκε στη θέση:, Θέση αλλιώς Τύπωσε Το στοιχείο δεν βρέθηκε Τέλος_αν 20 Τέλος Σειριακή_αναζήτηση Σημείωση: Εάν ο πίνακας είναι ταξινομημένος είναι προτιμότερο να χρησιμοποιείται μια πιο αποδοτική (γρήγορη) μέθοδος, που ονομάζεται δυαδική μέθοδος. Ο αλγόριθμος δυαδικής αναζήτησης για ένα μονοδιάστατο ταξινομημένο πίνακα με αύξουσα σειρά έχει ως εξής: Συγκρίνουμε το μεσαίο στοιχείο του πίνακα με τη ζητούμενη τιμή. Αν είναι ίσα, επιστρέφουμε τη θέση του μεσαίου στοιχείου. Αν η ζητούμενη τιμή είναι μικρότερη, σημαίνει ότι βρίσκεται στο πρώτο μισό του πίνακα, αν υπάρχει. Αν η ζητούμενη τιμή είναι μεγαλύτερη, σημαίνει ότι βρίσκεται στο δεύτερο μισό του πίνακα, αν υπάρχει. Επομένως, με την πρώτη σύγκριση περιορίζουμε στο μισό τον χώρο αναζήτησης. Επαναλαμβάνουμε τη διαδικασία για το τμήμα του πίνακα που επιλέξαμε στο προηγούμενο βήμα έως ότου, με διαδοχικές διχοτομήσεις, περιοριστούμε σε ένα στοιχείο. Τότε, αν είναι ίσο με τη ζητούμενη τιμή επιστρέφουμε τη θέση του αλλιώς η ζητούμενη τιμή δεν περιέχεται στον πίνακα. 7) Ταξινόμηση πίνακα Θα δούμε τη μέθοδο της φυσαλίδας (bubble sort) ή ευθείας ανταλλαγής. Βασίζεται στην αρχή της σύγκρισης γειτονικών στοιχείων του πίνακα και ανταλλαγής τους μέχρι να διαταχθούν όλα σε μία σειρά (αύξουσα ή φθίνουσα). Η λογική είναι η εξής: Κάνουμε διαδοχικές σαρώσεις στον πίνακα. Σε κάθε σάρωση, το μικρότερο στοιχείο (για αύξουσα) μετακινείται προς την κορυφή του πίνακα. Αφού γίνουν όλες οι σαρώσεις, θα έχει επιτευχθεί η ταξινόμηση.

21 Αλγόριθμος Bubble_sort Ακέραιος: Π[Ν] Ακέραιος: i Ακέραιος: j Αρχή Ακέραιος: temp! Ν θέσεις! για τις διαδοχικές σαρώσεις από την αρχή προς το τέλος! για τη σάρωση που ελέγχει για το μικρότερο στοιχείο,! ξεκινά από το τέλος! βοηθητική μεταβλητή για την ανταλλαγή Για i από 2 μέχρι Ν! το i σαρώνει από την 2 η θέση ως το τέλος Για j από Ν μέχρι i με_βήμα -1 Αν Π[j -1] > Π[j] τότε temp Π[j-1] Π[j-1] Π[j] Π[j] temp Τέλος_αν Τέλος Bubble_sort Τα γραμμοσκιασμένα βήματα, είναι εκείνα που κάνουν την αντιμετάθεση στοιχείων. Δηλαδή το j στοιχείο θα πάει στη θέση του j-1 και το j-1 στη θέση του j. Επειδή δεν μπορεί να γίνει άμεσα διότι θα χαθεί το στοιχείο j-1, προσωρινά τοποθετείται στη βοηθητική μεταβλητή temp. Παράδειγμα: Να ταξινομηθούν οι ακέραιοι 12, 7, 5, 3, 10 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα του αλγορίθμου? 21 Δείκτης Θέσεις Πίνακα i j Ο παραπάνω αλγόριθμος με χρήση, αντί της μορφής Για...από...μέχρι, της μορφή Όσο...επανάλαβε, γίνεται:

22 Αλγόριθμος Bubble_sort Ακέραιος: Π[Ν] Ακέραιος: i Ακέραιος: j Ακέραιος: temp Αρχή i 2 Όσο i <= Ν επανάλαβε j N Όσο j >= i επανάλαβε Αν Π[j -1] > Π[j] τότε temp Π[j-1] Π[j-1] Π[j] Π[j] temp Τέλος_αν j j -1 i i Τέλος Bubble_sort Αλγόριθμοι δισδιάστατου πίνακα: 1) Διάβασμα στοιχείων (δηλαδή εισαγωγή στοιχείων στις θέσεις του πίνακα) Αλγόριθμος Διάβασμα_στοιχείων Ακέραιος: Π[Μ,Ν]! Μ γραμμές, Ν στήλες Ακέραιος: i! ο δείκτης γραμμής Ακέραιος: j! ο δείκτης στήλης Αρχή Για i από 1 μέχρι Μ Για j από 1 μέχρι Ν Διάβασε Π[i, j] Τέλος Διάβασμα_στοιχείων 2) Εκτύπωση στοιχείων

23 Αλγόριθμος Εκτύπωση_στοιχείων Ακέραιος: Π[Μ,Ν]! Μ γραμμές, Ν στήλες Ακέραιος: i! ο δείκτης γραμμής Ακέραιος: j! ο δείκτης στήλης Αρχή Για i από 1 μέχρι Μ Για j από 1 μέχρι Ν Τύπωσε Π[i, j] 23 Τέλος Εκτύπωση_στοιχείων 3) Υπολογισμός ΜΟ ανά γραμμή Αλγόριθμος ΜΟ_ανά_γραμμή Ακέραιος: Π[Μ,Ν]! Μ γραμμές, Ν στήλες Ακέραιος: i! ο δείκτης γραμμής Ακέραιος: j! ο δείκτης στήλης Ακέραιος: SUM Πραγματικός: ΜΟ Αρχή Για i από 1 μέχρι Μ SUM 0! αρχικοποίηση πριν υπολογίσει για την νέα γραμμή Για j από 1 μέχρι Ν SUM SUM + Π[i,j] MO SUM/N Τύπωσε Ο Μέσος Όρος της γραμμής, i, είναι:, MO Τέλος ΜΟ_ανά_γραμμή 4) Υπολογισμός ΜΟ ανά γραμμή αλλά αποθήκευσή του σε ξεχωριστό πίνακα Αλγόριθμος ΜΟ_ανά_γραμμή_και_αποθήκευση_σε_άλλον_πίνακα Ακέραιος: Π[Μ,Ν]! Μ γραμμές, Ν στήλες Ακέραιος: i! ο δείκτης γραμμής Ακέραιος: j! ο δείκτης στήλης Ακέραιος: SUM Πραγματικός: ΜΟ[Μ]! Ο πίνακας ΜΟ θα αποθηκεύει τους μέσους όρους ανά! γραμμή Αρχή Για i από 1 μέχρι Μ

24 SUM 0! αρχικοποίηση πριν υπολογίσει για την νέα γραμμή Για j από 1 μέχρι Ν SUM SUM + Π[i,j] MO[i] SUM/N! εδώ αποθηκεύει στην I θέση του πίνακα ΜΟ τον μέσο όρο Για i από 1 μέχρι Ν Τύπωσε Ο ΜΟ της γραμμής, i, είναι :, MO[i] Τέλος ΜΟ_ανά_γραμμή_και_αποθήκευση_σε_άλλον_πίνακα 24 Στοίβα: Η στοίβα υλοποιεί τη λογική LIFO (Last In First Out). Τα δεδομένα εισάγονται στην κορυφή της στοίβας, ενώ η αφαίρεση ενός στοιχείου γίνεται πάντα από την κορυφή της στοίβας. Η στατική στοίβα υλοποιείται με μονοδιάστατο πίνακα και χρησιμοποιεί ένα δείκτη Top που δείχνει στην κορυφή της στοίβας. Οι λειτουργίες είναι δύο: Η εισαγωγή-ώθηση (Push) ενός στοιχείου στην κορυφή της στοίβας. Η αφαίρεση-απώθηση (Pop) ενός στοιχείου από την κορυφή της στοίβας. Παράδειγμα: Top Εισαγωγή του 32 Top Top Αφαίρεση του 4 Top

25 Σημείωση: 25 Κατά της εισαγωγή ενός στοιχείου (ώθηση), πρέπει να γίνεται έλεγχος μήπως και η στοίβα είναι γεμάτη (δηλαδή δεν υπάρχει άλλη ελεύθερη θέση στον πίνακα). Ελέγχεται δηλαδή μήπως συμβεί υπερχείλιση (overflow). Αντίστοιχα, κατά την αφαίρεση ενός στοιχείου (απώθηση), πρέπει να γίνεται έλεγχος μήπως η στοίβα είναι άδεια. Δηλαδή, ελέγχει μήπως συμβεί υποχείλιση (underflow). Ουρά: Η ουρά υλοποιεί τη λογική FIFO (First In First Out). Τα δεδομένα εισάγονται στο πίσω μέρος της ουράς, ενώ η εξαγωγή ενός στοιχείου γίνεται πάντα από το μπροστινό μέρος της ουράς (όπως συμβαίνει σε μια ουρά σε τράπεζα!). Η στατική ουρά υλοποιείται με μονοδιάστατο πίνακα και χρησιμοποιεί δύο δείκτες: i. Τον Front που δείχνει στο μπροστινό μέρος της ουράς και ii. τον Rear που δείχνει στο πίσω μέρος της ουράς. Οι λειτουργίες είναι δύο: Η εισαγωγή ενός στοιχείου στο πίσω μέρος της ουράς. Η εξαγωγή ενός στοιχείου από το μπροστινό μέρος της ουράς. Σημείωση: Κατά την εισαγωγή ενός στοιχείου, πρέπει να γίνεται έλεγχος μήπως η ουρά είναι γεμάτη (δηλαδή μήπως δεν υπάρχει άλλη ελεύθερη θέση στον πίνακα). Αντίστοιχα, κατά την εξαγωγή ενός στοιχείου, πρέπει να γίνεται έλεγχος μήπως η ουρά είναι άδεια. Πλεονεκτήματα / Μειονεκτήματα των πινάκων: Πλεονεκτήματα: Είναι ένας βολικός κι εύκολος τρόπος διαχείρισης δεδομένων του ίδιου τύπου. Μειονεκτήματα:

26 Απαιτούν μνήμη. Ο πίνακας δεσμεύει από την αρχή του προγράμματος αρκετές θέσης μνήμης. Έτσι, αν χρησιμοποιούμε πολλούς πίνακες σε ένα πρόγραμμα το επιβαρύνουμε όσον αφορά στη μνήμη. Περιορίζουμε τις δυνατότητες του προγράμματος. Επειδή ο πίνακας είναι στατική δομή, δεν μπορεί να αλλάξει το μέγεθός του κατά την εκτέλεση του προγράμματος. Πότε είναι προτιμότερο να χρησιμοποιούμε τους πίνακας? Όταν τα δεδομένα που εισάγουμε, απαιτείται να βρίσκονται στη μνήμη RAM καθ όλη τη διάρκεια εκτέλεσης του προγράμματος. 26

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

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

29 ΚΕΦΑΛΑΙΟ 6 : Εισαγωγή στον προγραμματισμό 29 Ο προγραμματισμός είναι η διατύπωση του αλγορίθμου σε μορφή κατανοητή από τον Η/Υ, ώστε να τον εκτελέσει («τρέξει»). Η διατύπωση γίνεται χρησιμοποιώντας μια γλώσσα προγραμματισμού. Κατηγορίες γλωσσών προγραμματισμού: Γλώσσα μηχανής Γλώσσες χαμηλού επιπέδου ή συμβολικές γλώσσες Γλώσσες υψηλού επιπέδου Το πρόγραμμα περιέχει εντολές που είναι σε δυαδική μορφή, άμεσα κατανοητή από τον Η/Υ (όχι όμως από τον άνθρωπο). Δηλαδή, το πρόγραμμα αποτελείται από ακολουθίες 0 και 1 π.χ Πλεονεκτήματα: Ταχύτατη εκτέλεση εντολών Δεν απαιτείται μεταφραστικό πρόγραμμα Μειονεκτήματα: Το γράψιμο του προγράμματος είναι μια ιδιαίτερα επίπονη και χρονοβόρα διαδικασία Απαιτείται βαθιά γνώση της αρχιτεκτονικής του Η/Υ. Το πρόγραμμα «τρέχει» μόνο στο συγκεκριμένο τύπο του Η/Υ. Οι εντολές που είναι σε μορφή 0 και 1, αντικαθίστανται από μνημονικά (συμβολικά) ονόματα. Για παράδειγμα η εντολή αντικαθίσταται από το ADD. Ένα παράδειγμα χρήσης θα ήταν: INDEX = $01 (Βάλε στην INDEX την τιμή 1) ADD INDEX (Πρόσθεση την τιμή της INDEX στον συσσωρευτή) LDA #10 (φόρτωσε στον συσσωρευτή την τιμή 10) CLA (καθάρισε τον συσσωρευτή)... Πλεονεκτήματα: Ταχύτατη εκτέλεση των εντολών Η μορφή του προγράμματος είναι καλύτερα κατανοητή από τον άνθρωπο σε σχέση με την γλώσσα μηχανής. Μειονεκτήματα: Η αντιστοιχία ένα προς ένα με τις εντολές της γλώσσας μηχανής παρέμεινε. Απαιτείται η χρήση ενός μεταφραστικού προγράμματος ώστε οι συμβολικές εντολές να μετατραπούν στις αντίστοιχες δυαδικές. Το ειδικό αυτό πρόγραμμα ονομάζεται συμβολομεταφραστής (assembler). Το γράψιμο του προγράμματος εξακολουθεί να είναι μία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία. Απαιτείται βαθιά γνώση της αρχιτεκτονικής του Η/Υ. Το πρόγραμμα «τρέχει» μόνο στο συγκεκριμένο τύπο του Η/Υ. Λέγονται έτσι, διότι τα προγράμματα διατυπωμένα σε μία τέτοια γλώσσα, είναι άμεσα κατανοητά από τον άνθρωπο (αλλά όχι από τον Η/Υ) αφού χρησιμοποιείται μια γλώσσα που είναι αρκετά περιγραφική, όπως μια φυσική γλώσσα. Π.χ.

30 INPUT Δώσε την τελική τιμή: ; N SUM = 0 For INDEX = 1 to N SUM = SUM + INDEX Next Πλεονεκτήματα: Η μορφή του προγράμματος είναι εύκολα κατανοητή από τον άνθρωπο σε σχέση με τη γλώσσα μηχανής ή τη συμβολική γλώσσα. Το γράψιμο του προγράμματος δεν είναι πλέον μια ιδιαίτερα επίπονη και χρονοβόρα διαδικασία όπως συμβαίνει με τη γλώσσα μηχανής ή τη συμβολική γλώσσα. Δεν απαιτεί σχεδόν καμιά γνώση της αρχιτεκτονικής του Η/Υ. Συνεπώς τα προγράμματα είναι ανεξάρτητα από την αρχιτεκτονική του Η/Υ. Το πρόγραμμα «τρέχει» σε όλους τους τύπους Η/Υ, αρκεί να υπάρχει το κατάλληλο μεταφραστικό πρόγραμμα. Συνεπώς, ένα χαρακτηριστικό τους είναι η μεταφερσιμότητα, δηλαδή ένα πρόγραμμα υψηλού επιπέδου να εκτελείται με ελάχιστες μετατροπές, σε πολλούς τύπους Η/Υ. Η εκμάθηση της γλώσσας είναι εύκολη. Η διόρθωση λαθών και η συντήρηση των προγραμμάτων είναι ευκολότερη. Μειονεκτήματα: Κατηγοριοποίηση γλωσσών υψηλού επιπέδου: Απαιτείται η χρήση ενός μεταφραστικού προγράμματος, ώστε οι εντολές να μετατραπούν σε πολλές δυαδικές εντολές (δεν υπάρχει εδώ αντιστοιχία ένα προς ένα). Έχουμε δύο ειδών μεταφραστικά προγράμματα: - Τους μεταγλωττιστές (compilers) και τους διερμηνείς (interpreters). Το πρόγραμμα τρέχει πιο αργά σε σχέση με τα προγράμματα των συμβολικών γλωσσών ή της γλώσσας μηχανής. Διαδικασιακές ή αλγοριθμικές γλώσσες (Procedural): Λέγονται έτσι διότι επιτρέπουν την εύκολη υλοποίηση αλγορίθμων π.χ. Pascal, Basic. Αντικειμενοστραφείς γλώσσες (object oriented) π.χ. C++ Συναρτησιακές γλώσσες (functional) π.χ. LISP Μη-διαδικασιακές γλώσσες π.χ. PROLOG Γλώσσες ερωταπαντήσεων (Query languages) ή 4 ης γενιάς π.χ. SQL. Μία άλλη κατηγοριοποίηση των γλωσσών υψηλού επιπέδου είναι: Γλώσσες γενικής χρήσης: Σκοπός τους είναι να επιλύουν πάσης φύσεων προβλήματα (αριθμητικά, εμπορικά, επιστημονικά). Τέτοιες είναι η Basic, Pascal. Μερικές γλώσσες όμως έχουν δημιουργηθεί αποκλειστικά για να επιλύουν ευκολότερα συγκεκριμένους τύπους προβλημάτων όπως: 30

31 Γλώσσες επιστημονικής κατεύθυνσης, π.χ. FORTRAN Γλώσσες εμπορικής κατεύθυνσης, π.χ. COBOL Γλώσσες προγραμματισμού συστημάτων, π.χ. C Γλώσσες τεχνητής νοημοσύνης, π.χ. LISP, PROLOG Γλώσσες ειδικής χρήσης. Σκοπός τους είναι να επιλύουν ειδικού τύπου προβλήματα, όπως διαχείριση Βάσεων Δεδομένων κ.α., π.χ. SQL. 31 Διαδικασιακές γλώσσες κατά χρονολογική σειρά εμφάνισης: FORTRAN (1957) COBOL (1960) ALGOL (1960) PL/1 (μέσα 60) BASIC (μέσα 60) PASCAL (1970) C (αρχές 70) Ada (1979) Κατάλληλη για επίλυση επιστημονικών προβλημάτων (αριθμητικές εφαρμογές. Κατάλληλη για επίλυση εμπορικών προγραμμάτων (εφαρμογές μισθοδοσία, λογιστικές κτλ) Δημιουργήθηκε με σκοπό την ανάπτυξη προγραμμάτων κυρίως για επιστημονικές εφαρμογές ως ανταγωνιστική της Fortran. Δεν χρησιμοποιήθηκε όμως ευρέως στην πράξη. Προσπάθησε να συνδυάσει τις δυνατότητες των γλωσσών που ήταν προσανατολισμένες για εμπορικές και επιστημονικές εφαρμογές, χωρίς όμως να γνωρίσει επιτυχία. Δημιουργήθηκε με σκοπό την εκπαίδευση των αρχάριων στον προγραμματισμό. Σκοπός της BASIC είναι να γράφονται μικρά προγράμματα που κατόπιν εκτελούνται με τη βοήθεια διερμηνέα. Στις μέρες μας αποτελεί μια πανίσχυρη, γενικής χρήσης γλώσσα. Γλώσσα γενικής χρήσης. Στηρίχθηκε στην ALGOL. Είναι η καταλληλότερη γλώσσα για να μάθει κανείς δομημένο προγραμματισμό. Περιέχει αρκετά κοινά χαρακτηριστικά με την PASCAL για την ανάπτυξη δομημένων εφαρμογών, αλλά παράλληλα ενσωματώνει και χαρακτηριστικά γλώσσας χαμηλού επιπέδου. Θεωρείται κατάλληλη για την ανάπτυξη λειτουργικών συστημάτων (π.χ. Unix). Γλώσσα γενικής χρήσης που δίνει έμφαση στο θέμα της αξιοπιστίας των προγραμμάτων. Για αυτό τον λόγο χρησιμοποιείται πρωτίστως για στρατιωτικές εφαρμογές. Αντικειμενοστραφείς γλώσσες κατά χρονολογική σειρά: Η πρώτη αντικειμενοστραφής γλώσσα με ολοκληρωμένο μάλιστα Smalltalk (αρχές 80) περιβάλλον ανάπτυξης προγραμμάτων. Αποτελεί μια εξέλιξη της C στο χώρο του αντικειμενοστραφούς προγραμματισμού και χρησιμοποιείται αρκετά στην ανάπτυξη C++ (τέλη 80) λειτουργικών προγραμμάτων (π.χ. Windows) αλλά και άλλου τύπου εφαρμογών. Θεωρείται σήμερα μια κορυφαία γλώσσα. Γλώσσα ειδικά σχεδιασμένη για την ανάπτυξη εφαρμογών στο Internet. Σκοπός της είναι να γράφονται προγράμματα που θα εκτελούνται, χωρίς JAVA (μέσα 90) μετατροπές σε Η/Υ με διαφορετικά λειτουργικά συστήματα. Περιέχει αρκετά στοιχεία από την C++. C# (2002) Δημιουργήθηκε ως ανταγωνιστής της JAVA. Σκοπός της είναι να συνδυάσει την ευχρηστία της BASIC και τη δυναμική της C++ για την

32 ανάπτυξη εφαρμογών που θα εκτελούνται σε Η/Υ με διαφορετικά λειτουργικά συστήματα. Συναρτησιακές γλώσσες κατά χρονολογική σειρά εμφάνισης: 32 LISP (μέσα 60) Δημιουργήθηκε για την ανάπτυξη προγραμμάτων στο χώρο της τεχνητής νοημοσύνης. Μη διαδικασιακές γλώσσες κατά χρονολογική σειρά εμφάνισης: PROLOG (αρχές 70) Δημιουργήθηκε για την ανάπτυξη προγραμμάτων στο χώρο της τεχνητής νοημοσύνης. Γλώσσες 4 ης γενιάς ή ερωταπαντήσεων: SQL Δεν απευθύνεται μόνο σε προγραμματιστές αλλά και σε χρήστες. Ο χρήστης μπορεί σχετικά εύκολα, να υποβάλλει ερωτήσεις στο σύστημα ή να αναζητά πληροφορίες από μία Βάση Δεδομένων. Από τι εξαρτάται η επιλογή μιας γλώσσας προγραμματισμού: Από το είδος του προβλήματος (εμπορικό, αριθμητικό κ.α.) Από τον Η/Υ στον οποίο θα εκτελεστεί το πρόγραμμα. Από τη διαθέσιμη γλώσσα ή προγραμματιστικό περιβάλλον, στο οποίο θα αναπτυχθεί το πρόγραμμα. Από τις γνώσεις και την εμπειρία του προγραμματιστή. Με την ευρεία διάδοση των γραφικών περιβαλλόντων επικοινωνίας (π.χ. Windows, MacOS κ.α.) δημιουργήθηκαν παραλλαγές κάποιων γλωσσών που απευθύνονται σε αυτά. Τέτοιες είναι οι Visual Basic, Visual C++, Delphi (Visual Pascal), C# κ.α. Αυτές οι γλώσσες ακολουθούν την φιλοσοφία του οπτικού και του καθοδηγούμενου από γεγονότα προγραμματισμού, χωρίς να απορρίπτουν τις αρχές του δομημένου προγραμματισμού. Φυσικές και Τεχνητές Γλώσσες: Οι γλώσσες προγραμματισμού είναι τεχνητές γλώσσες που απευθύνονται σε ανθρώπους που επιθυμούν να επικοινωνήσουν με τον Η/Υ. Κάθε γλώσσα προγραμματισμού προσδιορίζεται από: Το αλφάβητό της Το λεξιλόγιό της Τη γραμματική της Τη σημασιολογία της (Semantics) Αλφάβητο Γλώσσας: Ως αλφάβητο ορίζουμε το σύνολο των αποδεκτών χαρακτήρων της γλώσσας. Από τους χαρακτήρες αυτούς σχηματίζονται οι λέξεις τις γλώσσας.

33 Σε μία φυσική γλώσσα όπως τα Ελληνικά, η λέξη ΔΙΑΒΑΖΩ είναι αποδεκτή, ενώ η λέξη ΖΩΒΑΓΩ όχι. Γραμματική της Γλώσσας: Η γραμματική περιλαμβάνει το τυπολογικό και το συντακτικό. Το τυπολογικό ορίζει τους κανόνες σύμφωνα με του οποίους μία λέξη θα είναι αποδεκτή. Για παράδειγμα, στην Ελληνική γλώσσα για την λέξη «δίνω», αποδεκτές μορφές είναι και το «δίνεις», «δίνουν», αλλά όχι το «δίνουτ». Το συντακτικό είναι ένα σύνολο κανόνων που ορίζει το πως πρέπει να σχηματίζονται οι προτάσεις από τις λέξεις της γλώσσας, ώστε οι προτάσεις αυτές να είναι έγκυρες και αποδεκτές. Σε μία γλώσσα προγραμματισμού αυτό που ενδιαφέρει είναι η σωστή σύνταξη των εντολών. Σημασιολογία της Γλώσσας: Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων και προτάσεων της γλώσσας. Σε μία γλώσσα προγραμματισμού αυτό καθορίζεται από τον δημιουργό της, ενώ σε μία φυσική γλώσσα από αυτόν που εκφέρει την πρόταση. Διαφορές μεταξύ Φυσικών και Τεχνητών Γλωσσών: 33 Φυσικές Χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων. Έχουν μεγάλες δυνατότητες εξέλιξης. Νέες λέξεις μπορεί να εισαχθούν, κανόνες γραμματικής και σύνταξης να αλλάξουν κλπ. Τεχνητές Χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπου και Η/Υ. Οι δυνατότητες εξέλιξης είναι περιορισμένες. Τις περισσότερες φορές, η εξέλιξη αυτή αφορά την επέκταση του ρεπερτορίου των εντολών της γλώσσας (π.χ. Basic και Visual Basic) Τεχνικές Σχεδίασης Προγραμμάτων: Δεν αρκεί κάποιος να γνωρίζει μια γλώσσα προγραμματισμού. Θα πρέπει να ακολουθήσει και μία τεχνική σχεδίασης του προγράμματός του. Για την σύνταξη σωστών, κατανοητών και εύκολα συντηρήσιμων προγραμμάτων ακολουθήθηκαν διάφορες μεθοδολογίες ανάπτυξης που παρουσιάζονται παρακάτω: 1) Ιεραρχική σχεδίαση ή Top-down σχεδίαση: Η τεχνική αυτή συνιστά στον καθορισμό βασικών λειτουργιών του προγράμματος σε ανώτερο επίπεδο και στη συνέχεια τη διάσπαση καθεμιάς σε μικρότερες και απλούστερες μέχρι του σημείου να είναι τόσο απλές που μπορούν να επιλυθούν άμεσα. Σκοπός της ιεραρχικής σχεδίασης είναι η διάσπαση του προβλήματος σε μικρότερα και απλούστερα υποπροβλήματα, τα οποία είναι ευκολότερο να επιλυθούν. Για την Top-down σχεδίαση χρησιμοποιούμε το ιεραρχικό διάγραμμα. Παράδειγμα: Πρόγραμμα Υπολογισμός Καθαρού Μισθού:

34 34 2) Τμηματικός Προγραμματισμός: Η ιεραρχική σχεδίαση πραγματοποιείται με τον τμηματικό προγραμματισμό. Μετά την ανάλυση του προβλήματος σε μικρότερα και απλούστερα υποπροβλήματα, κάθε υποπρόβλημα αποτελεί μία ξεχωριστεί και ανεξάρτητη ενότητα (module). Τώρα, για κάθε ενότητα θα γραφεί το κατάλληλο πρόγραμμα ή τμήμα προγράμματος. 3) Δομημένος Προγραμματισμός: Είναι η μεθοδολογία που έχει επικρατήσει σήμερα. Εμπεριέχει τις αρχές τις ιεραρχικής σχεδίασης και του τμηματικού προγραμματισμού. Επιπλέον, αναφέρει ότι για την δημιουργία σωστών προγραμμάτων να χρησιμοποιούμε μόνο τις 3 στοιχειώδεις δομές: Ακολουθίας, Επιλογής και Επανάληψης. Όλα τα προγράμματα οποιουδήποτε μεγέθους, μπορούν να γραφτούν στηριζόμενα στη χρήση μόνο αυτών των δομών, αποφεύγοντας πλήρως την χρήση της GOTO. Επίσης, κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο. Πλεονεκτήματα του Δομημένου Προγραμματισμού: Άμεση υλοποίηση των αλγορίθμων σε πρόγραμμα. Διευκόλυνση της ανάλυσης του προγράμματος σε τμήματα (ενότητες). Το κάθε τμήμα μπορεί να γραφεί από διαφορετικές ομάδες προγραμματιστών. Ευκολότερη και συντομότερη ανάπτυξη προγραμμάτων. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους. Ευκολότερη διόρθωση και συντήρηση του προγράμματος.

35 Αντικειμενοστραφής Προγραμματισμός: 35 Η φιλοσοφία του αντικειμενοστραφούς προγραμματισμού είναι η εξής: Να θεωρήσουμε τα δεδομένα και τις αποδεκτές ενέργειες που γίνονται πάνω σε αυτά ως ένα ενιαίο αντικείμενο (object). Αυτό το αντικείμενο θα μπορεί να χρησιμοποιηθεί πολύ εύκολα οπουδήποτε αλλού, δηλαδή θα είναι επαναχρησιμοποιήσιμο. Για παράδειγμα, θα μπορούσαμε να θεωρήσουμε μια στοίβα ως αντικείμενο: Ένας πίνακας Π[20] που θα δέχεται ακέραιους. Οι μόνες ενέργειες που θα ήταν επιτρεπτές θα ήταν η ώθηση ενός στοιχείου στη στοίβα και η αφαίρεση ενός στοιχείου από τη στοίβα. Αυτό το αντικείμενο θα μπορούσαμε να το δώσουμε και σε όποιον άλλο το έχει ανάγκη. Ο αντικειμενοστραφής προγραμματισμός, ακολουθεί τις αρχές του δομημένου προγραμματισμού. Οπτικός Προγραμματισμός: Είναι η δυνατότητα να δημιουργούμε με γραφικό τρόπο, ολόκληρο το περιβάλλον της εφαρμογής, όπως για παράδειγμα τα μενού και τα πλαίσια διαλόγου και άλλα παράθυρα της εφαρμογής. Ο οπτικός προγραμματισμός εκμεταλλεύεται τις δυνατότητες των γραφικών περιβαλλόντων επικοινωνίας (π.χ. Windows κλπ). Καθοδηγούμενος από γεγονότα Προγραμματισμός: Είναι η δυνατότητα να εκτελούνται οι διάφορες λειτουργίες του προγράμματος με την ενεργοποίηση ενός γεγονότος. Για παράδειγμα, αν κάνουμε κλικ σε κάποια εντολή ενός μενού ή σε κάποιο κουμπί σε ένα παράθυρο της εφαρμογής, τότε θα εκτελεστεί μία λειτουργία. Τα σύγχρονα προγραμματιστικά περιβάλλοντα είναι κτισμένα πάνω στις αρχές του οπτικού και καθοδηγούμενου από γεγονότα προγραμματισμού. Παράλληλος Προγραμματισμός: Σήμερα υπάρχουν μεγάλοι Η/Υ που διαθέτουν στο εσωτερικό τους πολλούς επεξεργαστές. Οι επεξεργαστές αυτοί μοιράζονται την ίδια μνήμη και λειτουργούν παράλληλα. Έτσι, την ίδια χρονική στιγμή, μπορούν να εκτελούνται διαφορετικές εντολές του ίδιου προγράμματος. Για να εκμεταλλευτούμε αυτή την ιδιαίτερη ισχύ των Η/Υ, θα πρέπει τα προγράμματα να είναι φτιαγμένα με τέτοιο τρόπο, ώστε διαφορετικά τμήματά του να εκτελούνται παράλληλα. Για τον σκοπό αυτό έχουν αναπτυχθεί ιδιαίτερες γλώσσες προγραμματισμού. Προγραμματιστικά Περιβάλλοντα: Ένα πρόγραμμα που φτιάχνεται σε μία γλώσσα προγραμματισμού υψηλού επιπέδου, δεν είναι άμεσα κατανοητό από τον Η/Υ. Θα πρέπει να μεταφραστεί σε ισοδύναμο πρόγραμμα σε γλώσσα μηχανής (δυαδική μορφή). Την διαδικασία μετάφρασης την πραγματοποιούν τα μεταφραστικά προγράμματα. Είναι δύο ειδών: Μεταγλωττιστές (Compilers) Διερμηνευτές (Interpreters) Πηγαίο πρόγραμμα (source program): Το πρόγραμμα που είναι φτιαγμένο σε γλώσσα υψηλού επιπέδου.

36 36 Αντικείμενο πρόγραμμα (object program: Το πρόγραμμα που είναι μεταφρασμένο σε γλώσσα μηχανής, αλλά όχι άμεσα εκτελέσιμο. Εκτελέσιμο πρόγραμμα (Executable program): Το πρόγραμμα σε γλώσσα μηχανής που είναι έτοιμο πλέον να εκτελεσθεί. Μεταγλωττιστής: Παίρνει ως είσοδο το πηγαίο πρόγραμμα και αναλαμβάνει να το μεταφράσει εξ ολοκλήρου παράγοντας το αντικείμενο πρόγραμμα. Διερμηνευτής: Παίρνει ως είσοδο, μία-μία εντολή του πηγαίου προγράμματος, την μεταφράζει και την εκτελεί αμέσως. Η λειτουργία του μοιάζει με τον άνθρωπο-διερμηνέα που μεταφράζει επί τόπου κάθε πρόταση. Η διαδικασία μεταγλώττισης και σύνδεσης ενός προγράμματος, είναι η εξής: Βιβλιοθήκες: Έτοιμες ενότητες (modules) αντικείμενου προγράμματος της γλώσσας, απαραίτητες για την παραγωγή του εκτελέσιμου προγράμματος.

37 Συνδέτης-Φορτωτής (linker-loader): 37 Ειδικό πρόγραμμα που αναλαμβάνει να συνδέσει το αντικείμενο πρόγραμμα με τις βιβλιοθήκες και να παράγει το εκτελέσιμο πρόγραμμα. Κατά την δημιουργία ενός προγράμματος σχεδόν πάντα ενυπάρχουν λάθη. Τα λάθη τα χωρίζουμε σε δύο κατηγορίες: Συντακτικά λάθη Λογικά λάθη Τα συντακτικά λάθη, ανιχνεύονται κατά την διάρκεια της μεταγλώττισης ή διερμήνευσης. Αφορούν σε παραβιάσεις του τυπολογικού και συντακτικού της γλώσσας (π.χ. μία εντολή έχει γραφτεί συντακτικά λάθος). Στην περίπτωση αυτή ο προγραμματιστής πρέπει να επιστρέψει στο πηγαίο πρόγραμμα, να διορθώσει τα λάθη και να ξαναϋποβάλλει το πηγαίο πρόγραμμα σε μεταγλώττιση. Τα λογικά λάθη, είναι τα πλέον δύσκολα στην ανίχνευσή τους. Έχουν να κάνουν με σφάλματα στη λογική επίλυσης του προβλήματος ή λανθασμένης διατύπωσης του αλγορίθμου (π.χ. το πρόγραμμα παράγει άλλα αποτελέσματα και όχι τα ζητούμενα!). Για την σύνταξη των προγραμμάτων, χρησιμοποιούμαι ένα ειδικό πρόγραμμα, που ονομάζεται συντάκτης (editor). Μοιάζει με επεξεργαστή κειμένου με επιπλέον δυνατότητες που διευκολύνουν την γρήγορη σύνταξη των πηγαίων προγραμμάτων. Τα σύγχρονα προγραμματιστικά περιβάλλοντα, έχουν υποχρεωτικώς τριών ειδών προγράμματα: 1) Τον συντάκτη 2) Το μεταγλωττιστή, και 3) Το συνδέτη φορτωτή. Πέραν αυτών, περιέχουν όλα εκείνα τα εργαλεία που διευκολύνουν την εύκολη, ταχύτατη σύνταξη, διόρθωση και συντήρηση των προγραμμάτων γι αυτό και πολλές φορές ονομάζονται RAD περιβάλλοντα (Rapid Application Development). Όλα αυτά παρέχονται έναν ενιαίο και λειτουργικό τρόπο στον προγραμματιστή.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

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

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

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

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

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

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

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

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

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

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

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

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

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

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

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

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράµµατος Γλώσσες προγραµµατισµού Κατηγορίες προγραµµατισµού Προγραµµατιστικά περιβάλλοντα 30 AΕσΠΠ Η έννοια του προγράµµατος Η επίλυση

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

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

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

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος. ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος 1 2 3 Εικόνα 43: Διάφορες πλακέτες υπολογιστών Μέσα σε δύο

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

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

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

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ (ΠΕΡΙΛΗΨΗ) ΕΠΙΜΕΛΕΙΑ: ΝΙΚΗΦΟΡΟΣ ΜΑΝΔΗΛΑΡΑΣ ΚΕΦΑΛΑΙΟ 2 ο -ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ 2.1 ΤΙ ΕΙΝΑΙ ΑΛΓΟΡΙΘΜΟΣ ΟΡΙΣΜΟΣ: Αλγόριθμος είναι

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

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

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

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

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

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

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

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

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

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

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

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

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης. ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές Εισαγωγή Νίκος Αθανάσης e-mail: athanasis@geo.aegean.gr Συνοπτικά Σκοπός του μαθήματος Στόχοι του μαθήματος Αντικείμενο του μαθήματος Κανονισμός

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

ΘΕΜΑ 1 Ο Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος:

ΘΕΜΑ 1 Ο Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος: ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ον/μο:.. Γ Λυκείου Ύλη:3-6-9 Τεχν. Κατ. 09-03-14 ΘΕΜΑ 1 Ο Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος: ΔΙΑΒΑΣΕ α, β x α > β Να χαρακτηρίσετε αν κάθε μία από

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

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

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

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

6. 1 Η έννοια του προγράμματος

6. 1 Η έννοια του προγράμματος 6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση

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

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

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

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

β. Δομημένα 3. Ο τρόπος λύσης τους μπορεί να επιλεγεί από πλήθος δυνατών λύςεων. γ. Άλυτα

β. Δομημένα 3. Ο τρόπος λύσης τους μπορεί να επιλεγεί από πλήθος δυνατών λύςεων. γ. Άλυτα ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΔΕΥΤΕΡΑ 12 ΙΟΥΝΙΟΥ 2000 Α. Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα «Σ», αν είναι σωστή, ή το γράμμα «Λ», αν είναι λανθασμένη.

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

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

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

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

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

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

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

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

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

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ον/μο:.. Γ Λυκείου Ύλη:3-6-9 Τεχν. Κατ. 03-03-13 ΘΕΜΑ 1 ο A. Να χαρακτηρίσετε τις παρακάτω προτάσεις αν είναι Σωστές ή Λανθασμένες. 1. Η εισαγωγή και η διαγραφή κόμβων σε πίνακα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

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

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

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

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

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

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

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

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

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

Α1. Χαρακτηρίστε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες.

Α1. Χαρακτηρίστε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες. Ημερομηνία: 15/04/15 Διάρκεια διαγωνίσματος: 180 Εξεταζόμενο μάθημα: Προγραμματισμός Γ Λυκείου Υπεύθυνος καθηγητής: Παπαδόπουλος Πέτρος ΘΕΜΑ Α Α1. Χαρακτηρίστε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες.

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

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

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

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

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

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

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

Ένα περιοδικό για το ΑΕΠΠ

Ένα περιοδικό για το ΑΕΠΠ Ένα περιοδικό για το ΑΕΠΠ Τεύχος «Θεωρία» Μία συνοπτική παρουσίαση περίληψη της θεωρίας του μαθήματος. Αποτελεί έναν «μπούσουλα» στον αγώνα του υποψηφίου και δεν υποκαθιστά το σχολικό βιβλίο. Κεφάλαιο

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

Για I από 2 μέχρι 10 με_βήμα 0 S S + I. Τέλος_επανάληψης Εμφάνισε S

Για I από 2 μέχρι 10 με_βήμα 0 S S + I. Τέλος_επανάληψης Εμφάνισε S 2005 ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονομαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθμος. Μονάδες 5 2. Ποιο κριτήριο δεν ικανοποιεί ο παρακάτω αλγόριθμος και γιατί; Μονάδες 5 S 0 Για

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

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

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

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

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

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

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

8. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της γλώσσας, τις λέξεις.

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

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

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 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

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

Θεωρία Προγραμματισμού

Θεωρία Προγραμματισμού Θεωρία Προγραμματισμού 1) Τι ονομάζουμε Αλγόριθμο; Ονομάζεται μια ακολουθία από πεπερασμένο αριθμό εντολών, που αν εκτελεστούν με ακρίβεια, οδηγούν στη πραγματοποίηση μιας εργασίας. 2) Τι ονομάζουμε ανάλυση

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

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

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ:ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Θέμα 1 ο Α) Να χαρακτηρίσετε τις παρακάτω προτάσεις ως

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

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

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

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

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

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

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

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

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

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

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