Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός

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

Download "Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός"

Transcript

1 Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός Σύνοψη Στο κεφάλαιο αυτό γίνεται συγκριτική παρουσίαση, κυρίως μέσω απλών παραδειγμάτων, του διαδικαστικού και του δηλωτικού προγραμματισμού, δύο μεθοδολογιών για την αντιμετώπιση προβλημάτων στην Επιστήμη των Υπολογιστών. Με τον διαδικαστικό προγραμματισμό μπορούμε να επιλύσουμε ένα πρόβλημα διατυπώνοντας τα βήματα ενός αλγορίθμου, δηλαδή ακολουθώντας μια διαδικασία που περιγράφει πώς πρέπει να λυθεί το πρόβλημα και να υλοποιηθεί ο αλγόριθμος, με τη βοήθεια μιας κατάλληλης γλώσσας διαδικαστικού προγραμματισμού. Αντίθετα, στον δηλωτικό προγραμματισμό διατυπώνουμε αξιώματα που περιγράφουν τι ισχύει στον κόσμο του προβλήματος, τα οποία εκφράζουμε με τη βοήθεια μιας κατάλληλης γλώσσας δηλωτικού προγραμματισμού. Πολλές φορές, η επίλυση ενός προβλήματος με αλγοριθμικό τρόπο οδηγεί σε προγράμματα πολύπλοκα, δυσανάγνωστα και, συνεπώς, δύσκολα συντηρήσιμα. Όταν έχουμε ένα πρόβλημα που ταιριάζει στη δηλωτική φιλοσοφία, δηλαδή διέπεται από απλά αξιώματα, είναι προτιμότερο να επιλέγουμε αυτόν τον τρόπο για την αντιμετώπισή του. Η μόνη επιφύλαξη που μπορούμε, ίσως, να διατυπώσουμε αφορά την απόδοσή του. Σε γενικές γραμμές, τα συστήματα δηλωτικού προγραμματισμού είναι λιγότερο αποδοτικά από αυτά του διαδικαστικού προγραμματισμού, χωρίς κάτι τέτοιο να σημαίνει ότι δεν υπάρχουν αρκετές δηλωτικές γλώσσες πολύ πιο «γρήγορες» από πολλές διαδικαστικές. Έτσι, αν μας ενδιαφέρει η απόδοση του προγράμματος που θα γράψουμε, πρέπει να ζυγίσουμε προσεκτικά όλες τις εμπλεκόμενες παραμέτρους, για να κάνουμε τη σωστή επιλογή. Προαπαιτούμενη γνώση Για την κατανόηση του κεφαλαίου, ο αναγνώστης απαιτείται να έχει στοιχειώδεις γνώσεις απλών αλγορίθμων και διατύπωσής τους σε ψευδογλώσσα. 1.1 Αλγόριθμοι και αξιώματα Στην Επιστήμη των Υπολογιστών, γνωρίζουμε την έννοια του αλγορίθμου [1]. Χρησιμοποιώντας μια σχετικά απλουστευμένη διατύπωση, μπορούμε να δώσουμε τον εξής ορισμό: Ένας αλγόριθμος περιγράφει, μέσω μιας ακολουθίας στοιχειωδών εκτελέσιμων λειτουργιών, τη μέθοδο επίλυσης ενός συγκεκριμένου προβλήματος. Με άλλα λόγια, ένας αλγόριθμος περιγράφει πώς λύνεται ένα πρόβλημα, βήμα προς βήμα, έτσι ώστε η επίλυσή του να είναι εύκολα υλοποιήσιμη, με τη βοήθεια μιας γλώσσας προγραμματισμού. Υπάρχουν διάφορες γλώσσες προγραμματισμού που υποστηρίζουν τη διατύπωση αλγορίθμων για την επίλυση προβλημάτων, όπως η Basic, η Fortran, η Pascal, η C, η C++, η Java κ.ά. [2]. Στις γλώσσες αυτές, που ονομάζονται διαδικαστικές, βρίσκουμε εντολές που αντιστοιχούν άμεσα στις στοιχειώδεις λειτουργίες ενός αλγορίθμου, όπως οι εντολές ανάθεσης τιμών σε μεταβλητές μέσω μαθηματικών εκφράσεων, οι εντολές επανάληψης και οι εντολές ελέγχου της ροής μιας διαδικασίας. Με αυτόν τον τρόπο, εισάγουμε την έννοια του διαδικαστικού προγραμματισμού ως εξής: Διαδικαστικός προγραμματισμός ονομάζεται η υλοποίηση ενός αλγορίθμου σε μια διαδικαστική γλώσσα προγραμματισμού. Παράδειγμα 1.1 Έστω ότι ενδιαφερόμαστε αρχικά να διατυπώσουμε έναν αλγόριθμο και στη συνέχεια να τον υλοποιήσουμε σε κάποια γλώσσα διαδικαστικού προγραμματισμού, με τον οποίο να μπορούμε να υπολογίσουμε το πλήθος των στοιχείων μιας απλά συνδεδεμένης λίστας, δηλαδή το μήκος της [3]. Ας θυμηθούμε πρώτα ότι μια τέτοια λίστα δεν είναι τίποτε άλλο παρά μια ακολουθία από στοιχεία, με την ταυτότητά της να αντιστοιχεί στη θέση/ διεύθυνση του πρώτου της στοιχείου, που λέγεται κεφαλή της λίστας. Η κεφαλή «δείχνει», με κάποιον τρόπο, - 8 -

