ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 6. Αρχεία (Files)

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

Download "ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 6. Αρχεία (Files)"

Transcript

1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 6 Αρχεία (Files) Η Python δίνει τη δυνατότητα εγγραφής δεδομένων σε αρχεία, καθώς και ανάγνωσης δεδομένων από αυτά. Ουσιαστικά πρόκειται για την είσοδο δεδομένων σε κάποιο πρόγραμμα, τα οποία είναι αποθηκευμένα σε κάποιο αρχείο, και για την έξοδο δεδομένων (αποτελεσμάτων) του προγράμματος μέσω της αποθήκευσής τους σε κάποιο αρχείο. Σε αντίθεση με την είσοδο δεδομένων από το πληκτρολόγιο ή την έξοδο δεδομένων σε κάποια δομή δεδομένων (π.χ., μεταβλητή, λίστα κτλ), η είσοδος/έξοδος με τη χρήση αρχείων έχει τα εξής πλεονεκτήματα: Τα δεδομένα διατηρούνται και μετά το πέρας εκτέλεσης του προγράμματος (ή της λειτουργίας του κελύφους μέσω του οποίου καλείται το πρόγραμμα). Είναι πιο κατάλληλος τρόπος για την αποθήκευση μεγάλου όγκου δεδομένων. Είναι πιο κατάλληλος τρόπος για την επεξεργασία δεδομένων που έχουν προκύψει από άλλη εφαρμογή ή πρόγραμμα. Το προς διαχείριση αρχείο συνδέεται με το πρόγραμμα μέσω ενός αντικειμένου αρχείου (file object). Το αντικείμενο που δημιουργείται στη μνήμη του υπολογιστή σχετίζεται με το συγκεκριμένο αρχείο και παρέχει έναν τρόπο για να δουλέψει το πρόγραμμα με αυτό, μέσω μιας μεταβλητής που αναφέρεται στο συγκεκριμένο αντικείμενο. Η μεταβλητή χρησιμοποιείται για τη διενέργεια των πράξεων που εκτελούνται στο αρχείο. Οι πράξεις αυτές έχουν να κάνουν με το άνοιγμα ενός αρχείου, την ανάγνωση δεδομένων από αυτό, την εγγραφή δεδομένων σε αυτό, και το κλείσιμό του. Πιο αναλυτικά: Άνοιγμα αρχείου: Για το άνοιγμα ενός αρχείου χρησιμοποιείται η open, ως εξής: μεταβλητή_αρχείου = open(όνομα_αρχείου, προσπέλαση) όπου η μεταβλητή_αρχείου είναι το όνομα της μεταβλητής που θα αναφέρεται στο αντικείμενο αρχείου, το όνομα_αρχείου είναι μια συμβολοσειρά που καθορίζει το όνομα του αρχείου και προσπέλαση είναι μια συμβολοσειρά που καθορίζει τον τρόπο προσπέλασης του αρχείου, δηλαδή εάν το αρχείο ανοίγεται για ανάγνωση δεδομένων από αυτό ή για εγγραφή δεδομένων σε αυτό (υπάρχουν και άλλες περιπτώσεις προσπέλασης, οι οποίες δεν καλύπτονται εδώ). Πιο συγκεκριμένα, οι αντίστοιχες τιμές του τελεστή προσπέλασης είναι οι εξής: 'r' read-only: Άνοιγμα αρχείου μόνο για ανάγνωση 'w' write: Άνοιγμα αρχείου για εγγραφή Αν το αρχείο υπάρχει ήδη, τα περιεχόμενά του διαγράφονται. Αν δεν υπάρχει, δημιουργείται. 'a' append-write: Άνοιγμα αρχείου για εγγραφή Αν το αρχείο υπάρχει ήδη, τα νέα δεδομένα εγγράφονται στο τέλος του. Αν δεν υπάρχει, δημιουργείται. Σημείωση: Ιδιαίτερη προσοχή χρειάζεται στη χρήση του τελεστή 'w', διότι εάν το προς εγγραφή αρχείο υπάρχει ήδη αποθηκευμένο στον δίσκο, το υπάρχον περιεχόμενό του διαγράφεται. ver Τμήμα Μαθηματικών ΕΚΠΑ 1

