Αλγόριθμοι και δομές δεδομένων

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

Download "Αλγόριθμοι και δομές δεδομένων"

Transcript

1 Αλγόριθμοι και δομές δεδομένων February 2, Αλγόριθμοι (Ενότητα 2.1, σελίδες βιβλίου) Αλγόριθμος είναι μία πεπερασμένη σειρα ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Κάθε αλγόριθμος έχει τα παρακάτω χαρακτηριστικά: Είσοδος Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδος σε κάποιον αλγόριθμο. Περίπτωση που δεν δίνονται τιμές εισόδου στον αλγόριθμο παρουσιάζονται όταν τα δεδομένα προκύπτουν από γεννήτριες τυχαιων αριθμων, ανάγνωση αρχείων ή άλλες πηγές. Έξοδος Κάθε αλγόριθμος παράγει κάποια αποτελέσματα. Καθοριστικότητα Τα βήματα ενός αλγορίθμου πρέπει να είναι σαφώς καθορισμένα (όχι αμφίσημα ή σχετικά με υποκειμενικές εκτιμήσεις). Περατότητα Ένας αλγόριθμος πρέπει να τερματίζεται μετά από πεπερασμένο χρόνο. Αποτελεσματικότητα Κάθε μεμονωμένη εντολή ενός αλγορίθμου πρέπει να είναι απλή, δηλαδή άμεσα εκτελέσιμη από έναν υπολογιστή. Οι αλγόριθμοι μπορούν να περιγραφούν με διάφορες μεθόδους όπως ελεύθερο κείμενο, διαγραμματικές τεχνικές, φυσική γλώσσα ή κωδικοποίηση. Μία μορφή κωδικοποίησης είναι και η ψευδογλώσσα που περιγράφεται στη συνέχεια. 2 Ψευδοκώδικας Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε γλώσσα χρησιμοποιεί τις εντολές που ακολουθούν είναι αρκετά σαφής για να είναι μονοσήμαντη, χρησιμοποιεί απλές λειτουργίες κοινές σε όλους τους υπολογιστές και προφανής κατά τη μεταφορά της σε κάποια γλώσσα προγραμματισμού. Παρόλο που ο ψευδοκώδικας είναι `λογοτεχνία' με την έννοια ότι δεν μπορεί ως έχει να εκτελεστεί από έναν υπολογιστή, βοηθάει πολύ να θεωρήσουμε έναν εικονικό υπολογιστή ο οποίος `εκτελεί' τον ψευδοκώδικα. Ο εικονικός αυτός υπολογιστής θα ακολουθεί το μοντέλο που λίγο-πολύ ταιριάζει σε κάθε σύγχρονο υπολογιστή: Θα έχει μια κεντρική μονάδα επεξεργασίας η οποία θα μπορεί να εκτελεί αριθμητικές (πρόσθεση, διαίρεση 1

2 κτλ.) και λογικές (π.χ. σύγκριση) πράξεις. Επίσης θα έχει και μία μνήμη η οποία θα αποτελείται απο αριθμημένες θέσεις στις οποίες οποίες η κεντρική μονάδα επεξεργασίας μπορεί να γράφει αριθμητικές τιμές όπως επίσης και να διαβάζει από αυτές. Επίσης οι εικονικός μας υπολογιστής θα μπορεί να εισάγει δεδομένα από τον έξω κόσμο, όπως επίσης και εξάγει τα αποτελέσματα των υπολογισμών του. 2.1 Αρχή και τέλος Κάθε αλγόριθμος πρέπει να είναι πεπερασμένος άρα θα πρέπει να έχει σαφή αρχή και τέλος. Έτσι, κάθε αλγόριθμος που γράφουμε σε ψευδογλώσσα θα ξεκινάει με τη λέξη Αλγόριθμος και στη συνέχεια το όνομα του αλγορίθμου όπως στη γραμμή 1 του αλγορίθμου 1. Ακολουθούν οι διάφορες εντολές και στο τέλος γράφεται η λέξη Τέλος ακολουθούμενη πάλι από το όνομα του αλγορίθμου, όπως στη γραμμή 3 του ίδιου αλγόριθμου. Algorithm 1 Αρχή και τέλος 1: Αλγόριθμος <όνομα_αλγορίθμου> 2: Διάφορες εντολές 3: Τέλος <όνομα_αλγορίθμου> Τυπικά, ένας αλγόριθμός στοχεύει στην επίλυση κάποιου συγκεκριμένου προβλήματος και αυτό σημαίνει ότι θα δοθούν στον αλγόριθμο κάποια δεδομένα. Τελικά ο αλγόριθμος θα καταλήξει στον υπολογισμό κάποιων αποτελεσμάτων. Τα δεδομένα θα δηλώνονται με τη λέξη Δεδομένα και τα αποτελέσματα με τη λέξη Αποτελέσματα όπως στις γραμμές 2 και 5 του αλγορίθμου 2. Συνήθως τα δεδομένα δηλώνονται κοντά στην αρχή του αλγορίθμου ενώ τα αποτελέσματα προς το τέλος όπως στις γραμμές του αλγορίθμου 2. Algorithm 2 Δεδομένα και Αποτελέσματα 1: Αλγόριθμος <όνομα_αλγορίθμου> 2: Δεδομένα // <λίστα δεδομένων> // 3: Διάφορες εντολές 4: Πολλές εντολές 5: Αποτελέσματα // <λίστα αποτελεσμάτων> // 6: Τέλος <όνομα_αλγορίθμου> Καθώς η ψευδογλώσσα δεν χαρακτηρίζεται από αυστηρούς συντακτικούς κανόνες, δε χρειάζεται να δηλώσουμε τον τύπο των μεταβλητών που παριστάνουν τα δεδομένα ή/και τα αποτελέσματα. Είναι χρήσιμο πάντως, για λόγους σαφήνειας και αναγνωσιμότητας να προσθέτουμε κάποια σχόλια ώστε ο αναγνώστης να κατανοεί ευκολότερα τη λειτουργία του αλγορίθμου. Τα σχόλια στον ψευδοκώδικα θα τα εισαγουμε με τον χαρακτήρα! όπως στον αλγόριθμο 3 παρακάτω. Φυσικά, σχόλια μπορούμε να προσθέσουμε σε οποιοδήποτε άλλο σημείο του αλγόριθμού μας κρίνουμε σκόπιμο. 2

3 Algorithm 3 Σχόλια 1: Αλγόριθμος αναζήτηση σε πίνακα 2: Δεδομένα // p, n, key // 3:! p είναι ο πίνακας στον οποίο ψάχνουμε 4:! n είναι το μέγεθος του πίνακα 5:! key είναι το στοιχείο που αναζητείται 6: Διάφορες εντολές 7: Πολλές εντολές 8:! pos είναι η θέση στην οποία βρέθηκε το 9:! στοιχείο key ή null αν δεν υπήρχε 10: Αποτελέσματα // pos // 11: Τέλος αναζήτηση σε πίνακα 2.2 Μεταβλητές Βασικό στοιχείο κάθε υπολογιστή είναι κάποιου είδους μνήμη την οποία ο επεξεργαστής μπορεί να διαβάζει και να γράφει. Συνήθως η μνήμη είναι οργανωμένη ως μία σειρά αριθμημένων θέσεων κάθε μία από τις οποίες μπορεί να αποθηκεύει έναν αριθμό. Η κεντρική μονάδα επεξεργασίας διαβάζει και γράφει στη μνήμη χρησιμοποιώντας την αριθμητική διεύθυνση κάθε μίας τέτοιας θέσης. Για λόγους πρακτικούς, όταν περιγράφουμε αλγορίθμους δεν αναφερόμαστε στη μνήμη με αριθμητικές διευθύνσεις αλλά με ονόματα τα οποία εκφράζουν καλύτερα το σκοπό για τον οποίο προορίζονται. Τις ονοματισμένες αυτές θέσεις μνήμης τις ονομάζουμε μεταβλητές. Στον πραγματικό προγραμματισμό, ανάλογα με τον τύπο των δεδομένων που θέλουμε να αποθηκεύσουμε μπορεί να χρειαστούμε περισσότερο ή λιγότερο χώρο, π.χ. ένας χαρακτήρας μπορεί να αποθηκευθεί σε ένα ή δύο bytes ενώ ένας αριθμός κινητής υποδιαστολής συνήθως σε περισσότερα. Στην περιγραφή αλγορίθμων με ψευδοκώδικα δεν χρειάζεται να δηλώσουμε ρητά το μέγεθος των μεταβλητών αρκεί να μην υπάρχει θέμα παρανόησης. Ένα σχόλιο αρκεί στην περίπτωση που υπάρχει περίπτωση αμφισημίας. Την αποθήκευση μιας τιμής σε κάποια μεταβλητή τη δηλώνουμε με τον τελεστή ο οποίος συντάσσεται όπως στον αλγόριθμο 4. Στο αριστερό μέρος του τελεστή γράφουμε το όνομα της μεταβλητής στην οποία θέλουμε να αποθηκεύσουμε κάποια τιμή. Στο δεξί μέρος γράφουμε μία έκφραση (ή παράσταση) που όταν υπολογιστεί καταλήγει σε μία και μοναδική τιμή κατάλληλη να αποθηκευθεί στη μεταβλητή του αριστερού μέρους. Η έκφραση μπορεί να είναι μία μοναδική τιμή όπως στη γραμμή 2 όπου στη μεταβλητή αποθηκεύεται η τιμή 5. Μπορεί να είναι μία άλλη μεταβλητή όπως στη γραμμή 3 όπου στη x αποθηκεύται η τιμή της y. Μπορεί, εν τέλει, να είναι μια οσοδήποτε περίπλοκη έκφραση εμπλέκει σταθερές τιμές ή/και μεταβλητές χρησιμοποιώντας κατάλληλους τελεστές όπως π.χ. οι τελεστές +, -, / κτλ. των γνωστών πράξεων ή οι τελεστές mod και div όπως στη γραμμή 4. Σε κάθε περίπτωση οι υπολογισμοί που αναφέρονται στο δεξί μέλος πρέπει να καταλήγουν στον υπολογισμό μίας και μόνο τιμής. Προκειμένου να μπορέσουμε να χειριστούμε καταστάσεις στις οποίες ο `χρήστης' θα δίνει από κάποια μονάδα εισόδου την τιμή που θα αποθηκευτεί σε κάποια μεταβλητή θα χρησιμοποιούμε την εντολή Διάβασε όπως στην γραμμή 1 του ψευδοκώδικα 5. Με αυτήν την εντολή στον ψευδοκώδικα εννούμε ότι ζητείται από τον χειριστή του προγράμματος να δώσει μια τιμή η οποία και θα ανατεθεί στη μεταβλητή x. Αντίστοιχα, θα χρησιμοποιούμε την εντολή Τύπωσε όταν θέλουμε να δώσουμε 3

