Κωδικοποίηση δένδρων απόφασης

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

Download "Κωδικοποίηση δένδρων απόφασης"

Transcript

1

2 1 Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης 1.1 Καλά νέα (A) Παλαιότερα, πριν από την εµφάνιση των υπολογιστών,η διεκπεραίωση κάθε εργασίας απαιτούσε την εκτέλεσή της από εµάς τους ίδιους. Σήµερα, όµως, µε τους υπολογιστές, µπορούµε πλέον να εκτελούµε πολλές εργασίες απλώς καταγράφοντας τις ενέργειες που πρέπει να γίνουν. Την υλοποίηση των ενεργειών αναλαµβάνει να την φέρει σε πέρας ένας υπολογιστής. Για παράδειγµα, εάν θέλουµε να προσθέσουµε αριθµούς, να αναζητήσουµε κάποια δεδοµένα, να συντάξουµε και να εκτυπώσουµε ένα έγγραφο, να στείλουµε µηνύµατα σε συναδέλφους, να ελέγξουµε µια βιοµηχανική διεργασία, ή να φέρουµε σε πέρας άλλες εργασίες, µπορούµε να συντάξουµε ένα σύνολο οδηγιών, δηλαδή µια ακολουθία από ενέργειες που πρέπει να γίνουν, και να αναθέσουµε την εκτέλεσή τους σε έναν υπάκουο και ακούραστο υπολογιστή. Μπορούµε επίσης να µοιράσουµε αυτό το σύνολο οδηγιών σε πολλούς υπολογιστές, οι οποίοι θα συνεργαστούν για την υλοποίησή τους. Ακόµη και όταν χρειαστεί οι υπολογιστές να εργαστούν χωρίς την επίβλεψή µας, θα συνεχίσουν να εκτελούν τις ίδιες εργασίες,ακολουθώνταςπιστάτις εντολές που τους έχουµε δώσει. Ηπροετοιµασίακαιησύνταξη ενός τέτοιου συνόλου οδηγιών ονοµάζεται προγραµ- µατισµός (programming), και οδηγεί σε «πολλαπλασιασµό εργασίας» ο οποίος αλλάζει ριζικά τις δοµές της ανθρώπινης κοινωνίας. ίνει τη δυνατότητα σε ένα µόνο άτοµο να παραγάγει µε τη βοήθεια των υπολογιστών απεριόριστο πλήθος αποτελεσµάτων καταβάλλοντας πεπερασµένη προσπάθεια (για τη δηµιουργία του σχετικού υπολογιστικού προγράµµατος). Γίνεται λοιπόν φανερό ότι η παραγωγικότητά µας δεν είναι πλέον συνάρτηση µόνον του πλήθους των απασχολούµενων προσώπων είναι συνάρτηση και του πλήθους των διαθέσιµων υπολογιστών. Τα καλά νέα, όµως, δεντελειώνουν εδώ: οι υπολογιστές είναι πλέον σχετικά φθηνοί και επιπλέον το κόστος τους συνεχώς µειώνεται. Πριν από τρεις δεκαετίες, υπολογιστές µε µνήµη λέξεις και χρόνο εκτέλεσης εντολών 1 µικροδευτερόλεπτο (µsec) κόστιζαν 1 εκατοµµύριο δολάρια. Σήµερα µπορούµε να αγοράσουµε έναν υπολογιστή µε εκατονταπλάσια µνήµη και ταχύτητα, µε λίγες χιλιάδες δολάρια. Πληρώνοντας ποσό ίσο µε τον µισθό ενός ανειδίκευτου εργάτη, µπορούµε να αποκτήσουµε έναν υπολογιστή που έχει τη δυνατότητα να διεκπεραιώνει ορισµένες εργασίες ταχύτερα από χίλιους ανθρώπους µαζί. Με τη µελέτη του προγραµµατισµού µέσα από τις σελίδες αυτού του βιβλίου θα κατανοήσουµε πώς µπορεί να επιτευχθεί αυτός ο πολλαπλασιασµός της εργασίας µέσω των υπολογιστών. Θα µελετήσουµε θεµελιώδεις δοµές πληροφοριών και τεχνικές επε-

3 2 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης ξεργασίας µε στόχο να αναπτύξουµε την ικανότητά µας να επισηµαίνουµε και να απο- µονώνουµε την ουσία των προβληµάτων, και να µεταγράφουµετα προβλήµατα αυτάσε κώδικα µηχανής ώστε οι εργασίεςµαςναγίνονται αυτόµατα. εν θα µελετήσουµε τον προγραµµατισµό µε τον συνήθη τρόπο, δηλαδή µέσωτης εκµάθησης όλων των λεπτοµερειών µιας συγκεκριµένης γλώσσας προγραµµατισµού. εν θα αναφερθούµε, για παράδειγµα, στο σύνολο των κανόνων για την τοποθέτηση των σηµείων στίξης, ή στη γενικότερη µορφή κάθε γλωσσικής δοµής, ούτε θα εξετάσουµε το µέγιστο πλήθος χαρακτήρων που επιτρέπονται στα ονόµατα µεταβλητών, ή τα µέγιστα επιτρεπόµενα µεγέθη αριθµών και συµβολοσειρών. Αντίθετα, θα προσπαθήσουµε να αποκοµίσουµε όλη την απόλαυση που πηγάζει από τη µελέτη και τη δηµιουργία απλών προγραµµάτων, παρακάµπτοντας κατά το δυνατόν την κουραστική εµµονή στη συντακτική ακρίβεια και την εξαντλητική περιγραφή. Στα παραδείγµατακαι στις ασκήσειςχρησιµοποιούµε τη γλώσσα προγραµµατισµού Pascal. Ωστόσο, θα περιοριστούµε σε ένα υποσύνολο των στοιχείων της γλώσσας αυτής, ώστε ο φόρτος της εκµάθησής της από τον αναγνώστη να παραµείνει σε λογικά πλαίσια. Εάν καλύπταµε το σύνολο των δυνατοτήτων της Pascal, δεν θα µας έµενε καθόλου χρόνος να αναφερθούµε στο κεντρικό θέµα αυτού του βιβλίου, τις σπουδαίες ιδέες στην επιστήµη των υπολογιστών. Μιας και στο βιβλίο αυτό δίνονται µόνον οι έννοιες που είναι απαραίτητες για την κατανόηση των παρατιθέµενων προγραµµάτων και για τη δηµιουργία προγραµµάτων ανάλογηςδυσκολίας, συνιστάται σε όσους σκοπεύουν να δηµιουργήσουν πιο πολύπλοκα προγράµµατα να προµηθευτούν ένα εγχειρίδιο της Pascal ως βιβλίο µελέτης και αναφοράς. Αφού πρόκειται να µελετήσουµε προγραµµατισµό, θα πρέπει προφανώς να προγραµ- µατίσουµε κάτι. Θα ήταν καλό να γράψουµε προγράµµατα που να περιλαµβάνουν κάποιες χρήσιµες δοµές επεξεργασίας πληροφοριών. Θα ήταν επίσης σκόπιµο και χρήσιµο να γράψουµε πολλά είδη προγραµµάτων, φροντίζοντας όµως να έχουν αρκετά απλή δοµή ώστε να µπορεί να τα κατανοήσει και να τα συντάξει εύκολα ένας αρχάριος. Θα θέλαµε ακόµη να εξοικειωθούµε µε ορισµένες θεµελιώδεις έννοιες που είναι απαραίτητες για µια πιο προχωρηµένη µελέτη. Με βάση αυτά, επιλέγουµε ως πρώτο πεδίο της µελέτης µας τα δένδρα απόφασης (decision trees). Τα δένδρα αυτά µπορούν να χρησιµοποιηθούν για ταξινόµηση αντικειµένων σε κατηγορίες, για τυπική αξιολόγηση προσώπων υπό τη µορφή συνέντευξης και για πολλά άλλα πράγµατα. Αρχικά θα µελετήσουµε τα δένδρα απόφασης, και στη συνέχεια θα µάθουµε πώς να συντάσσουµε προγράµµατα γι αυτά. 1.2 ένδρα απόφασης (B) Ας υποθέσουµε ότι θέλουµε να αποφασίσουµε ποιο βιβλίο να υποδείξουµε σε κάποιον που ενδιαφέρεται να αρχίσει σπουδές στην επιστήµη των υπολογιστών. Ένας καλός τρόπος να καταλήξουµε σε µια απόφαση είναι να απευθύνουµε στον ενδιαφερόµενο µια σειρά από ερωτήσεις µέσω των οποίων θα καταλήξουµε στο κατάλληλο βιβλίο. Η πρώτη ερώτηση θα µπορούσε να αφορά τον προτιµώµενο τρόπο προσέγγισης των θεµάτων της επιστήµης των υπολογιστών, π.χ. αν θα ήθελε να ακολουθήσει µια µαθηµατική προσέγγιση. ιατυπώνουµε, λοιπόν, τη σχετική ερώτηση και στη συνέχεια δηλώνουµε µε βέλη την κατεύθυνση που θα ακολουθήσουµε για την επόµενη ερώτηση: Δένδρο απόφασης για υπόδειξη βιβλίου:

4 1.2. ένδρα απόφασης 3 Στη συνέχεια, ανάλογα µε την πρώτη απάντηση, αποφασίζουµε τι ερωτήσεις θα πρέπει να τεθούν αµέσως µετά: Δένδρο απόφασης για υπόδειξη βιβλίου: Ας υποθέσουµε ότι µετά από δύο ερωτήσεις είµαστε σε θέση να υποδείξουµε το κατάλληλο βιβλίο. Στην περίπτωση αυτή, το δένδρο απόφασης µπορεί να συµπληρωθεί ως εξής: Δένδρο απόφασης για υπόδειξη βιβλίου: Ακολουθώντας µια διαδροµή στο δένδρο απόφασης, µπορούµε να καταστρώσουµε έναν ενδεικτικό «διάλογο». Εάν το συγκεκριµένο πρόσωπο έχει µαθηµατικό προσανατολισµό µε ενδιαφέρον στα θεωρητικά θέµατα, η διαδροµή διά µέσου του δένδρου έχει ως εξής: Επιλογή βιβλίου µε θέµα την επιστήµη των υπολογιστών: Ερώτηση του δένδρου απόφασης: Απάντηση: Ερώτηση του δένδρου απόφασης: Απάντηση: Υπόδειξη του δένδρου απόφασης: Επιθυµείτε µια µαθηµατική προσέγγιση; Ναι Σας ενδιαφέρει ο προγραµµατισµός ή τα θεωρητικά θέµατα; Θεωρητικά θέµατα Μια καλή επισκόπηση δίδεται στο βιβλίο Algorithmics του D. Harel. Το παραπάνωδένδρο µάς οδηγεί στην τελική απόφαση µετά από δύο µόνο διαδοχικές ερωτήσεις. Εύκολα όµως µπορεί να φανταστεί κανείς ένα µεγάλο δένδρο µε πολλές ερωτήσεις και µεγάληποικιλία συνιστώµενων βιβλίω ν στο τέλος των διαφόρων διαδρο- µών. Είναι επίσης προφανές ότι δένδρα αυτού τουτύπουµπορούν να χρησιµοποιηθούν

5 4 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης για παροχή συµβουλών σχεδόν για οποιοδήποτε ζήτηµα, από την υπόδειξη µιας θεραπευτικής αγωγής µέχρι την πρόβλεψη του µέλλοντος. Ιδού µερικά παραδείγµατα: Δένδρο απόφασης για την παροχή ιατρικής συµβουλής: Δένδρο απόφασης για πρόβλεψη του µέλλοντος: Τα δένδρα απόφασης µπορούν επίσης να χρησιµοποιηθούν για την ταξινόµηση διαφόρων πραγµάτων σε κατηγορίες. Ας υποθέσουµε ότι γνωρίζουµε τα ταξινοµικά χαρα-

