ΚΕΦΑΛΑΙΟ 7. Αρχεία, εξαιρέσεις & εκσφαλμάτωση. 7.1 Εισαγωγή

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

Download "ΚΕΦΑΛΑΙΟ 7. Αρχεία, εξαιρέσεις & εκσφαλμάτωση. 7.1 Εισαγωγή"

Transcript

1 ΚΕΦΑΛΑΙΟ 7 Αρχεία, εξαιρέσεις & εκσφαλμάτωση Σύνοψη Στο κεφάλαιο αυτό ο αναγνώστης εισάγεται στην έννοια και χρήση των αρχείων, στις εξαιρέσεις και τη διαχείρισή τους, καθώς και στις έννοιες των τεχνικών εκσφαλμάτωσης. Προαπαιτούμενη γνώση Κεφάλαια 1-6 του παρόντος συγγράμματος. 7.1 Εισαγωγή Κατά τη διάρκεια της εκτέλεσης ενός προγράμματος Python, η κύρια μνήμη χρησιμοποιείται σαν ένα εφήμερο μέσο αποθήκευσης δεδομένων, τα οποία σβήνονται όταν τελειώσει το πρόγραμμα ή όταν ο υπολογιστής κλείσει. Τα δεδομένα αποθηκεύονται μόνιμα όταν τοποθετηθούν σε αρχεία, τα οποία, συνήθως, βρίσκονται σε σκληρό δίσκο (ή CD, DVD, flash memory, κλπ.). Ομάδες αρχείων, συνήθως, οργανώνονται σε φακέλους (folders, directories). Κάθε αρχείο ταυτοποιείται με ένα μοναδικό όνομα ή ένα συνδυασμό ονόματος αρχείου και ονόματος φακέλου (ή φακέλων). Διαβάζοντας από αρχεία και γράφοντας σε αυτά, τα προγράμματα μπορούν να επικοινωνούν μεταξύ τους και να δημιουργούν αρχεία τα οποία μπορούν να εκτυπωθούν. 173 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

2 7.2 Αρχεία Τα αρχεία τα μεταχειριζόμαστε λίγο πολύ σαν τετράδια. Ένα τετράδιο πρώτα το ανοίγεις, όταν τελειώσεις το κλείνεις. Όταν είναι ανοικτό μπορούμε να γράψουμε σε αυτό ή να διαβάσουμε από αυτό. Σε κάθε περίπτωση ξέρουμε πού ακριβώς είμαστε μέσα στο τετράδιο. Τις πιο πολλές φορές διαβάζουμε το τετράδιο με τη φυσική του σειρά, αλλά μερικές φορές πάμε και από τη μια σελίδα στην άλλη. Όλα αυτά εφαρμόζονται και στα αρχεία. Για να ανοίξουμε ένα αρχείο, προσδιορίζουμε ένα όνομα και ορίζουμε αν θέλουμε να το διαβάσουμε (read) ή να το γράψουμε (write). Όταν τελειώσουμε την εργασία μας με ένα αρχείο, θα πρέπει να το κλείσουμε (close). Ένα αρχείο κειμένου είναι μια σειρά από χαρακτήρες οι οποίοι είναι αποθηκευμένοι σε ένα μόνιμο μέσο αποθήκευσης (σκληρό δίσκο, κλπ.). Η βασική συνάρτηση που έχει η Python για να ανοίξουμε ένα αρχείο, είναι η συνάρτηση open η οποία επιστρέφει ένα αρχείο (Εικόνα 7.1) και έχει το αντικείμενο το οποίο φτιάχνεται στη μνήμη. Πρόκειται για μια αναπαράσταση του αρχείου, η οποία έχει τη δυνατότητα να δίνει ορισμένες πληροφορίες για το όνομά του και το περιεχόμενο που έχει και ενδεχομένως κάποιο κομμάτι του αρχείου αντιγράφεται στην κυρίως μνήμη από εκεί όπου ήταν, δηλαδή από το σκληρό δίσκο. Σαν παράδειγμα αναφέρεται το εξής: Αν τυπώσετε το αντικείμενο f (Εικόνα 7.2) θα σας δείξει σαν τιμή πληροφορίες για το αρχείο. Ειδικότερα, όμως, στο παράδειγμα δηλώνεται ότι είναι ανοιχτό, ότι καλείται myfile.txt, είναι ανοιχτό για γραφή και ανάγνωση (αυτό ακριβώς σημαίνει το w). Στην περίπτωση που είναι ανοιχτό για γραφή, μπορείτε και να διαβάζετε. Στην περίπτωση που είναι ανοιχτό μόνο για ανάγνωση, δεν μπορείτε να γράφετε σε αυτό. Η συνάρτηση open παίρνει βασικά δύο ορίσματα: το πρώτο είναι το όνομα του αρχείου και το άλλο είναι ο τρόπος (mode) w, που σημαίνει ότι ανοίγουμε το αρχείο για γράψιμο. Αν δεν υπάρχει αρχείο με όνομα myfile.txt, τότε αυτό θα δημιουργηθεί, ενώ αν υπάρχει ήδη, τότε τα δεδομένα που περιέχονται σε αυτό σβήνονται και αντικαθίστανται από τα νέα που θα γράψουμε. Γι αυτό πρέπει να είμαστε πολύ προσεκτικοί: Αν το έχουμε δημιουργήσει και θέλουμε να το ξανανοίξουμε, να το ανοίξουμε για ανάγνωση. Πρέπει να τονίσουμε ότι το f είναι μια μεταβλητή 174 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