2 Π.χ., α) Άνοιγμα αρχείου θερμοκρασιών με όνομα temp.txt για ανάγνωση των τιμών των θερμοκρασιών από ένα πρόγραμμα: temperatures = open('temp.txt', 'r') Μετά το άνοιγμα του αρχείου, η μεταβλητή temperatures αναφέρεται σε ένα αντικείμενο αρχείου το οποίο μπορεί να χρησιμοποιηθεί για την ανάγνωση των τιμών του αρχείου temp.txt. β) Δημιουργία αρχείου prog_output.txt για την αποθήκευση των αποτελεσμάτων ενός προγράμματος. Σε περίπτωση που το αρχείο υπάρχει ήδη στον δίσκο, επιθυμούμε την αντικατάστασή του από το νέο αρχείο που θα δημιουργηθεί: output = open('prog_output.txt', 'w') Η δημιουργεί το αρχείο prog_output.txt και το ανοίγει. Μετά το άνοιγμα του αρχείου, η μεταβλητή output αναφέρεται σε ένα αντικείμενο αρχείου το οποίο μπορεί να χρησιμοποιηθεί για την εγγραφή τιμών στο αρχείο prog_output.txt. Σε περίπτωση που το αρχείο υπήρχε ήδη στον δίσκο, το περιεχόμενό του διαγράφεται πριν αρχίσουν οι εγγραφές. γ) Αποθήκευση των αποτελεσμάτων ενός προγράμματος στο αρχείο prog_output.txt. Σε περίπτωση που το αρχείο υπάρχει ήδη στον δίσκο, τα νέα αποτελέσματα θα προστεθούν στο τέλος του, διαφορετικά το αρχείο θα δημιουργηθεί: output = open('prog_output.txt', 'a') Η ανοίγει το αρχείο prog_output.txt ή το δημιουργεί (εάν δεν υπάρχει ήδη) και το ανοίγει. Μετά το άνοιγμα του αρχείου, η μεταβλητή output αναφέρεται σε ένα αντικείμενο αρχείου το οποίο μπορεί να χρησιμοποιηθεί για την εγγραφή τιμών στο αρχείο prog_output.txt. Καθορισμός της θέσης αρχείου στον δίσκο: Για το άνοιγμα ενός αρχείου το οποίο δε βρίσκεται στον ίδιο υποκατάλογο με αυτόν που βρίσκεται το πρόγραμμα, θα πρέπει να καθοριστεί η ακριβής θέση του στον δίσκο, προσδιορίζοντας τη διαδρομή του (path) στο σύστημα αρχείων του λειτουργικού συστήματος. Π.χ., ένα αρχείο test.txt μπορεί να βρίσκεται στο ακόλουθο path (σε ένα σύστημα με λειτουργικό σύστημα Windows): C:\Users\Blake\Data Εάν το πρόγραμμα που ανοίγει το αρχείο test.txt δε βρίσκεται σε αυτόν τον υποκατάλογο, θα πρέπει να περιληφθεί ολόκληρο το path, π.χ. ως εξής: test_file = open(r'c:\users\blake\data\test.txt', 'w') Σημείωση: Το r πριν από τη συμβολοσειρά υποδηλώνει ότι η συμβολοσειρά είναι μηεπεξεργάσιμη, που σημαίνει ότι ο διερμηνέας της Python ερμηνεύει τον χαρακτήρα τής ανάστροφης καθέτου (\) ως κανονικό χαρακτήρα τής συμβολοσειράς και όχι ως κάποια ακολουθία ver Τμήμα Μαθηματικών ΕΚΠΑ 2

3 διαφυγής (escape character). Στην περίπτωση ενός συστήματος με λειτουργικό σύστημα Linux, ο προσδιορισμός του path δεν απαιτεί τη χρήση του χαρακτήρα r, αφού χρησιμοποιείται η κανονική κάθετος. Π.χ.: test_file = open('/home/blake/data/test.txt', 'w') Κλείσιμο αρχείου: Όταν ολοκληρωθεί η διαχείριση ενός αρχείου (ανάγνωση ή εγγραφή) από ένα πρόγραμμα, θα πρέπει αυτό το αρχείο να κλείσει, ώστε να αποσυνδεθεί από το πρόγραμμα. Η παράλειψη του κλεισίματος ενός αρχείου μπορεί να οδηγήσει σε απώλεια δεδομένων. Για το κλείσιμο ενός αρχείου χρησιμοποιείται η μέθοδος close, η οποία εφαρμόζεται στη μεταβλητή που αναφέρεται στο αντικείμενο του προς κλείσιμο αρχείου: μεταβλητή_αρχείου.close() όπου η μεταβλητή_αρχείου είναι το όνομα της μεταβλητής που θα αναφέρεται στο αντικείμενο του συγκεκριμένου αρχείου. Εγγραφή δεδομένων σε αρχείο: Μετά το άνοιγμα ενός αρχείου, για την εγγραφή δεδομένων σε αυτό χρησιμοποιείται η μέθοδος write, ως εξής: μεταβλητή_αρχείου.write(συμβολοσειρά) όπου η μεταβλητή_αρχείου είναι το όνομα της μεταβλητής που αναφέρεται στο αντικείμενο του συγκεκριμένου αρχείου και συμβολοσειρά είναι η συμβολοσειρά που θα εγγραφεί στο αρχείο. Εάν το αρχείο δεν έχει ανοιχτεί με τον σωστό τρόπο προσπέλασης ('w' ή 'a'), τότε θα προκληθεί σφάλμα. Π.χ., εγγραφή τριών ονομάτων στο αρχείο philosophers.txt: # Άνοιγμα αρχείου με όνομα philosophers.txt outfile = open('philosophers.txt', 'w') # Εγγραφή των ονομάτων τριών φιλοσόφων στο αρχείο outfile.write('john Locke\n') outfile.write('david Hume\n') outfile.write('edmund Burke\n') # Κλείσιμο του αρχείου outfile.close() Ο χαρακτήρας \n στο τέλος της κάθε εγγραφής, κάνει την επόμενη εγγραφή να πραγματοποιηθεί σε νέα γραμμή στο αρχείο. ver Τμήμα Μαθηματικών ΕΚΠΑ 3