6 1.2. ένδρα απόφασης 5 κτηριστικά των διαφόρων ειδών γλάρων και επιθυµούµε να προσδιορίσουµε µε ακρίβεια το είδος οποιουδήποτε ατόµου µε βάση τα χαρακτηριστικά του. Θα µπορούσαµε να κατασκευάσουµε ένα δένδρο της παρακάτωµορφής: Δένδρο απόφασης για ταξινόµηση γλάρων: Μπορούµε ακόµη να κατασκευάσουµε έναν οδηγό για τη συµπλήρωση της φορολογικής µας δήλωσης, µε τη µορφή δένδρου απόφασης. Ας δούµε τι µορφή θα είχε ένα µικρό τµήµα του: Οδηγός για τη συµπλήρωση φορολογικής δήλωσης: Τι θα λέγατε να κατασκευάσουµε ένα δένδρο απόφασης για ένα παιγνίδι; Ένα καλό παράδειγµα είναι το απλό παιγνίδι Nim, το οποίο έχει τους εξής κανόνες: Το παιγνίδι παίζεται από δύο παίκτες. Ο πρώτος παίκτης µπορεί να τοποθετήσει από ένα έως τρία Χστοαριστερό άκρο µιας οριζόντιας σειράς από τετράγωνα, την οποία θα ονοµάζουµε πίνακα. Ο αντίπαλος µπορεί να τοποθετήσει από ένα έως τρία Ο στα αµέσως επόµενα τετράγωνα του πίνακα. Αυτή η διαδοχή κινήσεων επαναλαµβάνεται συνεχώς, µέχρι να συµπληρωθεί ο πίνακας από αριστερά προς τα δεξιά µε Χ και Ο. Νικητής είναι ο παίκτης που θα καταφέρει να τοποθετήσει το δικό του σύµβολο στο τελευταίο τετράγωνο

7 6 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης του πίνακα. Για παράδειγµα, ας θεωρήσουµε ένα παιγνίδι Nim µε πίνακα µήκους επτά τετραγώνων: Έστωότι ο πρώτος παίκτης παίζει τρία Χ: Ας υποθέσουµε ότι ο δεύτερος παίκτης παίζει δύο Ο: Τότε ο πρώτος παίκτης µπορεί να κερδίσει το παιγνίδι τοποθετώντας δύο Χ στα δύο τελευταία τετράγωνα: Ας δούµε τώρα ένα δένδρο απόφασης που θα παίξει τον ρόλο του δεύτερου παίκτη για ένα παιγνίδι Nim µε επτά τετράγωνα: Δένδρο απόφασης για το παιγνίδι Nim:

8 1.3. Τα πρώτα βήµατα στον προγραµµατισµό 7 Στη φύση, τα δένδρα φυτρώνουν από το έδαφος και αναπτύσσονται απλώνοντας τα κλαδιά τους προς τον ουρανό. Τα δένδρα αυτού του κεφαλαίου, για λόγους καλύτερης εποπτείας, αναπτύσσονται από τα αριστερά προς τα δεξιά. Οι διαδροµές που θα εξετάσουµε σε αυτά τα δένδρα ξεκινούν από το ακραίο αριστερό παραλληλόγραµµο, τη ρίζα (root node), και συνεχίζονται προς τα δεξιά. Σε κάθε κόµβο (node) του δένδρου υποβάλλεται µια ερώτηση στον χρήστη, και µε βάση την απάντηση που δίνεται επιλέγεται οεπόµενοςκλάδοςπουθα ακολουθηθεί. Η διαδροµή συνεχίζεται προς τα δεξιά µέχρι την άφιξη σε κάποιον τερµατικό κόµβο ή φύλλο (leaf node), δηλαδή έναν κόµβο που δεν έχει διακλαδώσεις προςταδεξιά.αυτόςοκόµβοςπεριέχει ένα µήνυµα το οποίο δίνει το αποτέλεσµα της ακολουθίας των ερωταποκρίσεων και σηµατοδοτεί το τέλος της διαδικασίας. Τέτοια δένδρα απόφασης έχουν πληθώρα εφαρµογών σε δραστηριότητες που απαιτούν επεξεργασία πληροφοριών, όπως είναι η παροχή συµβουλών, η ταξινόµηση αντικειµένων, η διδασκαλία, ακόµη και η ψυχαγωγία (παιχνίδια). Ο στόχος µας στο κεφάλαιο αυτό είναι η σύνταξη προγραµµάτων τα οποία θα καταγράφουν τη δοµή κάποιου δένδρου απόφασης, θα κατευθύνουν τον χρήστη στις σωστές διαδροµές και θα εκτυπώνουν τα αποτελέσµατα. Η ικανότητα σχεδιασµού και προγραµµατισµού τέτοιων δένδρων είναι ένα σηµαντικό προσόν για ένα µεγάλο πλήθος εφαρµογών. Ασκήσεις 1. Συµπληρώστε ένα από τα ηµιτελή δένδρα απόφασης αυτής της ενότητας. 2. Σχεδιάστε ένα πλήρες δένδρο απόφασης που να υποδύεται τον δεύτερο παίκτη σε ένα παιγνίδι Nim µε εννέα τετράγωνα. 3. Εντοπίστε ένα πρόβληµα σε κάποιον τοµέα των προσωπικών σας ενδιαφερόντων και σχεδιάστε ένα δένδρο απόφασης που να επιλύει το πρόβληµα αυτό. 1.3 Τα πρώτα βήµατα στον προγραµµατισµό (B) Ένα πρόγραµµα (computer program) είναι µια ακολουθία εντολών που µπορεί να εκτελέσει ένας υπολογιστής. Πρόκειται για µια αλληλουχία ενεργειών τις οποίες θα φέρει σε πέρας ο υπολογιστής και, εποµένως, θα πρέπει να είναι γραµµένες σε γλώσσα κατανοητή από τον υπολογιστή. Τα περισσότερα προγράµµατα αυτού του βιβλίου είναι γραµ- µένα στην Pascal, µια γλώσσα αρκετά διαδεδοµένη και εύχρηστη. Ένα πρόγραµµα ή ένα τµήµα προγράµµατος ονοµάζεται επίσης κώδικας (code). Στο βιβλίο αυτό χρησιµοποιούµε και τους δύο όρους. Ας δούµε ένα παράδειγµα προγράµµατος γραµµένου σε Pascal. program FirstCode; writeln(' Σπουδαίες ιδέες '); writeln(' στην '); writeln('επιστήµη των υπολογιστών'); Εάν θέλουµε να πραγµατοποιηθούν οι ενέργειες που περιγράφονται στο παραπάνω πρόγραµµα, εκτελούµε (ή τρέχουµε, όπω ς επίσης λέγεται) το πρόγραµµα στον υπολογιστή. Για την εκτέλεση του προγράµµατος απαιτούνται τα εξής: ένας υπολογιστής, λογισµικό (software) που επιτρέπει στον υπολογιστήµαςνα«καταλαβαίνει» και να επεξεργάζεται προγράµµατα Pascal,

9 8 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης ένα εγχειρίδιο χρήσης µε οδηγίες για να θέσουµε σε λειτουργία τον υπολογιστή µας, ένας δάσκαλος ή φίλος µε εµπειρία στη χρήση υπολογιστών. Για την εκτέλεση του παραπάνωπρογράµµατος µπορεί να χρησιµοποιηθεί οποιοδήποτε µοντέλο υπολογιστή, αρκεί να είναι εφοδιασµένο µε τη γλώσσα προγραµµατισµού Pascal. Τα δύο πιο δηµοφιλή µοντέλα, όµως, είναι ο Macintosh της Apple και ο Personal Computer της IBM. 1 Κάθε υπολογιστής έχει τη δική του γλώσσα µηχανής, και ως εκτούτουµαςχρειάζεται ένα σύστηµα λογισµικού που να µπορεί να µεταφράζει τη γλώσσα της επιλογής µας, εν προκειµένωτηνpascal, στη γλώσσα µηχανής του υπολογιστή. Η µετάφραση γίνεται µε ένα πρόγραµµα που ονοµάζεται µεταγλωττιστής (compiler), το οποίο συνήθως µπορεί να το προµηθευτεί κανείς από ένα κατάστηµα υπολογιστών. Τα παραδείγµατα του βιβλίου αυτού έχουν γραφεί στην Turbo Pascal, µια «διάλεκτο» της Pascal που έχει αναπτυχθεί από την εταιρεία Borland International. Εάν επιλέξουµε κάποιο άλλο σύστηµα Pascal, θα διαπιστώσουµε ενδεχοµένως ότι τα περισσότερα προγράµµατα εκτελούνται χωρίς να απαιτείται καµία τροποποίηση. Για παράδειγµα, η Think Pascal σε υπολογιστές Apple Macintosh εκτελείται όπως η Turbo Pascal εκτός από ελάχιστες εντολές, στις περισσότερες από τις οποίες θα αναφερθούµε όταντις συναντήσουµε σε επόµενα κεφάλαια. Για άλλα συστήµατα της Pascal, πιθανόν να χρειαστείτε τη βοήθεια κάποιου ειδικού για να εκτελέσετε κάποια από τα προγράµµατα, καθώς υπάρχουν σηµαντικές διαφορές. Το εγχειρίδιο χρήσης είναι απαραίτητο γιατί θα σας υποδείξει πώς θα θέσετε σε λειτουργία τον υπολογιστή σας και πώς θα πληκτρολογήσετε και θα εκτελέσετε το πρόγραµµά σας. Τέλος, ο δάσκαλος ή ο φίλος χρειάζεται για να σας πει όσα δεν αναφέρονται στο εγχειρίδιο. Στην επιστήµη των υπολογιστών, όπως και σε πολλές άλλες επιστήµες, ορισµένα από τα σπουδαιότερα «µυστικά» κοινωνούνται µόνο µέσω του προφορικού λόγου. Πιθανόν να τα καταφέρετε και χωρίς αυτή τη βοήθεια, αλλά εάν την εξασφαλίσετε το έργο σας µάλλον θα απλοποιηθεί αρκετά. Για να αποκοµίσετε το µέγιστο δυνατό όφελος από αυτό το κεφάλαιο, θα πρέπει να πληκτρολογήσετε και να εκτελέσετε µερικά από τα προγράµµατα που παρατίθενται σε αυτό, και να µελετήσετε τα αποτελέσµατά τους. Για παράδειγµα, εάν εκτελέσετε το ενδεικτικό πρόγραµµα που δίνεται πιο πάνω, θα εµφανιστεί στην οθόνη σας το εξής αποτέλεσµα: Σπουδαίες ιδέες στην επιστήµη των υπολογιστών Από ορισµένες απόψεις, το πρόγραµµα αυτό είναι πολύ απλό. Υπάρχουν όµως πολλές λεπτοµέρειες σχετικές µε τη µορφή και την εκτέλεσή του που χρειάζεται να αποσαφηνιστούν: η συγκρότηση του προγράµµατος από εντολές, η σειρά εκτέλεσης των εντολών, το νόηµα και η δοµή τους. Μορφή του προγράµµατος Τα κύρια µέρη αυτού του προγράµµατος είναι η επικεφαλίδα (header), η ειδική λέξη («έναρξη»), µια σειρά από εντολές ακολουθούµενες από τον χαρακτήρα «;» (η άνωτελεία στην αγγλική γλώσσα), και η ειδική λέξη («λήξη») ακολουθούµενη από µια τελεία που σηµατοδοτεί το τέλος του προγράµµατος. Η επικεφαλίδα θα πρέπει να αρχίζει πάντοτε µε τη λέξη program («πρόγραµµα»), και περιλαµβάνει επίσης το όνοµα του προγράµµατος (που το επιλέγει ο χρήστης) ακολουθούµενο από τον χαρακτήρα «;». Έτσι, η πρώτη γραµµή 1 Σ.τ.Μ.: Θα πρέπει να σηµειωθεί ότι η ραγδαία εξέλιξη της τεχνολογίας των υπολογιστών οδηγεί στην ανάπτυξη νέων και ολοένα ισχυρότερων µοντέλων, γεγονός που έχει ως αποτέλεσµα την απαξίωση σε σύντοµο χρονικό διάστηµα των εκάστοτε δηµοφιλών µοντέλων.