4 Algorithm 4 Ανάθεση τιμής σε μεταβλητή 1: <όνομα_μεταβλητής> <έκφραση> 2: x 5 3: x y 4: z (y+5) / * (x mod y) ένα αποτέλεσμα ως έξοδο όπως στη γραμμή 2 του ίδιου κώδικα. Algorithm 5 Εισαγωγή τιμής 1: Διάβασε x 2: Τύπωσε x 2.3 Βασικές αλγοριθμικές δομές Οι βασικές αλγοριθμικές δομές είναι Δομή ακολουθίας Δομή επιλογής (εκτέλεση υπό συνθήκη) Δομή επανάληψης (πεπερασμένη και υπό συνθήκη) Η δομή ακολουθίας είναι η διαδοχική εκτέλεση εντολών με τη σειρά που τις διαβάζουμε Δομή επιλογής (εκτέλεση υπό συνθήκη) Η δομή επιλογής οδηγεί στην εκτέλεση (ή μη) κάποιων εντολών ανάλογα με την τιμή μιας συνθήκης. Οι συνθήκες είναι εκφράσεις των οποίων ο υπολογισμός καταλήγει είτε στην τιμή αληθής (true, 1) είτε στην τιμή ψευδής (false, 0). Μπορούμε να φτιάξουμε συνθήκες χρησιμοποιώντας τους συσχετιστικούς τελεστές και αριθμητικές εκφράσεις π.χ. x > 5, x + y = z/a είτε συνδυάζοντας επιμέρους συνθήκες με τους λογικούς τελεστές and (και), or (ή) και not (όχι). Η δομή επιλογής εμφανίζεται με διάφορες παραλλαγές: την απλή, τη σύνθετη, την πολλαπλή και την εμφωλευμένη. Στην απλή της μορφή συντάσσεται όπως στον αλγόριθμο 6. Χρησιμοποιούμε τη λέξη Αν ακολουθούμενη από μία συνθήκη και στη συνέχεια τη λέξη τότε. Ακολουθούν μία ή περισσότερες εντολές και στο τέλος η λέξη Τέλος_αν. Λειτουργικά, η δομή αυτή εκτελείται ως εξής: Αρχικά υπολογίζεται η τιμή της συνθήκης μετά το Αν και πριν το τότε. Αν η τιμή της είναι 'αληθής' τότε 4

5 εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο τότε και το Τέλος_αν (γραμμές 2--5) και μετά η εκτέλεση συνεχίζεται από τη γραμμή 7. Αν όμως η τιμή της είναι 'ψευδής', τότε παρακάμπτονται οι εντολές που βρίσκονται στις ενδιάμεσες γραμμές και μετά τον υπολογισμό της συνθήκης η εκτέλεση συνεχίζεται από τη γραμμή 7. Algorithm 6 Δομή επιλογής (απλή) 1: Αν <συνθήκη> τότε 2: εντολή_1 3: εντολή_2 4:... 5: εντολή_ν 6: Τέλος_αν 7:... Μπορεί να χρησιμοποιηθεί και μια ακόμα πιο συνοπτική μορφή της Αν όπως στον αλγόριθμο 7. Σε αυτήν την περίπτωση αν ισχύει η συνθήκη, εκτελείται η μία και μόνη εντολή που βρίσκεται αμέσως μετά το τότε γραμμένη στην ίδια γραμμή και έτσι παραλείπεται το Τέλος_αν. Algorithm 7 Δομή απλής επιλογής (συνοπτική) 1: Αν <συνθήκη> τότε μία_εντολή Χρησιμοποιούμε αυτή τη δομή όταν θέλουμε να εκτελεστούν μία ή περισσότερες εντολές αν και μόνο αν πληρείται κάποια προϋπόθεση. Στον αλγόριθμο 8 φαίνεται ένα παράδειγμα στο οποίο αν κάποιος αριθμός είναι ζυγός τυπώνεται ένα μήνυμα. Αν δεν είναι, δεν γίνεται τίποτα, η ροή εκτέλεσης μεταφέρεται στη γραμμή 4. Algorithm 8 Παράδειγμα απλής επιλογής 1: Αν x mod 2 = 0 τότε 2: Τύπωσε Ο αριθμός είναι ζυγός 3: Τέλος_αν 4:... Η δεύτερη παραλλαγή της δομής επιλογής ονομάζεται σύνθετη και συντάσσεται όπως στον αλγόριθμο 9. Η πρώτη γραμμή είναι όπως και στην απλή δομή επιλογής. Ακολυθείται από μία ή περισσότερες εντολές και στη συνέχεια τη λέξη αλλιώς. Ακολουθούν και πάλι μία ή περισσότερες εντολές και τελικά η λέξη τέλος_αν. Η λειτουργία της είναι η εξής: αν η συνθήκη είναι αληθής, τότε εκτελούνται οι (μία ή περισσότερες) εντολές που βρίσκονται στις γραμμές 2 έως 5, μετά το τότε και πριν το αλλιώς και τελικά η εκτέλεση μεταφέρεται στη γραμμή 12, μετά το τέλος_αν. Αν η συνθήκη είναι ψευδής, τότε παρακάμπτονται οι γραμμές 2 έως 5 και εκτελούνται οι εντολές μετά το αλλιώς και πριν το τέλος_αν (γραμμές 7-10). Και σε αυτήν την περίπτωση, τελικά η εκτέλεση μεταφέρεται στη γραμμή 12. Χρησιμοποιούμε αυτήν την παραλλαγή όταν υπάρχουν ακριβώς δύο ενδεχόμενα, σαφώς διακριτά μεταξύ τους όπως στο παράδειγμα 10 όπου τυπώνεται ένα μήνυμα ανάλογα με το αν ένας αριθμός είναι ζυγός ή περιττός. 5