4 Ανάγνωση δεδομένων από αρχείο: Μετά το άνοιγμα ενός αρχείου, για την ανάγνωση δεδομένων από αυτό μπορούν να χρησιμοποιηθούν οι μέθοδοι read και readline. Τα δεδομένα ενός αρχείου που διαβάζονται από κάποιο πρόγραμμα, αποθηκεύονται σε δομές δεδομένων (π.χ. μεταβλητές) του προγράμματος για να μπορούν στη συνέχεια να χρησιμοποιηθούν από το πρόγραμμα. Η μέθοδος read διαβάζει ολόκληρο το περιεχόμενο του αρχείου και το επιστρέφει ως μία συμβολοσειρά, ενώ η μέθοδος readline διαβάζει μία γραμμή (δηλαδή μέχρι να βρει τον χαρακτήρα νέας γραμμής \n). Με επαναλαμβανόμενες κλήσεις της μεθόδου readline μπορεί να διαβαστεί ολόκληρο το περιεχόμενο του αρχείου ανά γραμμή, αφού ο διερμηνέας χρησιμοποιεί μια ειδική τιμή γνωστή ως θέση ανάγνωσης για να γνωρίζει το σημείο μέχρι το οποίο έχει διαβαστεί κάποιο αρχείο (όταν ανοίγεται ένα αρχείο, η θέση ανάγνωσης βρίσκεται στην αρχή του αρχείου). Οι μέθοδοι ανάγνωσης χρησιμοποιούνται ως εξής: και μεταβλητή = μεταβλητή_αρχείου.read() μεταβλητή = μεταβλητή_αρχείου.readline() όπου η μεταβλητή_αρχείου είναι το όνομα της μεταβλητής που αναφέρεται στο αντικείμενο του συγκεκριμένου αρχείου και μεταβλητή είναι η μεταβλητή στην οποία θα αποθηκευτεί η συμβολοσειρά που επιστρέφουν οι μέθοδοι read ή readline. Π.χ., για το αρχείο philosophers.txt του προηγούμενου παραδείγματος: # Άνοιγμα αρχείου με όνομα philosophers.txt infile = open('philosophers.txt', 'r') # Ανάγνωση των περιεχομένων του αρχείου file_contents = infile.read() # Κλείσιμο του αρχείου infile.close() # Εμφάνιση των δεδομένων που διαβάστηκαν print(file_contents) Έξοδος του προγράμματος: John Locke David Hume Edmund Burke Αντίστοιχα, το αρχείο θα μπορούσε να διαβαστεί γραμμή-γραμμή, ως εξής: # Άνοιγμα αρχείου με όνομα philosophers.txt infile = open('philosophers.txt', 'r') # Ανάγνωση τριών γραμμών από το αρχείο line1 = infile.readline() line2 = infile.readline() ver Τμήμα Μαθηματικών ΕΚΠΑ 4

5 line3 = infile.readline() # Κλείσιμο του αρχείου infile.close() # Εμφάνιση των δεδομένων που διαβάστηκαν print(line1) print(line2) print(line3) Έξοδος του προγράμματος: John Locke David Hume Edmund Burke (Οι ενδιάμεσες γραμμές στην έξοδο του προγράμματος οφείλονται στο ότι η κάθε συμβολοσειρά περιέχει στο τέλος και τον χαρακτήρα νέας γραμμής \n, επομένως σε κάθε print δημιουργείται μία νέα γραμμή από τον χαρακτήρα \n και μία από την ίδια την print). Εγγραφή συμβολοσειρών με προσάρτηση χαρακτήρα νέας γραμμής: Όταν εγγράφονται πολλαπλά δεδομένα σε ένα αρχείο, για να εγγραφούν σε ξεχωριστές γραμμές ώστε να μπορούν να αναγνωστούν στη συνέχεια μεμονωμένα (με τη χρήση της readline), θα πρέπει να προσαρτηθεί στο τέλος τους ο χαρακτήρας νέας γραμμής (\n). Π.χ., # Εισαγωγή στοιχείων από το πληκτρολόγιο name = input('ονοματεπώνυμο: ') father_name = input('πατρώνυμο: ') place_of_birth = input('τόπος γέννησης: ') # Άνοιγμα αρχείου με όνομα personal_data.txt my_data = open('personal_data.txt', 'w') # Εγγραφή των στοιχείων στο αρχείο (ανά γραμμή) my_data.write(name + '\n') my_data.write(father_name + '\n') my_data.write(place_of_birth + '\n') # Κλείσιμο του αρχείου my_data.close() Ανάγνωση συμβολοσειρών με αφαίρεση του χαρακτήρα νέας γραμμής: Ο χαρακτήρας νέας γραμμής (\n) που υπάρχει στα δεδομένα που είναι αποθηκευμένα σε κάποιο αρχείο συνήθως υπάρχει απλά για να διαχωρίζονται τα δεδομένα και να μπορούν να διαβαστούν τμηματικά με τη μέθοδο readline. Επομένως, συνήθως είναι επιθυμητή η αφαίρεση του χαρακτήρα αυτού από τις συμβολοσειρές που τελικά διαβάζονται από το πρόγραμμα που ανοίγει και διαβάζει το αρχείο. Αυτό γίνεται με τη μέθοδο rstrip, η οποία καλείται με κάποια συμβολοσειρά και δέχεται ver Τμήμα Μαθηματικών ΕΚΠΑ 5