2 στο επόμενο στοιχείο της λίστας ή, ισοδύναμα, στη λίστα που αρχίζει από το επόμενο της κεφαλής, η οποία ονομάζεται ουρά της αρχικής λίστας. Αυτό ισχύει για κάθε στοιχείο, εκτός φυσικά από το τελευταίο, το οποίο δεν «δείχνει» πουθενά ή, αλλιώς, «δείχνει» στην κενή λίστα. Ένας αλγόριθμος υπολογισμού του μήκους μιας λίστας, εκφρασμένος σε μια αυθαίρετη ψευδογλώσσα, θα μπορούσε να είναι ο εξής: Υπολογισμός μήκους λίστας list Βήμα 1: Θέστε στο μετρητή count την τιμή 0 Βήμα 2: Ενόσω η λίστα list δεν είναι κενή Βήμα 3: Αυξήστε τον count κατά 1 Βήμα 4: Κάντε τη list να δείχνει εκεί όπου δείχνει το πρώτο της στοιχείο, δηλαδή στην ουρά της Βήμα 5: Επιστρέψτε την τιμή του count ως μήκος της λίστας Ο προηγούμενος αλγόριθμος μπορεί πολύ εύκολα να υλοποιηθεί σε μια γλώσσα διαδικαστικού προγραμματισμού. Στη γλώσσα C, για παράδειγμα, αν είχαμε δηλώσει τη δομή: struct listnode { int value; struct listnode *next; }; θα γράφαμε την εξής συνάρτηση, για τον υπολογισμό του μήκους μιας λίστας: int length(struct listnode *list) { int count = 0; while (list!= NULL) {count++; list = list->next; } return count; } Δεν δίνονται περισσότερες επεξηγήσεις για τη λειτουργία του προηγούμενου προγράμματος, δεδομένου ότι ο αναγνώστης έχει κάποια, στοιχειώδη έστω, εξοικείωση με τη γλώσσα C [4]. Αντί, όμως, να περιγράψουμε έναν αλγόριθμο, ο οποίος όταν ακολουθείται βήμα προς βήμα επιλύει ένα πρόβλημα, θα μπορούσαμε, εναλλακτικά, να περιγράψουμε τα αξιώματα που διέπουν το πρόβλημα. Ένας απλός ορισμός για το αξίωμα είναι ο εξής: Αξίωμα είναι ένας ισχυρισμός του οποίου η αλήθεια ούτε αμφισβητείται, ούτε υπόκειται σε απόδειξη. Με τη διατύπωση αξιωμάτων, αντί να εξετάσουμε πώς λύνεται ένα πρόβλημα, απλώς δηλώνουμε τι ισχύει στον κόσμο του προβλήματος. Όταν αυτό το κάνουμε με τη βοήθεια κάποιας γλώσσας προγραμματισμού, έχουμε την έννοια του δηλωτικού προγραμματισμού, ως εξής: Δηλωτικός προγραμματισμός ονομάζεται η διατύπωση αξιωμάτων που ισχύουν στον κόσμο ενός προβλήματος σε μια κατάλληλη γλώσσα προγραμματισμού. Μεταξύ άλλων, η γλώσσα λογικού προγραμματισμού Prolog [5] και η γλώσσα συναρτησιακού προγραμματισμού Haskell [6] είναι δύο τυπικοί εκπρόσωποι της φιλοσοφίας του δηλωτικού προγραμματισμού. Στον δηλωτικό προγραμματισμό, όπως μαρτυρά και η ονομασία του, δηλώνουμε κάτι, αντί να περιγράφουμε - 9 -

3 μια διαδικασία, όπως συμβαίνει στον διαδικαστικό προγραμματισμό. Βέβαια, δεν είναι δυνατόν να λύσουμε ένα πρόβλημα διατυπώνοντας απλώς κάποια αξιώματα. Πρέπει να φροντίσουμε να επεξεργαστούμε τα δηλωθέντα αξιώματα του προβλήματος, για να δώσουμε την επιθυμητή λύση. Ωστόσο, αυτή η επεξεργασία δεν αφορά τον προγραμματιστή, γιατί γίνεται από το σύστημα που υποστηρίζει τον προγραμματισμό αυτού του είδους, δηλαδή τον δηλωτικό προγραμματισμό. Έτσι, ο προγραμματιστής είναι αφοσιωμένος στη διατύπωση γνώσης, παρά διαδικασιών. Παράδειγμα 1.2 Αν επιστρέψουμε στο πρόβλημα του υπολογισμού του μήκους μιας απλά συνδεδεμένης λίστας και θυμηθούμε ότι μια μη κενή λίστα έχει κεφαλή (το πρώτο της στοιχείο) και ουρά (τη λίστα που ακολουθεί το πρώτο της στοιχείο), μπορούμε να διατυπώσουμε τα εξής αξιώματα: Αξιώματα για το μήκος της λίστας Αξίωμα 1: Το μήκος της κενής λίστας είναι 0. Αξίωμα 2: Το μήκος μιας μη κενής λίστας είναι ίσο με το μήκος της ουράς της αυξημένο κατά 1. Στη γλώσσα λογικού προγραμματισμού Prolog, τα προηγούμενα αξιώματα θα μπορούσαν να διατυπωθούν ως εξής: length([], 0). length([x L], N) :- length(l, M), N is M+1. και στη γλώσσα συναρτησιακού προγραμματισμού Haskell ως εξής: length [] = 0 length (a:x) = 1 + length x Φυσικά, θα μπορέσουμε να κατανοήσουμε καλύτερα τα προγράμματα Prolog και Haskell σε επόμενα κεφάλαια, στα οποία δίνονται λεπτομέρειες για τον τρόπο προγραμματισμού στις γλώσσες αυτές. Στο Παράδειγμα 1.2 είναι σαφής η φιλοσοφία του δηλωτικού προγραμματισμού [7]. Πουθενά δεν περιγράψαμε μια διαδικασία για να βρούμε το μήκος μιας λίστας. Αντίθετα, ορίσαμε τι είναι μήκος μιας λίστας, με στόχο, όταν προκύψει κάποια στιγμή ένα πρόβλημα εύρεσης του μήκους συγκεκριμένης λίστας, να μπορέσουμε να το διατυπώσουμε σε ένα σύστημα λογικού ή συναρτησιακού προγραμματισμού, μαζί με τον κατάλληλο ορισμό, και να ζητήσουμε τον υπολογισμό της απάντησης σε αυτό. Όσον αφορά τον τρόπο με τον οποίο διατυπώνουμε προβλήματα σε κάθε περίπτωση, θα πάρουμε μια ιδέα στη συνέχεια, αλλά θα τον μελετήσουμε με περισσότερες λεπτομέρειες σε επόμενα κεφάλαια. Ας εξετάσουμε τώρα άλλα δύο παραδείγματα, στα οποία θα είναι εμφανέστερη η αντιδιαστολή ανάμεσα στον διαδικαστικό και τον δηλωτικό προγραμματισμό. Παράδειγμα 1.3 Έστω ότι έχουμε πληροφορίες για διάφορα άτομα και, συγκεκριμένα, για τα ονόματα των γονέων τους. Θα θέλαμε να μάθουμε αν ο παππούς του Γιώργου είναι αδελφός του Νίκου. Μια πιθανή διαδικαστική προσέγγιση για να λύσουμε αυτό το πρόβλημα είναι ο εξής αλγόριθμος:

4 Έλεγχος συγκεκριμένης συγγένειας μεταξύ Γιώργου και Νίκου Βήμα 1: Θέστε στο flag την τιμή 0 Βήμα 2: Θέστε στο x τη μητέρα του Γιώργου Βήμα 3: Θέστε στο y τον πατέρα του x Βήμα 4: Θέστε στο z τον πατέρα του y Βήμα 5: Αν ο z είναι πατέρας του Νίκου, απαντήστε καταφατικά και τερματίστε Βήμα 6: Θέστε στο z τη μητέρα του y Βήμα 7: Αν η z είναι μητέρα του Νίκου, απαντήστε καταφατικά και τερματίστε Βήμα 8: Αν το flag είναι 1, απαντήστε αρνητικά και τερματίστε Βήμα 9: Θέστε στο flag την τιμή 1 Βήμα 10: Θέστε στο x τον πατέρα του Γιώργου Βήμα 11: Πηγαίνετε στο βήμα 3 Φυσικά, ο αλγόριθμος αυτός θα μπορούσε να διατυπωθεί με πιο γενικό τρόπο, αν στη θέση του Γιώργου και του Νίκου είχαμε δύο μεταβλητές Α και Β, και σε κάθε εκτέλεση του αλγορίθμου τα Α και Β ήταν δεδομένα εισόδου. Επί της ουσίας, όμως, δεν θα υπήρχε διαφορά. Από την άλλη πλευρά, θα μπορούσαμε να είχαμε επιλέξει μια δηλωτική αντιμετώπιση του προβλήματος του Παραδείγματος 1.3, όπως φαίνεται στη συνέχεια. Παράδειγμα 1.4 Ο δηλωτικός τρόπος θεώρησης του προβλήματος, αν ο παππούς του Γιώργου είναι αδελφός του Νίκου, συνίσταται απλώς στη διατύπωση των αξιωμάτων τα οποία ορίζουν τις συγγένειες που μας ενδιαφέρουν: Αξιώματα για συγγένειες Αξίωμα 1: Παππούς κάποιου είναι ο πατέρας του πατέρα του ή της μητέρας του. Αξίωμα 2: Αδελφός κάποιου είναι ένας άνδρας με τον οποίο έχουν τον ίδιο πατέρα ή την ίδια μητέρα. Για άλλη μία φορά, βλέπουμε στο παράδειγμα ότι δεν περιγράφουμε πώς θα λύσουμε το πρόβλημα, αλλά δηλώνουμε τι ισχύει στον φυσικό κόσμο σχετικά με το πρόβλημα. Αν θέλαμε να διατυπώσουμε τα προηγούμενα αξιώματα σε μια γλώσσα δηλωτικού προγραμματισμού, θα μπορούσαμε, χρησιμοποιώντας, για παράδειγμα, τη γλώσσα Prolog, να γράψουμε: grandfather(x, Z) :- father(x, Y), (father(y, Z) ; mother(y, Z)). brother(x, Y) :- male(x), ((father(z, X), father(z, Y)) ; (mother(z, X), mother(z, Y))). Υποτίθεται ότι αυτά τα αξιώματα είναι δυνατόν να χρησιμοποιηθούν από ένα σύστημα λογικού προγραμματισμού, εφόσον αυτό είναι εφοδιασμένο και με τη γνώση του κόσμου μας σχετικά με το ποιος είναι πατέρας ποιων (father), ποια είναι μητέρα ποιων (mother) και ποιοι είναι οι άνδρες (male). Αν υπάρχει αυτή η γνώση, τότε η επίλυση του προβλήματος, δηλαδή αν ο παππούς του Γιώργου (george) είναι αδελφός του Νίκου (nick), ανάγεται στη διατύπωση της εξής ερώτησης στο σύστημα Prolog:?- grandfather(x, george), brother(x, nick). Με την επεξεργασία των αξιωμάτων που του δόθηκαν, το σύστημα θα απαντήσει καταφατικά, στην περίπτωση που υπάρχει μεταξύ Γιώργου και Νίκου η συγκεκριμένη συγγένεια, αλλιώς θα απαντήσει αρνητικά

