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

Μέγεθος: 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 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

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

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

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

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 1 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 1 1.1 ΕΙΣΑΓΩΓΗ ΣΤΗ FORTRAN 77 Ένα πρόγραµµα σε οποιαδήποτε γλώσσα προγραµµατισµού δεν τίποτα άλλο από µια σειρά εντολών που πρέπει

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal Δοµή προγράµµατος 1. Δοµή προγράµµατος program όνοµα_προγράµµατος(αρχείο_1, αρχείο_2,...αρχείο_ν); ΕΠΙΚΕΦΑΛΙΔΑ ΒΙΒΛΙΟΘΗΚΕΣ uses όνοµα_βιβλιοθήκης,όνοµα_βιβλιοθήκης;

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

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

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

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

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

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

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

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

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

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

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

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Συναρτήσεις ΣΥΝΑΡΤΗΣΕΙΣ 1.1. Ο λόγος ύπαρξης των συναρτήσεων Όπως είδαµε µία διαδικασία µπορεί να υπολογίζει περισσότερα από ένα αποτελέσµατα τα

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

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

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

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

Α. Ερωτήσεις Ανάπτυξης

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Outlook Express-User Instructions.doc 1

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

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

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

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

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

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου (νέο βιβλίο Πληροφορικής Γυµνασίου Αράπογλου, Μαβόγλου, Οικονοµάκου, Φύτρου) Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις 1. Τι είναι ο Αλγόριθµος;

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

8. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της γλώσσας, τις λέξεις.

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

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

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

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

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός στην Basic

Προγραµµατισµός στην Basic Προγραµµατισµός στην Basic 1. εντολή εισόδου Χρησιµοποιείται η εντολή INPUT, η οποία µπορεί να συνταχθεί : α. INPUT X, αν το δεδοµένο που ζητάει είναι αριθµητικό ή β. INPUT X$, αν το δεδοµένο που ζητάει

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

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος)

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος) BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος) Σκοπός του οδηγού αυτού είναι να σας εξοικειώσει µε το BloodShed Dev C++, ένα από τα περιβάλλοντα που µπορείτε να χρησιµοποιήσετε στα πλαίσια

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >=2 που

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

HY118- ιακριτά Μαθηµατικά

HY118- ιακριτά Μαθηµατικά HY118- ιακριτά Μαθηµατικά Τρίτη, 19/04/2016 Το υλικό των Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr 1 Συνδυαστική 2 Πείραµα Πείραµα: Οποιαδήποτε διαδικασία που µπορεί να οδηγήσει σε ένα αριθµό παρατηρήσιµων

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

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

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

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

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

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

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

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

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

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

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

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Το «Φύλλο Εργασίας» για τους µαθητές Το παρακάτω φύλλο εργασίας µπορεί να χρησιµοποιηθεί ως εισαγωγικό

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής Εισαγωγή στον Προγραµµατισµό Σύντοµες Σηµειώσεις Γιώργος Μανής Νοέµβριος 2012 Αλγόριθµοι και Λογικά ιαγράµµατα Αλγόριθµος λέγεται µία πεπερασµένη διαδικασία καλά ορισµένων ϐηµάτων µου ακολουθείται για

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010-2011 Προθεσµία: 15/11/10, 23:59 Στόχοι Πίνακες Συναρτήσεις Συµβολοσειρές Χρήση µεταβλητών και σταθερών Χρήση τελεστών Χρήση δοµών ελέγχου

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

- program p_name(input) - uses crt

- program p_name(input) - uses crt ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 9 : Βασικές Εντολές 1. Εισαγωγή Εντολές Εισόδου Κάθε Η/Υ έχει µία προκαθορισµένη συσκευή ή αρχείο απ όπου γίνεται η είσοδος δεδοµένων για ένα πρόγραµµα. Μια πολύ κοινή

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010-2011 Προθεσµία: 5/12/10, 23:59 Στόχοι structs Πίνακες Συναρτήσεις Συµβολοσειρές Χρήση µεταβλητών και σταθερών Χρήση τελεστών Χρήση δοµών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό - Λάθος 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου αριθµού εντολών. 2. Η είσοδος σε έναν αλγόριθµο µπορεί να είναι έξοδος σε έναν άλλο αλγόριθµο. 3. Ένας αλγόριθµος

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

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

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

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

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

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

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

