Τεχνικές Προγραμματισμού

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

Download "Τεχνικές Προγραμματισμού"

Transcript

1 Νικόλαος Β. Πλατής Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής Τεχνικές Προγραμματισμού Μάρτιος 2001

2

3 1. Εισαγωγή 1.1 Βασικές έννοιες Η επιστήμη της Πληροφορικής μελετά την επίλυση προβλημάτων με τη βοήθεια Ηλεκτρονικών Υπολογιστών (Η/Υ). Η ολοένα αυξανόμενη παρουσία των Η/Υ στην καθημερινή ζωή μας δίνει μια σαφή ένδειξη του εύρους των εφαρμογών στις οποίες η χρήση τους αποδεικνύεται επωφελής. Χαρακτηριστικά αναφέρουμε: επιστημονικές εφαρμογές, από τις πιο απλές (επίλυση τριωνύμου, επίλυση συστημάτων εξισώσεων) μέχρι πολυσύνθετες (αστρονομικοί υπολογισμοί, πρόβλεψη καιρού), εμπορικές εφαρμογές (μηχανοργάνωση επιχειρήσεων, τήρηση αρχείων γραμματείας), βιομηχανικές εφαρμογές (συστήματα βιομηχανικής σχεδίασης, έλεγχος γραμμών παραγωγής), εργασίες που μπορεί ο καθένας να πραγματοποιήσει με τον Προσωπικό Υπολογιστή του (συγγραφή κειμένων, επεξεργασία φωτογραφιών, παιχνίδια). Κάθε Η/Υ μπορεί στην πραγματικότητα να εκτελεί μόνο πολύ απλές πράξεις (π.χ. προσθέσεις, συγκρίσεις, καταχωρίσεις στη μνήμη του) με πολύ μεγάλη ταχύτητα. Επομένως, για να επιλυθεί ένα οποιοδήποτε πρόβλημα όπως τα παραπάνω με τη βοήθεια Η/Υ, πρέπει η διαδικασία επίλυσής του να μπορεί να αναχθεί σε μία (πιθανώς μακριά και πολύπλοκη) σειρά από απλές πράξεις, οι οποίες στη συνέχεια θα γνωστοποιηθούν στον υπολογιστή με κατάλληλο τρόπο. Μία τέτοια ακολουθία απλών βημάτων των οποίων η επεξεργασία σε μια αυστηρά καθορισμένη σειρά οδηγεί στη λύση ενός προβλήματος, ονομάζεται αλγόριθμος. Η περιγραφή ενός αλγορίθμου σε κατάλληλη μορφή ώστε να γίνει κατανοητός και να εκτελεστεί από τον Η/Υ, ονομάζεται πρόγραμμα. Αυτή η περιγραφή γίνεται σε μία γλώσσα προγραμματισμού, την οποία προφανώς κατανοούν ισοδύναμα τόσο ο προγραμματιστής όσο και ο υπολογιστής είναι κάτι ανάλογο της φυσικής γλώσσας που είναι απαραίτητη για τη συνεννόηση δύο ή περισσότερων ανθρώπων. Πρόβλημα Αλγόριθμος Πρόγραμμα Όπως οι φυσικές γλώσσες, έτσι και οι γλώσσες προγραμματισμού διέπονται από συγκεκριμένους κανόνες οι οποίοι καθορίζουν αν μία διατύπωση είναι τυπικά σωστή. Καθώς μάλιστα ο Η/Υ δεν διαθέτει τις διανοητικές δυνατότητες του ανθρώπινου εγκεφάλου παρά μόνο τη δυνατότητα να εκτελεί προκαθορισμένες εντολές, οι κανόνες των γλωσσών προγραμματισμού είναι αρκετά περιοριστικοί και πρέπει να τηρούνται με ακρίβεια προκειμένου ο Η/Υ να κατανοήσει ένα πρόγραμμα. 1 1

4 1.2 Γλώσσες Προγραμματισμού Γλώσσες χαμηλού επιπέδου Στους πρώτους Η/Υ που κατασκευάστηκαν, ο προγραμματισμός δεν ήταν παρά άνοιγμα ή κλείσιμο διακοπτών ρεύματος και παρακολούθηση φωτεινών ενδείξεων. Με τον τρόπο αυτό οι θέσεις μνήμης του υπολογιστή έπαιρναν συγκεκριμένες τιμές, οι οποίες ερμηνεύονταν κατάλληλα από τον υπολογιστή ώστε να εκτελέσει τις απαραίτητες πράξεις. Όταν οι δυνατότητες εισόδου και εξόδου δεδομένων σε έναν Η/Υ εξελίχθηκαν, αυτός ο τύπος προγραμματισμού συνέχισε να υπάρχει, καθώς α- ποτελεί τον πιο άμεσο τρόπο επικοινωνίας μεταξύ του χρήστη και του υπολογιστή βέβαια οι τιμές στη μνήμη του υπολογιστή μπορούσαν πλέον να εισάγονται μέσω ενός πληκτρολογίου και να παρακολουθούνται σε μια οθόνη. Αυτή η γλώσσα προγραμματισμού καλείται γενικά γλώσσα μηχανής. Μία εξέλιξη της γλώσσας μηχανής είναι η συμβολική γλώσσα (assembly language). Σε αυτή οι στοιχειώδεις πράξεις που κατανοεί ο Η/Υ (προσθέσεις, συγκρίσεις, καταχώριση τιμής σε θέση μνήμης) έχουν μνημονικά ονόματα (add, compare, move) και έτσι είναι δυνατή η περιγραφή του προβλήματος με λίγο πιο προσιτό στο χρήστη τρόπο. Η γλώσσα μηχανής και η συμβολική γλώσσα καλούνται από κοινού γλώσσες χαμηλού επιπέδου, καθώς βρίσκονται αρκετά «κοντά» στον Η/Υ και στον τρόπο λειτουργίας του. Οι γλώσσες χαμηλού επιπέδου έχουν δύο βασικά μειονεκτήματα: την πολυπλοκότητά τους, καθώς ουσιαστικά ο χρήστης προσαρμόζεται στις απαιτήσεις του υπολογιστή και όχι το αντίστροφο, και επίσης το γεγονός ότι είναι απόλυτα εξειδικευμένες για κάθε τύπο υπολογιστή, καθιστώντας έτσι τα σχετικά προγράμματα δύσκολα μεταφέρσιμα σε Η/Υ διαφορετικών τύπων Ανώτερες γλώσσες προγραμματισμού Η δυσκολία χρήσης των γλωσσών προγραμματισμού χαμηλού επιπέδου οδήγησε στη σύλληψη ανώτερων γλωσσών προγραμματισμού, γλωσσών στις οποίες η λύση ενός προβλήματος δεν εκφράζεται πλέον με όρους του Η/Υ αλλά με όρους προσιτούς στην ανθρώπινη λογική. Οι ανώτερες γλώσσες προγραμματισμού είναι ουσιαστικά ανεξάρτητες από το συγκεκριμένο Η/Υ στον οποίο τελικά εκτελούνται τα προγράμματά τους και παρέχουν δυνατότητες που διευκολύνουν τη διατύπωση της λύσης των προβλημάτων. Ένα πρόγραμμα γραμμένο σε μία τέτοια γλώσσα μοιάζει με απλοϊκό κείμενο, καθώς αποτελείται από απλές λέξεις και μαθηματικές παραστάσεις, και η ανάγνωσή του παρέχει μία αναλυτική παρουσίαση της λύσης του προβλήματος. Οι γλώσσες αυτές αναφέρονται και ως γλώσσες προγραμματισμού προσανατολισμένες στο πρόβλημα. Όπως έγινε φανερό, οι ανώτερες γλώσσες προγραμματισμού λύνουν και τα δύο βασικά προβλήματα των γλωσσών χαμηλού επιπέδου. Όμως οι γλώσσες αυτές δεν είναι άμεσα κατανοητές στον Η/Υ, ο οποίος πάντα καταλαβαίνει μόνο τη γλώσσα μηχανής. Ο ενδιάμεσος κρίκος είναι ένας μεταγλωττιστής ή διερμηνευτής (compiler / interpreter), δηλαδή ένα πρόγραμμα που μετατρέπει με αυτόματο τρόπο ένα πρόγραμμα γραμμένο σε ανώτερη γλώσσα προγραμματισμού στην ισοδύναμη ακολουθία εντολών γλώσσας μηχανής του συγκεκριμένου Η/Υ. Πάντως αυτή η αυτόματη μετατροπή δεν είναι δυνατό να παραγάγει τα βέλτιστα προγράμματα γλώσσας μηχανής, κάτι που έχει ως αποτέλεσμα ο προγραμματισμός χαμηλού επιπέδου να βρίσκει ακόμη εφαρμογή σε εξειδικευμένες περιπτώσεις όπου το μέγεθος και η ταχύτητα του εκτελέσιμου προγράμματος είναι κρίσιμοι παράγοντες. Πρέπει να αναφερθεί ότι υπάρχουν αρκετές διαφορετικές ανώτερες γλώσσες προγραμματισμού. Ένας παράγοντας διαφοροποίησης είναι το συγκεκριμένο πεδίο εφαρμογής που καλούνται να αντιμετωπίσουν. Για παράδειγμα, υπάρχουν γλώσσες που υποστηρίζουν εξελιγμένους μαθηματικούς υπολογισμούς και προτιμώνται για την επίλυση επιστημονικών προβλημάτων άλλες γλώσσες διευκολύνουν την επεξεργασία δεδομένων και χρησιμοποιούνται για τον προγραμματισμό εμπορικών εφαρ- 1 2