10 1.3. Τα πρώτα βήµατα στον προγραµµατισµό 9 program FirstCode; δηλώνει στον υπολογιστή ότι έχουµε ένα πρόγραµµα που ονοµάζεται «FirstCode». Η δεύτερη γραµµή λέει στον υπολογιστή ότι ακολουθούν οι εντολές του προγράµµατος. Στη συνέχεια, έχου- µε τέσσερεις γραµµές, µε µία εντολή σε κάθε γραµµή. Η τελευταία γραµµή δηλώνει στον υπολογιστή το τέλος του προγράµµατος. Το πρόγραµµα Σχόλια program FirstCode; Επικεφαλίδα του προγράµµατος Ένδειξη ότι ακολουθούν εντολές writeln( Σπουδαίες ιδέες ); Εντολή ακολουθούµενη από «;» writeln( στην ); Εντολή ακολουθούµενη από «;» writeln( επιστήµη των υπολογιστών ); Εντολή ακολουθούµενη από «;» Εντολή ακολουθούµενη από «;» Το πρόγραµµα έχει ολοκληρωθεί Εντολές Κάθε εντολή του προγράµµατοςαποτελείµιαξεχωριστήοδηγία στον υπολογιστή. Στην ελληνική γλώσσα αντιστοιχεί σε µια προστακτική πρόταση. Λέει στον υπολογιστή «κάνε αυτό». Στο παράδειγµά µας υπάρχουν τέσσερεις εντολές. Η πρώτη είναι: writeln(' Σπουδαίες ιδέες ') και λέει στον υπολογιστή να τυπώσει στην οθόνη τις λέξεις «Σπουδαίες ιδέες». Πριν και µετά από αυτές τις λέξεις έχουµε πληκτρολογήσει κάποια κενά διαστήµατα, για λόγους στοίχισης. (Η εντολή writeln είναι συντοµογραφία του «write a line», και σηµαίνει «γράψε µια γραµµή».) Κάθε εντολή σε ένα πρόγραµµα ακολουθείται συνήθως από τον χαρακτήρα «;». Έτσι, η πλήρης εντολή έχει την εξής µορφή: writeln(' Σπουδαίες ιδέες '); Ηδεύτερηκαιητρίτη εντολή είναι επίσης εντολές writeln. Η τέταρτη εντολή,readln (συντοµογραφία του «read a line», που σηµαίνει «διάβασε µια γραµµή»), ζητά από τον υπολογιστή να σταµατήσει και να περιµένει από τον χρήστη να πληκτρολογήσει κάτι. Αυτή η εντολή δεν είναι απαραίτητη για το πρόγραµµα ο ρόλος της είναι απλώς να αναγκάσει τον υπολογιστή να σταµατήσει και να περιµένει προτού κάνει οτιδήποτε άλλο. Χωρίς την εντολή readln, σε ένα τυπικό σύστηµα της TurboPascal οι τρεις γραµµές θα τυπώνονταν γρήγορα στην οθόνη και το πρόγραµµα θα τερµατιζόταν πριν προλάβουµε να διαβάσουµε τι έχει γραφεί. Τα περισσότερα προγράµµατα σε αυτό το βιβλίο θα περιέχουν µια εντολή readln πριν από τη δήλωση λήξης, δηλαδή πριν από το,ώστεναέχουµετηδυνατότητα να µελετήσουµε τα εµφανιζόµενα µηνύµατα προτού τερµατιστεί το πρόγραµµα. Έτσι, στο παράδειγµά µας, µετά από την εµφάνιση των τριών γραµµών το πρόγραµµα θα σταµατήσει, περιµένοντας από τον χρήστη να γράψει κάτι. Μόλις ο χρήστης πληκτρολογήσει οτιδήποτε (συνήθως ένα απλό Return ή Enter), το πρόγραµµα τερµατίζει.

11 10 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης Εκτέλεση του προγράµµατος Ηλειτουργίατου υπολογιστή συνίσταται στην εκτέλεση των εντολών του προγράµµατος µε τη σειρά που εµφανίζονται στο πρόγραµµα. Η εκτέλεση ακολουθεί πάντα τη σειρά παράθεσηςτων εντολών, εκτόςανυπάρχουνειδικέςεντολέςπουεπιβάλλουν παρέκκλιση από τη σειρά αυτή. Νόηµα και δοµή των εντολών Ηεντολή writeln(' Σπουδαίες ιδέες '); αποτελείται από δύο µέρη: το συντακτικό µέρος, που καθορίζει επακριβώς τη σωστή αλληλουχία χαρακτήρων της εντολής, δηλαδή τον σωστό τρόπο γραφής της, και κάποια δεδοµένα που έχει εισαγάγει ο προγραµµατιστής: Ηεντολήορίζειστονυπολογιστή να γράψει τους χαρακτήρες που υπάρχουν µεταξύ των εισαγωγικών, και στη συνέχεια να προχωρήσει στην επόµενη γραµµή του προγράµµατος. Όταν το πρόγραµµα εκτελεστεί, η εντολή writeln θα εµφανίσει τους χαρακτήρες στην οθόνη του υπολογιστή. Όταν πληκτρολογείτε ένα πρόγραµµα, θα πρέπει να φροντίζετε ώστε το συντακτικό µέρος κάθε εντολής να είναι σωστό. εν επιτρέπεται κανενός είδους τυπογραφικό λάθος. Κανένα από τα παρακάτωπρογράµµατα δεν θα εκτελεστεί κανονικά, διότι έχει παραβιαστεί κάπου η ορθότητα της σύνταξης: program FirstCode; writein(' Σπουδαίες ιδέες '); writeln(' στην '); writeln('επιστήµη των υπολογιστών'); (Στην πρώτη εντολή writeln υπάρχει τυπογραφικό λάθος.) program FirstCode; writeln(' Σπουδαίες ιδέες '); writeln(' στην ') writeln('επιστήµη των υπολογιστών'); (Στο τέλος της δεύτερης εντολής writeln λείπει ένας χαρακτήρας «;».) program FirstCode; please writeln(' Σπουδαίες ιδέες '); writeln(' στην '); writeln('επιστήµη των υπολογιστών');

12 1.3. Τα πρώτα βήµατα στον προγραµµατισµό 11 (Η λέξη «please» (= παρακαλώ) δεν έχει θέση στο συγκεκριµένο σηµείο.) Οιπερισσότερες γλώσσες προγραµµατισµούέχουναυστηρούς κανόνες σύνταξης, αν και ορισµένες επιτρέπουν κάποια ελαστικότητα. Στο µέλλον οι γλώσσες θα είναι κατά πάσα πιθανότητα λιγότερο αυστηρές. Εάν η σύνταξη της εντολής είναι σωστή, το πρόγραµµα θα την εκτελέσει ανεξάρτητα από τα δεδοµένα που περιέχει. Εποµένως, το επόµενο πρόγραµµα θα εκτελεστεί κανονικά. program FirstCode; writeln(' Πηγαίες ίδιες '); writeln(' στον '); writeln('e#7a-%%* '); Ουπολογιστήςδενέχειτρόπονακρίνειτηνορθότητα των δεδοµένων, και εποµένως θα εκτελέσει ευπειθώς τις εντολές, ανεξάρτητα από το περιεχόµενό τους. Θα κάνει ακριβώς ό,τι του λέµε, ακόµη και εάν αυτό δεν συµπίπτει µε ό,τι θα θέλαµε. Μια αλλαγή που δεν επηρεάζει την ορθότητα ενός προγράµµατος είναι η εισαγωγή κενών διαστηµάτων. Στα περισσότερα σηµεία ενός προγράµµατος µπορούν να παρεµβληθούν κενά διαστήµατα χωρίς να µεταβάλουν τη συµπεριφορά του. Το πρόγραµµα που ακολουθεί είναι ισοδύναµο µε το αρχικό. Παρά την κενή γραµµή και τα περιττά κενά διαστήµατα, θα εκτελεστεί χωρίς κανένα πρόβληµα. program FirstCode; writeln (' Σπουδαίες ιδέες '); writeln(' στην '); writeln('επιστήµη των υπολογιστών'); Φυσικά, θα πρέπει να αποφεύγετε να γράφετε προγράµµατα µε τέτοια άναρχη στοιχειοθεσία, καθώς µε τον τρόπο αυτό γίνονται ιδιαίτερα δυσανάγνωστα. Όµως, αυτό το παράδειγµα δείχνει την πλήρη ελευθερία που έχετε να µετακινείτε και να τοποθετείτε εντολές σε διάφορα σηµεία της σελίδας διαµορφώνοντας την εµφάνιση του προγράµµατός σας κατά βούληση. Ωστόσο, δεν θα πρέπει να παρεµβάλετε κενά διαστήµατα στο µέσο των ειδικών λέξεων, όπως ή,ήσεονόµατα ή δεδοµένα. Σε αυτήν την ενότητα µελετήσαµε ένα πρόγραµµα που τυπώνει τρεις γραµµές και τερµατίζει. Η πλήρης κατανόηση αυτού του απλού κώδικα αποτελεί ένα τεράστιο βήµα για την κατανόηση όλων των υπολογιστικών προγραµµάτων. Έχει µεγάλη σηµασία να καταλάβουµε τη µορφή των προγραµµάτων και την έννοια της εντολής ως θεµελιώδους µονάδας οδηγίας στον υπολογιστή. Κάθε εντολή προδιαγράφει µια ενέργεια, και κάθε ακολουθία εντολών προδιαγράφει µια ακολουθία ενεργειών και τη σειρά εκτέλεσής τους. Η σύνταξη της κάθε εντολής είναι αυστηρή και απαρέγκλιτη, µε µόνη εξαίρεση τη δυνατότητα παρεµβολής κενών διαστηµάτων µεταξύ των διαφόρων µερών της. Το πρόγραµµα που ακολουθεί τυπώνει και αυτό κάποιο µήνυµα:

13 12 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης program SecondCode; writeln('*****************************'); writeln('* *'); writeln('* δένδρα απόφασης *'); writeln('* *'); writeln('*****************************'); Στο σηµείο αυτό,θαπρέπειπλέον ναείστεέτοιµοινα γράψετεπρογράµµαταπουνα τυπώνουν στην οθόνη σχεδόν οτιδήποτε. Ασκήσεις 1. Γράψτε ένα πρόγραµµα που να τυπώνει το όνοµά σας και τη διεύθυνσή σας. 2. Γράψτε ένα πρόγραµµα που να τυπώνει τη λέξη ΕΙΡΗΝΗ στην ακόλουθη µορφή: EEEEE III PPPP H H N N H H E I P P H H NN N H H EEE I PPPP HHHHH N N N HHHHH E I P H H N NN H H EEEEE III P H H N N H H 3. Σχεδιάστε ένα σπίτι στο δάσος µε ένα µονοπάτι που να οδηγεί στην πόρτα του. Αποδώστε το σχέδιο µε µια κατάλληλη διάταξη χαρακτήρων, όπως στη λέξη ΕΙΡΗΝΗ παραπάνω, και γράψτε ένα πρόγραµµα για να το τυπώσετε στην οθόνη. 1.4 Ανάγνωση και αποθήκευση δεδοµένων (B) Στην προηγούµενη ενότητα εισαγάγαµε την έννοια των δεδοµένων των πληροφοριών που διαχειρίζεται ένα πρόγραµµα. Στα παραδείγµατα που δόθηκαν, τα δεδοµένα ήταν συµβολοσειρές (strings), δηλαδή ακολουθίες χαρακτήρων. Παραδείγµατα συµβολοσειρών είναι τα εξής: «επιστήµη των υπολογιστών», «***************», «E#7a-%%*». Σε αυτήν την ενότητα θα δούµε πώς µπορούµε να εισαγάγουµε στο πρόγραµµά µας δεδοµένα από το πληκτρολόγιο, δηλαδή πώς ο υπολογιστής µπορεί να διαβάζει ακολουθίες χαρακτήρων που δίνονται µέσω του πληκτρολογίου και να αποθηκεύει τα δεδοµένα αυτά στη µνήµη του. Πριν µελετήσουµε όµως την εντολή ανάγνωσης, είναι απαραίτητο να πούµε κάποια πράγµατα για τις θέσεις µνήµης του υπολογιστή. Τις θέσεις αυτές µπορείτε να τις φαντάζεστε σαν ταχυδροµικές θυρίδες στις οποίες έχετε δώσει ονόµατα και όπου µπορείτε να αποθηκεύσετεπληροφορίες ήαπό όπουµπορείτε να ανακτήσετεαποθηκευµένεςπληροφορίες. Για παράδειγµα, µπορείτε να έχετε µια θέση µνήµης την οποία έστωότι έχετε ονοµάσει «position1», για την αποθήκευση µιας συµβολοσειράς. Στη συνέχεια µπορείτε να αποθηκεύσετε δεδοµένα στη θέση αυτή και να τα χρησιµοποιήσετε µε διάφορους τρόπους. Μπορείτε π.χ. να δώσετε στον υπολογιστή την εντολή να καταχωρίσει δεδοµένα στη θέση position1 ή να µεταφέρει τα δεδοµένα από τη θέση position1 σε κάποια άλλη θέση. Οσωστόςτρόπος για να δηλωθεί στη γλώσσα Pascal η δέσµευση µιας τέτοιας θέσης είναι µε τη δήλωση,ωςεξής:

14 1.4. Ανάγνωση και αποθήκευση δεδοµένων 13 position1: string; Ηδήλωση αυτή λέει στον υπολογιστή να δεσµεύσει στη µνήµη µια θέση µε όνοµα «position1» για να φιλοξενήσει µια συµβολοσειρά η ονοµασία position1 λέγεται µεταβλητή (iable). Η δήλωση τοποθετείται µετά την επικεφαλίδα του προγράµµατος. Από τη στιγµή πουέχειδεσµευτείµια τέτοια θέση στη µνήµη, µπορείτε να διαχειρίζεστε το περιεχόµενό της ή να παραπέµπετε σεαυτόµέσωεντολών. Η νέα εντολή που θα µελετήσουµε έχει τη µορφή readln(position1) και σηµαίνει: 1. Πάρε τους χαρακτήρες που δίδονται από το πληκτρολόγιο (το τέλος της ακολουθίας χαρακτήρων καταδεικνύεται µε το πλήκτρο Return). 2. Καταχώρισε αυτή την ακολουθία χαρακτήρων στη θέση µε το όνοµα position1.(οι χαρακτήρες θα εµφανίζονται και στην οθόνη καθώς πληκτρολογούνται.) Υποθέστε ότι ο υπολογιστής εκτελεί την εντολή readln(position1) και ότι ο χρήστης πληκτρολογεί τη φράση «Μια προσιτή εισαγωγή» (χωρίς όµως τα εισαγωγικά και ακολουθούµενη από το πλήκτρο Return). Τότε, η θέση µνήµης µε το όνοµα «position1» θα λάβει την πληροφορία µε τον τρόπο που φαίνεται στο σχήµα: Εποµένως, µια απλή µέθοδος για να αποθηκεύσουµε µια πληροφορία στη µνήµη του υπολογιστή είναι η εξής: Κατ αρχάς, εισάγουµε στο πρόγραµµα µια δήλωση για να δηµιουργήσουµε και να ονοµατίσουµε µια θέση µνήµης. Στη συνέχεια γράφουµε µια εντολή readln για να δεχθεί ο υπολογιστής τους χαρακτήρες που πληκτρολογούµε και να τους καταχωρίσει στη θέση αυτή. Τέλος, εάν επιθυµούµε να ελέγξουµε κατά πόσο τα δεδοµένα καταχωρίστηκαν στη σωστή θέσηµνήµης,θαπρέπει να δώσουµε µια εντολή εκτύπωσης του περιεχοµένου αυτής της θέσης µνήµης. Το πλήρες πρόγραµµα έχει ως εξής:

15 14 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης program ReadData; position1: string; readln(position1); writeln(position1); Όταν εκτελέσετε το πρόγραµµα, αρχικά αυτό θα περιµένει να πληκτρολογήσετε κάποιους χαρακτήρες. Έστωότιπληκτρολογείτε τη φράση Πολύ προσιτή και πατάτε το πλήκτρο Return. Η φράση αυτή θα αποθηκευτεί στη θέση µνήµης position1. Στη συνέχεια, θα εµφανιστεί στην οθόνη το περιεχόµενο της θέσης position1.τέλος,το πρόγραµµα θα περιµένει να πληκτρολογήσετε κάτι ακόµη, λόγου χάριν το Return, και µετά θα τερµατίσει. Ορισµένες εκδόσεις της Pascal απαιτούν η λέξη string στο προηγούµενο πρόγραµµα να ακολουθείται από έναν ακέραιο αριθµό σε αγκύλες, ο οποίος θα δηλώνει το µέγιστο πλήθος των χαρακτήρων που µπορούν να καταχωριστούν στη δηλούµενη θέση µνήµης. Υποθέστε, για παράδειγµα, ότι στη θέση position1 επιτρέπεται να καταχωριστούν συµβολοσειρές µε µέγιστο µήκος 100 χαρακτήρες. Στην περίπτωση αυτή, η δήλωσηθα είχε την εξής µορφή: position1: string[100]; ΗTurbo Pascal δέχεται συµβολοσειρές µε µέγιστο µήκος 255 χαρακτήρες, εκτός και εάν δηλωθεί ρητά διαφορετικό πλήθος χαρακτήρων. Το πρόγραµµα µπορεί να τροποποιηθείκάπως, ώστε να είναι πιο κατανοητό από τον χρήστη. Μπορούν π.χ. να προστεθούν εντολές writeln για να διευκρινίζεται τι ακριβώς συµβαίνει: program ReadWriteDemo; position1: string; writeln('πληκτρολογήστε κάποια δεδοµένα.'); readln(position1); writeln('τα δεδοµένα έχουν καταχωριστεί.'); writeln('τώρα τα δεδοµένα θα εµφανιστούν στην οθόνη.'); writeln(position1); writeln('ολοκλήρωση της εκτέλεσης.'); Ας εκτελέσουµε αυτό το πρόγραµµα για να βεβαιω θούµε ότι καταλαβαίνουµε τη λειτουργία του:

16 1.4. Ανάγνωση και αποθήκευση δεδοµένων 15 Πληκτρολογήστε κάποια δεδοµένα. Μια εισαγωγή Τα δεδοµένα έχουν καταχωριστεί. Τώρα τα δεδοµένα θα εµφανιστούν στην οθόνη. Μια εισαγωγή Ολοκλήρωση της εκτέλεσης. (πάτηµα πλήκτρου Return) (µήνυµα του υπολογιστή στον χρήστη) (ο χρήστης πληκτρολογεί τα δεδοµένα) (µήνυµα του υπολογιστή στον χρήστη) (µήνυµα του υπολογιστή στον χρήστη) (ο υπολογιστής εκτυπώνει τα δεδοµένα) (µήνυµα του υπολογιστή στον χρήστη) (τέλος δεδοµένων εισόδου) Παρατηρήστε τις δύο διαφορετικές µορφές της εντολής writeln. Εάν χρησιµοποιήσουµε εισαγωγικά, θα εµφανιστούν στην οθόνη οι χαρακτήρες µεταξύ των εισαγωγικών. Έτσι, µε την εντολή writeln('position1') θα εµφανιστούν οι χαρακτήρες «position1» (χωρίς τα διπλά εισαγωγικά). Εάν όµως παραλείψουµε τα εισαγωγικά, ο επεξεργαστήςθαπάειστη θέσηµνήµης µε το όνοµαposition1 και θα εµφανίσει το περιεχόµενό της. Έτσι, η εντολή writeln(position1) θα εµφανίσει στην οθόνη τη φράση «Μια εισαγωγή», εφόσον βέβαια η θέση µνήµης position1 περιέχει αυτή τη συµβολοσειρά. Εάν µε την εντολή writeln ζητείται να εµφανιστεί κάτι που δεν περικλείεται σε εισαγωγικά και δεν είναι δηλωµένο ως θέση µνήµης, τότε έχουµε σφάλµα, όπως στην ακόλουθη περίπτωση: writeln(μια εισαγωγή) Χρησιµοποιώντας έναν συνδυασµό εντολών ανάγνωσης και εκτύπωσης δεδοµένων, µπορούµε να φτιάξουµε ένα απλό διαλογικό πρόγραµµα. Ιδού ένα παράδειγµα. Μπορείτε να καταλάβετε τι κάνει; program GetNameTown; PositionOfName, PositionOfTown: string; writeln('γεια, πες µου το όνοµά σου.'); readln(positionofname); writeln('σε ποια πόλη κατοικείς;'); readln(positionoftown); writeln(positionofname); writeln('πες µου κάτι: Σου αρέσει να κατοικείς στην πόλη'); writeln(positionoftown); writeln(';;;'); Τα ονόµατα των θέσεων µνήµης µπορούν να είναι οποιεσδήποτε συµβολοσειρές, αρκεί να ξεκινούν µε γράµµα του (αγγλικού) αλφαβήτου, να περιλαµβάνουν µόνον αλφαβητικούς και αριθµητικούς χαρακτήρες και να έχουν δηλωθεί κατάλληλα. Για παράδειγµα, θα µπορούσαν να χρησιµοποιηθούν τα ονόµατα A17 και c8zi: program GetNameTown; A17, c8zi: string;

17 16 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης writeln('γεια, πες µου το όνοµά σου.'); readln(a17); writeln('σε ποια πόλη κατοικείς;'); readln(c8zi); writeln(a17); writeln('πες µου κάτι: Σου αρέσει να κατοικείς στην πόλη'); writeln(c8zi); writeln(';;;'); Όσον αφορά τα ονόµατα των θέσεων µνήµης, θα πρέπει να έχουµε υπ όψιν δύο κανόνες: Πρώτον, δεν επιτρέπεται να υπάρχουν κενά διαστήµατα µεταξύ των χαρακτήρων των ονοµάτων. εύτερον, υπάρχει ένα σύνολο δεσµευµένων λέξεων για τη γλώσσα Pascal, οι λέξεις-κλειδιά (keywords), οι οποίες δεν µπορούν ναχρησιµοποιηθούν ως ονόµατα θέσεων µνήµης. Παραδείγµατα τέτοιων λέξεων είναι οι: program,,, if, else, and, or. Γιατονπλήρηκατάλογο αυτών των λέξεων συµβουλευτείτε το εγχειρίδιο της Pascal. Συνήθως, οι προγραµµατιστές δίνουν σε µια θέση µνήµης το όνοµα του αντικειµένου που πρόκειται να καταχωριστεί σε αυτήν. Στο παράδειγµά µας, οι θέσεις µνήµης που µας ενδιαφέρουν θα µπορούσαν να έχουν τα ονόµατα name και town, µιας και σε αυτές θα αποθηκευτεί το όνοµα και η πόλη διαµονής, αντίστοιχα, κάποιου προσώπου. Έτσι το πρόγραµµα γίνεται ευκολότερα κατανοητό: program GetNameTown; name, town: string; writeln('γεια, πες µου το όνοµά σου.'); readln(name); writeln('σε ποια πόλη κατοικείς;'); readln(town); writeln(name); writeln('πες µου κάτι: Σου αρέσει να κατοικείς στην πόλη'); writeln(town); writeln(';;;'); Είναι πολύ σηµαντικό να θυµάστε ότι οι θέσεις µνήµης δεν θα πρέπει να χρησιµοποιηθούν στο πρόγραµµα πριν καταχωριστεί σε αυτές κάποια πληροφορία, λ.χ. µέσω κάποιας εντολής εισόδου. Από τη στιγµή που θα συµβεί αυτό, διατηρούν τη συγκεκρι- µένη πληροφορία έως ότουκαταχωριστεί σεαυτές νέαπληροφορία, ενδεχοµένωςµε µια άλλη εντολή εισόδου. Στην περίπτωση αυτή, η προηγούµενη πληροφορία χάνεται για πάντα. Κάτι τέτοιο συµβαίνει στο πρόγραµµα που ακολουθεί. Τι κάνει το πρόγραµµα αυτό; program LoadDemo; x, y: string; writeln(' ώστε δεδοµένα για τη µεταβλητή x.'); readln(x);