(GNU-Linux, FreeBSD, MacOsX, QNX

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων ΕΠΑΛ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική- 2015-2016 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 Εισαγωγή Η εντολή IF Οι εντολές ενός προγράµµατος εκτελούνται διαδοχικά η µία µετά την

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

Κεφάλαιο 9 : Βασικές εντολές

Κεφάλαιο 9 : Βασικές εντολές ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Οδηγός µελέτης Κεφάλαιο 9 : Βασικές εντολές Βασικές έννοιες Για κάθε µία από τις βασικές έννοιες του κεφαλαίου δίνονται παρακάτω το σηµείο όπου αναλύεται στο σχολικό βιβλίο

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

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

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

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

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: 1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: Εικόνα 1 Για να φτιάξουμε το τείχος επιλέγουμε καταρχήν την καρτέλα Γραφικά (κάτω δεξιά) και έπειτα το γεμάτο τετράγωνο από την

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 25/11/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 25/11/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 25/11/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Εκφώνηση άσκησης 2 Οδηγίες αποστολής άσκησης Πριν

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

Η Απάντηση. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μηνύματα. 1. Πληκτρολογήστε την εντολή:

Η Απάντηση. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μηνύματα. 1. Πληκτρολογήστε την εντολή: Η Απάντηση Ενδεικτικές Απαντήσεις Φύλλου Εργασίας 1 22 Ιουλίου 2016 13:16 Μηνύματα 1. Πληκτρολογήστε την εντολή: print("καλημέρα.") Αυτό είναι το πρώτο σας πρόγραμμα. Εκτελέστε το για να δείτε τι θα συμβεί.

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

ιαφάνειες παρουσίασης #5

ιαφάνειες παρουσίασης #5 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης #5!Παρουσίαση

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

Προγραµµατισµός 2 The shell

Προγραµµατισµός 2 The shell Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'

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

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

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

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 18/12/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Διαδικαστικά Η εργασία

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

ΠΕΡΙΕΧΟΜΕΝΑ. Περιγραφή της αρχικής οθόνης κάθε τάξης α. Εικονίδια επιλογής θεµατικών ενοτήτων β. Εικονίδια διαφυγής...

ΠΕΡΙΕΧΟΜΕΝΑ. Περιγραφή της αρχικής οθόνης κάθε τάξης α. Εικονίδια επιλογής θεµατικών ενοτήτων β. Εικονίδια διαφυγής... ΠΕΡΙΕΧΟΜΕΝΑ Α. ΕΚΚΙΝΗΣΗ ΚΛΕΙΣΙΜΟ ΤΗΣ ΕΦΑΡΜΟΓΗΣ.............................. 5 Β. ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ.............................. 6 Γ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΥΛΗ ΚΑΘΕ ΤΑΞΗΣ....................................

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

Γνωριµία µε τη Microsoft Access

Γνωριµία µε τη Microsoft Access Γνωριµία µε τη Microsoft Access ηµιουργία νέας βάσης δεδοµένων Έναρξη - Προγράµµατα - Microsoft Access - ηµιουργία νέας βάσης δεδοµένων µε χρήση Κενής βάσης δεδοµένων - ΟΚ Επιλέγουµε Φάκελο και στο Όνοµα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

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

char name[5]; /* define a string of characters */

char name[5]; /* define a string of characters */ Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν

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

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

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

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

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη) Τεχνικές Αναπαράστασης αλγορίθµων Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή ) 1 Βασικές έννοιες Τυποποίηση αναπαράστασης αλγορίθµου - Ανάγκη ύπαρξης ενός κοινού τρόπου αναπαράστασης αλγορίθµων

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

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

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

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

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

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

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

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

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

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

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

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ . 1 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΛΟΗΓΗΣΗ ΣΕ ΕΠΙΛΕΓΜΕΝΕΣ ΙΣΤΟΣΕΛΙ ΕΣ ΣΤΟ ΙΑ ΙΚΤΥΟ ΚΑΙ ΜΗΧΑΝΕΣ ΑΝΑΖΗΤΗΣΗΣ Πλοήγηση στην ιστοσελίδα του Υπουργείου Παιδείας...4 Πλοήγηση σε µια ιστοσελίδα...5 Άνοιγµα µιας σελίδας

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

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

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας µέσω της τεχνολογίας των ιαδοχικών Φύλλων Στυλ (cascading

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

Αρχική σελίδα. Κατάσταση. Άµεση πρόσβαση

Αρχική σελίδα. Κατάσταση. Άµεση πρόσβαση Αρχική σελίδα Με την εισαγωγή σας στο λογισμικό ανταλλαγών (Cyclos), βρίσκεστε στην αρχική σελίδα, µέσω της οποίας μπορείτε να έχετε άµεση πρόσβαση σε διάφορες λειτουργίες και πληροφορίες για το λογαριασµό

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