6 Algorithm 9 Δομή επιλογής (σύνθετη) 1: Αν <συνθήκη> τότε 2: εντολή_α1 3: εντολή_α2 4:... 5: εντολή_αν 6: αλλιώς 7: εντολή_ψ1 8: εντολή_ψ2 9:... 10: εντολή_ψν 11: Τέλος_αν 12:... Algorithm 10 Παράδειγμα σύνθετης επιλογής 1: Αν x mod 2 = 0 τότε 2: Τύπωσε Ο αριθμός είναι ζυγός 3: αλλιώς 4: Τύπωσε Ο αριθμός είναι περιττός 5: Τέλος_αν 6:... Η τρίτη παραλλαγή της δομής επιλογής ονομάζεται πολλαπλή. Συντάσσεται όπως φαίνεται στον αλγόριθμο 11. Αρχικά χρησιμοποιείται η λέξη Αν ακολουθούμενη από μία συνθήκη και τη λέξη τότε (γραμμή 1). Στη συνέχεια ακολουθούν μία ή περισσότερες εντολές (εντολές_1). Μετά οι λέξεις αλλιώς Αν ακολουθούμενες από μία άλλη συνθήκη (συνθήκη_2) και τη λέξη τότε (γραμμή 3). Ακολουθούν και εκεί μία ή περισσότερες εντολές (εντολές_2) και ούτω καθεξής. Τελικά έχουμε τη λέξη αλλιώς, μία ακόμα ομάδα εντολών και τη λέξη τέλος_αν. Το σχήμα αυτό λειτουργεί ως εξής: Αρχικά εκτιμάται η πρώτη συνθήκη, στη γραμμή 1. Αν είναι αληθής, εκτελούνται οι εντολές (μία ή περισσότερες) στη γραμμή 2 που βρίσκονται αμέσως μετά το τότε και πριν το αλλιώς της γραμμής 3. Στη συνέχεια, παρακάπτονται όλα τα υπόλοιπα μέχρι και το τέλος_αν και η εκτέλεση συνεχίζεται από τη γραμμή 10, μετά το τέλος_αν. Αν η συνθήκη του πρώτου Αν στη γραμμή 1 δεν ισχύει, τότε ελέγχεται η συνθήκη του αμέσως επόμενου (γραμμή 3). Αν αυτή ισχύει, τότε όπως και στην προηγούμενη περίπτωση εκτελούνται οι εντολές (μία ή περισσότερες) που ακολουθούν άμεσα (γραμμή 4) μέχρι το επόμενο αλλιώς και παραλείπονται όλα τα υπόλοιπα μέχρι το τέλος_αν. Η εκτέλεση συνεχίζεται με τη γραμμή 10. Αν δεν βρεθεί καμία συνθήκη που να είναι αληθής, τελικά εκτελούνται οι εντολές μετά το αλλιώς (γραμμή 8) και η εκτέλεση συνεχίζεται με τη γραμμή 10. Το τελευταίο αλλιώς στη γραμμή 7 και οι εντολές (ή εντολή) που το ακολουθούν στη γραμμή 8 είναι προαιρετικά. Χρησιμοποιούμε αυτήν την παραλλαγή της δομής επιλογής όταν έχουμε περισσότερα από δύο σαφώς διακριτά μεταξύ τους ενδοχόμενα όπως στο παράδειγμα 12 το οποίο τυπώνει ένα μήνυμα ανάλογα με τη σχέση που έχουν δύο μεταβλητές μεταξύ τους. 6

7 Algorithm 11 Δομή επιλογής (πολλαπλή) 1: Αν συνθήκη_1 τότε 2: εντολες_1 3: αλλιώς Αν συνθήκη_2 τότε 4: εντολές_2 5: αλλιώς Αν... τότε 6:... 7: αλλιώς 8: εντολές_ν 9: Τέλος_αν 10:... Algorithm 12 Παράδειγμα πολλαπλής επιλογής) 1: Αν α < β τότε 2: Τύπωσε Ο α είναι μικρότερος από τον β 3: αλλιώς Αν α > β τότε 4: Τύπωσε Ο α είναι μεγαλύτερος από τον β 5: αλλιώς 6: Τύπωσε Ο α και ο β είναι ίσοι 7: Τέλος_αν Η τελευταία παραλλαγή της δομής επιλογής είναι η εμφωλευμένη. Το χαρακτηριστικό της είναι ότι μία εντολή επιλογής μπαίνει ως εντολή μέσα σε μια άλλη δομή επιλογής όπως για παράδειγμα στον αλγόριθμο 13. Πρέπει να αναφέρουμε ότι δεν είναι σημαντικό να γίνεται ειδική μνεία για αυτήν την παραλλαγή καθώς γενικά μπορούμε να εμφωλεύσουμε οποιοδήποτε αλγορίθμικη δομή μέσα σε μία άλλη, δηλαδή μπορούμε να βάλουμε μία εντολή επανάληψης μέσα σε μία εντολή επιλογής η οποία με τη σειρά της βρίσκεται μέσα σε μία άλλη δομή επανάληψης κοκ. Στο συγκεκριμένο παράδειγμα, μία εντολή επιλογής στις γραμμές 3-7 βρίσκεται μέσα στο Αν κομμάτι μιας μεγαλύτερης δομής επιλογής στις γραμμές Algorithm 13 Παράδειγμα εμφωλευμένης επιλογής) 1: Αν α > τότε 2: Τύπωσε Θα πρέπει να πληρώσεις φόρο 3: Αν α > τότε 4: Τύπωσε O φόρος θα είναι 20 τοις εκατό. 5: αλλιώς 6: Τύπωσε Ο φόρος θα είναι 10 τοις εκατό. 7: Τέλος_αν 8: αλλιώς 9: Τύπωσε Δε θα πληρώσεις φόρο. 10: Τέλος_αν 7

8 2.3.2 Δομή επανάληψης Συχνά στον προγραμματισμό πρέπει να επαναληφθούν κάποιες εντολές με μικρές ίσως παραλλαγές. Η όποια γλώσσα περιγραφής αλγορίθμων θα ήταν απαραίτητο να περιλαμβάνει αντίστοιχες δομές. Μπορούμε να διακρίνουμε δύο ειδών επαναλήψεις Πεπερασμένη επανάληψη στην οποία γνωρίζουμε εκ των προτέρων πόσες επαναλήψεις θα πραγματοποιηθούν. Κατά συνθήκη επανάληψη στην οποία δε γνωρίζουμε τον ακριβή αριθμό των επαναλήψεων αλλά ξέρουμε κάποια συνθήκη που ανάλογα με την τιμή της (αλήθης ή ψευδής) οι επαναλήψεις θα συνεχίζονται ή θα σταματούν. Στον αλγόριθμο 14 παρουσιάζεται η γενική μορφή της πεπερασμένης επανάληψης. Στην αρχή έχουμε τη λέξη Για η οποία δηλώνει ότι πρόκειται για πεπερασμένη επανάληψη. Στη συνέχεια έχουμε το όνομα μιας μεταβλητής ελέγχου η οποία θα αλλάζει τιμές κατά τη διάρκεια της εκτέλεσης των επαναλήψεων και στη συνέχεια την αρχική και την τελική τιμή της μεταβλητής ελέγχου. Ακολουθούν μία ή περισσότερες εντολές οι οποίες θα εκτελούνται σε κάθε επανάληψη και τελικά η λέξη Τέλος_επανάληψης που σηματοδοτεί το τέλος των επαναλαμβανόμενων εντολών. Οι εντολές επανάληψης ονομάζονται και βρόχοι (loops) καθώς η ροή εκτέλεσής τους θυμίζει θηλιές. Οι εντολές που βρίσκονται στις γραμμές 2 έως 5 ονομάζονται σώμα του βρόχου. Λειτουργικά, ένας τετοιος βρόχος λειτουργεί ως εξής: Αρχικά η μεταβλητή ελέγχου παίρνει την αρχική τιμή. Στη συνέχεια εκτελούνται οι εντολές του σώματος (γραμμές 2-5). Έπειτα η μεταβλητή ελέγχου αυξάνεται κατά μία μονάδα και η ροή εκτέλεσης μεταφέρεται πίσω στη γραμμή 2 οπότε και ξαναεκτελούνται οι εντολές του σώματος. Αυτό επαναλαμβάνεται μέχρι η μεταβλητή ελέγχου να πάρει και την τελική τιμή. Μετά από εκείνην την τελευταία επανάληψη η ροή εκτέλεσης του προγράμματος μεταφέρεται στην εντολή που ακολουθεί το Τέλος_επανάληψης. Σημειώνουμε ότι οι εντολές του σώματος δεν αλλάζουν κατά τη διάρκεια των επαναλήψεων. Αυτό που αλλάζει είναι η τιμή της μεταβλητής ελέγχου. Algorithm 14 Πεπερασμένη επανάληψη 1: Για <μεταβλητή ελέγχου> από <αρχική τιμή> μέχρι <τελική τιμή> 2: εντολή_1 3: εντολή_2 4:... 5: εντολή_n 6: Τέλος_επανάληψης Μια παραλλαγή της πεπερασμένης επανάληψης είναι η πεπερασμένη επανάληψη με βήμα. Στην απλή της εκδοχή η πεπερασμένη επανάληψη αλλάζει την τιμή της μεταβλητής ελέγχου προσθέτοντάς της τη μονάδα μετά από κάθε επενάληψη. Στην πεπερασμένη επανάληψη με βήμα, η τιμή της μεταβλητής ελέγχου αλλάζει προσθέτοντας της έναν αριθμό που δηλώνουμε στην εντολή Για μετά από τις λέξεις με βήμα. Για παράδειγμα μια εντολή σαν την παρακάτω 8