3 του τύπου «αρχείο» και έχει μεθόδους. Μία μέθοδος είναι η μέθοδος write. Η λειτουργία της μεθόδου write είναι να γράφει στο αρχείο. Παράδειγμα: Εικόνα 7.1 Άνοιγμα αρχείου Στα Windows, το αρχείο δημιουργείται στο φάκελο που είναι εγκατεστημένη η Python. Αν θέλουμε το αρχείο να δημιουργηθεί σε άλλο φάκελο, πρέπει να γράψουμε και το μονοπάτι που οδηγεί σε αυτόν: Εικόνα 7.2 Ορισμός δημιουργίας αρχείου σε άλλο φάκελο πέρα από τον καθορισμένο Για να βάλουμε δεδομένα σε ένα αρχείο, επικαλούμαστε τη μέθοδο write πάνω στο αντικείμενο του αρχείου. Εμφανίζεται και ο αριθμός των χαρακτήρων που γράφονται στο αρχείο. Εικόνα 7.3 Μέθοδος write και close Μπορούμε να κλείσουμε το αρχείο με άλλη μέθοδο και, βεβαίως, μετά μπορούμε να το ανοίξουμε για ανάγνωση. Το κλείσιμο αρχείου γίνεται με επίκληση της μεθόδου close πάνω στο αντικείμενο του αρχείου. 175 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

4 Εικόνα 7.4 Το περιεχόμενο του αρχείου μας Το όρισμα της μεθόδου write πρέπει να είναι μια συμβολοσειρά. Έτσι, αν θέλουμε να βάλουμε άλλες τιμές θα πρέπει πρώτα να τις μετατρέψουμε σε συμβολοσειρές και ο ευκολότερος τρόπος να το πετύχουμε είναι με τη χρήση της συνάρτησης str. Εικόνα 7.5 Η συνάρτηση str Προσοχή στις αλλαγές γραμμής (\n). Εικόνα 7.6 Προσοχή στις αλλαγές γραμμής Μπορούμε να ανοίξουμε ένα αποθηκευμένο αρχείο για ανάγνωση και να διαβάσουμε το περιεχόμενό του σε μια συμβολοσειρά. Αυτήν τη φορά ο τρόπος (mode) είναι r (ανάγνωση): Εικόνα 7.7 Mode ανοίγματος αρχείου Αν δοκιμάσουμε να ανοίξουμε για ανάγνωση ένα αρχείο που δεν υπάρχει, παίρνουμε μήνυμα λάθους: 176 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

5 Εικόνα 7.8 Σφάλμα ανοίγματος αρχείου που δεν υπάρχει Η μέθοδος read διαβάζει δεδομένα από ένα αρχείο. Χωρίς ορίσματα διαβάζει όλο το περιεχόμενο του αρχείου: Εικόνα 7.9 Η μέθοδος read Μπορούμε, επίσης, όταν διαβάζουμε, να μη διαβάσουμε ολόκληρο το αρχείο, αλλά να διαβάσουμε ως τον 6 ο χαρακτήρα του αρχείου. Η read μπορεί, επίσης, να πάρει όρισμα που καθορίζει πόσοι χαρακτήρες πρέπει να διαβαστούν: Εικόνα 7.10 Καθορισμός αριθμού χαρακτήρων που θα διαβαστούν 177 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

6 Τι γίνεται αν συνεχίσουμε να επικαλούμαστε τη read; Εικόνα 7.11 Συνέχεια κλήσης της read Προσοχή: στο τέλος πρέπει να κλείσουμε το αρχείο: Εικόνα 7.12 Κλείσιμο αρχείου Στο παράδειγμα της Εικόνας 7.13 αντιγράφουμε ένα αρχείο, διαβάζοντας και αντιγράφοντας 5 χαρακτήρες τη φορά. Η συνάρτησή μας είναι η copyfile με παραμέτρους oldfile και newfile (το παλιό αρχείο που διαβάζουμε και το καινούριο που γραφούμε αντίστοιχα). Η συνάρτηση while True είναι ένας άπειρος βρόγχος, από όπου πρέπει να έχουμε τρόπο να βγούμε. Με ποιον τρόπο θα γίνει αυτό; Εφόσον διαβάζουμε 5 χαρακτήρες τη φορά, όταν φτάσουμε στο τέλος, η read θα μας επιστρέψει κενό, θα κάνουμε break, και θα αποχωρήσουμε από το loop. Διαφορετικά γράφουμε το text στο f2 και πάλι από την αρχή: Εικόνα 7.13 Κατασκευή συνάρτησης αντιγραφής αρχείου 178 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

7 7.3 Αρχεία κειμένου Ένα αρχείο κειμένου περιέχει εκτυπώσιμους χαρακτήρες και whitespaces, οργανωμένους σε γραμμές που χωρίζονται από χαρακτήρες newline. Επειδή η Python είναι ειδικά σχεδιασμένη να επεξεργάζεται αρχεία κειμένου, προσφέρει μεθόδους ειδικά για το σκοπό αυτό. Για να το δούμε, ας δημιουργήσουμε ένα αρχείο με τρεις γραμμές κειμένου που χωρίζονται με newlines: Εικόνα 7.14 Διαχείριση αρχείων κειμένου Εικόνα 7.15 Έξοδος Η μέθοδος readline διαβάζει όλους τους χαρακτήρες μέχρι και τον επόμενο χαρακτήρα newline: Εικόνα 7.16 Η μέθοδος readline Η μέθοδος readlines εφαρμόζεται πάνω σε τύπους files και επιστρέφει όλες τις εναπομένουσες τιμές ως λίστα από συμβολοσειρές. Στο παράδειγμα της Εικόνας 7.17 καλούμε readlines μια φορά, και αυτό μας επιστρέφει την 2η και 3η γραμμή του αρχείου (επειδή έχουμε, ήδη, διαβάσει την πρώτη πριν λίγο). Τις επιστρέφει, 179 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