18 1.4. Ανάγνωση και αποθήκευση δεδοµένων 17 writeln(' ώστε δεδοµένα για τη µεταβλητή y.'); readln(y); writeln('τα περιεχόµενα των x και y είναι:'); writeln(x); writeln(y); writeln(' ώστε δεδοµένα για τη µεταβλητή x.'); readln(x); * writeln('τα περιεχόµενα των x και y είναι:'); writeln(x); writeln(y); writeln(' ώστε δεδοµένα για τη µεταβλητή y.'); readln(y); ** writeln('τα περιεχόµενα των x και y είναι:'); writeln(x); writeln(y); Ακολουθεί µια ενδεικτική εκτέλεση του προγράµµατος: ώστε δεδοµένα για τη µεταβλητή x. (εµφανιζόµενο µήνυµα) Γιάννης (καταχώριση στην x) ώστε δεδοµένα για τη µεταβλητή y. (εµφανιζόµενο µήνυµα) Μαρία (καταχώριση στην y) Τα περιεχόµενα των x και y είναι: (εµφανιζόµενο µήνυµα) Γιάννης (περιεχόµενο της x) Μαρία (περιεχόµενο της y) ώστε δεδοµένα για τη µεταβλητή x. (εµφανιζόµενο µήνυµα) Νίκος (καταχώριση στην x) Τα περιεχόµενα των x και y είναι: (εµφανιζόµενο µήνυµα) Νίκος (περιεχόµενο της x) Μαρία (περιεχόµενο της y) ώστε δεδοµένα για τη µεταβλητή y. (εµφανιζόµενο µήνυµα) Ελένη (καταχώριση στην y) Τα περιεχόµενα των x και y είναι: (εµφανιζόµενο µήνυµα) Νίκος (περιεχόµενο της x) Ελένη (περιεχόµενο της y) Οι δύο πρώτες εντολές ανάγνωσης του παραπάνω προγράµµατος εισάγουν δεδοµένα στις θέσειςµνήµης µε ονόµατα x και y.στη συνέχεια εκτυπώνονται τα περιεχόµενα των θέσεων µνήµης x και y.ηεντολήµετην ένδειξη καταχωρίζει νέα πληροφορία στη θέση µνήµης x, καταστρέφοντας το τρέχον περιεχόµενό της. Η αλλαγή αυτή επιβεβαιώνεται µε την εκτύπωση των περιεχοµένων των x και y.ηεντολήµετην ένδειξη αλλάζει το περιεχόµενο της y και η τελευταία εντολή εκτύπωσηςδείχνει το αποτέλεσµα. Στην παρούσα ενότητα παρουσιάσαµε δύο βασικές έννοιες που είναι πολύ σηµαντικές για τον προγραµµατισµό: την εισαγωγή δεδοµένων από το πληκτρολόγιο και την αποθήκευσή τους στη µνήµη του υπολογιστή. Η κατανόηση αυτών των εννοιών απαιτεί προσεκτική µελέτη. Στην επόµενη ενότητα θα παρουσιάσουµε µία ακόµη έννοια προγραµµατισµού και θα δούµε πώς γίνεται ο προγραµµατισµός δένδρων απόφασης. Ασκήσεις 1. Γράψτε ένα πρόγραµµα που θα διαβάζει το ονοµατεπώνυµό σας και στη συνέχεια θα το εµφανίζει στην οθόνη. 2. Γράψτε ένα πρόγραµµα το οποίο θα συλλέγει στοιχεία για έναν υποψήφιο φοιτητή αναφορικά µε την επίδοσή του στο σχολείο, τους βαθµούς του στις εισαγωγικές εξετάσεις, τα τµήµατα στα οποία επιθυµεί να εισαχθεί, κ.λπ. Στη συνέχεια το πρόγραµµα θα παρουσιάζει τα στοιχεία σε

19 18 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης µορφή κατάλληλη για χρήση από την υπηρεσία του Υπουργείου Παιδείας η οποία καταρτίζει τους πίνακες εισακτέων. 1.5 Προγραµµατισµός δένδρων απόφασης (B) Ας αρχίσουµε µε τον προγραµµατισµό του απλούστερου δυνατού δένδρου απόφασης, ενός δένδρου µε έναν µόνο κόµβο: Στις προηγούµενες ενότητες µάθαµε πώς να προγραµµατίζουµε τον υπολογιστή για να εκτυπώνει τέτοια µηνύµατα και να διαβάζει τις απαντήσεις του χρήστη. Χρειαζόµαστε όµως µια επιπλέον εντολή, την εντολή if-then-else («εάν-τότε-διαφορετικά»), η οποία θα µας επιτρέψει να κωδικοποιήσουµε στο πρόγραµµά µας τη διακλάδωση για τη θετική ή αρνητική (ναι ή όχι) απάντηση του χρήστη. Ηαπαιτούµενηεντολήγιατοδένδροαπόφασηςεκτείνεται σε αρκετές γραµµές και έχει την εξής µορφή: if answer = 'ναι' then Κώδικας Α else Κώδικας Β Εδώ οι εκφράσεις Κώδικας Α και Κώδικας Β δηλώνουν δύο ακολουθίες εντολών Pascal. Πρόκειταιγια σύνθετες εντολές,ο ορισµόςτω ν οποίων δίνεται στην επόµενηπαράγραφο. Ας υποθέσουµε ότι το πρόγραµµα έχει εκτελέσει την εντολή readln(answer) όπου η answer έχει δηλωθεί ως θέση µνήµης για την καταχώριση συµβολοσειρών, και ότι το πρόγραµµα έχει αποθηκεύσει στη θέση µνήµης answer είτε «ναι» είτε «όχι». Εάν ηµεταβλητήanswer περιέχει «ναι» εκτελείται η ακολουθία εντολών Κώδικας Α, ενώ εάν περιέχει «όχι» εκτελείται η ακολουθία εντολών Κώδικας Β. Πλέον, µπορούµε να γράψουµε ένα πρόγραµµα για αυτό το απλό δένδρο απόφασης. program FirstTree; answer: string; writeln('είστε εξοικειωµένος µε συστήµατα τυπικού συµβολισµού;'); readln(answer); if answer = 'ναι' then writeln('στον προγραµµατισµό, θα έχετε την ευκαιρία'); writeln('να τα εφαρµόσετε στην πράξη!');

20 1.5. Προγραµµατισµός δένδρων απόφασης 19 else writeln('η µελέτη της Pascal θα σας επιτρέψει να'); writeln('εξοικειωθείτε επαρκώς µε ένα τέτοιο σύστηµα.'); ; Παρατηρήστε ότι η ακολουθία εντολών Κώδικας Α εκτείνεται σε τέσσερεις γραµµές και έχει ως εξής: writeln('στον προγραµµατισµό, θα έχετε την ευκαιρία'); writeln('να τα εφαρµόσετε στην πράξη!'); Ηακολουθίααυτήπεριέχει δύο εντολές writeln, τοποθετηµένες µεταξύ των λέξεωνκλειδιών και Τοίδιο συµβαίνει µετηνακολουθίαεντολών Κώδικας Β.Γενικά, κάθε ακολουθία εντολών µεταξύ των λέξεων-κλειδιών και ονοµάζεται σύνθετη εντολή (compound statement) αυτός είναι ο τύπος εντολής που επιτρέπεται στα σηµεία του προγράµµατος µε ενδείξεις Κώδικας Α και Κώδικας Β. Στο Κεφάλαιο 4 θα αναφέρουµε µια παραλλαγή αυτού του κανόνα. (Στην πραγµατικότητα το συγκεκριµένο πρόγραµµα έχει συνολικά τρεις σύνθετες εντολές, τις δύο που µόλις αναφέραµε και το κύριο µέρος του ίδιου του προγράµµατος, το οποίο αποτελείται επίσης από µια ακολουθία εντολών που περικλείεται µεταξύ των λέξεων-κλειδιών και ) Παρ όλο που αυτό το σύντοµο πρόγραµµα φαίνεται αρκετά εύκολο, θα πρέπει να το µελετήσετε µε προσοχή. Τι θα συνέβαινε εάν απαντούσατε στην αρχική ερώτηση «Ναι, κάπως» αντί για «ναι» ή «όχι»; Τι θα συνέβαινε εάν πληκτρολογούσατε «Ναι» αντί για «ναι»; Σχετικά µε το πρόγραµµα αυτό ανακύπτουν δύο πολύ σηµαντικά ζητήµατα. Το πρώτο αφορά τη χρήση της κλιµακωτής στοίχισης. Κάθε γραµµή του κώδικα µπορεί να απέχει από το αριστερό περιθώριο όσο θέλουµε, χωρίς να επηρεάζεται η εκτέλεσή της. Η αναγνωσιµότητα όµως του προγράµµατος βελτιώνεται σηµαντικά, εάν για κάθε κλάδο της εντολής if εφαρµόσουµε κλιµακωτή στοίχιση προς τα δεξιά. Με τον τρόπο αυτό, η προσοχή εστιάζεται αµέσως στα σηµαντικά τµήµατα του κώδικα, ώστε να ελέγχεται εύκολα η ροή του προγράµµατος. Η σύνταξη των προγραµµάτων θα πρέπει να διέπεται από την καθαρότητα και τη σαφήνεια µε την οποία οφείλει να γράφει κανείς και σε µια φυσική γλώσσα, όπως είναι η ελληνική ή η αγγλική.εάν αγνοηθούναυτές οι υποδείξεις στη σύνταξη ενός προγράµµατος, το τελικό αποτέλεσµα θα είναι εξίσου ενοχλητικό µε την παράλειψη των επικεφαλίδων ή της αλλαγής τω ν παραγράφων στις ενότητες κάποιου άρθρου. Το δεύτερο ζήτηµα, ανάλογης σπουδαιότητας µε το πρώτο, έχει να κάνει µε τη θέση των χαρακτήρων «;». Στο βιβλίο αυτό ακολουθούνται οι εξής κανόνες όσον αφορά τα σηµεία τοποθέτησής τους: (1) στο τέλος της επικεφαλίδας και της δήλωσης, (2) στο τέλος κάθε εντολής που βρίσκεται µέσα σε σύνθετη εντολή. Οκανόνας αυτός εφαρµόζεται εύκολα στα προγράµµατα των προηγούµενων ενοτήτων, καθώς αυτά περιλαµβάνουν µόνο µία σύνθετη εντολή, εν προκειµένω την κύρια ακολουθία εντολών, την οποία ορίζουν οι λέξεις-κλειδιά και στην αρχή και στο τέλος του προγράµµατος. Εάν λάβουµε υπ όψιν ότι οι ίδιες οι λέξεις-κλειδιά και δεν είναι εντολές, η τοποθέτηση των χαρακτήρων «;» είναι απλούστατη: program ReadData; position1: string;