5 μογών τέλος, υπάρχουν γλώσσες γενικής χρήσης που παρέχουν τα βασικά εργαλεία για την επίλυση μεγάλου φάσματος προβλημάτων. Ένας δεύτερος παράγοντας διαφοροποίησης μεταξύ των (ανώτερων) γλωσσών προγραμματισμού είναι τα μοντέλα προγραμματισμού που υποστηρίζουν. Με αυτά θα ασχοληθούμε αμέσως παρακάτω. 1.3 Μοντέλα Προγραμματισμού Οι ανώτερες γλώσσες προγραμματισμού επιτρέπουν, όπως αναφέραμε, την έκφραση της λύσης ενός προβλήματος με όρους σχετικούς με το πρόβλημα και όχι με τις δυνατότητες του Η/Υ. Για το λόγο αυτό αποτελούν ένα μεγάλο βήμα προς την ευκολότερη αξιοποίηση του Η/Υ σε σχέση με τις γλώσσες χαμηλού επιπέδου. Όμως και οι ανώτερες γλώσσες προγραμματισμού έχουν εμφανίσει σημαντικά στοιχεία εξέλιξης στην προσπάθεια να εκφράσουν πιο άμεσα τα προβλήματα του πραγματικού κόσμου που επιλύονται με τη βοήθεια Η/Υ Μονολιθικός προγραμματισμός Οι πρώτες ανώτερες γλώσσες προγραμματισμού που αναπτύχθηκαν έδιναν στον προγραμματιστή τη δυνατότητα να εκφράσει τη λύση ενός προβλήματος χρησιμοποιώντας τις βασικές μαθηματικές πράξεις και σχέσεις καθώς και κάποιες στοιχειώδεις δομές ελέγχου της ροής του προγράμματος όπως επανάληψη συγκεκριμένων εντολών κάποιο αριθμό φορών ή εκτέλεση κάποιων εντολών μόνο εφόσον ισχύει μια συνθήκη. 2 Για παράδειγμα, ένα πρόγραμμα για την εύρεση των ριζών ενός τριωνύμου αx + βx + γ = 0 θα είχε την εξής μορφή: (για απλότητα υποθέτουμε ότι η διακρίνουσα είναι μη αρνητική, 2 = β 4αγ 0 ) 2 ΘΕΣΕ = β 4αγ ΑΝ > 0 ΤΟΤΕ ΘΕΣΕ ρ 1,2 = ( β± )/2α ΙΑΦΟΡΕΤΙΚΑ ΘΕΣΕ ρ = β/2α Οι δυνατότητες που παρείχαν αυτές οι γλώσσες ήταν αρκετές για την αποτελεσματική περιγραφή της λύσης των προβλημάτων που αντιμετωπίζονταν με τη βοήθεια Η/Υ εκείνη την εποχή: ε- πρόκειτο συνήθως για πολύπλοκα επιστημονικά προβλήματα, των οποίων οι αλγόριθμοι είχαν μεγάλες απαιτήσεις σε ταχύτητα υπολογισμών αλλά σχετικά απλή λογική που μπορούσε να εκφραστεί με μαθηματικούς όρους. Αυτός ο τύπος προγραμματισμού ονομάζεται μονολιθικός ή σειραϊκός (serial). Γλώσσες που υποστηρίζουν τον μονολιθικό προγραμματισμό είναι οι Basic και Fortran, στις αρχικές εκδόσεις τους Αρθρωτός προγραμματισμός Καθώς τα προβλήματα που τίθονταν προς επίλυση με τη χρήση Η/Υ γίνονταν ολοένα και πιο πολύπλοκα, έγινε φανερό ότι δεν ήταν εφικτό να εκφραστούν σε ένα μονολιθικό, ενιαίο πρόγραμμα. Αυτό που έλειπε από το μοντέλο ήταν η δυνατότητα που διαθέτει ο ανθρώπινος νους να αντιμετωπίζει τα προβλήματα διασπώντας τα σε μικρότερα υποπροβλήματα διαδικασίες, τα οποία μπορεί πολύ πιο εύκολα να επιλύσει ανεξάρτητα. Για παράδειγμα, ακόμη και στο απλό πρόβλημα του υπολογισμού των ριζών ενός τριωνύμου μπορούμε να διακρίνουμε τρία ανεξάρτητα υποπροβλήματα: 1 3