5 Από τα παραδείγματα που προηγήθηκαν, πήραμε μια ιδέα για τις διαφορές ανάμεσα στη διαδικαστική και στη δηλωτική αντιμετώπιση προβλημάτων. Στον διαδικαστικό προγραμματισμό περιγράφουμε τη διαδικασία επίλυσης ενός προβλήματος. Σε ορισμένες περιπτώσεις, όπως στο Παράδειγμα 1.3, αυτό μπορεί να οδηγήσει στη διατύπωση πολύπλοκων και δυσνόητων αλγορίθμων, με σοβαρές επιπτώσεις στον τρόπο με τον οποίο μπορούμε εύκολα να ελέγξουμε την ορθότητα μεγάλων προγραμμάτων και, φυσικά, να τα συντηρήσουμε. Αντίθετα, με τον δηλωτικό προγραμματισμό, στον οποίο διατυπώνουμε τα αξιώματα του κόσμου μας που απαιτούνται για τη λύση του προβλήματός μας, η κατάσταση είναι απλούστερη. Θυμηθείτε το Παράδειγμα 1.4 και συγκρίνετε την προσπάθειά σας να το κατανοήσετε σε σχέση με αυτήν για το Παράδειγμα 1.3. Πιστεύουμε ότι η διαφορά είναι εμφανής. Έτσι, αν ακολουθήσουμε μια δηλωτική φιλοσοφία προγραμματισμού, η παραγωγικότητά μας θα αυξηθεί, όσον αφορά τόσο το χρόνο που απαιτείται για την αντιμετώπιση ενός προβλήματος, όσο και την ποιότητα της λύσης που επιτυγχάνεται. Βέβαια, θα αναρωτιέστε εάν μια δηλωτική αντιμετώπιση κάποιου προβλήματος είναι πάντοτε προτιμότερη από μια διαδικαστική. Η απάντηση είναι αρνητική, γιατί, αφενός, δεν είναι βέβαιο ότι για κάθε πρόβλημα υπάρχει μια απλή και κατανοητή περιγραφή των αξιωμάτων που το διέπουν και, αφετέρου, τα συστήματα δηλωτικού προγραμματισμού οδηγούν, εν γένει, σε λιγότερο αποδοτικές υλοποιήσεις από αυτές που βασίζονται σε διαδικαστικές γλώσσες προγραμματισμού. Έτσι, αν είναι πολύ κρίσιμη η απόδοση ενός προγράμματος που θέλουμε να γράψουμε, μάλλον θα πρέπει να επιλέξουμε τη διατύπωση ενός αλγορίθμου σε κάποια «γρήγορη» γλώσσα διαδικαστικού προγραμματισμού αντί της δηλωτικής διατύπωσης αξιωμάτων. Αυτό δεν θα πρέπει να το δεχτούμε ως απαράβατο κανόνα, γιατί σήμερα πολλά συστήματα δηλωτικού προγραμματισμού είναι σε απόδοση σχεδόν εφάμιλλα των διαφόρων γλωσσών διαδικαστικού προγραμματισμού. Όσο η έρευνα στον τομέα του δηλωτικού προγραμματισμού προοδεύει, τόσο περισσότερα πλεονεκτήματα θα παρουσιάζει η πρακτική εφαρμογή του. Θα τελειώσουμε αυτό το κεφάλαιο, στο οποίο επικεντρωθήκαμε στις διαφορές ανάμεσα στη διαδικαστική και στη δηλωτική αντιμετώπιση προβλημάτων, με μερικές ασκήσεις, με τις οποίες θα μπορέσετε να εμπεδώσετε καλύτερα το περιεχόμενό του. Ακολουθούν οι απαντήσεις στις ασκήσεις και δίνονται κάποια προβλήματα προς λύση. Ασκήσεις Άσκηση 1.1 Έστω ότι ενδιαφερόμαστε να έχουμε έναν τρόπο για να μπορούμε να υπολογίζουμε το παραγοντικό ενός μη αρνητικού ακέραιου αριθμού. Για το σκοπό αυτό, θα μπορούσαμε να χρησιμοποιήσουμε κάποια από τις παρακάτω μεθόδους: 1. Το 0! ισούται με 1 και το n! (για n 0) ισούται με (n-1)! n 2. Το 0! ισούται με 1 και, για να υπολογίσουμε το n! (για n 0), πρέπει να πολλαπλασιάσουμε όλους τους ακέραιους αριθμούς από το 1 έως το n Ποια από τις δύο μεθόδους θα χαρακτηρίζατε διαδικαστική και ποια δηλωτική; Άσκηση 1.2 Έστω ότι θέλουμε να κατασκευάσουμε μια διαδικασία με την οποία να αντιστρέφεται μια λίστα list. Μια (ημιτελής) απάντηση σε αυτό το πρόβλημα θα μπορούσε να ήταν η εξής: Αντιστροφή λίστας list Βήμα 1: Κάντε τη next να δείχνει εκεί όπου δείχνει η list Βήμα 2: Θέστε στην prev την κενή λίστα Βήμα 3: Ενόσω η λίστα X δεν είναι κενή Βήμα 4: Κάντε τη list να δείχνει εκεί όπου δείχνει η next Βήμα 5: Κάνε τη next να δείχνει εκεί όπου δείχνει το πρώτο της στοιχείο Βήμα 6: Κάντε το πρώτο στοιχείο της list να δείχνει Υ Βήμα 7: Κάντε την prev να δείχνει εκεί όπου δείχνει η list Βήμα 8: Επιστρέψτε τη Ζ ως τη ζητούμενη αντεστραμμένη λίστα