8 λοιπόν, σαν ομάδες χαρακτήρων συν τον χαρακτήρα αλλαγής γραμμής. Αυτό είναι πολύ χρήσιμο, διότι τώρα μπορούμε να πάρουμε αυτές τις συμβολοσειρές, να τις χωρίσουμε σε λέξεις για τη λεξικογραφική ανάλυση, κλπ. Αν είμαστε στο τέλος του αρχείου, η readlines επιστρέφει άδεια λίστα. Έτσι, λοιπόν, μπορούμε να παίρνουμε κείμενο σε αρχείο και να το χωρίζουμε σε γραμμές. Εικόνα 7.17 Η μέθοδος readlines Ας θυμηθούμε ότι ο διερμηνέας της Python αγνοεί τα σχόλια τα οποία μπαίνουν μετά το χαρακτήρα της δίεσης (#) μέχρι να τελειώσει η γραμμή. Όταν, λοιπόν, ο διερμηνέας της Python θέλει να αφαιρέσει τα σχόλια από ένα αρχείο, χρησιμοποιεί κώδικα όπως αυτός του παραδείγματος της Εικόνας 7.18, όπου η συνάρτηση filterfile φτιάχνει αντίγραφο του oldfile, παραλείποντας όλες τις γραμμές που αρχίζουν με #. Προσέξτε τη χρήση της εντολής continue, η οποία τερματίζει την τρέχουσα επανάληψη του βρόγχου και συνεχίζει με την επόμενη επανάληψη. Η ροή εκτέλεσης μεταφέρεται στην κορυφή του βρόγχου όπου ελέγχει ξανά τη συνθήκη και προχωράει αντίστοιχα. Αν το text είναι η άδεια συμβολοσειρά βγαίνουμε από το βρόγχο. Αν ο πρώτος χαρακτήρας του text είναι ο #, η ροή εκτέλεσης πάει στην κορυφή του βρόγχου (παραλείπουμε να γράψουμε τη γραμμή στην έξοδο). Μόνον αν και οι δύο συνθήκες είναι ψευδείς, αντιγράφουμε το text στο νέο αρχείο. 180 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

9 Εικόνα 7.18 Η συνάρτηση filterflile 7.4 Τελεστής διάταξης Όπως αναφέρθηκε και προηγουμένως, το όρισμα της μεθόδου write πρέπει να είναι συμβολοσειρά, άρα αν πρέπει να βάλουμε άλλου τύπου τιμές σε ένα αρχείο, πρέπει να τις μετατρέψουμε σε συμβολοσειρές. Ο ευκολότερος τρόπος είναι μέσω της συνάρτησης str. Εναλλακτικά τώρα για να έχουμε ακέραιους, πραγματικούς κτλ. μπορούμε να χρησιμοποιήσουμε τον τελεστή διάταξης (format) %. Στους ακεραίους ο τελεστής % είναι ο modulus και επιστρέφει υπόλοιπο διαίρεσης. Όταν, όμως, ο πρώτος τελεστέος είναι συμβολοσειρά, τότε ο τελεστής % είναι τελεστής διάταξης. Ο δεύτερος τελεστέος είναι πλειάδα εκφράσεων. Γίνεται, λοιπόν, μια αντιστοίχιση μεταξύ κομματιών ομάδας χαρακτήρων και στοιχείων της πλειάδας. Στο παράδειγμα της Εικόνας 7.19 δημιουργούμε νέες συμβολοσειρές που περιέχουν τιμές μεταβλητών. Αρχικά δίνουμε στην ακέραια μεταβλητή cars την τιμή 52. Στη συνέχεια χρησιμοποιούμε τον τελεστή διάταξης, αριστερά του οποίου είναι μια ομάδα χαρακτήρων, ενώ δεξιά του είναι μια πλειάδα που έχει σαν μόνο στοιχείο τη μεταβλητή cars. Η σημασιολογία του τελεστή %d είναι: «Tύπωσε τη μεταβλητή σαν ακέραιο» (d σημαίνει decimal ή ακέραιος). Το αποτέλεσμα είναι μια 181 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

10 ομάδα χαρακτήρων που συμπεριλαμβάνει στην αρχική συμβολοσειρά τα ψηφία του ακεραίου cars. Θα μπορούσαμε να βάλουμε δύο ή περισσότερους αριθμούς, ή πλειάδες. Στη δεύτερη εντολή, λοιπόν, έχουμε πάλι τον τελεστή διάταξης με μια ομάδα χαρακτήρων αριστερά και μια πλειάδα δεξιά με 3 στοιχεία: το 34, το 6.1 και το dollars. Αυτά τα τρία στοιχεία θα πρέπει να αντιστοιχηθούν σε 3 χαρακτήρες με το σύμβολο % στην αριστερή μεριά του τελεστή διάταξης. To πρώτο % (%d το οποίο σημαίνει ακέραιος) θα αντιστοιχηθεί με το πρώτο στοιχείο της πλειάδας, το δεύτερο % (%f το οποίο σημαίνει floating-point ή πραγματικός) με το δεύτερο στοιχείο της πλειάδας, και το τρίτο % (%s δηλαδή string) με το τρίτο στοιχείο της πλειάδας. Στην εκτύπωση του πραγματικού 6.1 με το %f, ο διερμηνέας βάζει 6 δεκαδικά ψηφία ( ). Σύμφωνα με τον κανόνα της Python που αποτελεί σύμβαση, αν δεν ορίσουμε πόσα δεκαδικά θέλουμε, τότε βάζει 6 δεκαδικά (συμπληρώνοντας 0 αν χρειαστεί). Μπορεί, ωστόσο, κανείς να ορίσει τον αριθμό των δεκαδικών βάζοντας δύο νούμερα μπροστά από το f. Το δεύτερο νούμερο ορίζει το πλήθος των δεκαδικών και κάνει στρογγυλοποίηση αν έχει περισσότερα δεκαδικά. Το πρώτο νούμερο είναι το συνολικό πλήθος των ψηφίων ή θέσεων στην εκτύπωση ή θέσεων (χαρακτήρων) στο αρχείο που θα πιάσει αυτός ο αριθμός. Στο παράδειγμα το %12.2f, λέει ότι αυτός είναι ένας πραγματικός αριθμός με μέγιστο εύρος 12 θέσεις (χαρακτήρες), από τις οποίες οι δύο είναι δεκαδικά ψηφία. Η υποδιαστολή λογίζεται και αυτή σαν μια θέση, άρα μένουν 9 ψηφία (χαρακτήρες) για το ακέραιο μέρος. Αν ο αριθμός ο ίδιος δεν αρκεί να καταλάβει 12 ψηφία, τότε αφήνονται κενές θέσεις. Αν αντίθετα το ακέραιο μέρος υπερβαίνει το 12, ο διερμηνέας βγάζει λάθος (υπέρβαση ή overflow). Αν τα δεκαδικά δε χωρούν, τότε κάνει στρογγυλοποίηση. Με το %12f δεν ορίζουμε πόσα δεκαδικά πρέπει να βάλει, άρα εφαρμόζει το δικό του κανόνα: 6 δεκαδικά ψηφία. Με τα 6 δεκαδικά ψηφία συν την υποδιαστολή και το δεκαδικό, έχουμε 4 θέσεις κενές. Με το %12.2f ισχύουν τα παραπάνω, αλλά καθορίζουμε ότι κρατάμε μόνο δύο δεκαδικά. 182 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

11 Εικόνα 7.19 Ο τελεστής διάταξης % Ένα πιθανό λάθος το οποίο χρειάζεται προσοχή είναι να έχουμε λιγότερα στοιχεία στην πλειάδα στα δεξιά του % από όσα χρειάζεται. Επίσης, ενδέχεται από παραδρομή να ζητήσουμε να τυπωθεί π.χ. μια ομάδα χαρακτήρων σαν ακέραιος, το οποίο δεν επιτρέπεται. Ακολουθεί ένα παράδειγμα. 7.5 Άλμευση (pickling) Πρέπει να θυμόμαστε ότι για να βάλουμε τιμές μέσα σε ένα αρχείο πρέπει να τις κάνουμε ομάδες χαρακτήρων. Το θέμα είναι ότι, όταν διαβάζουμε πίσω τη συμβολοσειρά, δεν ξέρουμε πού τελειώνει η μία τιμή και πού αρχίζει η επόμενη, και άρα η αρχική πληροφορία για τον τύπο της τιμής έχει χαθεί. Εκφράζοντας το πρόβλημα με διαφορετικό τρόπο, θέλουμε να μπορούμε να αποθηκεύουμε στα αρχεία μας, όχι μόνον ομάδες χαρακτήρων και χαρακτήρες, αλλά να μπορούμε να αποθηκεύουμε και την πιο πολύπλοκη δομή των τύπων δεδομένων καθώς και να θυμόμαστε τη δομή αυτή. Πώς γίνεται αυτό, θα εξηγηθεί με το παράδειγμα που φαίνεται στην Εικόνα Θεωρήστε, λοιπόν, ότι έχουμε τον πραγματικό αριθμό 5.2 και τη λίστα 1,2,3. Και τα δύο θα αποθηκευτούν. Πιο συγκεκριμένα το πρώτο θα αποθηκευτεί σαν η ομάδα χαρακτήρων 5,2 και το δεύτερο θα αποθηκευτεί, επίσης, σαν η ομάδα χαρακτήρων 183 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

12 με αριστερή τετραγωνική παρένθεση 1,2,3 δεξιά τετραγωνική παρένθεση ([1,2,3]). Ωστόσο θα χαθεί, τελείως, η πληροφορία ότι αυτό ήταν λίστα, ότι αυτό ήταν πραγματικός αριθμός. Διότι, θα είναι μια ομάδα χαρακτήρων και όταν διαβάσουμε το αρχείο αυτό μετά, παίρνουμε μια ομάδα χαρακτήρων. Η Python, όμως, δεν μπορεί να καταλάβει ότι αυτός ήταν πραγματικός αριθμός κάποτε ή ότι αυτό ήταν λίστα κάποτε. Το πρόβλημα είναι ότι χάθηκε η πληροφορία ότι αυτός ήταν πραγματικός αριθμός κάποτε ή αυτός ήταν λίστα κάποτε. Τώρα όλα αυτά αποτελούν μια ομάδα χαρακτήρων. Εικόνα 7.20 Τοποθέτηση τιμών σε ένα αρχείο Πρέπει, λοιπόν, να δώσουμε πιο πολύ δομή στην έξοδό μας στο αρχείο. Η λύση ονομάζεται «άλμευση» (βάζω κάτι στην άλμη ή άρμη ή αρμύρα), που «συντηρεί» τις δομές δεδομένων. Υπάρχει ένα πακέτο που ονομάζεται pickle, το οποίο κάνουμε import, και μετά ανοίγουμε το αρχείο ως συνήθως. Για αποθήκευση μιας δομής δεδομένων, χρησιμοποιούμε τη συνάρτηση dump. Ορίζουμε: «Αυτό θα το αποθηκεύσεις σαν πραγματικό αριθμό» γιατί βάζουμε το float (f) σαν δεύτερη παράμετρο, ομοίως για τη λίστα, και μετά κλείνουμε το αρχείο με το συνηθισμένο τρόπο. Σημειώστε ότι στο open πρέπει να χρησιμοποιήσουμε το mode wb (write binary). Εικόνα 7.21 Το module pickle και η συνάρτηση dump Τώρα μπορούμε να ανοίξουμε το αρχείο για διάβασμα και να φορτώσουμε τις δομές δεδομένων που αδειάσαμε (dumped) στο αρχείο (με τη συνάρτηση load). 184 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

13 Σημειώστε ότι στο open πρέπει να χρησιμοποιήσουμε το mode rb (read binary). Έτσι, μπορούμε να διαβάσουμε και τον πραγματικό αριθμό και τη λίστα διατηρώντας τη δομή τους. Συνοψίζοντας, οι σημαντικές μέθοδοι εδώ είναι dump για να διατηρήσουμε τη δομή και load για να διαβάσουμε ένα αρχείο σαν δομημένο αντικείμενο. Κάθε load διαβάζει το επόμενο δομημένο αντικείμενο, όσο μεγάλο κι αν είναι αυτό. Εικόνα 7.22 Η συνάρτηση load 185 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

14 7.6 Εξαιρέσεις Όταν συμβαίνει λάθος κατά τη διάρκεια της εκτέλεσης ενός προγράμματος (runtime error), δημιουργείται μια εξαίρεση (exception). το πρόγραμμα σταματά και η Python τυπώνει μήνυμα λάθους. Παραδείγματα: Εικόνα 7.23 Μήνυμα λάθους της Python Σε κάθε περίπτωση, το μήνυμα λάθους έχει δύο μέρη: τον τύπο του λάθους πριν από την άνω και κάτω τελεία, και λεπτομέρειες για το λάθος μετά την άνω και κάτω τελεία. Μερικές φορές θέλουμε να εκτελέσουμε μια πράξη που μπορεί να προκαλέσει εξαίρεση, αλλά δε θέλουμε το πρόγραμμά μας να σταματήσει. Το χειριζόμαστε αυτό με τις εντολές try και except. Για παράδειγμα, ζητάμε από το χρήστη «όνομα αρχείου» και μετά προσπαθούμε να το ανοίξουμε. Αν το αρχείο δεν υπάρχει, δε θέλουμε το πρόγραμμα να αποτύχει και να τερματίσει. Θέλουμε αντ αυτού να χειριστούμε την εξαίρεση: 186 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

15 Εικόνα 7.24 Οι συντελεστές try και except Η εντολή try εκτελεί τις εντολές στο πρώτο μπλοκ. Αν δεν υπάρξουν εξαιρέσεις αγνοεί την εντολή except. Αν συμβεί εξαίρεση τύπου IOError, τότε εκτελεί τις εντολές στον κλάδο except και μετά συνεχίζει. Μπορούμε να ενθυλακώσουμε τον παραπάνω κώδικα σε συνάρτηση: Εικόνα 7.25 Παράδειγμα: Συνάρτηση exists Εάν το πρόγραμμά σας ανακαλύψει ένα λάθος, μπορείτε να το κάνετε να «σηκώσει» (από την αγγλική έκφραση, to raise) μια εξαίρεση. Παράδειγμα: Παίρνουμε είσοδο από το χρήστη και ελέγχουμε αν η τιμή είναι 17. Υποθέτοντας ότι για κάποιο λόγο το 17 δεν είναι σωστή είσοδος, σηκώνουμε εξαίρεση με την εντολή raise: 187 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

16 Εικόνα 7.26 Η εντολή raise Εάν καλέσουμε τη συνάρτηση inputnumber και δώσουμε ως είσοδο τον αριθμό 17, τότε θα εμφανιστεί το παρακάτω: Εικόνα 7.27 Μήνυμα σφάλματος Ο τύπος ValueError είναι ένας από τους τύπους εξαιρέσεων που δίνει η Python. Άλλοι τύποι είναι οι: TypeError, KeyError, IOError, NameError, MemoryError, OSError, SyntaxError NotImplementedError, κ.λπ. 188 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

17 7.7 Εκσφαλμάτωση (debugging) Η διαδικασία του προγραμματισμού είναι μια πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη, άλλωστε αυτό είναι αναμενόμενο καθώς πραγματοποιείται από ανθρώπους. Τα προγραμματιστικά λάθη λέγονται bugs και η διαδικασία εντοπισμού και διόρθωσής τους ονομάζεται debugging ή εκσφαλμάτωση (Zeller, 2005). ΕΛΕΓΧΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΝΤΟΠΙΣΜΟΣ ΛΑΘΩΝ ΔΙΟΡΘΩΣΗ ΛΑΘΩΝ ΕΚΣΦΑΛΜΑΤΩΣΗ Εικόνα 7.28 Εκσφαλμάτωση Πιθανά προγραμματιστικά λάθη μπορεί να είναι τα παρακάτω: συντακτικά λάθη (Syntax errors), λάθη κατά την εκτέλεση (Runtime errors), σημασιολογικά λάθη (Semantic errors). Συντακτικά λάθη Παράγονται κατά τη μετάφραση του πηγαίου κώδικα και, συνήθως, δείχνουν ότι υπάρχει κάποιο λάθος στη σύνταξη του προγράμματος. Οφείλονται σε παραβίαση των κανόνων της γραμματικής και του συντακτικού της γλώσσας προγραμματισμού. Παραδείγματα λαθών: 189 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

18 Εικόνα 7.29 Συντακτικά λάθη Τα συντακτικά λάθη είναι εύκολα στη διόρθωση, αρκεί να εντοπιστούν. Συνήθως, όμως, τα μηνύματα λάθους (error messages) δεν είναι κατατοπιστικά. Τα πιο συνηθισμένα μηνύματα είναι τα εξής: SyntaxError: invalid syntax SyntaxError: invalid token Το μήνυμα λάθους μας πληροφορεί και για το πού βρίσκεται το λάθος. Αν ένα πρόγραμμα γράφεται αυξητικά (incrementally), τότε το λάθος θα βρίσκεται στις χρονικά πιο πρόσφατες γραμμές που προστέθηκαν. Μερικοί τρόποι αποφυγής κοινότοπων λαθών: Μη χρησιμοποιείτε τις δεσμευμένες λέξεις της Python (keyword) ως ονόματα μεταβλητών. Λάθος: def = 5 Επιβεβαιώστε ότι υπάρχει ένα σύμβολο colon (:) στο τέλος της επικεφαλίδας κάθε σύνθετης εντολής (for, while, if, def). Λάθος: while x > 0 Ελέγξτε τη συνέπεια των εσοχών (indentation). Λάθος: def printmessage(): print( Hello world ) Σιγουρευτείτε ότι τα τυχόν strings στον κώδικα έχουν quotation marks που ταιριάζουν. 190 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

19 Λάθος: print( Hello world ) - single quote: - double quote: Να κλείνετε σωστά τα brackets (, {, [ Μην μπερδεύετε την εκχώρηση = με την ισότητα == Λάθη κατά την εκτέλεση Πολλές φορές ένα πρόγραμμα, απαλλαγμένο από συντακτικά λάθη, μπορεί να εμφανίσει λάθη κατά την εκτέλεσή του. Συνήθως, τα λάθη αυτά οφείλονται σε απαιτήσεις του προγράμματος που ο υπολογιστής δεν μπορεί να ικανοποιήσει και ο προγραμματιστής δεν είχε προβλέψει στη διαδικασία ανάλυσης του προβλήματος και κωδικοποίησης του προγράμματος. Θα μπορούσαν να αναφερθούν ως παραδείγματα τα εξής: διαίρεση με το μηδέν, χρήση αρχείου για ανάγνωση όταν δεν υπάρχει, ατέρμονη αναδρομή, κλπ. Τα περισσότερα runtime error messages περιλαμβάνουν πληροφορία για το πού συνέβη το λάθος και ποιες συναρτήσεις ήταν σε εκτέλεση. Το πρόγραμμα μπορεί να περιέχει συναρτήσεις και κλάσεις, αλλά σταματάει και φαίνεται να μην κάνει τίποτα. Η αιτία μπορεί να είναι μια από τις παρακάτω: ατέρμονας βρόγχος (infinite loop) ή ατέρμονη αναδρομή (infinite recursion). 191 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

20 Ατέρμονας βρόγχος: Αν νομίζετε ότι ένας συγκεκριμένος βρόγχος είναι ατέρμονας, τότε προσθέστε στο τέλος της επανάληψης εντολές εκτύπωσης που τυπώνουν τις τιμές των μεταβλητών στη συνθήκη και την τιμή της συνθήκης. Για παράδειγμα: Ατέρμονη αναδρομή: Τις περισσότερες φορές το πρόγραμμα τρέχει για λίγο και έπειτα παράγει ένα λάθος: Maximum recursion depth exceeded. Εάν κρίνετε ότι μια συνάρτηση ή μέθοδος προκαλεί ατέρμονη αναδρομή, τότε ελέγχετε αν υπάρχει μια base case, δηλαδή, κάποια συνθήκη που θα αναγκάσει τη συνάρτηση να επιστρέψει χωρίς να παράγει επαναλαμβανόμενη κλήση. Εάν δεν υπάρχει κάποια base case, πρέπει να ξανασκεφτείτε τον αλγόριθμο και να προσδιορίσετε κάποια. Εάν υπάρχει κάποια base case και ο αλγόριθμος έχει την ίδια συμπεριφορά, προσθέστε στην αρχή της συνάρτησης εντολές εκτύπωσης που τυπώνουν τις τιμές των παραμέτρων. Εάν οι παράμετροι δεν κινούνται προς τηνbase case, θα πρέπει να βρείτε την αιτία γι αυτό. Exception: Εάν κάτι πηγαίνει στραβά κατά την εκτέλεση, η Python τυπώνει ένα μήνυμα που περιλαμβάνει το όνομα του exception, τη γραμμή του προγράμματος που εμφανίστηκε καθώς και ένα traceback. Το πρώτο βήμα είναι να εξεταστεί η θέση του προγράμματος όπου εμφανίστηκε το λάθος. 192 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

21 Κάποια από τα πιο κοινά λάθη κατά την εκτέλεση (runtime errors) είναι τα παρακάτω: NameError TypeError KeyError AttributeError IndexError Προβλήματα με πολλές εντολές εκτύπωσης στο debugging: Μπορεί να καταλήξουν κρυμμένες στην έξοδο. Λύσεις: o Απλοποίηση της εξόδου o Απλοποίηση του προγράμματος o Καθαρισμός του προγράμματος: > Αφαιρέστε το «νεκρό» κώδικα > Αναδιοργανώστε το πρόγραμμα. Σημασιολογικά Λάθη Σημασιολογικά λάθη μπορούν να συμβούν όταν το πρόγραμμα τρέχει, αλλά δεν εκτελεί τις σωστές λειτουργίες. Είναι τα πιο δύσκολα λάθη για να διορθωθούν, καθώς ο compiler και το runtime σύστημα δεν μπορούν να τα διαγνώσουν και άρα δεν παρέχουν κάποια πληροφορία για αυτά. Λύσεις για τα λάθη αυτά είναι οι παρακάτω: Να συνδέσετε το κείμενο του προγράμματος με τη συμπεριφορά που βλέπετε. Να βρείτε μια υπόθεση για αυτό που πραγματικά κάνει το πρόγραμμα. Να μπορείτε να επιβραδύνετε το πρόγραμμά σας. Να χρησιμοποιείτε τον debugger και να περπατήσετε το πρόγραμμα ελέγχοντας καλύτερα τη λογική του. 193 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

22 Ακόμη ένα πρόβλημα είναι οι μεγάλες δύσκολες εκφράσεις που δε δουλεύουν. Μια λύση είναι να σπάσουμε τη σύνθετη έκφραση σε μία σειρά αναθέσεων σε προσωρινές μεταβλητές. Για παράδειγμα: Αντί self.hands[i].addcard(self.hands[self.findneighbor(i)].popcard()) μπορείτε να γράψετε: neighbor = self.findneighbor(i) pickedcard = self.hands[neighbor].popcard() self.hands[i].addcard(pickedcard) Αυτό είναι ευκολότερο να διορθωθεί καθώς μπορείτε να ελέγξετε τους τύπους των ενδιάμεσων μεταβλητών και τις τιμές τους. Ένα άλλο πρόβλημα που μπορεί να εμφανιστεί στις μεγάλες εκφράσεις είναι η μη αναμενόμενη σειρά αποτίμησης. Για παράδειγμα, η έκφραση μπορεί να γραφτεί στην Python ως: y = x / 2 * math.pi Όμως, επειδή ο πολλαπλασιασμός και η διαίρεση έχουν την ίδια προτεραιότητα, οι πράξεις θα εκτελεστούν από τα αριστερά προς τα δεξιά. Η λύση είναι η χρήση παρενθέσεων: y = x / (2 * math.pi) 194 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

23 Επίσης, μπορεί να έχουμε μια συνάρτηση που δεν επιστρέφει αυτό που θέλουμε: Εάν έχετε μία σύνθετη έκφραση επιστροφής μπορείτε να τυπώσετε την επιστρεφόμενη τιμή πριν την επιστρέψετε. Επίσης, μπορείτε να χρησιμοποιήσετε μια προσωρινή μεταβλητή. Για παράδειγμα: Αντί return self.hands[i].removematches() μπορείτε να γράψετε: count = self.hands[i].removematches() return count 195 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

24 7.8 Επίλογος Σε αυτό το κεφάλαιο μελετήσαμε τη χρήση των αρχείων, τις εξαιρέσεις κατά τη διάρκεια εκτέλεσης ενός προγράμματος και τη διαχείρισή τους, και την έννοια της εκσφαλμάτωσης και των τεχνικών που χρησιμοποιούνται για την εύρεση σφαλμάτων αλλά και την αποφυγή τους. Στο Κεφάλαιο 8 θα μελετήσουμε τις βασικές έννοιες του αντικειμενοστραφούς προγραμματισμού και την εφαρμογή τους στην Python. Βιβλιογραφία/Αναφορές Zeller, A. (2005). Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann. 196 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

25 Κριτήρια αξιολόγησης Κριτήριο αξιολόγησης 1 (Βαθμός δυσκολίας: ) Γράψτε ένα πρόγραμμα που παίρνει το όνομα από το χρήστη και το γράφει στο αρχείο myname.txt 197 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

26 Κριτήριο αξιολόγησης 2 (Βαθμός δυσκολίας: ) Γράψτε ένα πρόγραμμα όπου ζητάμε από το χρήστη «όνομα αρχείου» και μετά προσπαθούμε να το ανοίξουμε. Αν το αρχείο δεν υπάρχει, θέλουμε το πρόγραμμά μας να χειριστεί την εξαίρεση. Κριτήριο αξιολόγησης 3 (Βαθμός δυσκολίας: ) Γράψτε δύο τρόπους αποφυγής λαθών στον προγραμματισμό. 198 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

ΗΥ101: Εισαγωγή στην Πληροφορική

ΗΥ101: Εισαγωγή στην Πληροφορική Δρ. Χρήστος Ηλιούδης Τι είναι η ; Η διαδικασία του προγραμματισμού είναι μία πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη (πραγματοποιείται από ανθρώπους!!!). Τα προγραμματιστικά λάθη λέγονται bugs και

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 2 Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές Σύνοψη Το κεφάλαιο αυτό εισάγει τον αναγνώστη σε βασικές έννοιες που είναι χρήσιμες για την απόκτηση μιας πρώτης εμπειρίας με την Python. Προαπαιτούμενη

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

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

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

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

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Τα δεδομένα που επεξεργαζόμαστε, καθώς και ο κώδικας που τρέχουμε, βρίσκονται αποθηκευμένα στη μνήμη RAM (Random Access Memory) του υπολογιστή. Τα δεδομένα

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Eπανάληψη με την εντολή while. 5.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 5. Eπανάληψη με την εντολή while. 5.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 5 Eπανάληψη με την εντολή while Σύνοψη Σε αυτό το κεφάλαιο θα μελετήσουμε την επανάληψη μέσω της εντολής while και άλλες έννοιες, όπως η ενθυλάκωση και η γενίκευση. Προαπαιτούμενη γνώση Κεφάλαια

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

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

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

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

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

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

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

Γλώσσα προγραμματισμού python

Γλώσσα προγραμματισμού python Προηγούμενο Σημειώσεις Επόμενο Γλώσσα προγραμματισμού python Η γλώσσα αυτή γράφτηκε από τον Ολλανδό προγραμματιστή Guido van Rossum στα τέλη της δεκαετίας 1980-90. Η έκδοση 2.0 δημοσιεύτηκε στις 16 Οκτωβρίου

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

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

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

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

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

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

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

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

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 1η εβδομάδα. Κοζάνη, 5 Οκτωβρίου 2007. Βασικά στοιχεία γραφής προγραμμάτων με τη C: α) Case Sensitive!!! β) Δυνατότητα εισαγωγής σχολίων με /*

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

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

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

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

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

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

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες

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

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

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

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

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Ένα πρόγραμμα που παίζει κρεμάλα Σήμερα φτιάξαμε ένα πρόγραμμα που παίζει "κρεμάλα" με το χρήστη. Το πρόγραμμα hangman.py link (http://fourier.math.uoc.gr/~mk/prog1718/files/hangman.py))

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής / εντολή αντικατάστασης Εισαγωγή

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

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

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

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

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

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Λίστες και ανακύκλωση for Είδαμε στην αρχή (ξανά) μερικά βασικά πράγματα για λίστες. Λίστα είναι μια πεπερασμένη ακολουθία από αντικείμενα (αριθμούς, strings, άλλες

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

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

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python 1η Ομάδα Ασκήσεων Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Εισαγωγικά προγράμματα / print / μεταβλητές / input

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ KAI ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΕΜΠΤΗ 26 ΣΕΠΤΕΜΒΡΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

Μορφοποίηση εξόδου. Σημειώσεις

Μορφοποίηση εξόδου. Σημειώσεις Προηγούμενο Σημειώσεις Επόμενο Μορφοποίηση εξόδου Έχουμε δει ότι όταν τυπώνουμε μεταβλητές, π.χ., print(s,a,i) δεν έχουμε ιδιαίτερο έλεγχο στη μορφή με την οποία θα τυπωθούν οι τιμές των μεταβλητών. Με

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

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

ΚΕΦΑΛΑΙΟ 4. Συναρτήσεις και εκτέλεση υπό συνθήκη. 4.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 4. Συναρτήσεις και εκτέλεση υπό συνθήκη. 4.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 4 Συναρτήσεις και εκτέλεση υπό συνθήκη Σύνοψη Στο κεφάλαιο αυτό εισάγουμε την έννοια της συνάρτησης και της εκτέλεσης υπό συνθήκη. Προαπαιτούμενη γνώση Κεφάλαια 1-3 του παρόντος συγγράμματος.

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

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

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

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

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

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

for for for for( . */

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

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

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

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης Προγραμματισμός Υπολογιστών & Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

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

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

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

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

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

Εργαστήριο 9: Αρχεία

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

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

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

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΑΡΑΣΚΕΥΗ 22 ΣΕΠΤΕΜΒΡΙΟΥ 2017 ΘΕΜΑ Α ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ:

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod

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

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

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

Τιμές και τύποι, μεταβλητές Ένα πρώτο σημαντικό βήμα για να μάθουμε να προγραμματίζουμε είναι να

Τιμές και τύποι, μεταβλητές Ένα πρώτο σημαντικό βήμα για να μάθουμε να προγραμματίζουμε είναι να Κεφ.3 Τιμές και τύποι, μεταβλητές Κεφάλαιο 3 Τιμές και τύποι, μεταβλητές Ένα πρώτο σημαντικό βήμα για να μάθουμε να προγραμματίζουμε είναι να κατανοήσουμε τους βασικούς τύπους δεδομένων της Python: τους

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

Λύσεις για τις ασκήσεις του lab5

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

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

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας Εισαγωγή Εξαιρέσεις ηµήτρης Λεβεντέας 20 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Ο χειρισµός εξαιρέσεων είναι µια κατασκευή η οποία µας επιτρέπει να χειριστούµε ειδικές συνθήκες που αλλάζουν την ϕυσιολογική

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