6 Υπολογισμός της διακρίνουσας Υπολογισμός των δύο ριζών (όταν > 0) Υπολογισμός της διπλής ρίζας (όταν = 0) Αναπτύχθηκαν λοιπόν γλώσσες προγραμματισμού που επεκτείνουν τις μονολιθικές γλώσσες δίνοντας επιπλέον τη δυνατότητα στον προγραμματιστή να αναλύσει το συνολικό πρόβλημα σε απλούστερες επιμέρους ενέργειες. Πρακτικά οι γλώσσες αυτές υποστηρίζουν τη διάσπαση του προγράμματος σε ανεξάρτητες ενότητες υποπρογράμματα που μπορούν να κληθούν από οποιοδήποτε σημείο του προγράμματος. Ο σχετικός τρόπος προγραμματισμού ονομάζεται αρθρωτός (modular) ή δομημένος (structured) ή διαδικαστικός (procedural). Κάνοντας χρήση των δυνατοτήτων μιας τέτοιας γλώσσας προγραμματισμού, η επίλυση του τριωνύμου μπορεί να περιγραφεί ως εξής: ΘΕΣΕ = ΙΑΚΡΙΝΟΥΣΑ του ΑΝ > 0 ΤΟΤΕ ΘΕΣΕ ρ 1,2 ΙΑΦΟΡΕΤΙΚΑ = ΥΟ ΡΙΖΕΣ του ΘΕΣΕ ρ= ΙΠΛΗ ΡΙΖΑ του 2 αx + βx + γ 2 αx + βx + γ 2 αx + βx + γ όπου «ΙΑΚΡΙΝΟΥΣΑ του «ΥΟ ΡΙΖΕΣ του 2 αx + βx + γ» = 2 β 4αγ 2 αx + βx + γ» = ( β± )/2α 2 «ΙΠΛΗ ΡΙΖΑ του αx + βx + γ» = β /2α είναι τα υποπρογράμματα που χρησιμοποιούνται. Σε ένα απλό πρόβλημα όπως αυτό μία τέτοια ανάλυση φαίνεται ίσως υπερβολική όμως είναι σίγουρο ότι σε ένα πιο σύνθετο πρόβλημα μία ανάλογη διάσπαση σε απλούστερα υποπροβλήματα συμβάλλει σημαντικά στην ευκολότερη διατύπωση της λύσης. Για παράδειγμα, έστω ότι διατηρούμε ένα αρχείο με τα στοιχεία κάποιων φοιτητών και θέλουμε να εισαγάγουμε κάποια καινούργια στοιχεία. Για κάθε φοιτητή το πρόγραμμα θα διαβάζει τα στοιχεία του και θα υπολογίζει τον τελικό βαθμό του κατόπιν θα ελέγχει αν υπάρχουν ήδη στοιχεία του στο αρχείο, οπότε θα τα ενημερώνει, ή στην αντίθετη περίπτωση θα προσθέτει μια νέα εγγραφή. Αν προσπαθούσαμε να υλοποιήσουμε τη λύση αυτού του προβλήματος με ένα ενιαίο πρόγραμμα είναι σίγουρο ότι θα δυσκολευόμασταν πολύ να αντιμετωπίσουμε όλες τις λεπτομέρειες συγχρόνως. Αν τελικά τα καταφέρναμε, θα καταλήγαμε σε ένα πρόγραμμα αρκετών σελίδων του οποίου η λειτουργία και η δομή θα ήταν σαφώς δυσνόητες. Είναι πιο εύκολο να αντιμετωπίσουμε το πρόβλημα διασπώντας το σε επιμέρους διαδικασίες, όπως φαίνεται στην επόμενη περιγραφή σε μία υποθετική γλώσσα αρθρωτού προγραμματισμού: ΑΝΟΙΓΜΑ ΑΡΧΕΙΟΥ του αρχείου των φοιτητών ΕΠΑΝΑΛΗΨΗ για όλους τους φοιτητές που δίνονται ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΩΝ του φοιτητή ΥΠΟΛΟΓΙΣΜΟΣ ΤΕΛΙΚΟΥ ΒΑΘΜΟΥ του φοιτητή ΕΥΡΕΣΗ ΣΤΟΙΧΕΙΩΝ του φοιτητή ΑΝ υπάρχει ο φοιτητής ΤΟΤΕ ΕΝΗΜΕΡΩΣΗ ΣΤΟΙΧΕΙΩΝ του φοιτητή ΙΑΦΟΡΕΤΙΚΑ ΕΙΣΑΓΩΓΗ ΕΓΓΡΑΦΗΣ με τα στοιχεία του φοιτητή 1 4

7 ΚΛΕΙΣΙΜΟ ΑΡΧΕΙΟΥ του αρχείου των φοιτητών Με πλάγια στοιχεία σημειώνονται και εδώ τα επιμέρους υποπρογράμματα που χρησιμοποιούνται (τα οποία δεν αναλύονται περαιτέρω για απλότητα). Παρατηρούμε ότι με τον τρόπο αυτό η περιγραφή της λύσης γίνεται σε ένα αρκετά «υψηλό» επίπεδο και η πολυπλοκότητά της επιμερίζεται και κρύβεται στα υποπρογράμματα. Με τη χρήση του αρθρωτού προγραμματισμού επωφελούμαστε από μερικά σημαντικά χαρακτηριστικά του: Τα υποπρογράμματα που κατασκευάζονται χαρακτηρίζονται από γενικότητα, δηλαδή μπορούν να επιλύουν μία ολόκληρη κλάση προβλημάτων και όχι μόνο ένα συγκεκριμένο. Αυτό είναι δυνατό μέσω των παραμέτρων που δέχονται τα υποπρογράμματα, μέσω των οποίων ο προγραμματιστής μεταφέρει στο υποπρόγραμμα δεδομένα που αφορούν το πρόβλημα που επιλύεται. Για παράδειγμα, το υποπρόγραμμα «ΙΑΚΡΙΝΟΥΣΑ» παραπάνω έχει σαν παράμετρο το τριώνυμο (ουσιαστικά τους συντελεστές α, β, γ) και έτσι μπορεί να υπολογίσει τη διακρίνουσα ο- ποιουδήποτε τριωνύμου. ίνεται η δυνατότητα επαναχρησιμοποίησης των ανεξάρτητων τμημάτων του προγράμματος. Για παράδειγμα, είναι πιθανό σε κάποια εφαρμογή να μην είναι απαραίτητος ο τελικός υπολογισμός των ριζών του τριωνύμου παρά μόνο της διακρίνουσάς του με διάσπαση όπως αυτή 2 που περιγράφηκε, το υποπρόγραμμα «ΙΑΚΡΙΝΟΥΣΑ του αx + βx + γ» μπορεί να χρησιμοποιηθεί ανεξάρτητα, «αντιγράφοντάς» το από το προηγούμενο πρόγραμμα. Αντίστοιχα η «ΕΙ- ΣΑΓΩΓΗ ΕΓΓΡΑΦΗΣ του φοιτητή» μπορεί να χρησιμοποιηθεί αυτούσια σε άλλα σημεία ενός ευρύτερου προγράμματος που θα χειρίζεται το αρχείο των φοιτητών. Τα υποπρογράμματα λειτουργούν ως μαύρα κουτιά: έχουν συγκεκριμένες εισόδους, εκτελούν μία σαφώς ορισμένη λειτουργία και παράγουν κάποιο αποτέλεσμα ο τρόπος που υλοποιείται η λειτουργία τους δεν ενδιαφέρει καθόλου κατά τη χρήση τους. Έτσι η υλοποίηση των υποπρογραμμάτων μπορεί να αλλάξει χωρίς να επηρεαστεί το υπόλοιπο πρόγραμμα. Αυτό μπορεί να φανεί χρήσιμο για τη βελτιστοποίηση του προγράμματος για παράδειγμα, η «ΕΥΡΕΣΗ ΣΤΟΙ- ΧΕΙΩΝ» μπορεί να υλοποιηθεί με διάφορους τρόπους ανάλογα με το πώς είναι αποθηκευμένα τα στοιχεία στο αρχείο των φοιτητών. Επίσης μπορεί να διευκολύνει την εύρεση σφαλμάτων στο πρόγραμμα, καθώς ο κώδικας που αφορά συγκεκριμένες λειτουργίες είναι συγκεντρωμένος σε λίγα σημεία του προγράμματος αν για παράδειγμα διαπιστωθεί λάθος κατά την ενημέρωση των στοιχείων των φοιτητών η προσοχή θα εστιαστεί στο υποπρόγραμμα «ΕΝΗΜΕΡΩΣΗ ΣΤΟΙ- ΧΕΙΩΝ». Κατεξοχήν γλώσσες που υποστηρίζουν τον αρθρωτό προγραμματισμό είναι οι Pascal και C. Ε- πίσης νεότερες εκδοχές των γλωσσών Basic και Fortran υποστηρίζουν αυτό το μοντέλο Αντικειμενοστρεφής προγραμματισμός Με τον αρθρωτό προγραμματισμό έγινε δυνατή η αποτελεσματική επίλυση αρκετά σύνθετων προβλημάτων με τη βοήθεια Η/Υ, με την περιγραφή τους ως μια σειρά ανεξάρτητων ενεργειών. Ακόμα και αυτό το μοντέλο όμως αποδείχθηκε ανεπαρκές για την αντιμετώπιση νεώτερων και ακόμη πιο πολύπλοκων προβλημάτων. Τη λύση έδωσε ο αντικειμενοστρεφής προγραμματισμός (object oriented programming). Στον αντικειμενοστρεφή προγραμματισμό κεντρική έννοια είναι το αντικείμενο, που αποτελεί προγραμματιστική αναπαράσταση μίας οντότητας του πραγματικού κόσμου. Η λύση του προβλήματος περιγράφεται ως μια σειρά αλληλεπιδράσεων μεταξύ κατάλληλων αντικειμένων, και η πολυπλο- 1 5

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