9 1: Για i από 1 μέχρι 5 με βήμα 2 2:... 3: Τέλος_επανάληψης θα έκανε τρεις επαναλήψεις με την i να παίρνει τις τιμές 1, 3 και 5. Μπορούμε να χρησιμοποιούμε και αρνητικές τιμές. Σε αυτήν την περίπτωση η τιμή της μεταβλητής ελέγχου μειώνεται σε κάθε επανάληψη και η αρχική τιμή είναι μεγαλύτερη από την αρχική. Η παρακάτω επανάληψη θα έδινε στην i τις τιμές 10, 7, 4, 1. 1: Για i από 10 μέχρι 1 με βήμα -3 2:... 3: Τέλος_επανάληψης Στις κατά συνθήκη επαναλήψεις δεν γνωρίζουμε πόσες θα πρέπει να πραγματοποιηθούν αλλά γνωρίζουμε μία συνθήκη η οποία θα πρέπει να ισχύει ή όχι για να συνεχίζονται οι επαναλήψεις. Έχουμε δύο ειδών κατά συνθήκη επαναλήψεις: Την Όσο <συνθήκη> επανάλαβε και την Επανάλαβε μέχρις ότου <συνθήκη>. Η σύνταξη της δομής Όσο <συνθήκη> επανάλαβε είναι όπως στον αλγόριθμο 15. Στη γραμμή 1 έχουμε τις λέξεις Όσο και επανάλαβε και ενδιάμεσα μία συνθήκη δηλαδή μία έκφραση που μπορεί να αποτιμηθεί ως αληθής ή ψευδής. Στη συνέχεια έχουμε το σώμα του βρόχου στις γραμμές 2 έως και 5 που μπορεί να αποτελείται από μία ή περισσότερες εντολές. Το τέλος του βρόχου οριοθετείται από τη δεσμευμένη λέξη Τέλος_επανάληψης. Λειτουργικά, η δομή αυτή εκτελείται ως εξής: Αρχικά αποτιμάται η <συνθήκη>. Αν είναι αληθής τότε εκτελούνται οι εντολές του σώματος (γραμμές 2 έως και 5). Η ροή εκτέλεσης επιστρέφει στη γραμμή 1 όπου ξαναεκτιμάται η συνθήκη και η διαδικασία επαναλαμβάνεται. Αν σε κάποια από τις επαναλήψεις, η <συνθήκη> δεν είναι αληθής τότε η ροή εκτέλεσης από τη γραμμή 1 μεταφέρεται στην επόμενη από το Τέλος_επανάληψης εντολή. Algorithm 15 Επανάληψη Όσο... επανάλαβε 1: Όσο <συνθήκη> επανάλαβε 2: εντολή_1 3: εντολή_2 4:... 5: εντολή_n 6: Τέλος_επανάληψης 7:... Στον αλγόριθμο 16 έχουμε ένα παράδειγμα τέτοιας επανάληψης. Το ζητούμενο είναι να ζητούνται από το χρήστη αριθμοί οι οποίοι να προστίθενται και η διαδικασία να επαναλαμβάνεται όσο το άθροισμά τους είναι μικρότερο ή ίσο από το εκατό. Αρχικά (γραμμή 1) η μεταβλητή "άθροισμα" παίρνει την τιμή 0. Στη γραμμή 2 ελέγχεται η συνθήκη "άθροισμα <= 100". Στην πρώτη επανάληψη αυτό προφανώς ισχύει οπότε εκτελείται το σώμα του βρόχου (γραμμές 3 και 4). Αν υποθέσουμε ότι ο χρήστης έδωσε την τιμή 80, τότε η μεταβλητή "άθροισμα" έχει την τιμή 80. Μετά 9

10 την εκτέλεση του σώματος η ροή εκτέλεσης μεταφέρεται πίσω στη γραμμή 2 όπου ξαναελέγχεται η συνθήκη. Εφόσον το άθροισμα είναι 80, η συνθήκη ισχύει οπότε εκτελούνται και πάλι οι εντολές του σώματος. Αν υποθέσουμε ότι στη δεύτερη επανάληψη ο χρήστης δίνει την τιμή 40, τότε η μεταβλητή άθροισμα θα έχει τελικά την τιμή 120. Η ροή εκτέλεσης μεταφέρεται πίσω στη γραμμή 2. Αυτή τη φορά η συνθήκη "άθροισμα <= 100" δεν ισχύει, οπότε οι εντολές του βρόχου δεν ξαναεκτελούνται και η ροή εκτέλεσης του προγράμματος μεταφέρεται στη γραμμή 6 μετά το Τέλος_επανάληψης. Algorithm 16 Παράδειγμα Όσο... επανάλαβε 1: άθροισμα 0 2: Όσο άθροισμα <= 100 επανάλαβε 3: Διάβασε α 4: άθροισμα άθροισμα + α 5: Τέλος_επανάληψης 6:... Μια παραλλαγή του βρόχου-while είναι ο βρόχος επανάληψη-μέχρις_ότου στον οποίο η λογική συνθήκη εκτιμάται μετά την εκτέλεση του σώματος. Εδώ, εκτελούνται κανονικά οι εντολές Algorithm 17 Επανάληψη μέχρις_ότου 1: Αρχή_επανάληψης 2: εντολή_1 3: εντολή_2 4:... 5: εντολή_1 6: Μέχρις_ότου <συνθήκη> 7:... του σώματος του βρόχου (από τη γραμμή 2 μέχρι το Μέχρις_ότου και μετά εκτιμάται η συνθήκη. Αν είναι αληθής τότε ξαναεκτελούνται οι εντολές του σώματος κοκ. Αν είναι ψευδής, η εκτέλεση συνεχίζεται από την εντολή αμέσως μετά το Μέχρις_ότου (γραμμή 7). Η λειτουργία αυτής της δομής δεν διαφέρει ιδιαίτερα από εκείνην της Όσο-επανάλαβε. Το σημείο που είναι καλό να συγκρατήσει κανείς είναι ότι άσχετα από την τιμή της συνθήκης, το σώμα της Επανάλαβε-μέχρις ότου θα εκτελεστεί τουλάχιστον μία φορά καθώς η συνθήκη θα υπολογιστεί μετά το τέλος της πρώτης επανάληψης. Αντίθετα, το σώμα της Όσο-επανάλαβε είναι πιθανό να μην εκτελεσετεί ούτε μία καθώς η συνθήκη υπολογίζεται πριν από την εκτέλεση των εντολών του σώματος. Μία άλλη διαφορά είναι ότι η Όσο-επανάλαβε συνεχίζει τις επαναλήψεις όσο η συνθήκη είναι αληθής ενώ η Επανάλαβε-μέχρις ότου συνεχίζει όσο η συνθήκη είναι ψευδής (σταματάει όταν η συνθήκη αληθεύσει). 3 Δομές δεδομένων Τα δεδομένα του προβλημάτος και οι πληροφορίες που παράγει ένα πρόγραμμα αποθηκεύονται στη μνήμη του υπολογιστή με τρόπο ώστε να εξυπηρετούν την εκτέλεση του αλγορίθμου που υλοποιεί το 10

11 πρόγραμμα. Η αποθήκευσή τους γίνεται οργανωμένα σε κατάλληλες δομές. Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. Περισσότερα στοιχεία για τις δομές δεδομένων και τις πράξεις που εφαρμόζονται σε αυτές μπορείτε να βρείτε στη σελίδα 54 του βιβλίου. Στις επόμενες ενότητες θα δούμε παραδείγματα δομών δεδομένων και κάποιους αλγορίθμους που πραγματοποιούν κάποιες από τις συνηθισμένες πράξεις σε αυτές. 3.1 Πίνακες Ο πίνακας είναι μία απλή γραμμική διάταξη κόμβων. Σε αυτήν τη δομή οι κόμβοι αποθηκεύονται ο ένας μετά τον άλλον σε μια συνεχή περιοχή της μνήμης. Κάθε πίνακας έχει ένα μοναδικό όνομα με το οποίο αναφερόμαστε σε αυτόν. Η προσπέλαση των επιμέρους κόμβων στον πίνακα γίνεται με την αναφορά του ονόματός του και τον αύξοντα αριθμό του στοιχείου που θέλουμε να προσπελάσουμε κλεισμένο μέσα σε αγκύλες, π.χ. p[1] ή r[i+j]. Παρακάτω βρίσκονται οι περιγραφές σε ψευδοκώδικα δύο αλγορίθμων αναζήτησης και δύο αλγορίθμων ταξινόμησης των στοιχείων ενός πίνακα καθώς και οι υλοποιήσεις τους σε Pascal. Το πλήρες πρόγραμμα μπορείτε να το βρείτε στη διεύθυνση Αναζήτηση σε πίνακα Έστω ότι έχουμε έναν πίνακα table με n στοιχεία (κόμβους) κάποιου τύπου και ότι θέλουμε να δούμε αν ένα στοιχείο key περιέχεται στον πίνακα ή όχι. Αν ο πίνακας δεν είναι ταξινομημένος τότε πρέπει να χρησιμοποιήσουμε τη μέθοδο της σειριακής αναζήτησης που περιγράφεται στη σελίδα 64 του βιβλίου την οποία ξαναγράφουμε εδώ. Algorithm 18 Γραμμική (ή σειριακή) αναζήτηση 1: Δεδομένα // p, n, key // 2:! p ο πίνακας, n το πλήθος των στοιχείων, key το ζητούμενο 3: i 1 4: found false 5: Όσο (i <= n) and (found = false) επανάλαβε 6: Αν p[i] = key τότε 7: position i 8: found true 9: αλλιώς 10: i i : Τέλος_αν 12: Τέλος_επανάληψης 13: Αποτελέσματα // found, position // Αυτή δεν είναι η καλύτερη επιλογή μας καθώς στη χειρότερη περίπτωση μπορεί να χρειαστεί να εξεταστούν όλα τα στοιχεία του πίνακα. Μία υλοποίηση του αλγορίθμου φαίνεται παρακάτω: 1 function linear_search(var p: myarray_type; 11

12 2 s: integer; 3 var position: integer): boolean; 4 var 5 i: integer; 6 found: boolean; 7 begin 8 found := false; 9 i := 1; 10 while (found = false) and (i <= array_size) do 11 begin 12 if p[i] = s then 13 begin 14 position := i; 15 found := true; 16 end 17 else 18 i := i + 1; 19 end; 20 linear_search := found; 21 end; Σε αυτήν πραγματοποιείται αναζήτηση για το στοιχείο key μέσα στον πίνακα p. Η συνάρτηση επιστρέφει true ή false ανάλογα με το αν το στοιχείο βρέθηκε ή όχι. Επίσης μέσω της var παραμέτρου position επιστρέφει τη θέση στην οποία βρίσκεται το στοιχείο (αν υπάρχει). Η μεταβλητή found είναι αρχικά false (γραμμή 8) και γίνεται true αν το στοιχείο βρεθεί (γραμμές 12-16). Η αναζήτηση πραγματοποιείται συγκρίνοντας ένα προς ένα τα στοιχεία του πίνακα με το ζητούμενο key. Καθώς δε γνωρίζουμε πόσες τέτοιες συγκρίσεις θα πραγματοποιηθούν αυτό γίνεται με ένα βρόχο while (γραμμή 10) ο οποίος συνεχίζει όσο το στοιχείο δεν έχει βρεθεί ακόμα (found = false) και η μεταβλητή i που λειτουργεί ως δείκτης στον πίνακα δεν έχει ξεπεράσει το μέγεθός του (i <= array_size). Στην περίπτωση που το στοιχείο βρεθεί, δηλαδή η συνθήκη του if της γραμμής 12 αληθεύει, τότε αφενός η μεταβλητή position παίρνει την τιμή της θέσης στην οποία βρέθηκε το στοιχείο και αφετέρου η μεταβλητή found παίρνει την τιμή true ώστε να μη γίνουν άλλες επαναλήψεις του βρόχου for. Αν ο πίνακας είναι ταξινομημένος μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο της δυαδικής αναζήτησης που περιγράφεται στη συνέχεια. Ο αλγόριθμος δυαδικής αναζήτησης περιγράφεται στη σελίδα 85 του βιβλίου. Στη σελίδα 86 δίνεται και μία περιγραφή σε ψευδοκώδικα η οποία χρησιμοποιεί αναδρομή (δηλαδή κλήση του αλγορίθμου από τον ίδιο τον αλγόριθμο) και επίσης δεν ελέγχει για την περίπτωση που το στοιχείο δεν υπάρχει στον πίνακα. Ένας μη-αναδρομικός αλγόριθμος δυαδικής αναζήτησης είναι ο αλγόριθμος 19. Αρχικά οι μεταβλητές arxi και telos παίρνουν τις τιμές 1 και n αντίστοιχα, που σημαίνει ότι η αναζήτηση θα πραγματοποιηθεί σε όλο τον πίνακα από τη θέση 1 έως και τη θέση n. Επίσης αρχικοποιείται και η μεταβλητή found η οποία παίρνει την τιμή false, δηλαδή το στοιχείο key δεν έχει ακόμα βρεθεί. Ο βρόχος των γραμμών 6-16 επαναλαμβάνεται όσο το στοιχείο δεν έχει ακόμα βρεθεί και εφόσον η μεταβλητή arxi είναι μικρότερη ή ίση από τη μεταβλητή telos. Σε φυσιολογικές συνθήκες αυτό θα έπρεπε να ισχύει πάντα. Αν δεν ισχύει σημαίνει ότι το στοιχείο δε βρέθηκε. Σε κάθε μία επανάληψη του βρόχου, υπολογίζεται 12