21 20 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης readln(position1); writeln(position1); Στο πρόγραµµα FirstTree, όµως, απαιτείται ιδιαίτερη προσοχή για την τοποθέτηση των χαρακτήρων «;». Κατ αρχάς, ελέγχουµε εάν η επικεφαλίδα και η δήλωση έχουν «;». Ακολούθως, εφαρµόζουµε τον κανόνα (2) σε κάθε εντολή του κυρίως προγράµ- µατος, χωρίς να ασχοληθούµε µε τις σύνθετες εντολές που περιλαµβάνονται στη δοµή if-then-else (και οι οποίες είναι µετατοπισµένες προς τα δεξιά και περικλείονται από και ). Τέλος, εξετάζουµε κάθε σύνθετη εντολή και φροντίζουµε η κάθε επι- µέρους εντολή της να ακολουθείται από τον χαρακτήρα «;». Ας εξετάσουµε αρχικά το κυρίως πρόγραµµα, το οποίο αρχίζει και τελειώνει στις γραµµές µε την ένδειξη Κ, και τις τέσσερεις εντολές που φέρουν τις ενδείξεις Κ1 έως Κ4: program FirstTree; answer: string; {K} {K1} writeln('είστε εξοικειωµένος µε συστήµατα τυπικού συµβολισµού;'); {K2} readln(answer); {K3} if answer = 'ναι' then writeln('στον προγραµµατισµό, θα έχετε την ευκαιρία'); writeln('να τα εφαρµόσετε στην πράξη!'); else writeln('η µελέτη της Pascal θα σας επιτρέψει να'); writeln('εξοικειωθείτε επαρκώς µε ένα τέτοιο σύστηµα.'); ; {K4} {K} Και οι τέσσερεις εντολές αρχίζουν στο ίδιο επίπεδο στοίχισης όπως και οι λέξεις-κλειδιά και που τις περικλείουν. Κάθε εντολή πρέπει να τελειώνει µε έναν χαρακτήρα «;». Πού είναι όµως το τέλος της κάθε εντολής; Στις τρεις από τις τέσσερεις περιπτώσεις, το τέλος βρίσκεται στο δεξιό άκρο της αντίστοιχης γραµµής του προγράµµατος. Ηεντολήif-then-else όµως (Κ3) εκτείνεται σε δέκα γραµµές το τέλος της είναι το που προηγείται του τελικού readln. Συνεπώς,µεβάσητονκανόνα(2),οιθέσειςµετις ενδείξεις Κ1, Κ2, Κ3 και Κ4 απαιτούν χαρακτήρες «;». program FirstTree; answer: string; {K} {K1} writeln('είστε εξοικειωµένος µε συστήµατα τυπικού συµβολισµού;'); {*K1} {K2} readln(answer); {*K2} {K3} if answer = 'ναι' then writeln('στον προγραµµατισµό, θα έχετε την ευκαιρία'); writeln('να τα εφαρµόσετε στην πράξη!');

22 1.5. Προγραµµατισµός δένδρων απόφασης 21 else writeln('η µελέτη της Pascal θα σας επιτρέψει να'); writeln('εξοικειωθείτε επαρκώς µε ένα τέτοιο σύστηµα.'); ; {*K3} {K4} {*K4} {K} Οκανόνας (2) απαιτεί επίσης κάθε επιµέρους εντολή µέσα σε σύνθετη εντολή να τελειώνει µε «;». Για παράδειγµα, η σύνθετη εντολή που ορίζεται από τις λέξεις-κλειδιά και µε την ένδειξη Ν, περιλαµβάνει δύο εντολές, τις Ν1 και Ν2. Στο τέλος των εντολών αυτών πρέπει να υπάρχει ο χαρακτήρας «;»: program FirstTree; answer: string; {K} {K1} writeln('είστε εξοικειωµένος µε συστήµατα τυπικού συµβολισµού;'); {*K1} {K2} readln(answer); {*K2} {K3} if answer = 'ναι' then {N} {N1} writeln('στον προγραµµατισµό, θα έχετε την ευκαιρία'); {*N1} {N2} writeln('να τα εφαρµόσετε στην πράξη!'); {*N2} {N} else writeln('η µελέτη της Pascal θα σας επιτρέψει να'); writeln('εξοικειωθείτε επαρκώς µε ένα τέτοιο σύστηµα.'); ; {*K3} {K4} {*K4} {K} Τέλος, θα πρέπει να εξετάσουµε την τελευταία σύνθετη εντολή για να βεβαιωθούµε ότι οι δύο εντολές που περιέχει τελειώνουν µε τον χαρακτήρα «;». Εάν φροντίζετε να εφαρ- µόζετε αυστηρά αυτούς τους δύο κανόνες, δεν θα έχετε κανένα πρόβληµα µε τη χρήση των χαρακτήρων «;». Εάν όµως κάνετε λάθος στην εφαρµογή τους, το πρόγραµµά σας είτε δεν θα εκτελεστεί είτε θα δώσει λάθος αποτελέσµατα. Ένας χρήσιµος πρόσθετοςέλεγχοςγιατηνορθότητατηςθέσηςτων χαρακτήρων «;» είναι ο εξής: Εξετάστε κάθε else στο πρόγραµµά σας και βεβαιωθείτε ότι δεν υπάρχει χαρακτήρας «;» πριν από αυτό στην ίδια ήτηνπροηγούµενη γραµµή. Εάν ακολουθείτε τους κανόνες (1) και (2), δεν θα βάλετε ποτέ «;» πριν από κάποιο else. (Τα τυπικά εγχειρίδια της Pascal δίνουν µια ελαφρά διαφορετική εικόνα για τους χαρακτήρες «;» από αυτήν που παρουσιάστηκε εδώ. Εκεί οι χαρακτήρες «;» αντιµετωπίζονται ως διαχωριστές εντολών µέσα σε µια σύνθετη εντολή.ωςσύνθετηεντολή θεωρείται µια ακολουθία εντολών µεταξύ και, ενώ οι χαρακτήρες «;» µπαίνουν µεταξύ δύο εντολών ως εξής (το κάθε s αντιστοιχεί σε µία εντολή): s ; s ; s ; s Όταν η παραπάνωακολουθία εντολών γραφεί στη συνηθισµένη µορφή, δείχνει ως εξής: s; s; s; s

23 22 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης Η τελευταία εντολή s δεν συνοδεύεται από «;». Επειδή αυτό µερικές φορές προκαλεί σύγχυση στους σπουδαστές, σε αυτό το βιβλίο ακολουθούµε τον πιο οµοιόµορφο κανόνα ότι κάθε εντολή µεταξύ των και θα ακολουθείται από «;»: s; s; s; s; Και στις δύο παραπάνωπεριπτώσεις, τα προγράµµατα λειτουργούν µε τον ίδιο ακριβώς τρόπο.) Επιστρέφοντας στα δένδρα απόφασης, καταλήγουµε στο συµπέρασµα ότι όλες οι δοµές αυτού του τύπου προγραµµατίζονται µε ανάλογο τρόπο, µε τη µόνη διαφορά ότι ενδέχεταινα έχουν περισσότερες διακλαδώσεις. Ας δηµιουργήσουµεπαραδείγµατος χάριν ένα πρόγραµµα για το δένδρο τηςυπόδειξηςβιβλίου, το οποίο εξετάσαµεστηναρχή αυτού του κεφαλαίου. Το συγκεκριµένο πρόγραµµα αρχίζει όπως και το αµέσως προηγούµενο: program BookAdvice; answer1: string; writeln('επιθυµείτε µια µαθηµατική προσέγγιση;'); readln(answer1); if answer1 = 'ναι' then Κώδικας για την περίπτωση της επιλογής «ναι» ; else Κώδικας για την περίπτωση της επιλογής «όχι» ; Ας δούµε στη συνέχεια τον κώδικα για τον χειρισµό της επιλογής «ναι»: writeln('σας ενδιαφέρει ο προγραµµατισµός'); writeln('ή τα θεωρητικά θέµατα;'); readln(answer2); if answer2 = 'προγραµµατισµός' then writeln('σας συνιστώ το "Oh! Pascal!" των'); writeln('d. Cooper και M. Clancy.'); else writeln('μια καλή επισκόπηση δίδεται'); writeln('στο βιβλίο Algorithmics '); writeln('του D. Harel.'); ; Μπορούµε τώρα να παρεµβάλουµε τον κώδικα τηςεπιλογής «ναι» στην κατάλληλη θέση του κυρίως προγράµµατος:

24 1.5. Προγραµµατισµός δένδρων απόφασης 23 program BookAdvice; answer1, answer2: string; writeln('επιθυµείτε µια µαθηµατική προσέγγιση;'); readln(answer1); if answer1 = 'ναι' then writeln('σας ενδιαφέρει ο προγραµµατισµός'); writeln('ή τα θεωρητικά θέµατα;'); readln(answer2); if answer2 = 'προγραµµατισµός' then writeln('σας συνιστώ το "Oh! Pascal!" των'); writeln('d. Cooper και M. Clancy.'); else writeln('μια καλή επισκόπηση δίδεται'); writeln('στο βιβλίο Algorithmics '); writeln('του D. Harel.'); ; else Κώδικας για την περίπτωση της επιλογής «όχι». ; Με ανάλογο τρόπο, µπορούµε να γράψουµε τον κώδικα για την επιλογή «όχι»και να τον παρεµβάλουµε στο κυρίως πρόγραµµα ώστε να ολοκληρωθεί το δένδρο απόφασης: program BookAdvice; answer1, answer2, answer3: string; writeln('επιθυµείτε µια µαθηµατική προσέγγιση;'); readln(answer1); if answer1 = 'ναι' then writeln('σας ενδιαφέρει ο προγραµµατισµός'); writeln('ή τα θεωρητικά θέµατα;'); readln(answer2); if answer2 = 'προγραµµατισµός' then writeln('σας συνιστώ το "Oh! Pascal!" των'); writeln('d. Cooper και M. Clancy.'); else writeln('μια καλή επισκόπηση δίδεται'); writeln('στο βιβλίο "Algorithmics"'); writeln('του D. Harel.'); ;

25 24 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης else writeln('θα προτιµούσατε ένα βιβλίο'); writeln('µε έµφαση στον προγραµµατισµό'); writeln('ή επιθυµείτε µια γενική επισκόπηση'); writeln('της επιστήµης των υπολογιστών;'); readln(answer3); if answer3 = 'προγραµµατισµός' then writeln('ένα καλό βιβλίο για αρχή είναι το'); writeln(' Karel the Robot του R. Pattis.'); else writeln('πιθανόν να σας ενδιέφερε το'); writeln(' Σπουδαίες ιδέες στην επιστήµη των υπολογιστών '); writeln('του A. Biermann'); ; ; Για την αποθήκευση των απαντήσεων στις διάφορες ερωτήσεις χρησιµοποιήσαµε διαφορετικέςθέσειςµνήµης, τιςanswer1, answer2, answer3. Ηκαταχώρισητων απαντήσεων σε ξεχωριστές θέσεις µνήµης επιβάλλεται για να αποφευχθεί το ενδεχόµενο σύγχυσης στη σύνταξη πιο πολύπλοκων προγραµµάτων. Μην ξεχνάτε να δηλώνετε όλες αυτές τις θέσεις µνήµης. Υπάρχειεπίσηςµια παραλλαγήτηςεντολήςif που είναι ιδιαίτερα χρήσιµη στον προγραµµατισµό δένδρων απόφασης µε περισσότερους από δύο κλάδους σε ορισµένους κόµβους: if συνθήκη then σύνθετη εντολή Εάν ικανοποιείται η συνθήκη, θα εκτελεστεί η αντίστοιχη σύνθετη εντολή. Σε αντίθετη περίπτωση, η εντολή δεν θα εκτελεστεί και το πρόγραµµα θα προχωρήσει αγνοώντας την. Το δένδρο απόφασης για την ταξινόµηση γλάρων προσφέρει ένα καλό παράδειγµα για αυτό το είδος προγραµµατισµού. Μια πρώτη µορφή του προγράµµατος µπορεί να έχει ως εξής: program SeagullClass; answer: string; writeln('τι χρώµα έχουν τα πόδια του;'); readln(answer1); if answer1 = 'κόκκινο' then Κώδικας για την περίπτωση ποδιών κόκκινου χρώµατος ; if answer1 = 'µαύρο' then Κώδικας για την περίπτωση ποδιών µαύρου χρώµατος ; if answer1 = 'καφέ' then Κώδικας για την περίπτωση ποδιών καφέ χρώµατος ;