9 Η διάκριση μεταξύ του εξωτερικού (δημόσιου) και του εσωτερικού (ιδιωτικού) τμήματος των κλάσεων είναι ουσιαστικά αυτή που οδηγεί στην απομόνωση της πολυπλοκότητας στο εσωτερικό των αντικειμένων: κάθε κλάση επικοινωνεί με το περιβάλλον της μέσω του συγκεκριμένου και σταθερού δημόσιου τμήματός της, αλλά υλοποιεί τη λειτουργικότητά της κατά τρόπο αθέατο στο περιβάλλον της μέσα στο ιδιωτικό τμήμα της για το οποίο είναι αποκλειστικά υπεύθυνη. Στη μείωση της πολυπλοκότητας συμβάλλει σημαντικά και η έννοια της ιεραρχίας αντικειμένων. Αυτή είναι το προγραμματιστικό ανάλογο της ιεραρχίας που συναντούμε στη φύση: για παράδειγμα, όλα τα φυτά έχουν κάποιες ιδιότητες και κάποιες λειτουργίες τα λουλούδια και τα δένδρα είναι φυτά, επομένως κληρονομούν τις κοινές ιδιότητες και λειτουργίες των φυτών, συγχρόνως όμως έχουν και τις δικές τους ξεχωριστές ιδιότητες και λειτουργίες. Οι αντικειμενοστρεφείς γλώσσες προγραμματισμού υποστηρίζουν την κληρονομικότητα μεταξύ κλάσεων. Για παράδειγμα, η εφαρμογή που διαχειρίζεται τους φοιτητές είναι πιθανό να χρησιμοποιεί αρχεία διαφόρων τύπων (μαθημάτων, καθηγητών, κ.λπ.). Στην περίπτωση αυτή μπορεί να οριστεί μια γενικότερη κλάση Αρχείο, με ιδιότητες και μεθόδους που αφορούν γενικά όλους τους τύπους των αρχείων όπως πλήθος εγγραφών, άνοιγμα και κλείσιμο τότε το Αρχείο Φοιτητών αλλά και οι άλλοι τύπου αρχείων θα κληρονομούν το Αρχείο, επομένως θα έχουν τις ιδιότητές του χωρίς να χρειάζεται να τις επαναλάβουν και θα μπορούν να χρησιμοποιήσουν τις υπηρεσίες του χωρίς να τις υλοποιήσουν πάλι. Περαιτέρω κάθε συγκεκριμένος τύπος (κλάση) αρχείων θα παρέχει διαδικασίες σχετικές με τη λειτουργία του: για το Αρχείο Φοιτητών τέτοιες αναφέρθηκαν παραπάνω και θα είναι σχετικές με την εισαγωγή, αναζήτηση, ενημέρωση και διαγραφή εγγραφών φοιτητών. Το αντικειμενοστρεφές μοντέλο προγραμματισμού υποστηρίζεται από πολλές σύγχρονες γλώσσες καθώς και από νεότερες εκδοχές παλαιότερων γλωσσών που επεκτάθηκαν προς αυτή την κατεύθυνση. Ενδεικτικά αναφέρουμε τις γλώσσες Visual Basic, Delphi, Eiffel, Ada, C++, Java. Αξίζει να σημειώσουμε ότι ο αρθρωτός και ο αντικειμενοστρεφής προγραμματισμός είναι συμπληρωματικά μοντέλα και το ένα δεν αποκλείει το άλλο. Ένα πρόβλημα μπορεί να επιλυθεί με μια σειρά ενεργειών (υποπρογραμμάτων) που υλοποιούνται με τη βοήθεια κατάλληλων αντικειμένων α- ντίστροφα, τα αντικείμενα υλοποιούν τη λειτουργικότητά τους σε διαδικασίες στις οποίες εφαρμόζονται οι αρχές του αρθρωτού προγραμματισμού. Κατά την επίλυση ενός προβλήματος πρέπει και μπορεί να χρησιμοποιείται ο κατάλληλος συνδυασμός και των δύο τεχνικών. 1 7

10