6 Ποια επιλογή από τις παρακάτω θα πρέπει να συμπληρωθεί στις θέσεις X, Y και Z, για να είναι σωστός ο αλγόριθμος; X: 1. list, 2. next, 3. prev Y: 1. στην κενή λίστα, 2. στη next, 3. στην prev Z: 1. list, 2. next, 3. prev Άσκηση 1.3 Εξετάζοντας πάλι το πρόβλημα της αντιστροφής μιας λίστας, θα μπορούσαμε, αντί να περιγράψουμε έναν αλγόριθμο, όπως στην Άσκηση 1.2, να δώσουμε τα αξιώματα που ορίζουν πότε μια λίστα είναι η αντίστροφη μιας άλλης. Μια (ημιτελής) διατύπωση τέτοιων αξιωμάτων είναι η εξής: Αξιώματα για αντίστροφη λίστας Αξίωμα 1: Η αντίστροφη της κενής λίστας είναι X. Αξίωμα 2: Η αντίστροφη μιας μη κενής λίστας είναι η λίστα που προκύπτει από την τοποθέτηση Y στο τέλος Z. Τι θα πρέπει να συμπληρώσουμε στις θέσεις X, Y και Z, για να είναι τα προηγούμενα αξιώματα σωστά; Άσκηση 1.4 Δείτε πάλι την Άσκηση 1.1 και διατυπώστε στη μορφή που μάθατε σε αυτό το κεφάλαιο τόσο τα αξιώματα για τον δηλωτικό ορισμό του παραγοντικού, όσο και τα βήματα του αλγορίθμου για τον υπολογισμό του παραγοντικού. Άσκηση 1.5 Θεωρήστε ότι έχετε στη διάθεσή σας έναν κατευθυνόμενο γράφο χωρίς κύκλους. Θυμηθείτε ότι ένας κατευθυνόμενος γράφος αποτελείται από ένα σύνολο κόμβων και ένα σύνολο ακμών (με κατεύθυνση) μεταξύ κόμβων. Ο γράφος δεν έχει κύκλους, αν δεν υπάρχει περίπτωση να ξεκινήσουμε από κάποιον κόμβο και, ακολουθώντας κατευθυνόμενες ακμές, να επιστρέψουμε στον κόμβο αυτόν. Διατυπώστε τα βήματα ενός αλγορίθμου ο οποίος να ελέγχει αν για δύο κόμβους του γράφου υπάρχει μονοπάτι που να συνδέει τον πρώτο με τον δεύτερο. Άσκηση 1.6 Δώστε μια δηλωτική προσέγγιση για το πρόβλημα της Άσκησης 1.5, δηλαδή τον έλεγχο της σύνδεσης μεταξύ δύο κόμβων σε έναν κατευθυνόμενο γράφο χωρίς κύκλους. Απαντήσεις ασκήσεων Απάντηση άσκησης 1.1 Η μέθοδος 1 είναι δηλωτική, επειδή δίνει τον ορισμό του παραγοντικού, δηλαδή δηλώνει κάτι που ισχύει στα μαθηματικά. Η μέθοδος 2 είναι διαδικαστική, επειδή περιγράφει μια διαδικασία (αλγόριθμο) με την οποία μπορεί κάποιος να υπολογίσει το παραγοντικό ενός αριθμού. Απάντηση άσκησης 1.2 Οι σωστές απαντήσεις είναι:

7 X: 2. next Y: 3. στην prev Z: 1. list Στον αλγόριθμο, η λίστα διασχίζεται στοιχείο προς στοιχείο. Σε κάθε επανάληψη κάνουμε το τρέχον στοιχείο να δείχνει στο προηγούμενό του, αντί για το επόμενό του. Βάζουμε το πρώτο στοιχείο της αρχικής λίστας να δείχνει στην κενή λίστα, ενώ το τελευταίο στοιχείο της αρχικής λίστας δεν είναι τίποτε άλλο παρά το πρώτο στοιχείο της νέας αντεστραμμένης λίστας. Σε κάθε επανάληψη του αλγορίθμου, list είναι η διεύθυνση του τρέχοντος στοιχείου, prev η διεύθυνση του προηγούμενού του και next η διεύθυνση του επόμενού του. Πιο παραστατικά, αυτά φαίνονται στο Σχήμα 1.1. prev list next A J K L Z B K L M A J K L Z I J K Y prev list next Σχήμα 1.1: Αντιστροφή λίστας. Στη θέση X του αλγορίθμου πρέπει να βάλουμε το «next», επειδή, όταν το τρέχον στοιχείο δεν έχει επόμενο (δείχνει στην κενή λίστα), τότε έχουμε φτάσει στο τέλος της αρχικής λίστας. Στη θέση Y πρέπει να βάλουμε το «στην prev», επειδή, για να επιτευχθεί η αντιστροφή, πρέπει το τρέχον στοιχείο να δείξει στο προηγούμενό του. Τέλος, στη θέση Z του αλγορίθμου πρέπει να βάλουμε το «list», επειδή, όταν έχει τελειώσει η επαναληπτική διαδικασία του αλγορίθμου, η διεύθυνση του τρέχοντος στοιχείου είναι, ουσιαστικά, η διεύθυνση της αντεστραμμένης λίστας. Απάντηση άσκησης 1.3 Οι σωστές απαντήσεις είναι: X: η κενή λίστα Y: της κεφαλής της Z: της αντίστροφης της ουράς της Όσον αφορά την απάντηση για το X, δεν θα μπορούσε η αντίστροφη μιας κενής λίστας να είναι τίποτε άλλο παρά η κενή λίστα (θυμηθείτε τις λεγόμενες οριακές περιπτώσεις στα μαθηματικά). Όσο για τα Y και Z, προκειμένου να διαπιστώσετε ότι, με τις παραπάνω αντικαταστάσεις, το δεύτερο αξίωμα ορίζει σωστά την αντίστροφη μιας μη κενής λίστας, δείτε το εξής παράδειγμα: «Για να βρούμε την αντίστροφη της λίστας 1, 2, 3, 4, αρκεί να πάρουμε την ουρά της (2, 3, 4) και να τοποθετήσουμε στο τέλος της αντίστροφής της (4, 3, 2) την κεφαλή της αρχικής λίστας (1), παίρνοντας έτσι τη λίστα 4, 3, 2, 1.»