6 ως όρισμα μια συμβολοσειρά την οποία αφαιρεί από το τέλος της συμβολοσειράς με την οποία καλείται, και επιστρέφει τη νέα συμβολοσειρά που προκύπτει: Π.χ., νέα_συμβολοσειρά = συμβολοσειρά.rstrip(συμβολοσειρά_προς_αποκοπή) >>> s1 = 'Hello' >>> s2 = s1.rstrip('o') >>> print(s2) Hell Επομένως, μπορεί να χρησιμοποιηθεί για την αφαίρεση της συμβολοσειράς '\n', π.χ. ως εξής: # Άνοιγμα αρχείου με όνομα philosophers.txt infile = open('philosophers.txt', 'r') # Ανάγνωση τριών γραμμών από το αρχείο line1 = infile.readline() line2 = infile.readline() line3 = infile.readline() # Αφαίρεση του \n από κάθε συμβολοσειρά line1 = line1.rstrip('\n') line2 = line2.rstrip('\n') line3 = line3.rstrip('\n') # Κλείσιμο του αρχείου infile.close() # Εμφάνιση των δεδομένων που διαβάστηκαν print(line1) print(line2) print(line3) Έξοδος του προγράμματος: John Locke David Hume Edmund Burke (Σε αντίθεση με το αντίστοιχο παράδειγμα που παρουσιάστηκε προηγουμένως, τώρα δεν υπάρχουν επιπλέον ενδιάμεσες κενές γραμμές ανάμεσα στα ονόματα). Εγγραφή και Ανάγνωση αριθμητικών δεδομένων Τα δεδομένα στα αρχεία κειμένου αποθηκεύονται ως συμβολοσειρές, ακόμα και αν πρόκειται για αριθμητικές τιμές. Επομένως, για να αποθηκευτεί κάποιος αριθμός σε αρχείο κειμένου, πρέπει πρώτα να μετατραπεί σε συμβολοσειρά, με χρήση της συνάρτησης str. Π.χ.: outfile = open('numbers.txt', 'w') ver Τμήμα Μαθηματικών ΕΚΠΑ 6

7 num1 = int(input('δώσε έναν αριθμό: ')) num2 = int(input('δώσε άλλον έναν αριθμό: ')) num3 = num1 + num2 # Εγγραφή των αριθμών στο αρχείο. outfile.write(str(num1) + '\n') outfile.write(str(num2) + '\n') outfile.write(str(num3) + '\n') outfile.close() Αντίστοιχα, για να διαβαστεί ένας αριθμός από αρχείο και να χρησιμοποιηθεί ως αριθμός στο πρόγραμμα, θα πρέπει να μετατραπεί σε αριθμητική τιμή με τις συναρτήσεις int ή float (όπως δηλαδή γίνεται στην είσοδο αριθμητικών τιμών με τη συνάρτηση input). Π.χ., αν το αρχείο numbers.txt περιέχει ακέραιους αριθμούς, η είσοδος ενός ακεραίου μπορεί να γίνει ως εξής: infile = open('numbers.txt', 'r') value = int(infile.readline()) infile.close() Σημείωση: Οι συναρτήσεις int και float έχουν την ιδιότητα να αγνοούν χαρακτήρες νέας γραμμής που τυχόν υπάρχουν στο τέλος κάποιας συμβολοσειράς. Ανάγνωση αρχείου με βρόχο while ή for Για την ανάγνωση των περιεχομένων ενός αρχείου μπορούν να χρησιμοποιηθούν βρόχοι. Με τη χρήση του βρόχου while, μπορούν να γίνουν επαναλαμβανόμενες αναγνώσεις μέχρι το τέλος του αρχείου, το οποίο σηματοδοτείται από την επιστροφή κενής συμβολοσειράς από τη μέθοδο readline. Π.χ., για την ανάγνωση όλων των αριθμητικών τιμών (π.χ., μέσων ημερήσιων θερμοκρασιών κάποιας περιοχής) που περιέχει το αρχείο temperatures.txt: temp_file = open('temperatures.txt', 'r') # Ανάγνωση της πρώτης γραμμής από το αρχείο, αλλά χωρίς να μετατραπεί # ακόμα σε αριθμό. Πρέπει πρώτα να ελεγχθεί αν είναι η κενή συμβολοσειρά. line = temp_file.readline() # Όσο η readline δεν έχει επιστρέψει την κενή συμβολοσειρά, # η επεξεργασία συνεχίζεται while line!= '': # Μετατροπή της line σε float (τιμή θερμοκρασίας) temp = float(line) # Μορφοποίηση και εκτύπωση της temp print(format(temp, '.2f')) # Ανάγνωση της επόμενης γραμμής. line = temp_file.readline() temp_file.close() Με τη χρήση ενός βρόχου for μπορεί να πραγματοποιηθεί η ίδια διαδικασία με πιο απλό τρόπο, με τον εξής τρόπο: ver Τμήμα Μαθηματικών ΕΚΠΑ 7

8 for μεταβλητή in αντικείμενο_αρχείου: Το προηγούμενο παράδειγμα υλοποιείται με βρόχο for ως εξής: temp_file = open('temperatures.txt', 'r') # Ανάγνωση όλων των γραμμών του αρχείου for line in temp_file: # Μετατροπή της line σε float (τιμή θερμοκρασίας) temp = float(line) # Μορφοποίηση και εκτύπωση της temp print(format(temp, '.2f')) temp_file.close() Εξαιρέσεις (Exceptions) Εξαιρέσεις ονομάζονται κάποια σφάλματα που συμβαίνουν κατά την εκτέλεση ενός προγράμματος και τα οποία μπορεί κάποιος να τα διαχειριστεί με συγκεκριμένο τρόπο ώστε να αποφευχθεί ο απότομος τερματισμός του προγράμματος που θα προκαλούνταν σε διαφορετική περίπτωση. Η διαδικασία αυτή ονομάζεται χειρισμός εξαιρέσεων (exceptions handling) και υλοποιείται με την try/except. Η γενική και πιο απλή μορφή της ς αυτής είναι η εξής: try: except Όνομα_εξαίρεσης_1: except Όνομα_εξαίρεσης_2: Η αποτελείται από: 1. Tο try-μπλοκ, το οποίο είναι το τμήμα κώδικα που ακολουθεί τη λέξη-κλειδί try, και το οποίο περιέχει τις εντολές του προγράμματος που μπορεί να προκαλέσουν κάποια εξαίρεση. 2. Τους χειριστές (handlers) της εξαίρεσης, που είναι τα μπλοκ κώδικα που ακολουθούν το try-μπλοκ, και ορίζονται με τη λέξη-κλειδί except ακολουθούμενη (προαιρετικά) από το όνομα μιας εξαίρεσης. Τα μπλοκ αυτά περιέχουν τον κώδικα που θα εκτελεστεί εάν προκληθεί κάποια συγκεκριμένη εξαίρεση στο try-μπλοκ. ver Τμήμα Μαθηματικών ΕΚΠΑ 8