11 2. Εισαγωγή στον Προγραμματισμό Σε αυτή την ενότητα θα παρουσιάσουμε τις βασικές αρχές του προγραμματισμού. Όλες οι σύγχρονες γλώσσες προγραμματισμού διαθέτουν μια κοινή, περιορισμένη ομάδα δομών και εντολών με τις οποίες συνθέτονται τα προγράμματα, και αυτές θα αναπτύξουμε στα επόμενα. Καθώς τα θέματα που θα αναλύσουμε ισχύουν για όλες τις γλώσσες προγραμματισμού, δεν θα χρησιμοποιήσουμε κάποια συγκεκριμένα γλώσσα στα παραδείγματα αλλά θα εκφράσουμε τους αλγορίθμους σε ψευδοκώδικα, μια υποθετική γλώσσα προγραμματισμού πάντως στο τέλος των σημειώσεων παρέχονται υλοποιήσεις όλων των προγραμμάτων σε C Βασικά στοιχεία αλγορίθμων Όπως έχουμε αναφέρει, οι αλγόριθμοι εκφράζουν λεπτομερώς και συστηματικά τη λύση προβλημάτων με Η/Υ. Στα προβλήματα αυτά κάποια δεδομένα υφίστανται επεξεργασία με τη βοήθεια συγκεκριμένων εντολών και παράγεται ένα αποτέλεσμα. Τα δεδομένα και οι εντολές είναι τα κύρια στοιχεία που απαρτίζουν ένα αλγόριθμο Μεταβλητές Σταθερές Τα δεδομένα που χειρίζεται ένας αλγόριθμος μπορεί να είναι αριθμοί, γράμματα, λέξεις, κ.λπ. και αποθηκεύονται σε μεταβλητές και σταθερές. Μια μεταβλητή μπορεί να θεωρηθεί ως ένα όνομα με το οποίο μπορούμε να αναφερθούμε σε κάποιο δεδομένο του προβλήματος. Για παράδειγμα στο πρόβλημα επίλυσης του τριωνύμου τα α, β, γ, ρ που εμφανίζονται στον αλγόριθμο είναι μεταβλητές. Οι μεταβλητές μπορούν να πάρουν τιμή από το χρήστη, ως αποτέλεσμα της εισαγωγής δεδομένων, είτε από το ίδιο το πρόγραμμα, ως αποτέλεσμα κάποιων υπολογισμών. Για παράδειγμα, a = 7 b = 5.5 sum = a+b Στα επόμενα θα δίνουμε στις μεταβλητές ονόματα που περιέχουν χαρακτήρες του λατινικού αλφαβήτου και πιθανώς αριθμητικά ψηφία (ξεκινώντας πάντα με ένα γράμμα), π.χ. x, y, d, num1, num2, κ.ο.κ. Σε κάθε πρόγραμμα που θα κατασκευάζουμε, θα δηλώνουμε τις μεταβλητές που θα χρησιμοποιήσουμε, στην αρχή του προγράμματος, γράφοντάς τες μετά τη χαρακτηριστική λέξη DATA. Για παράδειγμα ένα πρόγραμμα που χρησιμοποιεί τις μεταβλητές a, b, x, j, θα ξεκινά με τη δήλωση DATA a, b, x, j Σταθερές υπάρχουν δύο ειδών: Καταρχήν όλες οι ποσότητες που εμφανίζονται σε ένα αλγόριθμο είναι σταθερές τέτοιες είναι αριθμοί (π.χ. 4, 30, 7.5), γράμματα (περικλείονται μέσα σε μονά εισαγωγικά, π.χ. 'a', 'γ', '3') ή λέξεις (περικλείονται σε διπλά εισαγωγικά, π.χ. "day", "Τεχνικές προγραμματισμού", "R2D2"). Επίσης υπάρχουν σταθερές με όνομα αυτές μοιάζουν πολύ με τις μεταβλητές 2 1

12 αλλά διαφέρουν στο ότι παίρνουν τιμή μια φορά στη διάρκεια του προγράμματος και αυτή η τιμή δεν μπορεί να αλλάξει. Χρησιμοποιούνται για να αποθηκεύσουν γνωστές ποσότητες ή χαρακτηριστικά μεγέθη του προβλήματος που δεν αλλάζουν κατά την εκτέλεση του προγράμματος. Οι σταθερές γράφονται συνήθως στην αρχή του προγράμματος και η δήλωσή τους γίνεται με τη χαρακτηριστική λέξη CONST, ταυτόχρονα με την απόδοση της (σταθερής) τιμής τους. Για παράδειγμα, CONST pi = CONST maxsize = 500 Με όρους του υπολογιστή, μια μεταβλητή ή μια σταθερά με όνομα αντιπροσωπεύει μια θέση στη μνήμη του. Όταν χρησιμοποιούμε την τιμή της μεταβλητής ή της σταθεράς στην πραγματικότητα ανακτούμε την ποσότητα που είναι καταχωρισμένη σε εκείνη τη θέση μνήμης, ενώ όταν δίνουμε τιμή στη μεταβλητή ή στη σταθερά στην πραγματικότητα τοποθετούμε κάποια τιμή στη θέση μνήμης. Είναι παραστατικό να σκεφτόμαστε τις μεταβλητές σαν κουτιά στα οποία αποθηκεύουμε τα δεδομένα μας: a : 7 pi : b : 5.5 maxsize : 500 sum : Εντολές Οι εντολές που επεξεργάζονται τα δεδομένα του αλγορίθμου γενικά διαφέρουν μεταξύ των διαφορετικών γλωσσών προγραμματισμού. Υπάρχουν όμως κάποιες βασικές εντολές που είναι κοινές για όλες τις γλώσσες με τις εντολές αυτές μπορεί να εκφραστεί οποιοσδήποτε αλγόριθμος. Αυτές οι εντολές είναι: Εντολές εισόδου και εξόδου δεδομένων. Με αυτές εισάγονται δεδομένα στο πρόγραμμα και αντίστοιχα παρουσιάζονται τα αποτελέσματα στο χρήστη. Μπορούμε να υποθέσουμε ότι τα δεδομένα δίνονται από το πληκτρολόγιο και τα αποτελέσματα εμφανίζονται στην οθόνη του υπολογιστή. Εντολή απόδοσης τιμής. Με αυτή την εντολή δίνεται τιμή στις μεταβλητές και σταθερές του προγράμματος. Εντολή επιλογής. Εξετάζεται μια συνθήκη και αν ισχύει εκτελείται ένα συγκεκριμένο τμήμα του προγράμματος ενώ αν δεν ισχύει παραλείπεται και πιθανώς εκτελείται ένα άλλο τμήμα. Εντολή επανάληψης. Ένα συγκεκριμένο τμήμα του προγράμματος εκτελείται επαναληπτικά για όσο διάστημα ισχύει κάποια συνθήκη. Στα επόμενα θα παρουσιάσουμε αναλυτικά τις εντολές αυτές και τη χρήση τους. Οι γλώσσες προγραμματισμού παρέχουν επιπρόσθετα άλλες εντολές, που είτε είναι τροποποιημένες μορφές των παραπάνω για κάποιες ειδικότερες χρήσεις (μερικές από αυτές είναι μάλιστα αρκετά κοινές και θα τις δούμε παρακάτω), είτε πιο σύνθετες εντολές που διευκολύνουν τον προγραμματιστή. 2 2