13 η θέση του μεσαίου στοιχείου (γραμμή 7) και στη συνέχεια το στοιχείο αυτό συγκρίνεται με το ζητούμενο key (γραμμή 8). Αν είναι ίδια τότε το στοιχείο βρέθηκε οπότε η μεταβλητή found παίρνει την τιμή true και η μεταβλητή position παίρνει την τιμή meso δηλαδή τη θέση στην οποίο βρέθηκε το key. Τα εναλλακτικά σκέλη της if στις γραμμές 11 και 13 δεν εκτελούνται και επίσης εφόσον η μεταβλητή found πήρε την τιμή true, ο βρόχος δε θα επαναληφθεί καθώς δεν ισχύει η (found = false) της γραμμής 6. Οπότε επιστρέφεται η found (true) και η θέση στην οποία βρέθηκε το key. Αν όμως η συνθήκη της γραμμής 8 δεν ισχύει δηλαδή το στοιχείο key δε βρέθηκε στο μέσο του πίνακα τότε ελέγχεται αν το στοιχείο key είναι μικρότερο από το p[meso] (γραμμή 11). Αν είναι έτσι και εφόσον ο πίνακας είναι ταξινομημένος τότε το στοιχείο key (αν υπάρχει) θα πρέπει να βρίσκεται σε κάποια θέση του πίνακα μικρότερη από τη θέση meso, οπότε η μεταβλητή telos παίρνει την τιμή meso-1 και ο βρόχος επαναλαμβάνεται. Αυτή τη φορά όμως με τιμές 1 και meso-1 για τις arxi και telos. Αντίστοιχα, αν το στοιχείο key είναι μεγαλύτερο από το p[meso], το στοιχείο key βρίσκεται σε κάποια θέση του πίνακα μεγαλύτερη από τη θέση meso οπότε η arxi γίνεται meso+1 και η διαδικασία επαναλαμβάνεται. Τελικά, με δεδομένο ότι σε κάθε επανάληψη που δε βρίσκεται το στοιχείο key είτε αυξάνεται η arxi είτε μειώνεται η telos, κάποια στιγμή ακόμα και αν το στοιχείο key δε βρεθεί ο βρόχος θα σταματήσει να επαναλαμβάνεται γιατί η arxi θα γίνει μεγαλύτερη από την telos και έτσι θα πάψει να ισχύει η συνθήκη (arxi <= telos) της γραμμής 6. Σε αυτήν την περίπτωση επιστρέφεται η τιμή false της found και η μεταβλητή position μας είναι αδιάφορη. Algorithm 19 Δυαδική αναζήτηση 1: Δεδομένα // p, n, key // 2:! p ο πίνακας, n το πλήθος των στοιχείων, key το ζητούμενο 3: arxi 1 4: telos n 5: found false 6: Όσο (arxi <= telos) and (found = false) επανάλαβε 7: meso (arxi + telos) div 2 8: Αν p[meso] = key τότε 9: position meso 10: found true 11: αλλιώς Αν key < p[meso] τότε 12: telos meso : αλλιώς 14: arxi meso : Τέλος_αν 16: Τέλος_επανάληψης 17: Αποτελέσματα // found, position // Μια υλοποίηση του παραπάνω αλγορίθμου φαίνεται παρακάτω (επίσης στο αρχείο pinakas.zip). 1 function binary_search(var p: myarray_type; 2 key: integer; 3 var position: integer): boolean; 4 var 13