9 Δηλαδή, αν κάποια του try-μπλοκ προκαλέσει κάποια εξαίρεση που αντιστοιχεί π.χ. στο Όνομα_εξαίρεσης_1, τότε διακόπτεται η κανονική ροή του προγράμματος και εκτελείται ο κώδικας που βρίσκεται στον χειριστή except του συγκεκριμένου σφάλματος (except Όνομα_εξαίρεσης_1), ενώ στη συνέχεια η ροή του προγράμματος συνεχίζεται με τον κώδικα που βρίσκεται μετά από ολόκληρη την try/except. Με τον τρόπο αυτόν, επιτυγχάνεται η διαχείριση του σφάλματος (της εξαίρεσης) χωρίς να τερματιστεί απότομα το πρόγραμμα. Σε πολλές περιπτώσεις, είναι επιθυμητός ο τερματισμός του προγράμματος μετά από κάποια εξαίρεση, όμως ο χειρισμός της βοηθάει τον προγραμματιστεί να εμφανίσει τα κατάλληλα μηνύματα στον χρήστη ή/και να εκτελέσει κάποιες απαραίτητες διεργασίες πριν τον τερματισμό του προγράμματος. Τα ονόματα των εξαιρέσεων είναι συγκεκριμένα ονόματα που υποδηλώνουν τον τύπο σφάλματος που προκαλείται σε κάποια εξαίρεση, π.χ. ValueError, IOError. Η χρήση συγκεκριμένου ονόματος σε έναν χειριστή είναι προαιρετική. Εάν χρησιμοποιηθεί χειριστής χωρίς συγκεκριμένο όνομα εξαίρεσης, τότε είναι ένα γενικός χειριστής για οποιονδήποτε τύπο εξαίρεσης. Όταν υπάρχουν πολλοί χειριστές εξαιρέσεων σε μια try/except, ο διερμηνέας εξετάζει τους χειριστές με τη σειρά και όταν βρει κάποιον που να ταιριάζει με την εξαίρεση που προκλήθηκε, τότε τον εκτελεί και βγαίνει από την try/except. Για αυτόν τον λόγο, όταν υπάρχουν πολλοί χειριστές εξαιρέσεων σε μια try/except, τοποθετούνται από τον πιο ειδικό στον πιο γενικό (όπου αυτό είναι δυνατό), και επομένως εάν υπάρχει γενικός χειριστής (χωρίς όνομα εξαίρεσης), θα πρέπει να μπει τελευταίος (ο διερμηνέας της Python δεν επιτρέπει την τοποθέτησή του σε άλλη θέση). Ο χειρισμός εξαιρέσεων αφορά σφάλματα που δεν μπορούν να αποφευχθούν με κάποιον απλούστερο τρόπο, δηλαδή με κάποιον έλεγχο if/else, όπως π.χ. θα ήταν μια διαίρεση με το 0. Το παρακάτω παράδειγμα παρουσιάζει μια τέτοια περίπτωση, όπου γίνεται χειρισμός της εξαίρεσης ValueError που προκαλείται σε περίπτωση που π.χ. ο χρήστης αντί για αριθμό πληκτρολογήσει κείμενο κατά την είσοδο από το πληκτρολόγιο: def main(): try: # Είσοδος των ωρών εργασίας. hours = int(input('πόσες ώρες δούλεψες; ')) main() # Είσοδος της ωριαία αμοιβής. pay_rate = float(input('δώσε το ωρομίσθιο: ')) # Υπολογισμός της ακαθάριστης αμοιβής. gross_pay = hours * pay_rate # Εμφάνιση της ακαθάριστης αμοιβής. print('ακαθάριστη αμοιβή: ', format(gross_pay, '.2f'), sep='') except ValueError: print('σφαλμα: Οι ώρες εργασίες και το ωρομίσθιο') print('πρέπει να είναι έγκυροι αριθμοί') Μία συχνή εξαίρεση κατά την επεξεργασία αρχείων είναι η αποτυχία της εισόδου από αρχείο ή της εξόδου σε αρχείο, όπως π.χ. το να μην υπάρχει το αρχείο το οποίο προσπαθεί να ανοίξει ένα ver Τμήμα Μαθηματικών ΕΚΠΑ 9