13 2.1.3 Παραστάσεις Οι μεταβλητές και οι σταθερές συνδυάζονται σε παραστάσεις. Παραστάσεις σχηματίζονται ό- ταν γίνονται πράξεις μεταξύ μεταβλητών και σταθερών, καθώς και όταν συγκρίνονται μεταβλητές ή σταθερές. Οι μεταβλητές ή σταθερές που συμμετέχουν σε μια παράσταση ονομάζονται όροι και τα σύμβολα τελεστές. Ο παρακάτω πίνακας περιέχει τους βασικούς τελεστές που θα χρησιμοποιούμε: Τελεστής Όνομα Παράδειγμα + Θετικό πρόσημο +12 Αρνητικό πρόσημο 12! Λογική άρνηση! true * Πολλαπλασιασμός 3 * 4 / ιαίρεση 4 / 7 % Υπόλοιπο ακέραιας διαίρεσης 5 % 2 (=1) + Πρόσθεση 3+5 Αφαίρεση r 2 <, <=, >, >= Συγκρίσεις μεγέθους a < b, c >= d == Σύγκριση για ισότητα a == 3!= Σύγκριση για ανισότητα a!= 5 AND ή && Λογικό «ΚΑΙ» a && b OR ή Λογικό «Ή» a b Η προτεραιότητα των πράξεων είναι αυτή που γνωρίζουμε από τα μαθηματικά εξάλλου στον παραπάνω πίνακα οι τελεστές παρουσιάζονται κατά σειρά προτεραιότητας. Παρενθέσεις μπορούν να χρησιμοποιηθούν όπου χρειάζεται να ομαδοποιηθούν παραστάσεις Ψευδοκώδικας Λογικά ιαγράμματα Οι αλγόριθμοι πρέπει να εκφράζονται σε μια τυπική μορφή ώστε η μετατροπή τους σε πρόγραμμα υπολογιστή να είναι εύκολη και άμεση. Για το σκοπό αυτό έχουν αναπτυχθεί διάφοροι τρόποι παράστασής τους. Εδώ θα παρουσιάσουμε και θα χρησιμοποιήσουμε ψευδοκώδικα και λογικά διαγράμματα. Ο ψευδοκώδικας είναι μια υποθετική γλώσσα προγραμματισμού διατηρεί τα βασικά συντακτικά στοιχεία μιας γλώσσας αλλά ταυτόχρονα δεν έχει την αυστηρότητά της και μπορεί να διαμορφωθεί σχετικά ελεύθερα ώστε να εξυπηρετεί στην παράσταση των αλγορίθμων. Παραδείγματα ψευδοκώδικα είναι τα αποσπάσματα «προγραμμάτων» που παρουσιάσαμε στην προηγούμενη ενότητα (τριώνυμο, αρχείο φοιτητών). Στον ψευδοκώδικα οι εντολές εισόδου και εξόδου δεδομένων θα παριστάνονται με READ και WRITE αντίστοιχα. Για παράδειγμα με τις εντολές READ x, y WRITE x, 4, y θα εισαχθούν από το χρήστη τιμές στις μεταβλητές x και y και κατόπιν θα τυπωθούν κατά σειρά η τιμή του x, ο αριθμός 4 και η τιμή του y. Η εντολή απόδοσης τιμής θα παριστάνεται με =, για παράδειγμα 2 3

14 a = 4 D = b*b 4*a*c Στην πρώτη από αυτές τις εντολές δίνεται η τιμή 4 στη μεταβλητή a. Στη δεύτερη εντολή υπολογίζεται η παράσταση στα δεξιά του = (υποτίθεται ότι τα b, a, c είναι επίσης μεταβλητές που έχουν πάρει τιμές μέχρι εκείνο το σημείο του προγράμματος) και το αποτέλεσμα του υπολογισμού αποδίδεται στη μεταβλητή D. Πρέπει να τονιστεί ότι αντίθετα από το συνηθισμένο «=» που γράφουμε στα Μαθηματικά, η εντολή απόδοσης τιμής δεν είναι συμμετρική, δηλαδή έχει σημασία τι γράφεται στα αριστερά του = και τι στα δεξιά του: στα αριστερά γράφεται πάντα κάποια μεταβλητή και στα δεξιά κάποια παράσταση, η τιμή της οποίας υπολογίζεται και αποδίδεται στη μεταβλητή. Η παράσταση των υπόλοιπων εντολών θα δοθεί παρακάτω. Τα λογικά διαγράμματα είναι ένας σχηματικός τρόπος για την παράσταση των αλγορίθμων. Κάθε εντολή παριστάνεται με ένα κουτί και η ροή του προγράμματος δηλώνεται με μια κατευθυνόμενη γραμμή. Βασικά σύμβολα των λογικών διαγραμμάτων είναι τα επόμενα: Το σχήμα αυτό χρησιμοποιείται για να δηλώσει την αρχή ή το τέλος του λογικού διαγράμματος. Στο εσωτερικό του γράφουμε BEGIN ή END αντίστοιχα. Το παραλληλόγραμμο χρησιμοποιείται για την είσοδο και έξοδο δεδομένων. Στο εσωτερικό του γράφουμε READ ή WRITE αντίστοιχα και τα στοιχεία που θα διαβαστούν ή εμφανιστούν. Το ορθογώνιο χρησιμοποιείται για να περιγράψει μια εντολή, με εξαίρεση την επιλογή. Στο εσωτερικό του γράφεται η εντολή, για παράδειγμα «b=5». Τα σύμβολα των υπόλοιπων εντολών θα δοθούν στις αντίστοιχες παραγράφους. Παράδειγμα 1. Εμβαδό παραλληλογράμμου Το πρώτο πρόγραμμα που θα κατασκευάσουμε υπολογίζει το εμβαδό ενός τυχαίου παραλληλογράμμου. Όπως γνωρίζουμε, το εμβαδό ενός παραλληλογράμμου ισούται με το γινόμενο του μήκους της βάσης του επί το ύψος του. Επομένως τα δεδομένα που θα επεξεργαστεί ο αλγόριθμος είναι το μήκος και το ύψος του παραλληλογράμμου καθώς και το εμβαδό του για καθένα από αυτά απαιτείται μια μεταβλητή, και τις καλούμε αντίστοιχα width, height και surface. Ο αλγόριθμος θα ζητεί από το χρήστη το μήκος και το ύψος του παραλληλογράμμου, κατόπιν θα τα πολλαπλασιάζει ώστε να υπολογίσει το εμβαδό, και τέλος θα εμφανίζει το εμβαδό στην οθόνη. Ο ψευδοκώδικας και το λογικό διάγραμμα που ακολουθούν υλοποιούν αυτή την περιγραφή: 2 4

15 DATA width, height, surface WRITE " ώστε μήκος και ύψος:" READ width, height surface = width * height WRITE "Εμβαδό: ", surface BEGIN WRITE " ώστε μήκος και ύψος:" READ width, height surface = width * height WRITE "Εμβαδό: ", surface END 2.2 Εντολές επιλογής Με τις εντολές επιλογής αποφασίζεται αν θα εκτελεστούν συγκεκριμένα τμήματα ενός αλγορίθμου ανάλογα με συνθήκες που μεταβάλλονται κατά την εκτέλεσή του Απλή επιλογή Η εντολή απλής επιλογής έχει σε ψευδοκώδικα και λογικά διαγράμματα αντίστοιχα τη μορφή IF συνθήκη Εντολές1 ELSE Εντολές2 Εντολές1 YES συνθήκη NO Εντολές2 Η «συνθήκη» είναι μια λογική παράσταση που μπορεί να είναι αληθής ή ψευδής. Αν είναι αληθής εκτελούνται οι εντολές «Εντολές1» ενώ αν είναι ψευδής εκτελούνται οι «Εντολές2». Το τμήμα ELSE της εντολής επιλογής είναι προαιρετικό, δηλαδή υπάρχει η δυνατότητα να μην εκτελεστεί καμία εντολή αν η συνθήκη είναι ψευδής και το πρόγραμμα να συνεχιστεί με τις επόμενες εντολές. Το δηλώνει το τέλος της εντολής IF και διαχωρίζει τις εντολές που της αντιστοιχούν από το υπόλοιπο πρόγραμμα. Παράδειγμα 1. Μέγιστος μεταξύ δύο αριθμών Έστω ότι ο χρήστης δίνει δύο αριθμούς και ζητούμε τον μεγαλύτερο από αυτούς. Ο παρακάτω αλγόριθμος τους συγκρίνει και τυπώνει τον μεγαλύτερο: 2 5