14 5 arxi, telos, meso: integer; 6 found: boolean; 7 begin 8 position := 0; 9 arxi := 1; 10 telos := array_size; 11 found := false; while (arxi <= telos) and (found = false) do 14 begin 15 meso := (arxi + telos) div 2; 16 if p[meso] = key then 17 begin 18 position := meso; 19 found := true; 20 end 21 else if key < p[meso] then 22 telos := meso else 24 arxi := meso + 1; 25 end; 26 binary_search := found; 27 end; Ταξινόμηση πίνακα Στις σελίδες του βιβλίου παρουσιάζεται ο αλγόριθμος ταξινόμησης της φυσαλίδας. Η συγκεκριμένη εκδοχή ταξινομεί τα στοιχεία του πίνακα σε αύξουσα σειρά δηλαδή πρώτα το μικρότερο με κάθε στοιχείο να είναι μεγαλύτερο ή ίσο από το προηγούμενο. Αντιγράφουμε το βιβλίο στον αλγόριθμο 20. Ο αλγόριθμος αποτελείται βασικά από δύο επαναλήψεις for τη μία μέσα στην άλλη. Algorithm 20 Ταξινόμηση φυσαλίδας 1: Δεδομένα // table, n // 2:! table ο πίνακας, n το πλήθος των στοιχείων 3: Για i από 2 μέχρι n 4: Για j από n μέχρι i με_βήμα -1 5: Αν table[j-1] > table[j] τότε 6: αντιμετάθεσε table[j-1], table[j] 7: Τέλος_αν 8: Τέλος_επανάληψης 9: Τέλος_επανάληψης 10: Αποτελέσματα // found, position // Η πρώτη (γραμμές 3-9) διατρέχει τις τιμές 2 έως n ενώ η δεύτερη (εσωτερική, γραμμές 4-8) ανάποδα 14

15 τις τιμές από n μέχρι i (όχι 1). Ο αλγόριθμος γίνεται πιο εύκολα κατανοητός αν τον διαβάσει κανείς από μέσα προς τα έξω και όχι από πάνω προς τα κάτω. Η εσωτερική επανάληψη δίνει στο j τις τιμές n, n-1, n-2 κοκ. μέχρι i. Σε κάθε επανάληψη ελέγχει αν το στοιχείο στη θέση j, είναι μικρότερο από το προηγούμενό του στη θέση [j-1] (γραμμή 5). Αν συμβαίνει αυτό τότε τους αλλάζει θέση. Στην επόμενη επανάληψη το στοιχείο που μετακινήθηκε μία θέση προς την αρχή του πίνακα θα ξανασυγκριθεί με το προηγούμενό του και αν και πάλι είναι μικρότερο θα ξαναμετακινηθεί προς την αρχή του πίνακα. Έτσι στην πρώτη επανάληψη του εξωτερικού βρόχου, όταν το i έχει την τιμή 2, το μικρότερο στοιχείο του πίνακα, πιθανώς μετά από διαδοχικές μετακινήσεις, θα βρεθεί στην πρώτη θέση του πίνακα. Στη δεύτερη επανάληψη, το i θα γίνει 3 και έτσι μετά από την ίδια διαδικασία το αμέσως επόμενο μικρότερο στοιχείο θα αποθηκευθεί στη θέση 2 του πίνακα κοκ. Μια υλοποίηση του παραπάνω αλγόριθμου δίνουμε παρακάτω (επίσης στο αρχείο pinakas.zip) 1 procedure bubble_sort(var p: myarray_type); 2 var 3 i, j: integer; 4 c: integer; 5 begin 6 7 for i := 2 to array_size do 8 begin 9 for j := array_size downto i do 10 begin 11 if p[j] < p[j-1] then 12 begin 13 c := p[j-1]; 14 p[j-1] := p[j]; 15 p[j] := c; 16 end; 17 end; 18 end; 19 end; Ένας άλλος αλγόριθμος ταξινόμησης είναι ο αλγόριθμος ταξινόμησης με επιλογή. Σε αυτόν (υποθέτοντας ότι θέλουμε αύξουσα ταξινόμηση) σαρώνονται όλα τα στοιχεία του πίνακα μέχρι να βρεθεί το μικρότερο. Στη συνέχεια το στοιχείο αυτό αλλάζει θέση με το στοιχείο που βρίσκεται στην πρώτη θέση του πίνακα. Έτσι το πρώτο στοιχείο του πίνακα είναι το μικρότερο. Έπειτα επαναλαμβάνεται η διαδικασία αλλά αυτή τη φορά ξεκινώντας από το δεύτερο στοιχείο του πίνακα. Δηλαδή βρίσκεται το μικρότερο στοιχείο του πίνακα από τη δεύτερη θέση και κάτω. Όταν βρεθεί ανταλλάσσει θέση με το δεύτερο κοκ. Δείτε τον αλγόριθμο 21. Μία υλοποίηση του παραπάνω αλγορίθμου (επίσης στο αρχείο pinakas.zip) βλέπετε παρακάτω: 1 procedure selection_sort(var p: myarray_type); 2 var 3 i, j, c, min_index: integer; 4 begin 5 for i := 1 to array_size - 1 do 6 begin 15

16 Algorithm 21 Ταξινόμηση με επιλογή 1: Δεδομένα // p, n // 2:! table ο πίνακας, n το πλήθος των στοιχείων 3: Για i από 1 μέχρι n-1 4: mikr p[i] 5: position i 6: Για j από i+1 μέχρι n 7: Αν p[j] < mikr τότε 8: mikr p[j] 9: position j 10: Τέλος_αν 11: Τέλος_επανάληψης 12: Αν position <> i τότε 13: αντιμετάθεσε p[i], p[position] 14: Τέλος_αν 15: Τέλος_επανάληψης 16: Αποτελέσματα // // 7 min_index := i; 8 for j := i + 1 to array_size do 9 begin 10 if p[j] < p[ min_index] then 11 min_index := j; 12 end; 13 c := p[i]; 14 p[i] := p[ min_index]; 15 p[ min_index] := c; 16 end; 17 end; 3.2 Στοίβες Η δομή της στοίβας περιγράφεται στη σελίδα 59 του βιβλίου. Οι δύο πράξεις που υποστηρίζει είναι η εισαγωγή (push) και η εξαγωγή (pop) ενός στοιχείου. Μία στοίβα μπορεί εύκολα να υλοποιηθεί με έναν πίνακα και μία μεταβλητή-δείκτη που `δείχνει' το τελευταίο στοιχείο που μπήκε στη στοίβα. Αν δηλαδή έχουμε έναν πίνακα αριθμημένο από το 1 μέχρι κάποιο αριθμό n (το μέγιστο πλήθος στοιχείων που μπορεί να χωρέσει στη στοίβα) και η μεταβλητή δείκτης έχει την τιμή i, τότε υπάρχουν i στοιχεία στη στοίβα. Σε μια τέτοια κατάσταση αν θέλουμε να κάνουμε εξαγωγή, τότε το στοιχείο που πρέπει να εξαχθεί είναι το i-οστό στοιχείο του πίνακα. Μετά από την εξαγωγή η τιμή της μεταβλητής i θα πρέπει να μειωθεί κατά ένα ώστε να 'δείχνει' το προηγούμενο στοιχείο. Αντίστοιχα, αν στην παραπάνω κατάσταση θέλουμε να εισάγουμε ένα στοιχείο στη στοίβα τότε αυτό θα πρέπει να τοποθετηθεί στην i+1 θέση του πίνακα και η τιμή της i να αυξηθεί κατά ένα ώστε να δείχνει και πάλι το τελευταίο στοιχείο. Στην αρχική κατάσταση της στοίβας η τιμή της 16

17 μεταβλητής-δείκτη θα πρέπει να είναι μηδέν (όσα και τα στοιχεία της στοίβας). Ο αλγόριθμος 22 περιγράφει τη διαδικασία εισαγωγής ενός στοιχείου element σε μία στοίβα αποθηκευμένη σε έναν πίνακα p με μέγεθος msize και μεταβλητή δείκτη την idx. Στη γραμμή 7 γίνεται έλεγχος υπερχείλισης δηλαδή πριν εισάγουμε ένα νέο στοιχείο στη στοίβα ελέγχουμε αν υπάρχει ακόμα χώρος σε αυτήν. Αν η μεταβλητή idx είναι ίση με το μέγεθος του πίνακα τότε δεν υπάρχει χώρος και η μεταβλητή result παίρνει την τιμή false σηματοδοτώντας ότι η διαδικασία εισαγωγής απέτυχε. Αν δεν συμβαίνει αυτό τότε εκτελούνται οι γραμμές στις οποίες ο δείκτης idx αυξάνεται κατά ένα και το στοιχείο element αποθηκεύεται στην αντίστοιχη θέση. Η μεταβλητή result παίρνει την τιμή true, σηματοδοτώντας ότι η διαδικασία εισαγωγής πέτυχε. Σε κάθε περίπτωση επιστρέφεται η result. Algorithm 22 Αλγόριθμος εισαγωγής σε στοίβα 1: Αλγόριθμος Push 2: Δεδομένα // p, idx, msize, element // 3:! Ο p είναι ο πίνακας στον οποίο αποθηκεύεται η στοίβα 4:! Η idx είναι ο δείκτης 5:! Η msize είναι το μέγεθος του πίνακα 6:! Το element είναι το στοιχείο που θα μπει στη στοίβα 7: Αν idx = msize τότε 8: result false 9: αλλιώς 10: idx idx : p[idx] element 12: result true 13: Τέλος_αν 14: Αποτελέσματα // result // 15: Τέλος Push Ο αλγόριθμος 23 περιγράφει τη διαδικασία εξαγωγής. Επιστρέφει τη μεταβλητή result η οποία είναι false αν η στοίβα είναι κενή ή true στην αντίθετη περίπτωση. Επίσης επιστρέφεται και το e, το στοιχείο το οποίο βγήκε από τη στοίβα. Προφανώς αν η result είναι false το στοιχείο αυτό δεν έχει νοημα. Η if της γραμμής 5 ελέγχει αν η στοίβα είναι κενή και σε αυτήν την περίπτωση η result γίνεται false. Αλλιώς (γραμμές 8-10) η result παίρνει την τιμή true, η μεταβλητή e παίρνει την τιμή του τελευταίου στοιχείου που μπήκε στη στοίβα και η μεταβλητή-δείκτης μειώνεται κατά ένα. Μία υλοποίηση της push θα μπορούσε να είναι της λίστας 1. Ανάλογη είναι και η υλοποίηση του αλγορίθμου 23 στον κώδικα 2. Το πλήρες πρόγραμμα μπορείτε να το βρείτε στη διεύθυνση gr/users/quasi/iek/tep/pascal/programmata/stack.zip 3.3 Ουρές Η δομή της ουράς περιγράφεται στη σελίδα 60 του βιβλίου. Και αυτή η δομή μπορεί να υλοποιηθεί με έναν πίνακα. Επίσης χρειάζεται να χρησιμοποιηθούν και δύο μεταβλητές οι front και rear. Η 17