26 1.5. Προγραµµατισµός δένδρων απόφασης 25 if answer1 = 'πράσινο' then Κώδικας για την περίπτωση ποδιών πράσινου χρώµατος ; Στη συνέχεια µπορούµε να συµπληρώσουµε τον κώδικα για τις επιµέρους περιπτώσεις ως εξής: program SeagullClass; answer1, answer2: string; writeln('τι χρώµα έχουν τα πόδια του;'); readln(answer1); if answer1 = 'κόκκινο' then writeln('τι χρώµα έχει το ράµφος του;'); readln(answer2); if answer2 = 'µαύρο' then writeln('τι χρώµα έχουν οι άκρες των φτερών του;'); readln(answer3); Συνέχεια του κώδικα. ; if answer2 = 'κίτρινο' then writeln('ανήκει στο είδος Kittiwake.'); ; ; if answer1 = 'µαύρο' then Κώδικας για την περίπτωση ποδιών µαύρου χρώµατος ; if answer1 = 'καφέ' then Κώδικας για την περίπτωση ποδιών καφέ χρώµατος ; if answer1 = 'πράσινο' then Κώδικας για την περίπτωση ποδιών πράσινου χρώµατος ; Όλα τα δένδρα απόφασης, όχι µόνο αυτά που αναφέραµε εδώ αλλά και οποιοδήποτε άλλο, µπορούν να προγραµµατιστούν µε ανάλογο τρόπο. Τα µόνα δοµικά στοιχεία που απαιτούνται είναι οι εντολές writeln, readln, if-then-else, if-then,ηεπικεφαλίδα του προγράµµατος και οι δηλώσεις. Ακόµη και έτσι, αυτά τα προγράµµατα είναι πιο πολύπλοκα από όσο θα έπρεπε, όπως θα διαπιστώσουµε στο Κεφάλαιο 4, όπου θα εισαγάγουµε την έννοια του υποπρογράµµατος. Στο σηµείο αυτό, θα ήταν χρήσιµο αφ ενός να εκτελέσετεορισµένα από αυτά τα προγράµµατα σε κάποιον υπολογιστή και αφ ετέρου να προσπαθήσετε να γράψετε µερικά νέα. Πριν από την εκτέλεση ενός προγράµµατος, όµως, θα πρέπει να το ελέγξετε προσεκτικά. Υπάρχουν δύο είδη ελέγχου που πρέπει να γίνουν: Αρχικά, βεβαιωθείτε ότι το συντακτικό µέρος ακολουθεί πιστά τους κανόνες της γλώσσας. Στη συνέχεια, εκτελέστε τον κώδικα µε το χέρι για να διαπιστώσετε εάν οι εντολές εκτελούν όντως τις εργασίες για τις οποίες γράφτηκαν. Ας εκτελέσουµε αυτούς τους δυο ελέγχους στο πρόγραµµα BookAdvice, ξεκινώντας µε το συντακτικό µέρος. Έχουν γραφεί όλες οι εντολές σύµφωνα µε τους συντακτικούς κανόνες της γλώσσας; Είναι οι χαρακτήρες «;» στις σωστές θέσεις; Αν δεν είναι όλες οι λεπτοµέρειες σωστές στην εντέλεια, το πρόγραµµα δεν θα εκτελεστεί. Θα πρέπει επίσης να ελέγξουµε τα κενά διαστήµατα και τη στοίχιση των γραµµών για να βεβαιωθούµε

27 26 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης ότι το πρόγραµµα είναι σαφές και ευανάγνωστο, και ότι η στοίχιση αναδεικνύει όσο γίνεται καλύτεραταβασικάτµήµατάτου.ανκαιτακενάδιαστήµαταδενθαεπηρεάσουν την εκτέλεση του προγράµµατος, θα πρέπει να φροντίζουµε η εµφάνιση του κώδικα να διευκολύνει την κατανόησή του. Εν συνεχεία, εκτελούµε τον κώδικα µε το χέρι προκειµένου να βεβαιωθούµε ότι κάνει αυτό που θέλουµε. Η δήλωση στην αρχή ορίζει ποιες θέσεις µνήµης θα πρέπει να δεσµευθούν, και εποµένως ο «χειρωνακτικός»έλεγχος αρχίζει µε την καταγραφή αυτών των θέσεων. answer1: answer2: answer3: Κατόπιν, ξεκινώντας από τη λέξη-κλειδί, διαβάζουµε κάθε γραµµή του κώδικα, και ελέγχουµε εάν όντως περιγράφειτην ενέργεια που επιθυµούµε να εκτελεστεί: writeln('επιθυµείτε µια µαθηµατική προσέγγιση;'); Αφού βεβαιωθούµε ότι αυτή είναι όντως η σωστή ενέργεια, προχωρούµε στη δεύτερη εντολή: readln(answer1); Είναι σωστή η εντολή αυτή; Αποθηκεύεται η απάντηση εκεί που θέλουµε; Ας υποθέσουµε ότι ο χρήστης πληκτρολογεί «όχι». Αµέσως καταγράφουµε µε το χέρι το αποτέλεσµα που προκύπτει: answer1: όχι answer2: answer3: Συνεχίζοντας στην επόµενη εντολή, βλέπουµε ότι γίνεται ο έλεγχος answer1 =«ναι», οπότε πρέπει να ανατρέξουµε επιµελώς στη θέση µνήµης answer1 για να δούµε κατά πόσον ο έλεγχος είναι επιτυχής. Στη συγκεκριµένη περίπτωση δεν είναι, οπότε ο έλεγχος µεταβιβάζεται στην εντολή που έπεται του else. Θα πρέπει τώρα να πιστοποιήσουµε ότι αυτή είναι η ενέργεια που θέλαµε. Η εκτέλεση µε το χέρι συνεχίζεται µε ενδελεχή εξέταση κάθε ενέργειας του προγράµµατος. Ένα πρόγραµµα δεν θα πρέπει να δίνεται για µεταγλώττιση και εκτέλεση εάν δεν έχει προηγηθεί εκτενής και εξονυχιστικός έλεγχος, αναθεώρηση και επανειληµµένη επαλήθευση. Οι έµπειροι προγραµµατιστές γνωρίζουν καλά ότι λάθη στο πρόγραµµα συνεπάγονται συνήθως τεράστια απώλεια χρόνου και άλλων πόρων, και για τον λόγο αυτό επενδύουν το µεγαλύτερο µέρος του χρόνου τους, και πολύ σωστάκάνουν, στη σχεδίαση του προγράµµατος και στην επαλήθευση µε το χέρι. Ασκήσεις 1. Προγραµµατίστε το δένδρο απόφασης για τη συµπλήρωση της φορολογικής δήλωσης που δόθηκε σε προηγούµενη ενότητα. 2. Σχεδιάστε ένα δένδρο απόφασης σχετικά µε κάποιο θέµα προσωπικού σας ενδιαφέροντος. Γράψτε ένα πρόγραµµα για αυτό το δένδρο. 3. Γράψτε ένα πρόγραµµα για το παιγνίδι Nim µε τα επτά τετράγωνα το οποίο περιγράψαµε στα προηγούµενα.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (Β ΕΞΑΜΗΝΟ) ιδάσκων: Επ. Καθηγητής Γρηγόρης Χονδροκούκης ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

2.2.3 Η εντολή Εκτύπωσε

2.2.3 Η εντολή Εκτύπωσε 2.2.3 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΣΕΝΑΡΙΟ ΠΑΙΧΝΙ ΙΟΥ Το παιχνίδι θα αποτελείται από δυο παίκτες, οι οποίοι θα βρίσκονται αντικριστά στις άκρες ενός γηπέδου δεξιά και αριστερά, και µια µπάλα.

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

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

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

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

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

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

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

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

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

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

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

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

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

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

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

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

Outlook Express-User Instructions.doc 1