8 Επειδή, βέβαια, ο δηλωτικός ορισμός για την αντίστροφη μιας λίστας, που δόθηκε στην άσκηση, περιλαμβάνει και την τοποθέτηση ενός στοιχείου στο τέλος μιας λίστας, για λόγους πληρότητας, δίνουμε τα κατάλληλα αξιώματα και γι αυτό το πρόβλημα. Αξιώματα για τοποθέτηση στοιχείου στο τέλος λίστας Αξίωμα 1: Η λίστα που προκύπτει από την τοποθέτηση ενός στοιχείου στο τέλος της κενής λίστας είναι μια λίστα που περιλαμβάνει μόνο το στοιχείο αυτό. Αξίωμα 2: Η λίστα που προκύπτει από την τοποθέτηση ενός στοιχείου στο τέλος μιας μη κενής λίστας έχει κεφαλή την κεφαλή της αρχικής και ουρά το αποτέλεσμα της τοποθέτησης στο τέλος της ουράς της αρχικής του στοιχείου αυτού. Απάντηση άσκησης 1.4 Για τη μέθοδο 1, που είναι δηλωτική, θα μπορούσαμε να γράψουμε τα εξής αξιώματα: Αξιώματα για ορισμό παραγοντικού Αξίωμα 1: Το παραγοντικό του 0 ισούται με 1. Αξίωμα 2: Το παραγοντικό ενός θετικού ακέραιου αριθμού ισούται με το γινόμενο του παραγοντικού του προηγούμενου αριθμού επί τον ίδιο τον αριθμό. Για τη διαδικαστική μέθοδο 2, ένας αλγόριθμος είναι ο εξής: Υπολογισμός παραγοντικού του n Βήμα 1: Αν το n ισούται με 0, επιστρέψτε το 1 σαν τιμή του παραγοντικού Βήμα 2: Θέστε στο fact την τιμή 1 Βήμα 3: Για κάθε i από το 1 έως το n με βήμα 1 Βήμα 4: Θέστε στο fact το fact * i Βήμα 5: Επιστρέψτε το fact ως τιμή του παραγοντικού Απάντηση άσκησης 1.5 Ένας αλγόριθμος που ελέγχει αν υπάρχει μονοπάτι που να συνδέει δύο κόμβους σε έναν κατευθυνόμενο γράφο χωρίς κύκλους είναι ο εξής: Έλεγχος σύνδεσης κόμβων Α και Β σε έναν κατευθυνόμενο γράφο χωρίς κύκλους Βήμα 1: Αρχικοποιήστε μια στοίβα stack Βήμα 2: Βάλτε στη stack τον κόμβο Α Βήμα 3: Αν η stack είναι άδεια, απαντήστε αρνητικά και τερματίστε Βήμα 4: Βγάλτε από τη stack το πρώτο της στοιχείο και θέστε το current ίσο με αυτό Βήμα 5: Αν το current είναι το Β, απαντήστε καταφατικά και τερματίστε Βήμα 6: Βάλτε στη stack τους κόμβους που είναι επόμενοι του current, αν υπάρχουν τέτοιοι Βήμα 7: Πηγαίνετε στο βήμα 3 Στον αλγόριθμο αυτόν χρησιμοποιείται μια στοίβα. Θυμηθείτε ότι σε μια στοίβα εισάγουμε στοιχεία στο άκρο της και εξάγουμε στοιχεία από αυτό, με αποτέλεσμα κάθε φορά να εξάγουμε το πιο πρόσφατα εισαχθέν στοιχείο. Στη στοίβα αυτή, ο αλγόριθμος εισάγει κόμβους του γράφου (αρχίζοντας από τον κόμβο Α), που πρέπει να εξεταστούν αν οδηγούν στον τελικό κόμβο Β. Σε κάθε επανάληψη, εξάγεται ένας κόμβος από τη στοίβα και, αν δεν είναι ο Β, εισάγονται στη στοίβα εκείνοι οι κόμβοι στους οποίους μπορούμε να μεταβούμε από αυτόν