18 Algorithm 23 Αλγόριθμος εξαγωγής από στοίβα 1: Αλγόριθμος Pop 2: Δεδομένα // p, idx // 3:! Ο p είναι ο πίνακας στον οποίο αποθηκεύεται η στοίβα 4:! Η idx είναι ο δείκτης 5: Αν idx = 0 τότε 6: result false 7: αλλιώς 8: result true 9: e p[idx] 10: idx idx : Τέλος_αν 12: Αποτελέσματα // result, e // 13: Τέλος Pop Listing 1: Υλοποίηση της push 1 function push(var s: stack; var idx: integer; e: integer) : boolean; 2 begin 3 if idx = stack_size then 4 push := false 5 else 6 begin 7 idx := idx + 1; 8 s[idx] := e; 9 push := true; 10 end; 11 end; Listing 2: Υλοποίηση της pop 1 function pop(var s: stack; var idx: integer; var e: integer) : boolean; 2 begin 3 if idx = 0 then 4 pop := false 5 else 6 begin 7 e := s[idx]; 8 idx := idx - 1; 9 pop := true; 10 end; 11 end; 18

19 Listing 3: Υλοποίηση της push σε ουρά 1 function push(var q: queue; var r: integer; e: integer) : boolean; 2 begin 3 if r > queue_size then 4 push := false 5 else 6 begin 7 q[r] := e; 8 r := r + 1; 9 push := true; 10 end; 11 end; front κρατάει τη θέση του στοιχείου που πρόκειται να βγει από την ουρά και η rear τη θέση στην οποία θα μπει το επόμενο στοιχείο. Οπότε αν οι front και rear έχουν την ίδια τιμή τότε η ουρά είναι άδεια. Ο αλγόριθμος 24 περιγράφει τη διαδικασία ώθησης ενός στοιχείου στην ουρά. Η επιστρεφόμενη μεταβλητή result δηλώνει αν η διαδικασία πέτυχε ή όχι. Αν η ουρά έχει γεμίσει η μεταβλητή result γίνεται false (γραμμές 7-8). Αλλιώς, το νέο στοιχείο αποθηκεύεται στην υπ' αριθμό rear θέση του πίνακα q, η rear αυξάνεται κατά ένα και η result γίνεται true (γραμμές 10-12). Algorithm 24 Αλγόριθμος εισαγωγής σε ουρά 1: Αλγόριθμος Push 2: Δεδομένα // q, rear, element, queue_size // 3:! Ο q είναι ο πίνακας στον οποίο αποθηκεύεται η ουρά 4:! Η rear είναι η θέση στην οποία θα μπει το νέο στοιχείο 5:! Το element είναι το στοιχείο που θα μπει 6:! queue_size είναι το μέγεθος του πίνακα 7: Αν rear > queue_size τότε 8: result false 9: αλλιώς 10: q[rear] element 11: rear rear : result true 13: Τέλος_αν 14: Αποτελέσματα // result // 15: Τέλος Push Η υλοποίηση σε Pascal φαίνεται στο listing 3. Ο αλγόριθμος 25 περιγράφει τη διαδικασία εξαγωγής από την ουρά. Όπως αναφέραμε αν οι μεταβλητές front και rear έχουν την ίδια τιμή τότε η ουρά είναι άδεια και η result γίνεται false (γραμμές 7-8). Αλλιώς, η element παίρνει την τιμή q[front] δηλαδή του πρώτου στοιχείου στην 19

20 Listing 4: Υλοποίηση της pop σε ουρά 1 function pop(var q: queue; var f, r: integer; var e: integer) : boolean; 2 begin 3 if f = r then 4 pop := false 5 else 6 begin 7 e := q[f]; 8 f := f + 1; 9 pop := true; 10 end; 11 end; ουρά, η front αυξάνεται κατά ένα ώστε να δείχνει το επόμενο στοιχείο της ουράς και η result γίνεται true (γραμμές 10-12). Τελικά επιστρέφονται οι result και element. Algorithm 25 Αλγόριθμος εξαγωγής από ουρά 1: Αλγόριθμος Pop 2: Δεδομένα // q, front, rear, element // 3:! Ο q είναι ο πίνακας στον οποίο αποθηκεύεται η ουρά 4:! Η front είναι η θέση του πρώτου στοιχείου 5:! Η rear είναι η θέση που θα έμπαινε ένα νέο 6:! Το element είναι το στοιχείο που βγαίνει 7: Αν front = rear τότε 8: result false 9: αλλιώς 10: element q[front] 11: front front : result true 13: Τέλος_αν 14: Αποτελέσματα // result, element // 15: Τέλος Pop Μία υλοποίηση σε Pascal φαίνεται στο listing 4 Στη διεύθυνση μπορείτε να βρείτε το πλήρες πρόγραμμα. Επίσης στην ίδια περίπου διεύθυνση στο αρχείο queue.zip μπορείτε να δείτε μία εναλλακτική υλοποίηση των παραπάνω η οποία όταν η rear περάσει το τέλος του πίνακα, ξαναξεκινάει το μέτρημα από το μηδέν. 3.4 Λίστες Οι λίστες περιγράφονται στη σελίδα 73 του βιβλίου. Χρησιμοποιούνται για να αποθηκεύσουν δεδομένα τα οποία είναι διατεταγμένα σε μία λογική σειρά όπως και τα δεδομένα ενός πίνακα. Η 20

21 διαφορά τους από τους πίνακες είναι ότι τα δεδομένα δεν αποθηκεύονται σε συνεχόμενες θέσεις στη μνήμη, δηλαδή η λογική διάταξή τους δεν υλοποιείται και ως φυσική διάταξη στη μνήμη. Προφανώς αυτό τις κάνει πιο πολύπλοκες ως δομές αλλά έχουν το πλεονέκτημα ότι μπορούν να μεγαλώνουν ή να μικραίνουν δυναμικά ανάλογα με τις πραγματικές απαιτήσεις των δεδομένων σε μνήμη. Δηλαδή, αντίθετα από τους πίνακες, οι λίστες δεν δεσμεύουν ένα κομμάτι μνήμης προκαθορισμένου μεγέθους αλλά δεσμεύουν μνήμη κάθε φορά που χρειάζεται να προστεθεί ένα νέο στοιχείο ή την αποδεσμεύουν κάθε φορά που ένα αφαιρείται. Για να μπορούν να υλοποιηθούν οι λίστες, τα πραγματικά δεδομένα "πακετάρονται" μαζί μία ανάφορά (δείκτη) στο επόμενο πακέτο. Επίσης, κάθε λίστα έχει μία κεφαλή, ένα δείκτη προς το πρώτο στοιχείο της. Αν η λίστα είναι κενή, τότε η κεφαλή παίρνει μία ειδικά ορισμένη τιμή διαφορετική από οποιαδήποτε άλλη. Αυτή η τιμή ονομάζεται null ή nil. Ο αλγόριθμος εισαγωγής στοιχείου στην αρχή μία λίστας είναι ο 26 ο οποίος εισάγει ένα στοιχείο e σε μία λίστα με κεφαλή head. Κάθε κόμβος (node) της λίστας αποτελείται από τα δεδομένα αυτά καθ' αυτά (data) και ένα δείκτη προς τον επόμενο κόμβο (next). Κάθε κόμβος δημιουργείται δυναμικά οπότε για να εισάγουμε το στοιχείο e θα πρέπει να δημιουργήσουμε ένα κόμβο node (γραμμή 7). Στο στοιχείο data του νέου κόμβου αποθηκεύουμε το e που θέλουμε να βάλουμε στη λίστα (γραμμή 11). Πριν την εισαγωγή του νέου στοιχείου η κεφαλή head "δείχνει" προς κάποιο κόμβο, ας τον πούμε Α (ή έχει την τιμή nil). Εφόσον το νέο στοιχείο που θα βάλουμε στη λίστα θέλουμε να μπει στην αρχή της, μετά την εισαγωγή του το επόμενο στοιχείο θα είναι εκείνο που μέχρι εκείνη τη στιγμή ήταν πρώτο, δηλαδή το Α. Οπότε το στοιχείο next του νέου κόμβου θα έχει την τιμή που μέχρι εκείνη τη στιγμή είχε η μεταβλητή head (γραμμή 12). Μετά την εισαγωγή του νέου κόμβου στην αρχή της λίστας, θα είναι εκείνος πλέον πρώτος οπότε η head θα πρέπει να δείχνει πλέον στο νέο κόμβο node (γραμμή 13). Η εκδοχή που παρουσιάζεται παρακάτω είναι αρκετά απλοποιημένη και αποκρύπτει αρκετές σημαντικές λεπτομέρειες σχετικά με τη δυναμική δέσμευση μνήμης. Δείτε μία υλοποίηση σε Pascal στη διεύθυνση 21