Outlook Express-User Instructions.doc 1 Οδηγίες προς τους υπαλλήλους του ήµου Θεσσαλονίκης για την διαχείριση της ηλεκτρονικής τους αλληλογραφίας µε το Outlook Express (Ver 1.0 22-3-2011) (Για οποιοδήποτε πρόβληµα ή απορία επικοινωνήστε µε τον

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

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

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών»

Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών» Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών» μια Νίκος Δαπόντες Φυσικός Δευτεροβάθμιας Εκπαίδευσης Το περιβάλλον Microworlds

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

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

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

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

(GNU-Linux, FreeBSD, MacOsX, QNX

(GNU-Linux, FreeBSD, MacOsX, QNX 1.7 διαταξεις (σελ. 17) Παράδειγµα 1 Θα πρέπει να κάνουµε σαφές ότι η επιλογή των λέξεων «προηγείται» και «έπεται» δεν έγινε απλώς για λόγους αφαίρεσης. Μπορούµε δηλαδή να ϐρούµε διάφορα παραδείγµατα στα

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

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

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

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

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

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

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

η σύνθεση ενός υπολογιστή

η σύνθεση ενός υπολογιστή ιδακτικό υλικό µαθητή η σύνθεση ενός υπολογιστή Αν παρατηρήσουµε έναν υπολογιστή βλέπουµε ότι αποτελείται από τα ακόλουθα µέρη: Οθόνη Μονάδα συστήµατος Ποντίκι Πληκτρολόγιο τη µονάδα συστήµατος, όπου βρίσκονται

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014

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

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

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

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

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

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛHNIΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΣΑΒΒΑΤΟ 28 ΜΑΪΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΟΜΗΜΕΝΟΣ

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

5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά

5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά 5η Δραστηριότητα Λύσε το γρίφο Η Θεωρία της Πληροφορίας Περίληψη Πόση πληροφορία περιέχεται σε ένα βιβλίο των 1000 σελίδων; Υπάρχει περισσότερη πληροφορία σε έναν τηλεφωνικό κατάλογο των 1000 σελίδων ή

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

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ»

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1. Πήγαινε στο μενού Αρχείο και επίλεξε Άνοιγμα. Άνοιξε το αρχείο sample.x. Ανοίγουν δυο παράθυρα. Παρατήρησε τα ονόματα τους: Πηγαίος κώδικας... και

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

παράθυρα ιδακτικό υλικό µαθητή Πλήκτρα για να το παράθυρο Λωρίδα τίτλου Πλαίσιο παραθύρου

παράθυρα ιδακτικό υλικό µαθητή Πλήκτρα για να το παράθυρο Λωρίδα τίτλου Πλαίσιο παραθύρου ιδακτικό υλικό µαθητή παράθυρα Κατά τη διάρκεια της µελέτης µας γράφουµε και διαβάζουµε, απλώνοντας πάνω στο γραφείο τετράδια και βιβλία. Ξεκινώντας ανοίγουµε αυτά που µας ενδιαφέρουν πρώτα και συνεχίζουµε

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

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

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 11 Ηµεροµηνία : 10/6/2008 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :...Τµήµα : Αριθµός :...Βαθµός

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

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

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

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

Πάνω στον πίνακα έχουµε γραµµένο το γινόµενο 1 2 3 4 595. ύο παίκτες Α και Β παίζουν το εξής παιχνίδι. Ο ένας µετά τον άλλο, διαγράφουν από έναν παράγοντα του γινοµένου αρχίζοντας από τον παίκτη Α. Νικητής

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

Εντολές της LOGO (MicroWorlds Pro)

Εντολές της LOGO (MicroWorlds Pro) Εντολές της LOGO (MicroWorlds Pro) Εντολές εμφάνισης (εξόδου) και αριθμητικές πράξεις δείξε Εμφανίζει στην οθόνη έναν αριθμό, το αποτέλεσμα πράξεων, μια λέξη ή μια λίστα (ομάδα) λέξεων. δείξε 200 200 δείξε

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

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής:

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής: ΣΕΙΡΕΣ TAYLOR Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων Πολυώνυµο είναι κάθε συνάρτηση της µορφής: p( ) = a + a + a + a + + a, όπου οι συντελεστές α i θα θεωρούνται

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

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

Εισαγωγή στις Αρχές της Επιστήµης των Η/Υ Εισαγωγή στις Αρχές της Επιστήµης των Η/Υ Απαντήσεις στα θέµατα της τράπεζας 2014 2015 GI_V_EIY_0_19332 Β1. Να γράψετε στο γραπτό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη

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

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

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

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

Κεφάλαιο 4ο: Εντολές επιλογής

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

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

4.4 Ερωτήσεις διάταξης. Στις ερωτήσεις διάταξης δίνονται:

4.4 Ερωτήσεις διάταξης. Στις ερωτήσεις διάταξης δίνονται: 4.4 Ερωτήσεις διάταξης Στις ερωτήσεις διάταξης δίνονται:! µία σειρά από διάφορα στοιχεία και! µία πρόταση / κανόνας ή οδηγία και ζητείται να διαταχθούν τα στοιχεία µε βάση την πρόταση αυτή. Οι ερωτήσεις

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

Εισαγωγή και επεξεργασία δεδοµένων

Εισαγωγή και επεξεργασία δεδοµένων Μάθηµα 4 Εισαγωγή και επεξεργασία δεδοµένων Εισαγωγή δεδοµένων σε πίνακα 1. Ανοίγουµε το παράθυρο του πίνακα Υπάλληλοι σε προβολή φύλλου δεδοµένων. 2. Η κενή γραµµή, η οποία υπάρχει πάντα στον πίνακα,

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ Μία από τις πιο σηµαντικές υπηρεσίες που προσφέρει το διαδίκτυο στην επιστηµονική κοινότητα είναι η αποµακρυσµένη πρόσβαση των χρηστών σε ηλεκτρονικές βιβλιοθήκες

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

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012 ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012 ΘΕΜΑ Α Α1. Δίνονται τα παρακάτω τμήματα αλγορίθμου σε φυσική γλώσσα. 1. Αν το ποσό των αγορών(ποσο_αγορων) ενός πελάτη είναι μεγαλύτερο

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

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

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

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

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

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

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

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10) ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08 / 02 / 2015 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ Γ.ΝΙΤΟΔΑΣ ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις

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

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ Πως αλλάζω γλώσσα; 1 ος τρόπος Συνδυασµός πλήκτρων αριστερό Ctrl + Shift 2 ος τρόπος Από την ένδειξη γλώσσας στην γραµµή εργασιών Πως βάζω τον τόνο ; (Εφόσον βρίσκοµαι στα

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

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΟΔΗΓΙΕΣ: ΝΑ ΑΠΑΝΤΗΣΕΤΕ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ. Το εξεταστικό δοκίμιο αποτελείται από δύο Ενότητες Α και Β. ΕΝΟΤΗΤΑ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ορθή απάντηση

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

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Α Κ Α Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 1 1-2 0 1 2 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT Ο συγκεκριµένος οδηγός για το πρόγραµµα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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

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

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

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension.

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension. Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 6ο: Πίνακες Στο κεφάλαιο αυτό θα ασχοληθούµε µε µια από πιο ενδιαφέρουσες δοµές δεδοµένων, τους πίνακες. Οι πίνακες είναι σύνθετες

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

Το Ηλεκτρονικό Ταχυδροµείο (e-mail) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο

Το Ηλεκτρονικό Ταχυδροµείο (e-mail) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο Το Ηλεκτρονικό Ταχυδροµείο (e-mail) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο χρήστη µέσω υπολογιστή άνετα γρήγορα και φτηνά. Για να

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

AC-10S, AC- 10F. Πληκτρολόγια Access Control Για αυτόνοµη (stand alone) λειτουργία.

AC-10S, AC- 10F. Πληκτρολόγια Access Control Για αυτόνοµη (stand alone) λειτουργία. AC-10S, AC- 10F Πληκτρολόγια Access Control Για αυτόνοµη (stand alone) λειτουργία. ΕΠΙΤΟΙΧΟ ΕΝΤΟΙΧΙΖΟΜΕΝΟ Ο ΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 1. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΣΟΧΗ: Ένας τόνος (beep) και το πράσινο LED να ανάβει

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

11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44.

11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44. ΤΕΧΝΙΚΕΣ ΚΑΤΑΜΕΤΡΗΣΗΣ Η καταµετρηση ενος συνολου µε πεπερασµενα στοιχεια ειναι ισως η πιο παλια µαθηµατικη ασχολια του ανθρωπου. Θα µαθουµε πως, δεδοµενης της περιγραφης ενος συνολου, να µπορουµε να ϐρουµε

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

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

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

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

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

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

ΑΣΚΗΣΕΙΣ ΜΟΥΣΙΚΗΣ ΓΡΑΦΗΣ

ΑΣΚΗΣΕΙΣ ΜΟΥΣΙΚΗΣ ΓΡΑΦΗΣ Απόστολος Σιόντας ΑΣΚΗΣΕΙΣ ΜΟΥΣΙΚΗΣ ΓΡΑΦΗΣ Η τονικότητα ΝΤΟ µείζων Πειραµατικό Μουσικό Γυµνάσιο Παλλήνης Παλλήνη 2010 Πρόλογος Καθώς θεωρούµε ότι είναι απαραίτητη η γνώση του περιεχοµένου του µουσικού

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΕΚΦΩΝΗΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΘΕΜΑ 1ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις

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

5. Γεννήτριες Τυχαίων Αριθµών.

5. Γεννήτριες Τυχαίων Αριθµών. 5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε

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

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

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

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

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

Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ) Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ) ΜΙΧΑΛΗΣ ΤΖΟΥΜΑΣ ΕΣΠΟΤΑΤΟΥ 3 ΑΓΡΙΝΙΟ. ΠΕΡΙΛΗΨΗ Η έννοια της συνάρτησης είναι στενά συνυφασµένη µε τον πίνακα τιµών και τη γραφική παράσταση.

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

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Η πλέον γνωστή και περισσότερο χρησιµοποιηµένη µέθοδος για την επίλυση ενός γενικού προβλήµατος γραµµικού προγραµµατισµού, είναι η µέθοδος Simplex η οποία αναπτύχθηκε

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

Είναι πολύ πιθανό να παραξενευτείτε βλέποντας σύµβολα όπως { και *ptr++.

Είναι πολύ πιθανό να παραξενευτείτε βλέποντας σύµβολα όπως { και *ptr++. 2 Εισαγωγή στη C Από το βιβλίο C: Βήµα-Πρός-Βήµα, Κεφάλαιο 2 ο Συγγραφείς: Οµάδα Waite, Mitchell Waite και Stephen Prata Εκδότης: Μ. Γκιούρδας Ανατύπωση σε ηλεκτρονική µορφή: Αλέξανδρος Στεφανίδης Είναι

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα: ΠΛΗΡΟΦΟΡΙΚΗ Ημερομηνία και ώρα εξέτασης: Τρίτη, 6 Ιουνίου 2006 07:30 10:30

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA) ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA) Τι θα κάνουμε σήμερα Εισαγωγή στα Ντετερμινιστικά Πεπερασμένα Αυτόματα 14-Sep-11 Τυπικός Ορισμός Ντετερμινιστικών

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΕΥΤΕΡΑ 16 ΙΟΥΝΙΟΥ 2014 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ:

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

Pascal - Βασικές Έννοιες

Pascal - Βασικές Έννοιες Pasal - Βασικές Έννοιες «Ο ΠΗΛΟΣ ΑΝ ΜΗ ΑΡΗ ΚΕΡΑΜΟΣ ΟΥ ΓΙΝΕΤΑΙ» Σηµαίνει: «Η λάσπη αν δε ζυµωθεί δε γίνετε κεραµίδι» ηλαδή: «Χωρίς τη δοκιµασία της πρακτικής εξάσκησης δεν αποκτάς ικανότητα, πείρα». (Αρχαία

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

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

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

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

1. ΕΙΣΑΓΩΓΗ. 1.1 Τι είναι η αριθµητική ανάλυση

1. ΕΙΣΑΓΩΓΗ. 1.1 Τι είναι η αριθµητική ανάλυση 1 ΕΙΣΑΓΩΓΗ 11 Τι είναι η αριθµητική ανάλυση Στα µαθητικά και φοιτητικά µας χρόνια, έχουµε γνωριστεί µε µία ποικιλία από µαθηµατικά προβλήµατα των οποίων µαθαίνουµε σταδιακά τις λύσεις Παραδείγµατος χάριν,

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

Οδοραµα mobile ΑΠΟΘΗΚΗ

Οδοραµα mobile ΑΠΟΘΗΚΗ Οδοραµα mobile ΑΠΟΘΗΚΗ Όπως βλέπετε, η αρχική οθόνη της εφαρµογής διαθέτει 9 κουµπιά τα οποία σας επιτρέπουν να πλοηγηθείτε σε αυτό. Αρχίζοντας από πάνω αριστερά βλέπετε τα εξής: 1. Τιµολόγηση: Προβολή

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) 2004 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) 2004 ΘΕΜΑ 1ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ρ. Γεώργιος Φ. Φραγκούλης Καθηγητής Ver. 0.2 9/2012 ιανύσµατα & ισδιάστατοι πίνακες Ένα διάνυσµα u = (u1, u2,, u ) εισάγεται στη MATLAB ως εξής : u=[ u1, u2,, un ] ή u=[ u1

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

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

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

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

Shift+γράμμα. Πατάμε τον τόνο (δί[λα στο L) και μετά το φωνήεν. Πως βάζουμε διαλυτικά; Πατάμε το Shift+ τόνο και μετά το φωνήεν (ι ή υ)

Shift+γράμμα. Πατάμε τον τόνο (δί[λα στο L) και μετά το φωνήεν. Πως βάζουμε διαλυτικά; Πατάμε το Shift+ τόνο και μετά το φωνήεν (ι ή υ) Βασικές λειτουργίες του πληκτρολογίου Αλλαγή μεταξύ Αγγλικών και Ελληνικών Όταν γράφουμε σε πεζά (μικρά) και θέλουμε να γράψουμε ένα γράμμα κεφαλαίο Όταν γράφουμε συνέχεια Κεφαλαία Για να γράψουμε ένα

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

Πίνακες, περιγράµµατα και σκίαση

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

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

Σενάριο 16: Ο κόσμος του Robby

Σενάριο 16: Ο κόσμος του Robby Σενάριο 16: Ο κόσμος του Robby Φύλλο Εργασίας Τίτλος: Ο κόσμος του Robby Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές εργασίες.

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

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

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

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

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

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