10 πρόγραμμα. Ο χειρισμός μιας τέτοιας εξαίρεσης φαίνεται στο παρακάτω παράδειγμα (μαζί με τον χειρισμό μιας εξαίρεσης του τύπου που παρουσιάστηκε στο προηγούμενο παράδειγμα, καθώς και της γενικής εξαίρεσης): def main(): # Αρχικοποίηση ενός αθροιστή και ενός μετρητή. sum_temp = 0.0 values = 0 main() try: # Άνοιγμα αρχείου temperatures.txt. infile = open('temperatures.txt', 'r') # Ανάγνωση των τιμών από το αρχείο και άθροισή τους. for line in infile: temp = float(line) sum_temp += temp values += 1 # Κλείσιμο του αρχείου. infile.close() # Εμφάνιση της μέσης θερμοκρασίας. print(format(sum_temp/values, '.2f')) except IOError: print('προέκυψε σφάλμα στην ανάγνωση του αρχείου') except ValueError: print('βρέθηκαν μη-αριθμητικά δεδομένα.') except: print('παρουσιάστηκε σφάλμα.') Προκαθορισμένο μήνυμα σφάλματος Όταν προκαλείται μια εξαίρεση, ουσιαστικά δημιουργείται ένα αντικείμενο, γνωστό ως αντικείμενο εξαίρεσης. Το αντικείμενο αυτό συνήθως περιέχει ένα προκαθορισμένο μήνυμα σφάλματος σχετικό με την εξαίρεση, το οποίο μπορεί να εμφανισθεί με την κλήση της συνάρτησης print με όρισμα το όνομα του αντικειμένου. Για να μπορεί να γίνει αυτό, ο χειριστής της εξαίρεσης θα πρέπει να προσδιορίζει ρητά το όνομα του αντικειμένου της εξαίρεσης, ως εξής: except Όνομα_εξαίρεσης as αντικείμενο_εξαίρεσης: οπότε, στη συνέχεια ο χειριστής μπορεί να περιέχει μια της μορφής: print(αντικείμενο_εξαίρεσης) για την εμφάνιση του προκαθορισμένου μηνύματος σφάλματος της συγκεκριμένης εξαίρεσης. ver Τμήμα Μαθηματικών ΕΚΠΑ 10

11 Π.χ., το παράδειγμα για την εξαίρεση ValueError παραπάνω, θα μπορούσε να γραφεί ως εξής: def main(): try: # Είσοδος των ωρών εργασίας. hours = int(input('πόσες ώρες δούλεψες; ')) main() # Είσοδος της ωριαία αμοιβής. pay_rate = float(input('δώσε το ωρομίσθιο: ')) # Υπολογισμός της ακαθάριστης αμοιβής. gross_pay = hours * pay_rate # Εμφάνιση της ακαθάριστης αμοιβής. print('ακαθάριστη αμοιβή: ', format(gross_pay, '.2f'), sep='') except ValueError as err: print(err) οπότε, στο παρακάτω παράδειγμα λανθασμένης εισόδου (η λέξη 'σαράντα' αντί για την τιμή 40), το πρόγραμμα εμφανίζει το εξής: Πόσες ώρες δούλεψες; σαράντα invalid literal for int() with base 10: 'σαράντα' Τα μπλοκ else και finally Η try/except μπορεί να έχει ένα προαιρετικό μπλοκ else, το οποίο γράφεται μετά από όλους τους χειριστές except, και το οποίο εκτελείται αμέσως μετά τις εντολές του try-μπλοκ, μόνο στην περίπτωση που δεν προκληθεί κάποια εξαίρεση. Η γενική μορφή μιας ς try/except που περιλαμβάνει το μπλοκ else είναι η εξής: try: except Όνομα_εξαίρεσης_1: except Όνομα_εξαίρεσης_2: else: ver Τμήμα Μαθηματικών ΕΚΠΑ 11

12 Ο συγκεκριμένος τρόπος υλοποίησης έχει το πλεονέκτημα ότι μπορεί κάποιες εντολές που δεν θέλει ο προγραμματιστής να τις ελέγχει ως προς την πρόκληση εξαιρέσεων, να τις τοποθετεί στο else-μπλοκ αντί για το try-μπλοκ. Με αυτόν τον τρόπο αποφεύγεται ο ανεπιθύμητος χειρισμός εξαιρέσεων σε συγκεκριμένα τμήματα κώδικα, δίνοντας τη δυνατότητα να παραμένει μέσα στο try-μπλοκ μόνο το τμήμα κώδικα για το οποίο επιθυμεί ο προγραμματιστής να χειρίζεται τυχόν εξαιρέσεις που μπορεί να προκαλέσει. Επίσης, η try/except μπορεί να έχει ένα προαιρετικό μπλοκ finally, το οποίο γράφεται μετά από όλους τους χειριστές except, και το οποίο εκτελείται πάντα (είτε συμβεί είτε δε συμβεί κάποια εξαίρεση), μετά την εκτέλεση του try-μπλοκ και όποιων χειριστών εξαιρέσεων τυχόν εκτελεστούν. Η γενική μορφή μιας ς try/except που περιλαμβάνει το μπλοκ finally είναι η εξής: try: except Όνομα_εξαίρεσης_1: except Όνομα_εξαίρεσης_2: finally: Παράδειγμα εξαιρέσεων Έχουμε το παρακάτω αρχείο ΒΒ που περιέχει τα ονόματα κάποιων παικτών που αγωνίστηκαν στο πρωτάθλημα μπάσκετ , το σύνολο των πόντων που πέτυχαν και τον αριθμό των παιχνιδιών στα οποία συμμετείχαν. Π.χ. ΜΑΥΡΟΕΙΔΗΣ ΔΙΑΜΑΝΤΙΔΗΣ ΣΠΑΝΟΥΛΗΣ ΒΕΖΕΝΚΟΦ ΖΑΡΑΣ Θέλουμε να γράψουμε ένα πρόγραμμα που να υπολογίζει τον πρώτο σκόρερ και τον μέσο όρο πόντων που αυτός πέτυχε ανά παιχνίδι. Θέλουμε επίσης, για λόγους σύγκρισης, να εμφανίζει στο τέλος και τον μ.ο. πόντων του Νίκου Γκάλη (33.46) που είναι (και μάλλον θα είναι) ο πρώτος σκόρερ όλων των εποχών. Έστω η παρακάτω υλοποίηση που χειρίζεται κάποιες από τις εξαιρέσεις που μπορεί να εμφανιστούν κατά την εκτέλεσή του. Οι πιθανές εξαιρέσεις είναι 4 και σημειώνονται ως σχόλια στο πρόγραμμα στις θέσεις στις οποίες μπορεί να προκύψουν. Έχουμε επιλέξει να χειριστούμε τις 3 από αυτές. ver Τμήμα Μαθηματικών ΕΚΠΑ 12