9 Απάντηση άσκησης 1.6 Για τη δηλωτική αντιμετώπιση του ελέγχου της σύνδεσης δύο κόμβων σε έναν κατευθυνόμενο γράφο χωρίς κύκλους, μπορούμε να διατυπώσουμε τα εξής αξιώματα: Αξιώματα για σύνδεση δύο κόμβων σε έναν κατευθυνόμενο γράφο χωρίς κύκλους Αξίωμα 1: Ένας κόμβος συνδέεται με κάποιον άλλο, αν υπάρχει απευθείας σύνδεση από τον πρώτο στον δεύτερο. Αξίωμα 2: Ένας κόμβος συνδέεται με κάποιον άλλο, αν υπάρχει ένας ενδιάμεσος κόμβος, τέτοιος ώστε να συνδέεται απευθείας ο πρώτος κόμβος με τον ενδιάμεσο και ο ενδιάμεσος να συνδέεται τελικά με τον δεύτερο. Προβλήματα Πρόβλημα 1.1 Δώστε δηλωτικό ορισμό για το άθροισμα των ακέραιων αριθμών από το 1 μέχρι δεδομένο ακέραιο αριθμό n. Πρόβλημα 1.2 Διατυπώστε τα βήματα αλγορίθμου για τον υπολογισμό του αθροίσματος των ακέραιων αριθμών από το 1 μέχρι δεδομένο ακέραιο αριθμό n. Πρόβλημα 1.3 Διατυπώστε δηλωτικό ορισμό για τη συνένωση δύο λιστών, δηλαδή την προσθήκη στο τέλος της πρώτης λίστας των στοιχείων της δεύτερης κατά σειρά. Πρόβλημα 1.4 Ζητείται αλγόριθμος για την εύρεση του n-οστού στοιχείου μιας λίστας, για δεδομένο θετικό ακέραιο n. Βιβλιογραφικές αναφορές [1] L. Goldschlager and A. Lister, Εισαγωγή στη Σύγχρονη Επιστήμη των Υπολογιστών, Δίαυλος, [2] T. Pratt and M. Zelkowitz, Programming Languages: Design and Implementation, Prentice Hall, [3] J. Martin, Data Types and Data Structures, Prentice Hall, [4] B. Kernighan and D. Ritchie, Η Γλώσσα Προγραμματισμού C, Κλειδάριθμος, [5] L. Sterling and E. Shapiro, The Art of Prolog, The MIT Press, [6] S. Thompson, Haskell: The Craft of Functional Programming, Addison Wesley (3rd Edition), [7] A. Fischer and F. Grodzinsky, The Anatomy of Programming Languages, Prentice Hall,

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

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

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

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

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

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

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε Κεφάλαιο 9: Αναδρομή Ο τρόπος με τον οποίο σκεφτήκαμε και σχεδιάσαμε τις συναρτήσεις στο προηγούμενο κεφάλαιο ακολουθούσε τη φιλοσοφία του προγραμματισμού που είχαμε αναπτύξει σε όλο το προηγούμενο βιβλίο.

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων ΠΕΡΙΕΧΟΜΕΝΑ Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων Εισαγωγή Η χρήση των μεταβλητών με δείκτες στην άλγεβρα είναι ένας ιδιαίτερα

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

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

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

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

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

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

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Αλγόριθμος (algorithm) λέγεται μία πεπερασμένη διαδικασία καλά ορισμένων βημάτων που ακολουθείται για τη λύση ενός προβλήματος. Το διάγραμμα ροής

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

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

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

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

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

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Από το Γυμνάσιο στο Λύκειο... 7. 3. Δειγματικός χώρος Ενδεχόμενα... 42 Εύρεση δειγματικού χώρου... 46

Από το Γυμνάσιο στο Λύκειο... 7. 3. Δειγματικός χώρος Ενδεχόμενα... 42 Εύρεση δειγματικού χώρου... 46 ΠEΡΙΕΧΟΜΕΝΑ Από το Γυμνάσιο στο Λύκειο................................................ 7 1. Το Λεξιλόγιο της Λογικής.............................................. 11. Σύνολα..............................................................

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

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

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

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

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

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

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

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

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

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

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

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

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

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

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

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

5.1 Δραστηριότητα: Εισαγωγή στο ορισμένο ολοκλήρωμα

5.1 Δραστηριότητα: Εισαγωγή στο ορισμένο ολοκλήρωμα 5.1 Δραστηριότητα: Εισαγωγή στο ορισμένο ολοκλήρωμα Θέμα της δραστηριότητας Η δραστηριότητα εισάγει τους μαθητές στο ολοκλήρωμα Riemann μέσω του υπολογισμού του εμβαδού ενός παραβολικού χωρίου. Στόχοι

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

Από το Γυμνάσιο στο Λύκειο Δειγματικός χώρος Ενδεχόμενα Εύρεση δειγματικού χώρου... 46

Από το Γυμνάσιο στο Λύκειο Δειγματικός χώρος Ενδεχόμενα Εύρεση δειγματικού χώρου... 46 ΠEΡΙΕΧΟΜΕΝΑ Από το Γυμνάσιο στο Λύκειο................................................ 7 1. Το Λεξιλόγιο της Λογικής.............................................. 11 2. Σύνολα..............................................................

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ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 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

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

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

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

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

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

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

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

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

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

Περι-γράφοντας... βρόχους