16 DATA x, y, max BEGIN READ x, y IF x > y max = x ELSE max = y WRITE max max = x YES READ x, y x > y NO max = y WRITE max END Παράδειγμα 2. Ταξινόμηση δύο αριθμών Έστω ότι ο χρήστης δίνει δύο αριθμούς x και y. Ζητείται ένα πρόγραμμα που να τοποθετεί τον μεγαλύτερο από αυτούς στη μεταβλητή x και το μικρότερο στην y. Στην περίπτωση αυτή πρέπει να συγκριθούν οι αριθμοί, και αν δεν βρίσκονται στις κατάλληλες θέσεις να εναλλαχθούν στην αντίθετη περίπτωση δεν χρειάζεται να γίνει τίποτε και γιαυτό δεν υπάρχει τμήμα ELSE στην εντολή IF στον ψευδοκώδικα που ακολουθεί. Στον αλγόριθμο που ακολουθεί έχει ενδιαφέρον η διαδικασία εναλλαγής των τιμών των δύο μεταβλητών x και y (οι τρεις γραμμές που εκτελούνται μέσα στο IF): η τιμή του x καταχωρίζεται στη βοηθητική μεταβλητή tmp και κατόπιν «κυκλικά» δίνονται στο x η τιμή του y και στο y η τιμή της tmp, δηλαδή η αρχική τιμή της x. DATA x, y, tmp READ x, y IF x < y tmp = x x = y y = tmp WRITE x, y YES tmp = x x = y y = tmp BEGIN READ x, y x < y NO WRITE x, y END Παράδειγμα 3. Μέγιστος τριών αριθμών Υποθέτουμε ότι δίνονται τρεις αριθμοί και θέλουμε τον μεγαλύτερο από αυτούς. Αυτός θα προκύψει με διαδοχικές συγκρίσεις των αριθμών ανά δύο. Στον παρακάτω ψευδοκώδικα αξίζει να προσεχθεί πώς οι εσοχές τονίζουν τη δομή του αλγορίθμου: οι εντολές που «ανήκουν» σε κάποιο IF ή ELSE ομαδοποιούνται με το να γράφονται πιο μέσα επίσης τα ELSE και στοιχίζονται στην ίδια στήλη με το IF στο οποίο αναφέρονται. DATA a, b, c, max 2 6

17 READ a, b, c IF a > b IF a > c max = a ELSE max = c ELSE IF c > b max = c ELSE max = b WRITE max Πολλαπλή επιλογή Η εντολή πολλαπλής επιλογής είναι μια επέκταση της απλής επιλογής που παρέχεται από πολλές σύγχρονες γλώσσες προγραμματισμού και γιαυτό θα την παρουσιάσουμε εδώ. Η εντολή έχει τη μορφή: SWITCH μεταβλητή CASE τιμή1 : Εντολές1 CASE τιμή2 : Εντολές2 CASE τιμήn : ΕντολέςN DEFAULT : Εντολές END SWITCH τιμή1 τιμή2 μεταβλητή == τιμήν διαφορετικά Εντολές1 Εντολές2... ΕντολέςΝ Εντολές Με την εντολή πολλαπλής επιλογής εξετάζεται η τιμή της «μεταβλητής» και αν είναι μία από τις «τιμή1», «τιμή2»,, «τιμήν» εκτελούνται οι αντίστοιχες εντολές, διαφορετικά εκτελούνται οι εντολές που αντιστοιχούν στο τμήμα DEFAULT. Το τμήμα DEFAULT είναι ανάλογο του ELSE της εντολής IF και, όπως και εκείνο, είναι προαιρετικό. Συχνά όμως το γεγονός ότι η μεταβλητή παίρνει τιμή διαφορετική από αυτές που έχουν προβλεφθεί είναι ένδειξη σφάλματος, και τότε το τμήμα DEFAULT περιλαμβάνει εντολές για την αντιμετώπισή του. Τονίζεται ότι η μεταβλητή που εξετάζεται σε μια εντολή πολλαπλής επιλογής πρέπει να παίρνει διακριτές τιμές, δηλαδή ακέραιους αριθμούς ή γράμματα, ενώ δεν μπορεί να παίρνει τιμές πραγματικούς αριθμούς ή λέξεις, καθώς με αυτούς δεν μπορεί να γίνει επακριβής ή άμεση σύγκριση. Η παραπάνω εντολή πολλαπλής επιλογής είναι ισοδύναμη με τη σειρά εντολών IF : 2 7

18 IF μεταβλητή == τιμή1 Εντολές1 ELSE IF μεταβλητή == τιμή2 Εντολές2 ELSE IF μεταβλητή == τιμήν ΕντολέςΝ ELSE Εντολές Μάλιστα μια τέτοια ακολουθία εντολών IF μπορεί να χρησιμοποιηθεί στην περίπτωση που η μεταβλητή επιλογής δεν επιτρέπεται να χρησιμοποιηθεί σε εντολή SWITCH γιατί παίρνει τιμές πραγματικούς αριθμούς ή γενικότερα μη διακριτού τύπου. Παράδειγμα 1. Εκτύπωση αριθμών Σε ένα πρόγραμμα για την εκμάθηση των αριθμών, το παιδί δίνει ένα αριθμό από 1 ως 5 και το ζητούμε ένα πρόγραμμα που να εμφανίζει την ανάλογη λέξη. Αυτή είναι μια χαρακτηριστική περίπτωση εφαρμογής της εντολής πολλαπλής επιλογής, καθώς έχουμε μια μεταβλητή (τον αριθμό που εισάγεται) που παίρνει ακέραιες τιμές και ανάλογα με την τιμή του πρέπει να γίνει και διαφορετική ενέργεια. DATA n READ n SWITCH n CASE 1 : WRITE "One" CASE 2 : WRITE "Two" CASE 3 : WRITE "Three" CASE 4 : WRITE "Four" CASE 5 : WRITE "Five" DEFAULT : WRITE "Λάθος αριθμός" END SWITCH 2.3 Εντολές επανάληψης Οι εντολές επανάληψης προκαλούν την εκτέλεση μιας σειράς εντολών επαναληπτικά, για όσο διάστημα ισχύει κάποια συνθήκη. 2 8