13 file_name = input('αρχείο παικτών στο πρωτάθλημα μπάσκετ ? ') print('-'*60) try: f = open(file_name, 'r') # Πιθανή εξαίρεση IOError most_points = 0 for line in f: # Εξαίρεση IndexError αν len(player_data)<3 player_data = line.split() name = player_data[0] points_scored = int(player_data[1]) # Πιθανή εξαίρεση ValueError games_played = int(player_data[2]) # Πιθανή εξαίρεση ValueError if points_scored > most_points: first_scorer = name most_points = points_scored # Πιθανή διαίρεση με 0 (ZeroDivisionError) average_points_per_game = points_scored/games_played except IOError: print('σφάλμα στην ανάγνωση του αρχείου', file_name) except ValueError as error: print(error) except IndexError: print('ελλιπής αριθμών πεδίων σε κάποια γραμμή του αρχείου') else: f.close() print('πρώτος σκόρερ του πρωταθλήματος:', first_scorer) print('μ.ο. πόντων ανά αγώνα:',format(average_points_per_game,'.2f')) finally: print('-'*60) print('πρώτος σκόρερ όλων των εποχών: ΓΚΑΛΗΣ') print('μέσος όρος πόντων ανά παιχνίδι:', 33.46) Αν εκτελέσουμε το πρόγραμμα με είσοδο το παραπάνω αρχείο ΒΒ εμφανίζεται: Πρώτος σκόρερ του πρωταθλήματος: ΒΕΖΕΝΚΟΦ Μ.Ο. πόντων ανά αγώνα: Πρώτος σκόρερ όλων των εποχών: ΓΚΑΛΗΣ Μέσος όρος πόντων ανά παιχνίδι: Αν δώσουμε στην είσοδο το όνομα ενός αρχείου παικτών το οποίο δεν μπορούμε να το επεξεργαστούμε (π.χ. αν δεν υπάρχει αρχείο με όνομα FOO.TXT που δίνεται παρακάτω) τότε προκύπτει μια εξαίρεση IOError και η έξοδος του προγράμματος είναι: ver Τμήμα Μαθηματικών ΕΚΠΑ 13

14 Σφάλμα στην ανάγνωση του αρχείου FOO.TXT Πρώτος σκόρερ όλων των εποχών: ΓΚΑΛΗΣ Μέσος όρος πόντων ανά παιχνίδι: Αν δώσουμε ως είσοδο το αρχείο: ΜΑΥΡΟΕΙΔΗΣ ΔΙΑΜΑΝΤΙΔΗΣ 25 ΣΠΑΝΟΥΛΗΣ ΒΕΖΕΝΚΟΦ ΖΑΡΑΣ στο οποίο η 2η γραμμή έχει μόνο 2 πεδία (το όνομα και τη συμμετοχή του παίκτη) αντί για 3, τότε προκύπτει μια εξαίρεση IndexError γιατί η λίστα player_data για τη γραμμή 2 έχει μήκος 2 και το πρόγραμμα χρειάζεται και το 3 στοιχείο της. Η έξοδος στην περίπτωση αυτή είναι: Ελλιπής αριθμών πεδίων σε κάποια γραμμή του αρχείου Πρώτος σκόρερ όλων των εποχών: ΓΚΑΛΗΣ Μέσος όρος πόντων ανά παιχνίδι: Αν δώσουμε ως είσοδο το αρχείο: ΜΑΥΡΟΕΙΔΗΣ ΔΙΑΜΑΝΤΙΔΗΣ ΣΠΑΝΟΥΛΗΣ ΒΕΖΕΝΚΟΦ ΖΑΡΑΣ στο οποίο φαίνεται ότι ο Σπανούλης έχει αγωνιστεί σε παιχνίδια, θα προκύψει μια εξαίρεση ValueError την οποία χειριζόμαστε με την εμφάνιση του προκαθορισμένου μηνύματος σφάλματος της συγκεκριμένης εξαίρεσης, με έξοδο: invalid literal for int() with base 10: ' ' Πρώτος σκόρερ όλων των εποχών: ΓΚΑΛΗΣ Μέσος όρος πόντων ανά παιχνίδι: Τέλος, αν στο αρχείο εισόδου έχει καταχωρηθεί λανθασμένα ότι ο Βεζένκοφ έχει αγωνιστεί σε 0 παιχνίδια, αλλά έχει σημειώσει πόντους, ΜΑΥΡΟΕΙΔΗΣ ΔΙΑΜΑΝΤΙΔΗΣ ΣΠΑΝΟΥΛΗΣ ΒΕΖΕΝΚΟΦ ΖΑΡΑΣ τότε στο πρόγραμμα θα γίνει διαίρεση με το 0 και θα προκύψει μια εξαίρεση ZeroDivisionError την οποία έχουμε επιλέξει να μην χειριστούμε οπότε το πρόγραμμα ver Τμήμα Μαθηματικών ΕΚΠΑ 14