Περι-γράφοντας... βρόχους Όνομα(τα): Όνομα Η/Υ: Σ Τμήμα: Ημερομηνία: Περι-γράφοντας... βρόχους Ξεκινήστε το Χώρο Δραστηριοτήτων, επιλέξτε τη θεματική ενότητα: ΘΕ05: Επανάληψη και επιλέξτε την πρώτη δραστηριότητα (Περι-γράφοντας...

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

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

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

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

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Λίστες Προγραμματισμός II 1 lalis@inf.uth.gr Διασυνδεδεμένες δομές Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση του είναι

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

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7) ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7) Θέμα Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 8. Πότε το γινόμενο δύο ή περισσοτέρων αριθμών παραγόντων είναι ίσο με το μηδέν ;

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 8. Πότε το γινόμενο δύο ή περισσοτέρων αριθμών παραγόντων είναι ίσο με το μηδέν ; ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ ο : ( ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ) ΠΑΡΑΤΗΡΗΣΗ : Το κεφάλαιο αυτό περιέχει πολλά θέματα που είναι επανάληψη εννοιών που διδάχθηκαν στο Γυμνάσιο γι αυτό σ αυτές δεν θα επεκταθώ αναλυτικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Ο αλγόριθμος Floyd-Warshall για την έυρεση όλων των αποστάσεων σε ένα γράφημα με βάρη στις ακμές Συνεχίσαμε σήμερα το θέμα της προηγούμενης Τετάρτης. Έχουμε ένα γράφημα

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 1: Εισαγωγή στη C - Αλγόριθμοι Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ ( 7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας στο

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

FAIL PASS PASS οριακά

FAIL PASS PASS οριακά AEM 0001 0002 COMMENTS οριακά -Το πρόγραµµά σου δουλεύει λάθος για τις εισόδους: 7 -Δεν έχεις µεριµνήσει για την περίπτωση step=1. Μπορούσες να θεωρήσεις ειδική περίπτωση και να την υλοποιείς σε άλλον

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ ΚΕΦΑΛΑΙΟ ΔΙΑΤΑΞΕΙΣ ΜΕΤΑΘΕΣΕΙΣ ΣΥΝΔΥΑΣΜΟΙ Εισαγωγή. Οι σχηματισμοί που προκύπτουν με την επιλογή ενός συγκεκριμένου αριθμού στοιχείων από το ίδιο σύνολο καλούνται διατάξεις αν μας ενδιαφέρει η σειρά καταγραφή

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

ΚΕΦΑΛΑΙΟ 5 ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΗΤΙΚΗ ΓΕΩΜΕΤΡΙΚΗ ΠΡΟΟΔΟΣ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ 5 ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΗΤΙΚΗ ΓΕΩΜΕΤΡΙΚΗ ΠΡΟΟΔΟΣ ΓΙΑΝΝΗΣ ΠΑΤΕΡΑΣ ΜΑΘΗΜΑΤΙΚΟΣ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ ΑΚΟΛΟΥΘΙΕΣ ΚΕΦΑΛΑΙΟ 5 ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ ΑΠΑΡΑΙΤΗΤΕΣ ΓΝΩΣΕΙΣ ΘΕΩΡΙΑΣ Ακολουθία ονομάζουμε

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

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

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

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

1. Ποιους μαθησιακούς στόχους θα προσδιορίζατε στα πλαίσια της διδακτικής δραστηριότητας;

1. Ποιους μαθησιακούς στόχους θα προσδιορίζατε στα πλαίσια της διδακτικής δραστηριότητας; Σας έχει ανατεθεί η διδασκαλία της μετα-ελεγχόμενης επανάληψης (εντολή «όσο») στα πλαίσια μιας διδακτικής ώρας της Γ λυκείου. Οι μαθητές έχουν πραγματοποιήσει ένα εισαγωγικό μάθημα για τους προκαθορισμένους

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

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

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής D ολοκλήρωση ρητών συναρτήσεων Το θέμα μας στην ενότητα αυτή είναι η ολοκλήρωση ρητών συναρτήσεων. Ας θυμηθούμε πρώτα ποιες συναρτήσεις ονομάζονται ρητές. Ορισμός: Μία συνάρτηση ονομάζεται ρητή όταν μπορεί

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

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος Κεφάλαιο 10 Υποπρογράμματα 1 10.1 Τμηματικός προγραμματισμός Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων.

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

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

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

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

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

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

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

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ 4-11-07 ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ Γ Γενικού Λυκείου (τεχνολογική κατεύθυνση) ΚΕΦ. 2 ο -7 ο : ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ

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

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι µια βιβλιοθήκη σας παρέχει πρόσβαση σε στοίβες ακεραίων. Η βιβλιοθήκη σας επιτρέπει να ορίσετε µια στοίβα και να καλέσετε τις 5 βασικές

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

ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 12 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡ/ΚΗΣ ΘΕΜΑ Α Α1. Να γράψετε

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων Κεφάλαιο 1 Εισαγωγή Περιεχόμενα 1.1 Αλγόριθμοι και Δομές Δεδομένων... 9 1.2 Διατήρηση Διατεταγμένου Συνόλου... 12 1.3 Ολοκληρωμένη Υλοποίηση σε Java... 15 Ασκήσεις... 18 Βιβλιογραφία... 19 1.1 Αλγόριθμοι

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

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ 1. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦ. ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ Καράκιζα Τσαμπίκα 1. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦ. 2ο-8ο:ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εισαγωγή στην εντολή «για» (2.4.5, 8.2.3) 2. ΤΑΞΗ: Γ Γενικού Λυκείου (τεχνολογική

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

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

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

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

Συναρτησιακός Προγραμματισμός 2008 Λύσεις στο Πρώτο Φύλλο Ασκήσεων

Συναρτησιακός Προγραμματισμός 2008 Λύσεις στο Πρώτο Φύλλο Ασκήσεων Συναρτησιακός Προγραμματισμός 2008 Λύσεις στο Πρώτο Φύλλο Ασκήσεων 1. Χρησιμοποιείστε λ-εκφράσεις και τη συνάρτηση sumf στις Σημ.1, Ενότ.3.5, για να εκφράσετε το P 10 i=1p i j=1 (i + j)2, χωρίς να ορίσετε

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