22 Algorithm 26 Αλγόριθμος εισαγωγής στοιχείου στην αρχή λίστας 1: Αλγόριθμος Εισαγωγή στην αρχή λίστας 2: Δεδομένα // e, head // 3:! Το e είναι το στοιχείο που θα μπει στη λίστα 4:! Κάθε κόμβος αποτελείται από ένα στοιχείο data 5:! και ένα στοιχείο next που παραπέμπει στον επόμενο κόμβο 6:! head είναι η κεφαλή, δείκτης στον πρώτο κόμβο 7: node Δημιουργία_νέου_κόμβου() 8:! Ο αλγόριθμος Δημιουργία_νέου_κόμβου δεσμεύει 9:! δυναμικά μνήμη για ένα νέο κόμβο ο οποίος επιστρέφεται στη 10:! μεταβλητή node 11: node.data e 12: node.next head 13: head node 14:! Η head παίρνει τη διεύθυνση μνήμης του node 15: Τέλος Εισαγωγή στην αρχή λίστας 22

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 2.4.5 8.2 Δομή Επανάληψης Δομές Επανάληψης Οι δομές επανάληψης χρησιμοποιούνται στις περιπτώσεις όπου μια συγκεκριμένη ακολουθία εντολών πρέπει να εκτελεστεί

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

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

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

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

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

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

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

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

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

Επαναληπτικές Διαδικασίες

Επαναληπτικές Διαδικασίες Επαναληπτικές Διαδικασίες Οι επαναληπτικές δομές ( εντολές επανάληψης επαναληπτικά σχήματα ) χρησιμοποιούνται, όταν μια ομάδα εντολών πρέπει να εκτελείται αρκετές- πολλές φορές ανάλογα με την τιμή μιας

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

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

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

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

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

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

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

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

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

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΘΕΜΑ Α ΑΠΑΝΤΗΣΕΙΣ Α1. α. Παραβιάζει τα κριτήρια της καθοριστικότητας και της περατότητας β. Αιτιολόγηση: ο αλγόριθμος παραβιάζει το κριτήριο

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ) ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ) ΘΕΜΑ Α : A1. Να γράψετε στο φύλλο απαντήσεων τον αριθμό καθεμιάς

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE ΕΡΓΑΣΤΗΡΙΟ 7 Ο Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE Βασικές Έννοιες: Δομή Επανάληψης, Εντολές Επανάληψης (For, While do, Repeat until), Αλγόριθμος, Αθροιστής, Μετρητής, Παράσταση

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0. ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΛΥΣΕΙΣ 1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0. 2. Εντολή Αλγορίθμου Αριθμός Πράξεων Ανάθεση τιμών στα x,y 2 έλεγχος i 6 αύξηση i 5 εκτύπωση i 5

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

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

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

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100 ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ Όνομα:.. Βαθμός: /100 Θέμα Α 1. Να χαρακτηρίσετε τις προτάσεις με Σ, αν είναι σωστές και Λ, αν είναι λάθος. a. Οι πίνακες δεν μπορούν να έχουν περισσότερες από δύο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα

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

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

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

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

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

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

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

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

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

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

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

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

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

Προτεινόμενος τρόπος διδασκαλίας του μαθήματος με ενδεικτικό χρονοπρογραμματισμό. Α/Α Ενότητες Περιγραφή Ώρες 1 Εισαγωγικό μάθημα 1

Προτεινόμενος τρόπος διδασκαλίας του μαθήματος με ενδεικτικό χρονοπρογραμματισμό. Α/Α Ενότητες Περιγραφή Ώρες 1 Εισαγωγικό μάθημα 1 Αγαπητοί συνάδελφοι, Σας αποστέλλω τις παιδαγωγικές απόψεις μου, εκ μέρους μίας ομάδας Σχολικών Συμβούλων Πληροφορικής, σχετικώς με την προτεινόμενη προσέγγιση για τη διδασκαλία του μαθήματος Ανάπτυξη

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

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση Φροντιστήρια δυαδικό 1 ΦΡΟΝΤΙΣΤΗΡΙΑ δυαδικό Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση Τα θέματα επεξεργάστηκαν οι καθηγητές των Φροντιστηρίων «δυαδικό»

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

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

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

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

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

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

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

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

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

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

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.: ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ----- Βαθμός Ασφαλείας: Να διατηρηθεί μέχρι: Βαθ. Προτεραιότητας: ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ Π/ΘΜΙΑΣ ΚΑΙ Δ/ΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ,

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

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

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

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

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

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

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

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

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

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Ποιες οι διαφορές μεταξύ των στατικών και των δυναμικών δομών; (Μονάδες 7) II. Να γράψετε στο τετράδιό

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

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

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον. τελική επανάληψη /4/2015 1

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον. τελική επανάληψη /4/2015 1 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον τελική επανάληψη 2015 7/4/2015 1 Α -Β θέμα 40Μ+20Μ Ορθά συντακτικώς γραμμένες προτάσεις, λέξεις κλειδιά, ολοκληρωμένες φράσεις Χρήση κριτικής σκέψης σε

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

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ4 ΓΟ7 (ΖΩΓΡΑΦΟΥ) ΓΟ5 ΓΟ6 (ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ4 ΓΟ7 (ΖΩΓΡΑΦΟΥ) ΓΟ5 ΓΟ6 (ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017 ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ4 ΓΟ7 (ΖΩΓΡΑΦΟΥ) ΓΟ5 ΓΟ6 (ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017 ΘΕΜΑ Α (Α1) Δίνεται η παρακάτω ακολουθία εντολών αλγορίθμου:

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

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

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

του προγράμματος diagrama_rohs.zip )

του προγράμματος diagrama_rohs.zip ) έκδοση 3.20 ( κατέβασμα του προγράμματος diagrama_rohs.zip ) Το πρόγραμμα αυτό γράφτηκε όχι να γίνει μια γλώσσα προγραμματισμού, αλλά να γίνει ένα εργαλείο για την εισαγωγή των μαθητών στον προγραμματισμό.

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

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

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

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

φροντιστήρια   Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέμα Α Α1. Να γράψετε στο τετράδιο σας το γράμμα της κάθε πρότασης και δίπλα τη λέξη

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

Προτεινόμενα Θέματα ΑΕΠΠ

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

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

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

ΕΝΔΕΙΚΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ ΕΝΔΕΙΚΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ Ερωτήσεις Ανάπτυξης 1. Να περιγράψετε τη δομή της λίστας και τη διαδικασία εισαγωγής και διαγραφής ενός κόμβου. 3.9.1 Σελ 71-72

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΘΕΜΑ Α Α1. Να γράψετε τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι

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

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ 1.Σ, 2.Σ, 3. Λ, 4.Σ, 5.Σ Στο α) ανήκουν: 1,2,5,6,7 Στο β) ανήκουν: 3,4,8,9,10 1.-Λ, 2.-Λ, 3.-Σ, 4.-Σ, 5.-Σ 1. -Πραγματικός, 2. -Αρφαριθμητικός, 3.-Αλφαριθμητικός,

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

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

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

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

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

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

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

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Παρασκευή 25 Απριλίου 2014 ιάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

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

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

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ Α Π Α Ν Τ Η Σ Ε Ι Σ Θ Ε Μ Α Τ Ω Ν Π Α Ν Ε Λ Λ Α Δ Ι Κ Ω Ν Ε Ξ Ε Τ Α Σ Ε Ω Ν 2 0 1 4 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

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

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

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ Α3. α. (σελ. 183-184) Στοίβα: ώθηση, απώθηση Ουρά:

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

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

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

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