19 2.3.1 Επανάληψη με συνθήκη στην αρχή Η βασική εντολή επανάληψης είναι η εντολή WHILE. Αυτή έχει την εξής μορφή: WHILE συνθήκη Εντολές END WHILE No συνθήκη Yes Εντολές Η «συνθήκη» εξετάζεται στην αρχή, και αν είναι αληθής εκτελούνται οι «Εντολές». Αφού εκτελεστούν, η «συνθήκη» υπολογίζεται ξανά και αν ισχύει πάλι οι «Εντολές» επαναλαμβάνονται. Ο βρόχος εκτελείται μέχρι η συνθήκη να γίνει ψευδής, και κατόπιν η ροή εκτέλεσης του προγράμματος συνεχίζεται με τις επόμενες εντολές (βέλος «No» στο λογικό διάγραμμα). Είναι προφανές ότι αν η συνθήκη δεν αληθεύει την πρώτη φορά που συναντάται κατά την εκτέλεση του προγράμματος, τότε οι «Εντολές» δεν θα εκτελεστούν καθόλου. Καθώς μεταξύ των διαδοχικών υπολογισμών της «συνθήκης» εκτελούνται μόνο οι «Εντολές», πρέπει αυτές με κάποιο τρόπο να οδηγούν προς την έξοδο από το βρόχο. Για παράδειγμα, αν η συνθήκη εξετάζει αριθμούς που εισάγονται από το χρήστη θα πρέπει μέσα στις «Εντολές» να εισάγεται κάθε φορά ο επόμενος αριθμός αν η συνθήκη εξετάζει την τιμή μιας παράστασης πρέπει να βεβαιωνόμαστε ότι οι υπολογισμοί που γίνονται μέσα στις «Εντολές» δίνουν στην παράσταση τέτοιες τιμές ώστε μετά από κάποιο αριθμό βημάτων να σταματήσουν οι επαναλήψεις. Παράδειγμα 1. Άθροισμα αριθμών Το επόμενο πρόγραμμα διαβάζει αριθμούς που εισάγει ο χρήστης και υπολογίζει το άθροισμά τους. Το τέλος των αριθμών δηλώνεται με την εισαγωγή του 0. DATA number, sum sum = 0 READ number WHILE number!= 0 sum = sum+number READ number END WHILE WRITE sum No BEGIN sum = 0 READ number number!= 0 WRITE sum END Yes sum = sum+number READ number Ο υπολογισμός του αθροίσματος γίνεται καταχωρίζοντας στη μεταβλητή sum το «τρέχον ά- θροισμα»: κάθε αριθμός που διαβάζεται προστίθεται στην τιμή της sum και έτσι κάθε φορά αυτή πε- 2 9

20 ριέχει το άθροισμα των αριθμών που έχουν εισαχθεί μέχρι εκείνο το σημείο με τον τρόπο αυτό στο τέλος του προγράμματος θα περιέχει το συνολικό άθροισμα. Η εντολή απόδοσης τιμής «sum = sum+number» παρουσιάζει ιδιαίτερο ενδιαφέρον καθώς η μεταβλητή sum εμφανίζεται τόσο στα αριστερά όσο και στα δεξιά του «=» και είναι εύλογο να δημιουργηθούν απορίες ως προς την εκτέλεσή της. Όμως αυτό που συμβαίνει κατά την εκτέλεση μιας οποιασδήποτε εντολής απόδοσης τιμής είναι να υπολογίζεται πρώτα η τιμή του δεξιού μέρους της με τις τρέχουσες τιμές των μεταβλητών και κατόπιν, σε ένα δεύτερο στάδιο, αυτή η τιμή να αποδίδεται στη μεταβλητή της οποίας το όνομα είναι στο αριστερό μέρος. Έτσι στην περίπτωση αυτού του παραδείγματος δικαιολογούνται όσα γράψαμε πιο πάνω: σε κάθε βήμα προστίθεται ο αριθμός που διαβάζεται στην τρέχουσα τιμή της sum και το αποτέλεσμα καταχωρίζεται και πάλι στην sum ώστε να χρησιμοποιηθεί στο επόμενο βήμα της επανάληψης. Σημειώνουμε επίσης ότι είναι απαραίτητο να δώσουμε στη μεταβλητή sum αρχική τιμή (ίση με 0, όση το άθροισμα των 0 αριθμών που έχουν εισαχθεί στην αρχή του προγράμματος). Aν δεν το κάνουμε, τότε αυτή θα χρησιμοποιηθεί για πρώτη φορά μέσα στο βρόχο WHILE, αφού διαβαστεί ο πρώτος αριθμός, στη σχέση sum=sum+number. Θα προσπαθήσουμε δηλαδή να προσθέσουμε τον αριθμό number στην τρέχουσα τιμή της sum, η οποία όμως δεν υπάρχει! Στην πράξη, αν τρέχαμε αυτό το πρόγραμμα σε υπολογιστή και παραλείπαμε την απόδοση αρχικής τιμής στη sum, ο υπολογιστής θα της έδινε μια αυθαίρετη τιμή και έτσι το τελικό άθροισμα θα ήταν εντελώς λανθασμένο. Παράδειγμα 2. υνάμεις Να δοθεί αλγόριθμος που υπολογίζει τη σειρά των αριθμών 2 3 n x, x, x,,x όπου x και n είναι ακέραιοι αριθμοί που δίνονται από το χρήστη. Οι ζητούμενες δυνάμεις μπορούν να υπολογιστούν με μια επαναληπτική διαδικασία που θα ε- κτελεστεί n φορές: σε κάθε βήμα μπορούμε να υπολογίσουμε μία δύναμη του x απλώς πολλαπλασιάζοντας την προηγούμενη δύναμη επί x. Ονομάζουμε number τον αριθμό (δύναμη του x) που υπολογίζεται σε κάθε βήμα. Θα χρειαστούμε επίσης μια μεταβλητή, έστω power, με τη βοήθεια της οποίας θα μετρούμε τις δυνάμεις που υπολογίζουμε. DATA x, n, number, power READ x, n number = x power = 1 WHILE power <= n WRITE number number = number * x power = power + 1 END WHILE Παράδειγμα 3. Άθροισμα ψηφίων αριθμού Ζητείται αλγόριθμος που υπολογίζει το άθροισμα των ψηφίων ενός τυχαίου ακεραίου αριθμού. Για παράδειγμα, αν δίνεται ο αριθμός 175 το αποτέλεσμα πρέπει να είναι 1+7+5=13. Παρατηρούμε ότι τα ψηφία του αριθμού μπορούν να προκύψουν ως υπόλοιπα διαδοχικών διαιρέσεών του με το 10 (σε αντίστροφη σειρά, αλλά κάτι τέτοιο δεν μας επηρεάζει). Για τον παραπάνω αριθμό θα έχουμε: (Ο τελεστής % συμβολίζει το υπόλοιπο της ακέραιας διαίρεσης, και στη δεξιά στήλη γράφουμε τα ακέραια πηλίκα των διαιρέσεων με το 10) 2 10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ; Εντολή επανάληψης Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή Πρόβλημα Πώς θα υπολογίσουμε το άθροισμα των ακέραιων 1 5000; Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

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

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές Ελέγχου. Πρόγραμμα Εντολές Επεξεργασίας Δεδομένων Εντολή Εκχώρησης Εντολές Ελέγχου Λογική συνθήκη Εντολή

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

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

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Συναρτήσεις & Υποπρογράμματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Τμηματικός Προγραμματισμός Η επίλυση ενός προβλήματος διευκολύνεται

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

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης; 10. Τι ονομάζουμε Ευκλείδεια διαίρεση και τέλεια διαίρεση; Όταν δοθούν δύο φυσικοί αριθμοί Δ και δ, τότε υπάρχουν δύο άλλοι φυσικοί αριθμοί π και υ, έτσι ώστε να ισχύει: Δ = δ π + υ. Ο αριθμός Δ λέγεται

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

Επικοινωνία:

Επικοινωνία: Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Επικοινωνία: spzygouris@gmail.com Πως ορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

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

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

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

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

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

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

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

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

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

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

Διαδικασιακός Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

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

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

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

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

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

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007 Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007 ΣΤΑΤΙΣΤΙΚΑ Αποτελέσματα γραπτής εξέτασης στο μάθημα ΑΕΠΠ (Ιούλιος 2007) 18-20 15-17,9 12-14,9 10-11,9 5-9,9 0-4,9 13,96% 13,90% 12,36% 10,19% 28,34% 21,22% ΘΕΜΑ 1

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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