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

Μέγεθος: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

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

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

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

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙ Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος. Στο παρόν κεφάλαιο παρουσιάζονται προβλήματα τα οποία αφορούν κυρίως τις εντολές της C οι οποίες ελέγχουν την ροή εκτέλεσης

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

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 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

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

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

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

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

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

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

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

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΘΕΜΑ 1 ο ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 31 MAΪΟΥ 2007 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ Γ Λυκείου Κατεύθυνσης Mike Trimos Βήματα Ανάπτυξης ενός Συστήματος 1.Ορισμός και κατανόηση του προβλήματος 2.Ανάλυση του προβλήματος 3.Σχεδιασμός Αλγοριθμικής Λύσης 4.Κωδικοποίηση 5.Διόρθωση

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Σ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΝΕΩΝ ΜΟΥΔΑΝΙΩΝ Δευτέρα, 12 Μαΐου 2014 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ:

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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