15 τερματίζει απότομα με την εμφάνιση του μηνύματος: Traceback (most recent call last): File "cs1sec6.py", line 16, in <module> average_points_per_game = points_scored/games_played ZeroDivisionError: division by zero Παρατηρούμε ότι σε όλες τις περιπτώσεις εκτός της τελευταίας, εκτελείται τόσο η finally (που εμφανίζει τη 2η οριζόντια γραμμή από παύλες) όσο και οι γραμμές που ακολουθούν το try-μπλοκ, γιατί στις περιπτώσεις αυτές έχουμε επιλέξει να χειριστούμε τις εξαιρέσεις που προέκυψαν. Το μπλοκ else εκτελείται μόνο στην περίπτωση που στο πρόγραμμά μας δεν προκύψει κάποια εξαίρεση. Αξίζει να σημειωθεί ότι η finally εκτελείται ακόμα και στην περίπτωση που η εξαίρεση που προκύπτει δεν χειρίζεται από κάποιο από τα υπάρχοντα except, όπως φαίνεται στην έξοδο του τελευταίου παραδείγματος εισόδου, όπου πρώτα εκτελείται η finally και στη συνέχεια εμφανίζεται το μήνυμα σφάλματος και τερματίζεται το πρόγραμμα. ver Τμήμα Μαθηματικών ΕΚΠΑ 15

Πληροφορική ΙΙ Θεματική Ενότητα 13

Πληροφορική ΙΙ Θεματική Ενότητα 13 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 13 Αρχεία Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 4: Θεματική Ενότητα: Είσοδος/έξοδος, μεταβλητές, αναθέσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

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

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

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

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

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

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

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 5: Θεματική Ενότητα: Μεταβλητές και Μαθηματικοί και λογικοί τελεστές ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

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

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

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

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

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Επιλογή δομής δεδομένων Κριτήρια: Μέγεθος του προβλήματος Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5. Λεξικά (Dictionaries)

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5. Λεξικά (Dictionaries) ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5 Λεξικά (Dictionaries) Τα λεξικά είναι μια μεταβλητή δομή δεδομένων της Python για την αποθήκευση συλλογών δεδομένων της μορφής: κλειδί τιμή. Δηλαδή, κάθε στοιχείο σε ένα

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

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

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

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

File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ

File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ .NET Framework System.Out namespace Βασική υποστήριξη για διαχείριση αρχείων και φακέλων Ανάγνωση και εγγραφή σε file και data streams Κλήση εκτελέσιμου από κώδικα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 6: Θεματική Ενότητα: Λογικοί Τελεστές Έλεγχος ροής ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα

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

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017 ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΘΕΜΑ Α ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Α1. Να χαρακτηρίσετε

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Αρχεία Δεδομένων Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD ΑΡΧΕΙΑ Αρχείο είναι μία οργανωμένη συλλογή δεδομένων αποθηκευμένα στο

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016 Τύποι Σφαλμάτων Συντακτικά λάθη (syntax errors) Λάθη κατά την εκτέλεση (run-time errors) Λογικά σφάλματα 2

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Μακροχρόνια

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 Λίστες (Lists) Λίστα (list) στην Python ονομάζεται μια δυναμική δομή δεδομένων (στην πραγματικότητα, ένα αντικείμενο) που περιέχει πολλαπλά δεδομένα. Ουσιαστικά, η λίστα

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 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)

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

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

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

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

Σημειωματάριο Δευτέρας 20 Νοε. 2017

Σημειωματάριο Δευτέρας 20 Νοε. 2017 Σημειωματάριο Δευτέρας 20 Νοε. 2017 Ένα πρόγραμμα "τηλεφωνικός κατάλογος" Σήμερα φτιάξαμε μια πρώτη μορφή ενός σχετικά μεγάλου προγράμματος που σκοπό έχει να κρατάει και να διαχειρίζεται τηλέφωνα και άλλη

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

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

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

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

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 7: Θεματική Ενότητα: Δομές επανάληψης ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 7 Δομές επανάληψης

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

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Χειρισμός εξαιρέσεων Μεταβλητές τύπου Tuple Dictionary Set 2 Χειρισμός εξαιρέσεων-δομή try: Εντολή-try-1 Εντολή- try- 2 Except Error_type : Εντολή exept_1.1

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

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

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 6

Πληροφορική ΙΙ Θεματική Ενότητα 6 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 6 Δομές ελέγχου ροής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init() Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2008 Αν. Καθηγητής Δημήτρης Γουνόπουλος Καθηγητής Γιάννης Ιωαννίδης 'Ασκηση 1: Στατικός Κατακερματισμός (Ημερομηνία

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

Προγραμματιστικό Περιβάλλον

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 4

Πληροφορική ΙΙ Θεματική Ενότητα 4 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 4 Μεταβλητές και Μαθηματικοί και λογικοί τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

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

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

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

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Βασικά στοιχεία γλώσσας προγραμματισμού Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Ας θυμηθούμε ξανά την παλιά μας «αγάπη» Η Python είναι μία σύγχρονη, διερμηνευόμενη, υψηλού επιπέδου γλώσσα γενικής χρήσης

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

Πληροφορική ΙΙ Θεματική Ενότητα 3

Πληροφορική ΙΙ Θεματική Ενότητα 3 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 3 Είσοδος/έξοδος, μεταβλητές, αναθέσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

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

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

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

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

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

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα Η Απάντηση Φύλλο Εργασίας Στο βιβλίο The Hitchhiker s Guide to the Galaxy, περιγράφεται μια υπερευφυής φυλή η οποία αποφασίζει να φτιάξει έναν υπολογιστή που θα δώσει οριστικά την απάντηση για το νόημα

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

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

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

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

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

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

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

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