ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις Python Ενότητα 3 Ν. Φερεντίνος. ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3. Συναρτήσεις

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

Download "ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις Python Ενότητα 3 Ν. Φερεντίνος. ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3. Συναρτήσεις"

Transcript

1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3 Συναρτήσεις Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το οποίο κάνει μια συγκεκριμένη διεργασία και μπορεί να καλείται από ένα πρόγραμμα (ή από μια άλλη συνάρτηση). Π.χ. x = y = 2 * math.sqrt(x) math.sqrt 10 Ουσιαστικά: x math.sqrt x (Η sqrt είναι μια συνάρτηση της βιβλιοθήκης math της Python Περισσότερα στη συνέχεια) Η διαδικασία που ακολουθείται είναι η εξής: 1. Ένα πρόγραμμα καλεί μια συνάρτηση 2. Η ροή του προγράμματος μεταφέρεται προσωρινά στις εντολές της συνάρτησης 3. Εκτελούνται οι εντολές της συνάρτησης 4. Η ροή του προγράμματος επιστρέφει στο πρόγραμμα Όπως προαναφέρθηκε, μια συνάρτηση μπορεί να καλεί με τη σειρά της άλλες συναρτήσεις. Ο τρόπος λειτουργίας μιας συνάρτησης δεν ενδιαφέρει τον χρήστη. Αυτό που τον ενδιαφέρει είναι ο τρόπος χρήσης της, δηλαδή: το όνομά της τι δέχεται (αν δέχεται κάτι) τι επιστρέφει (αν επιστρέφει κάτι) ver Τμήμα Μαθηματικών ΕΚΠΑ 1

2 Λόγοι ύπαρξης συναρτήσεων: Βοηθούν στη λογική σχεδίαση των προγραμμάτων Είναι «μαύρα κουτιά» που απλά χρησιμοποιούνται χωρίς να είναι απαραίτητη η γνώση της λειτουργίας τους Αποφυγή επανάληψης κώδικα στο ίδιο πρόγραμμα Επαναχρησιμοποίηση κώδικα σε άλλα προγράμματα Ευκολότερη τροποποίηση κώδικα Είδη συναρτήσεων: Ενσωματωμένες συναρτήσεις της Python σε βιβλιοθήκες (modules) Συναρτήσεις ορισμένες από τον προγραμματιστή Σχεδιασμός συναρτήσεων: Όνομα Είσοδος / έξοδος interface (περιβάλλον επικοινωνίας) Αλγόριθμος Ονόματα συναρτήσεων: Ισχύουν οι ίδιοι κανόνες με τα ονόματα μεταβλητών. Ορισμός συνάρτησης Η γενική μορφή δημιουργίας μιας συνάρτησης (ορισμού της συνάρτησης) είναι η εξής: def όνομα_συνάρτησης(): εντολή εντολή κτλ. Η πρώτη γραμμή της συνάρτησης ονομάζεται επικεφαλίδα της συνάρτησης (function header). Κλήση συνάρτησης Όταν δημιουργείται μια συνάρτηση σε ένα πρόγραμμα, ο κώδικας που περιέχεται στο μπλοκ της συνάρτησης, δηλαδή το περιεχόμενό της, δεν εκτελείται, παρά μόνο όταν υπάρξει κάποια εντολή κλήσης της συνάρτησης. Άρα, οι συναρτήσεις καλούνται με κατάλληλες εντολές κλήσης. Η γενική μορφή κλήσης μιας συνάρτησης είναι η εξής: όνομα_συνάρτησης() Παράδειγμα δημιουργίας συνάρτησης και κλήσης της μέσα σε ένα πρόγραμμα: def kalimera(): print('καλημέρα!') # Τέλος συνάρτησης print('είναι πρωί, άρα θα πω:', end = ' ') kalimera() ver Τμήμα Μαθηματικών ΕΚΠΑ 2

3 Το πρόγραμμα αυτό θα εκτυπώσει: Είναι πρωί, άρα θα πω: Καλημέρα! Δηλαδή, η πρώτη εντολή που εκτελείται στο πρόγραμμα είναι αυτή που βρίσκεται μετά το σώμα της συνάρτησης. Στη συνέχεια υπάρχει η εντολή κλήσης της συνάρτησης, οπότε τότε η ροή του κώδικα πηγαίνει στο εσωτερικό της συνάρτησης και εκτελείται η εντολή που εκτυπώνει τη λέξη Καλημέρα!. Στο παράδειγμα αυτό, η κλήση της συνάρτησης γίνεται από το κυρίως τμήμα του προγράμματος. Θα μπορούσε όμως να γίνει και μέσα από κάποια άλλη συνάρτηση. Συνήθως, τα προγράμματα που περιέχουν συναρτήσεις, έχουν μία βασική συνάρτηση, η οποία ονομάζεται main και η οποία περιέχει όσες εντολές του προγράμματος δεν θα περιέχονταν σε κάποια συγκεκριμένη συνάρτηση. Οι εντολές αυτές δηλαδή, αποτελούν το βασικό μέρος του προγράμματος. Η συνάρτηση αυτή όμως δεν καλείται αυτόματα, οπότε (συνήθως) στο τέλος του προγράμματος θα πρέπει να υπάρχει η κλήση της. Π.χ., # Ορισμός της συνάρτησης main def main(): print('αρχή προγράμματος') print('ένα', end = ' ') fun1() fun2() print('δύο') print('τέλος προγράμματος') # Ορισμός της συνάρτησης fun1 def fun1(): print('τρία', end = ' ') # Ορισμός της συνάρτησης fun2 def fun2(): print('τέσσερα', end = ' ') # Κλήση της συνάρτησης main για έναρξη του προγράμματος main() Το πρόγραμμα αυτό θα εκτυπώσει: Αρχή προγράμματος Ένα Τρία Τέσσερα Δύο Τέλος προγράμματος Γίνεται σαφές ότι μετά την ολοκλήρωση εκτέλεσης κάποια συνάρτησης, η ροή του κώδικα επιστρέφει στην επόμενη εντολή μετά την εντολή κλήσης της. Σημείωση 1: Η σειρά με την οποία συντάσσονται οι συναρτήσεις ενός προγράμματος ή η θέση ορισμού τους σε σχέση με τη θέση της εντολής κλήσης τους, δεν έχουν καμία σημασία. Σημείωση 2: Μια συνάρτηση μπορεί να κληθεί και από το κέλυφος (γραμμή εντολών) του IDLE (στην προτροπή >>>), με την προϋπόθεση ότι το αρχείο προγράμματος που την περιέχει έχει πρώτα μεταγλωττιστεί (με F5-Run) κατά την τρέχουσα λειτουργία τού κελύφους. Η κλήση της γίνεται όπως ακριβώς θα γινόταν και από κάποιο πρόγραμμα ή άλλη συνάρτηση. ver Τμήμα Μαθηματικών ΕΚΠΑ 3

4 Είσοδος συναρτήσεων Παράμετροι εισόδου Μια συνάρτηση μπορεί να δεχτεί μία ή περισσότερες τιμές εισόδου, τις οποίες χρησιμοποιεί κατά την εκτέλεσή της. Οι συναρτήσεις που δέχονται τιμές εισόδου, περιέχουν αντίστοιχες παραμέτρους εισόδου στον ορισμό τους, ως εξής: def όνομα_συνάρτησης(παράμετρος_1, παράμετρος_2, κτλ.): εντολή εντολή κτλ. Κατά την κλήση τέτοιων συναρτήσεων, μέσα στις παρενθέσεις αποστέλλονται οι συγκεκριμένες τιμές των παραμέτρων εισόδου, οι οποίες λέγονται ορίσματα, ως εξής: όνομα_συνάρτησης(όρισμα_1, όρισμα_2, κτλ.) Τα ορίσματα αυτά λέγονται ορίσματα κατά θέση, αφού κατά την κλήση της συνάρτησης, εκχωρούνται στις παραμέτρους εισόδου που βρίσκονται στις αντίστοιχες θέσεις. Λέγονται επίσης και κανονικά ορίσματα, σε αντιδιαστολή με άλλους τύπους ορισμάτων που θα αναφερθούν στη συνέχεια. Π.χ., η ακόλουθη συνάρτηση print_max έχει δύο παραμέτρους εισόδου και εκτυπώνει το μέγιστο των δύο ορισμάτων της: def print_max(a, b): if a>b: print('το μέγιστο είναι το', a) elif a<b: print('το μέγιστο είναι το', b) else: print('οι τιμές είναι ίσες') def main(): print_max(10,15) # Κλήση της συνάρτησης με ορίσματα συγκεκριμένες τιμές x = float(input('δώσε τον 1ο αριθμό: ')) y = float(input('δώσε τον 2ο αριθμό: ')) # Κλήση της συνάρτησης με ορίσματα τα x και y: print_max(x, y) main() Άλλο παράδειγμα: def main(): value = float(input('δώσε έναν αριθμό: ')) print('το διπλάσιό του ισούται με', end = ' ') show_double(value) # Η συνάρτηση show_double δέχεται ένα όρισμα # και εμφανίζει το διπλάσιο της τιμής του. def show_double(number): result = number * 2 print(result) main() ver Τμήμα Μαθηματικών ΕΚΠΑ 4

5 Έξοδος συναρτήσεων Επιστροφή τιμής Η είσοδος συναρτήσεων που προαναφέρθηκε αποτελεί τον τρόπο επικοινωνίας της συνάρτησης που κάνει την κλήση, προς τη συνάρτηση που καλείται. Στην Python, η συνάρτηση που καλείται δεν έχει τη δυνατότητα της αντίστροφης επικοινωνίας (προς τη συνάρτηση που την καλεί) μέσω των παραμέτρων εισόδου της. Αυτό μπορεί να φανεί από το ακόλουθο παράδειγμα: def main(): value = 99 print('η τιμή είναι', value) change_me(value) print(πίσω στη main η τιμή είναι, value) def change_me(arg): print('αλλάζω την τιμή.') arg = 0 print('τώρα η τιμή είναι', arg) Το πρόγραμμα αυτό θα εκτυπώσει: Η τιμή είναι 99 Αλλάζω την τιμή. Τώρα η τιμή είναι 0 Πίσω στη main η τιμή είναι 99 Δηλαδή, ενώ η τιμή της παραμέτρου εισόδου της συνάρτησης άλλαξε μέσα στη συνάρτηση change_me, η αλλαγή αυτή δεν μεταβιβάστηκε πίσω στο όρισμα στη συνάρτηση main. Αυτό συμβαίνει γιατί η Python είναι μία από τις γλώσσες προγραμματισμού όπου η μέθοδος μεταβίβασης ορισμάτων σε συναρτήσεις γίνεται με το λεγόμενο πέρασμα με τιμή ή μεταβίβαση με τιμή (pass-by-value). Άρα, ουσιαστικά μέσω των παραμέτρων εισόδου η συνάρτηση δεν μπορεί να επικοινωνήσει με τη συνάρτηση που την καλεί, παρά μόνο να δεχτεί δεδομένα από αυτήν. Η επικοινωνία της καλούμενης συνάρτησης με τη συνάρτηση που την κάλεσε, γίνεται μόνο μέσω της δυνατότητας που έχει η συνάρτηση να επιστέφει κάποια τιμή (ή κάποιες τιμές) στη συνάρτηση που την κάλεσε. Αυτό πραγματοποιείται με την εντολή return, ως εξής: def όνομα_συνάρτησης(): εντολή εντολή κτλ. return έκφραση Σημείωση 1: Στον ορισμό της συνάρτησης δεν υπάρχει κάτι που να σηματοδοτεί ότι η συνάρτηση αυτή θα επιστρέφει κάποια τιμή. Σημείωση 2: Η εντολή return μπορεί να περιέχει μεταβλητή επιστρέφοντας την τιμή της ή έκφραση, επιστρέφοντας την τιμή του αποτελέσματός της. Σημείωση 3: Μια συνάρτηση μπορεί να περιέχει το πολύ μία εντολή return. Η κλήση συναρτήσεων που επιστρέφουν τιμή γίνεται με διαφορετικό τρόπο από την κλήση των συναρτήσεων που δεν επιστρέφουν τιμή. Η διαφορά είναι ότι από τη στιγμή που η συνάρτηση επιστρέφει κάποια τιμή, η τιμή αυτή πρέπει να εκχωρηθεί σε κάποια μεταβλητή. Άρα η κλήση τέτοιων συναρτήσεων γίνεται ως εξής: μεταβλητή = όνομα_συνάρτησης() ver Τμήμα Μαθηματικών ΕΚΠΑ 5

6 Προφανώς, το αν δέχεται ή αν επιστρέφει κάτι κάποια συνάρτηση, δεν σχετίζονται. Επομένως μία συνάρτηση που επιστρέφει τιμή, μπορεί και να δέχεται ορίσματα. Παράδειγμα 1: Παράδειγμα 2: def double(x): result = 2 * x return result def find_max(a, b): if a>b: max = a else: max = b return max def main(): x = float(input('δώσε τον 1ο αριθμό: ')) y = float(input('δώσε τον 2ο αριθμό: ')) # Κλήση της συνάρτησης με ορίσματα τα x και y: maximum = find_max(x, y) print(maximum) main() Προσοχή: Αν η συνάρτηση find_max είχε γραφεί έτσι: def find_max(a, b): if a>b: return a else: return b δεν θα ήταν λάθος, παρόλο που φαινομενικά έχει δύο εντολές return. Ουσιαστικά έχει μία, αφού είτε η μία θα εκτελεστεί, είτε η άλλη, ποτέ και οι δύο, αφού ανήκουν σε μπλοκ if/else. Σημείωση: Μια συνάρτηση μπορεί ουσιαστικά να επιστρέφει διαφορετικού τύπου τιμές σε κάθε κλήση της (π.χ., αριθμητική τιμή ή συμβολοσειρά), εάν π.χ. η μεταβλητή που επιστρέφεται παίρνει τιμή μέσα σε ένα μπλοκ if/else. Δεν περιορίζεται δηλαδή στο να επιστρέφει τιμή κάποιου συγκεκριμένου τύπου. Π.χ., η ακόλουθη συνάρτηση επιστρέφει είτε πραγματικό (float) είτε συμβολοσειρά (str): def my_sqrt(x): if x>=0: s = math.sqrt(x) else: s = 'Σφάλμα! Δόθηκε αρνητικός αριθμός.' return s Παραδείγματα εξόδου: >>> print(my_sqrt(9)) 3.0 >>> print(my_sqrt(-3)) Σφάλμα! Δόθηκε αρνητικός αριθμός. ver Τμήμα Μαθηματικών ΕΚΠΑ 6

7 Με την ίδια λογική, από τη στιγμή που το εάν επιστρέφει κάτι ή όχι μια συνάρτηση δεν καθορίζεται στον ορισμό της, μια συνάρτηση που περιέχει μπλοκ if/else μπορεί να επιστρέφει τιμή μόνο κατά περίπτωση. Π.χ., def foo(a,b): if a>b: return a else: print('μεγαλύτερο είναι το', b) Η συνάρτηση αυτή είναι σωστή, παρόλο που άλλοτε επιστρέφει κάτι και άλλοτε όχι. Παραδείγματα εξόδου: >>> foo(5,2) 5 >>> foo(2,5) Μεγαλύτερο είναι το 5 >>> print(foo(5,2)) 5 >>> print(foo(2,5)) Μεγαλύτερο είναι το 5 None >>> max = foo(2,5) Μεγαλύτερο είναι το 5 >>> print(max) None Γίνεται σαφές ότι στην περίπτωση που μια συνάρτηση δεν επιστέφει κάτι αλλά, παρόλα αυτά, η κλήση της εκχωρηθεί σε μια μεταβλητή (ή χρησιμοποιηθεί ως όρισμα στη συνάρτηση print), η συγκεκριμένη εντολή δεν είναι λάθος, και η μεταβλητή στην οποία εκχωρήθηκε δημιουργείται με την τιμή None. Η τιμή αυτή δηλώνει ότι η συγκεκριμένη μεταβλητή έχει δημιουργηθεί αλλά δεν της έχει δοθεί ακόμα κάποια τιμή (προφανώς ο τύπος της δεν έχει καθοριστεί ακόμα, οπότε προσωρινά θεωρείται ότι είναι μεταβλητή του ειδικού για αυτές τις περιπτώσεις τύπου NoneType). Επιστροφή πολλαπλών τιμών: Μια συνάρτηση στην Python μπορεί να επιστρέφει πολλαπλές τιμές. Αυτό γίνεται με πολλαπλές εκφράσεις στην εντολή return, χωρισμένες με κόμμα: def όνομα_συνάρτησης(): εντολή εντολή κτλ. return έκφραση1, έκφραση2, κτλ. Η κλήση μιας τέτοιας συνάρτησης γίνεται με εκχώρηση τιμής σε ισάριθμο αριθμό μεταβλητών με τον αριθμό των επιστρεφόμενων τιμών. Π.χ., αν μία συνάρτηση επιστρέφει 2 τιμές, η κλήση της θα γινόταν ως εξής: μεταβλητή1, μεταβλητή2 = όνομα_συνάρτησης() ver Τμήμα Μαθηματικών ΕΚΠΑ 7

8 Παράδειγμα: def get_name(): # Είσοδος ονόματος και επώνυμου του χρήστη. first = input('δώσε το μικρό σου όνομα: ') last = input('δώσε το επώνυμό σου: ') # Επιστροφή και των δύο ονομάτων. return first, last Κλήση: >>> first_name, last_name = get_name() Προεπιλεγμένες τιμές ορίσματος Υπάρχει η δυνατότητα, κάποιες από τις παραμέτρους εισόδου μιας συνάρτησης να γίνουν προαιρετικές, που σημαίνει ότι η κλήση της συνάρτησης μπορεί να μην μεταβιβάσει συγκεκριμένες τιμές για αυτές. Για αυτές τις προαιρετικές παραμέτρους εισόδου, πρέπει να οριστούν προεπιλεγμένες τιμές κατά τον ορισμό της συνάρτησης, ως εξής: def όνομα_συνάρτησης(παράμετρος_1, παράμετρος_2 = τιμή, κτλ.): εντολή κτλ. Στο παράδειγμα αυτό, η παράμετρος_2 είναι προαιρετική. Προσοχή: Στην περίπτωση που μία συνάρτηση έχει και κανονικές παραμέτρους εισόδου και παραμέτρους εισόδου με προεπιλεγμένες τιμές ορίσματος, πρώτα πρέπει να βρίσκονται στον ορισμό της οι κανονικές παράμετροι και μετά οι προεπιλεγμένες. Δηλαδή, στο παραπάνω παράδειγμα, μετά την παράμετρο_2, εάν υπήρχαν και άλλες παράμετροι εισόδου, θα έπρεπε όλες να είναι με προεπιλεγμένες τιμές ορίσματος. Π.χ., def say_something(message, times = 2): print(message * times) Παραδείγματα κλήσης: >>> say_something('hello', 5) HelloHelloHelloHelloHello >>> say_something('world') WorldWorld Άλλο παράδειγμα: def foo(a=1, b, c=3): # ΛΑΘΟΣ! print('a =', a, ', b =', b, ', c =', c) Ο ορισμός της συνάρτησης foo είναι λανθασμένος γιατί μετά την παράμετρο εισόδου a που είναι με προεπιλεγμένη τιμή ορίσματος, βρίσκεται κανονική παράμετρος εισόδου (b). Για να διορθωθεί, θα πρέπει η παράμετρος b να είναι η πρώτη παράμετρος εισόδου της συνάρτησης. ver Τμήμα Μαθηματικών ΕΚΠΑ 8

9 Ορίσματα με λέξεις-κλειδί (keyword arguments) Όταν μια συνάρτηση έχει πάνω από μία παραμέτρους εισόδου, υπάρχει η δυνατότητα μεταβίβασης ορισμάτων όχι κατά θέση (όπως γίνεται με τα κανονικά ορίσματα) αλλά χρησιμοποιώντας τα ονόματα των παραμέτρων εισόδου. Τα ορίσματα αυτά, σε αντιδιαστολή με τα ορίσματα κατά θέση, λέγονται ορίσματα με λέξεις-κλειδί (keyword arguments). Για να μεταβιβαστεί ένα όρισμα ως όρισμα με λέξη-κλειδί, η κλήση της συνάρτησης συντάσσεται ως εξής: όνομα_συνάρτησης(όνομα_παραμέτρου = τιμή) Σημείωση: Η δυνατότητα μεταβίβασης ορισμάτων με λέξεις-κλειδί σε μια συνάρτηση, δε σχετίζεται με τον ορισμό της συνάρτησης (όπως συμβαίνει με τις προεπιλεγμένες τιμές ορίσματος). Είναι κάτι που παρέχεται για όλες τις συναρτήσεις της Python και προσδιορίζεται μόνο κατά την κλήση της συνάρτησης. Τα πλεονεκτήματα αυτής της μεθόδου μεταβίβασης ορισμάτων είναι ότι κάποιος δε χρειάζεται να γνωρίζει τη διάταξη των παραμέτρων εισόδου της συνάρτησης που καλεί (πρέπει όμως να γνωρίζει τα ονόματά τους), και ότι έχει τη δυνατότητα να μεταβιβάζει ορίσματα μόνο σε συγκεκριμένες παραμέτρους εισόδου (αρκεί να υπάρχουν προεπιλεγμένες τιμές ορίσματος για τις υπόλοιπες). Σημείωση: Επειδή ένα όρισμα με λέξη-κλειδί καθορίζει επακριβώς σε ποια παράμετρο εισόδου θα πρέπει να μεταβιβαστεί, η θέση του στην κλήση της συνάρτησης δεν έχει κάποια σημασία. Προσοχή: Στην περίπτωση που μια συνάρτηση καλείται και με κανονικά ορίσματα (κατά θέση) και με ορίσματα με λέξεις-κλειδί, πρώτα πρέπει να μπαίνουν τα κανονικά ορίσματα στην κλήση της συνάρτησης και μετά τα ορίσματα με λέξεις-κλειδί. Παράδειγμα 1: def foo(a, b, c): print('a =', a, ', b =', b, ', c =', c) Παραδείγματα κλήσης της foo: >>> foo(5, 1, 10) a = 5, b = 1, c = 10 >>> foo(c=10, a=5, b=1) a = 5, b = 1, c = 10 >>> foo(1, 2, c=3) a = 1, b = 2, c = 3 >>> foo(1, c=3, b=2) a = 1, b = 2, c = 3 >>> foo(a=10, b=5, 1) SyntaxError: non-keyword arg after keyword arg >>> foo(1, 2, b=5) Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> foo(1, 2, b=5) TypeError: foo() got multiple values for argument 'b' 1η κλήση: Κλήση με κανονικά ορίσματα (κατά θέση). 2η κλήση: Κλήση με ορίσματα με λέξη-κλειδί για όλες τις μεταβλητές. 3η κλήση: Κλήση με κανονικά ορίσματα για τις a και b, και με όρισμα με λέξη-κλειδί για τη c. ver Τμήμα Μαθηματικών ΕΚΠΑ 9

10 4η κλήση: Κλήση με κανονικό όρισμα για την a, και με ορίσματα με λέξεις-κλειδί για τις b και c. 5η κλήση: Λάθος, γιατί το κανονικό όρισμα (το 1) θα έπρεπε να προηγείται των ορισμάτων με λέξεις-κλειδί. 6η κλήση: Λάθος, γιατί το όρισμα με λέξη-κλειδί (το b=5) αναφέρεται σε παράμετρο στην οποία έχει ήδη μεταβιβαστεί όρισμα κατά θέση (το 2). Παράδειγμα 2: def bar(a, b=5, c=10): print('a =', a, ', b =', b, ', c =', c) Παραδείγματα κλήσης της bar: >>> bar(100,2) a = 100, b = 2, c = 10 >>> bar(100, c=3) a = 100, b = 5, c = 3 >>> bar(50, c=60, b=70) a = 50, b = 70, c = 60 >>> bar(c=100, 200) SyntaxError: non-keyword arg after keyword arg 1η κλήση: Κλήση με κανονικά ορίσματα (κατά θέση) και χρήση της προεπιλεγμένης τιμής της c. 2η κλήση: Κλήση με κανονικό όρισμα για την a, με όρισμα με λέξη-κλειδί για την c, και με προεπιλεγμένη τιμή για την b. 3η κλήση: Κλήση με κανονικό όρισμα για την a, και με ορίσματα με λέξεις-κλειδί για τις b και c. 4η κλήση: Λάθος, γιατί το κανονικό όρισμα (το 200) θα έπρεπε να προηγείται οποιουδήποτε ορίσματος με λέξη-κλειδί. Ενσωματωμένες συναρτήσεις Εντολή import Η Python έχει μια μεγάλη ποικιλία έτοιμων συναρτήσεων που μπορούν να χρησιμοποιηθούν από τον προγραμματιστή. Οι συναρτήσεις αυτές, που ονομάζονται ενσωματωμένες συναρτήσεις, ανήκουν στη λεγόμενη πρότυπη βιβλιοθήκη (standard library). Κάποιες από αυτές μπορούν να χρησιμοποιηθούν άμεσα, χωρίς κάποια επιπλέον ενέργεια, όπως π.χ., η print, η input, η range κ.α. Οι περισσότερες όμως ενσωματωμένες συναρτήσεις ανήκουν σε συγκεκριμένα αρχεία, γνωστά ως module. Η τεχνική αυτή βοηθάει στη σωστή οργάνωση των συναρτήσεων, αφού το κάθε module αφορά συγκεκριμένη κατηγορία συναρτήσεων. Π.χ, ένα module είναι το math, το οποίο περιέχει όλες τις μαθηματικές συναρτήσεις, ενώ ένα άλλο είναι το random, το οποίο περιέχει όλες τις συναρτήσεις που σχετίζονται με ψευδοτυχαίους αριθμούς. Για τη χρήση συναρτήσεων που ανήκει σε κάποιο module, απαιτείται η εντολή import, η οποία φορτώνει στη μνήμη τις συναρτήσεις που περιέχει το συγκεκριμένο αρχείο module, έτσι ώστε να μπορούν να χρησιμοποιηθούν από το πρόγραμμα. Η σύνταξή της είναι η εξής: import όνομα_module ver Τμήμα Μαθηματικών ΕΚΠΑ 10

11 και στη συνέχεια, οποιαδήποτε συνάρτηση του module αυτού μπορεί να κληθεί ως: όνομα_module.όνομα_συνάρτησης() Το module math Το module math φορτώνεται στη μνήμη συμπεριλαμβάνοντας στο πρόγραμμα την εντολή: import math οπότε στη συνέχεια, οποιαδήποτε συνάρτηση του module, καλείται μέσα στο πρόγραμμα με τη μορφή: math.όνομα_συνάρτησης() Κάποιες από τις συναρτήσεις του module math: Σταθερές: sqrt(x) τετραγωνική ρίζα του x log(x) φυσικός λογάριθμος του x log10(x) δεκαδικός λογάριθμος του x exp(x) e x factorial(x) x! floor(x) ο μεγαλύτερος ακέραιος που είναι μικρότερος ή ίσος του x ceil(x) ο μικρότερος ακέραιος που είναι μεγαλύτερος ή ίσος του x sin(x) ημίτονο του x cos(x) συνημίτονο του x tan(x) εφαπτομένη του x math.pi π / math.e e Σημείωση: Οι ενσωματωμένες μαθηματικές συναρτήσεις: abs(x) απόλυτη τιμή του x pow(x,y) x y round(x) στρογγυλοποίηση του x στην πλησιέστερη ακέραια τιμή δεν ανήκουν στο module math, αλλά στην πρότυπη βιβλιοθήκη, όπως π.χ. οι print, input κτλ, άρα καλούνται άμεσα, χωρίς το math. μπροστά από το όνομά τους. ver Τμήμα Μαθηματικών ΕΚΠΑ 11

12 Προγραμματιστική εφαρμογή: Για δεδομένο αριθμό Α, να βρεθεί η A. Γεωμετρική αναδιατύπωση: Για θετικό αριθμό Α, να βρεθεί τετράγωνο με εμβαδόν Α. Μια αρχική ιδέα: W = 1 L = A Παρατήρηση: Η απάντηση είναι μεταξύ του L και του W: W < S < L S Βασική ιδέα: Αρχικά: W Επόμενο βήμα: L L 1 = L+W 2 W 1 W 1 = A L 1 L1 Επόμενο βήμα: L 2 = L 1 +W 1 2 W 2 W 2 = A L 2 L2... Μετά από κάποιες επαναλήψεις, L W A. ver Τμήμα Μαθηματικών ΕΚΠΑ 12

13 Μια αρχική προσέγγιση της συνάρτησης που υλοποιεί τον παραπάνω αλγόριθμο: def my_sqrt(a, steps): L = A W = A/L for i in range(steps): L = (L+W)/2 W = A/L return L Μια βελτιωμένη έκδοση της συνάρτησης, η οποία αντί για καθορισμένο αριθμό επαναλήψεων, δέχεται την επιθυμητή ακρίβεια στην προσέγγιση της τετραγωνικής ρίζας είναι η εξής: def my_sqrt2(a, epsilon): error = epsilon+1 L = A W = A/L while error>epsilon: L = (L+W)/2 W = A/L error = (L-W)/L return L Στη συνάρτηση αυτή, ως σφάλμα θεωρείται η σχετική διαφορά των τιμών L και W, οι οποίες προσεγγίζουν την τιμή της τετραγωνικής ρίζας από αντίθετες κατευθύνσεις. Το ακόλουθο πρόγραμμα χρησιμοποιεί τη συνάρτηση αυτή, καθώς και την ενσωματωμένη συνάρτηση sqrt του module math, για να υπολογίσει μια προσέγγιση της τετραγωνικής ρίζας ενός αριθμού καθώς και την πραγματική ακρίβεια της προσέγγισης: def main(): import math A = float(input('δώσε θετικό αριθμό: ')) e = float(input('δώσε την επιθυμητή ακρίβεια: ')) s = my_sqrt2(a, e) error = abs(s - math.sqrt(a)) print('h προσέγγιση της τετραγωνικής ρίζας του', A, 'ισούται με', s) print('το σφάλμα της προσέγγισης ισούται με', format(error,'.5e')) Δείγματα εξόδου: Δώσε θετικό αριθμό: 99 Δώσε την επιθυμητή ακρίβεια: 0.1 H προσέγγιση της τετραγωνικής ρίζας του 99.0 ισούται με Το σφάλμα της προσέγγισης ισούται με e-02 Δώσε θετικό αριθμό: 99 Δώσε την επιθυμητή ακρίβεια: H προσέγγιση της τετραγωνικής ρίζας του 99.0 ισούται με Το σφάλμα της προσέγγισης ισούται με e-05 ver Τμήμα Μαθηματικών ΕΚΠΑ 13

14 Το module random Το module random φορτώνεται στη μνήμη συμπεριλαμβάνοντας στο πρόγραμμα την εντολή: import random πότε στη συνέχεια, οποιαδήποτε συνάρτηση του module, καλείται μέσα στο πρόγραμμα με τη μορφή: random.όνομα_συνάρτησης() Κάποιες από τις συναρτήσεις του module random: i. randint randint(x,y) τυχαίος ακέραιος στο διάστημα [x, y] Π.χ., >>> number = random.randint(1, 100) >>> print(number) 75 >>> print(random.randint(5,10)) 6 ii. randrange randrange(x) τυχαίος ακέραιος στο διάστημα [0, x) randrange(x,y) τυχαίος ακέραιος στο διάστημα [x, y) randrange(x,y,z) τυχαίος ακέραιος από τη λίστα ακεραίων [x, x+z, x+2*z,..., y) Δηλαδή, η randrange δημιουργεί λίστα αριθμών όπως θα δημιουργούσε η range και στη συνέχεια επιλέγει τυχαία έναν από αυτούς. Π.χ, η εντολή: number = random.randrange(0, 101, 10) επιστρέφει έναν από τους αριθμούς: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] iii. random random() τυχαίος πραγματικός αριθμός στο διάστημα [0, 1) Π.χ., >>> random.random() >>> print(format(random.random(), '.4f')) iv. uniform uniform(x,y) τυχαίος πραγματικός αριθμός στο διάστημα [x, y) ver Τμήμα Μαθηματικών ΕΚΠΑ 14

15 Το seed στην παραγωγή ψευδοτυχαίων αριθμών Οι τυχαίοι αριθμοί που παράγονται από τον διερμηνέα της Python (και γενικά από τους υπολογιστές) δεν είναι στην πραγματικότητα τυχαίοι. Παράγονται από κάποια συγκεκριμένη εξίσωση, η οποία όμως αρχικοποιείται με κάποια τυχαία τιμή, το λεγόμενο seed. Η τιμή του seed χρησιμοποιείται στον υπολογισμό που επιστρέφει τον επόμενο τυχαίο αριθμό μέσω της κλήσης κάποιας αντίστοιχης συνάρτησης (όπως αυτές που αναφέρθηκαν παραπάνω), και προκύπτει από την τιμή της ώρας του συστήματος τη στιγμή που ένα πρόγραμμα συμπεριλαμβάνει το module random με την εντολή import. Η ώρα του συστήματος είναι ένας ακέραιος αριθμός που αντιπροσωπεύει την τρέχουσα ημερομηνία και ώρα με ακρίβεια εκατοστού του δευτερολέπτου. Έτσι, μπορεί να θεωρηθεί ότι ο αριθμός αυτός είναι τυχαίος, αφού κάθε φορά που γίνεται import το module random, το seed θα είναι διαφορετικό. Αν χρησιμοποιούνταν το ίδιο seed, η αλληλουχία των ψευδοτυχαίων αριθμών που θα επέστρεφαν οι συναρτήσεις τυχαίων αριθμών, θα ήταν πάντα ίδιες. Σε περίπτωση που αυτό είναι επιθυμητό, μπορεί να επιτευχθεί με την κλήση της συνάρτησης seed του module random, με την οποία μπορεί να καθοριστεί από τον προγραμματιστή η τιμή του seed. Π.χ., η παρακάτω εντολή θέτει το seed ίσο με 10: random.seed(10) Κάθε φορά που η τιμή του seed καθορίζεται στον ίδιο αριθμό (π.χ., εδώ 10), η αλληλουχία των ψευδοτυχαίων αριθμών που παράγουν οι συναρτήσεις του module random θα είναι η ίδια. Προγραμματιστική εφαρμογή: Τυχαίος περίπατος (Random walk): Έστω μια τετραγωνική περιοχή (2n+1)-επί-(2n+1) με κέντρο στην αρχή των αξόνων που έχει καλυφθεί από τετράγωνα 1-επί-1. Ένα ρομπότ τοποθετείται στο κεντρικό τετράγωνο και προχωράει πηγαίνοντας από τετράγωνο σε τετράγωνο σύμφωνα με κάποιους πολύ απλούς κανόνες. Συγκεκριμένα, αν (x c, y c ) είναι η τρέχουσα θέση του ρομπότ, τότε προχωράει σε κάποια από τις 4 γειτονικές κατευθύνσεις ((x c, y c +1), (x c +1, y c ), (x c, y c -1) και (x c -1, y c )) με πιθανότητα 0.25 (δεν κινείται διαγώνια). Η πορεία του ρομπότ συνεχίζεται μέχρι να φτάσει σε κάποιο από τα ακραία τετράγωνα. Η προσομοίωση της πορείας αυτής ονομάζεται τυχαίος περίπατος (random walk). Π.χ.: ver Τμήμα Μαθηματικών ΕΚΠΑ 15

16 Το πρόβλημα: Για δεδομένο n, ποιος είναι ο μέσος αριθμός βημάτων που απαιτείται για να φτάσει το ρομπότ στο σύνορο; Μια συνάρτηση που υλοποιεί έναν τυχαίο περίπατο του ρομπότ είναι η ακόλουθη: def random_walk(n): import random x = 0 y = 0 steps = 0 # Ο τυχαίος περίπατος: while abs(x)<n and abs(y)<n: # όσο δεν έχει φτάσει στην άκρη r = random.random() if r < 0.25: y += 1 # Πήγαινε επάνω elif r < 0.5: x += 1 # Πήγαινε δεξιά elif r < 0.75: y -= 1 # Πήγαινε κάτω else: x -= 1 # Πήγαινε αριστερά steps += 1 return steps Η συνάρτηση δέχεται το μέγεθος της τετράγωνης περιοχής, και επιστέφει το πλήθος των βημάτων που απαιτήθηκαν μέχρι την ολοκλήρωση του τυχαίου περιπάτου, δηλαδή μέχρι το ρομπότ να φτάσει σε κάποιο ακραίο τετράγωνο της περιοχής. Μία άλλη έκδοση της συνάρτησης που αντί για τη random χρησιμοποιεί τη randint, θα μπορούσε να ήταν η εξής: def random_walk2(n): import random x = 0 y = 0 steps = 0 # Ο τυχαίος περίπατος: while abs(x)<n and abs(y)<n: # όσο δεν έχει φτάσει στην άκρη r = random.randint(1,4) if r == 1: y += 1 # Πήγαινε επάνω elif r == 2: x += 1 # Πήγαινε δεξιά elif r == 3: y -= 1 # Πήγαινε κάτω else: x -= 1 # Πήγαινε αριστερά steps += 1 return steps Η συνάρτηση αυτή θα χρησιμοποιηθεί για να υλοποιηθούν διάφοροι τυχαίοι περίπατοι για διάφορα μεγέθη n, και να υπολογιστεί ο μέσος όρος των βημάτων που απαιτούνται για κάθε μέγεθος n για την ολοκλήρωση των τυχαίων περιπάτων. Παρακάτω παρουσιάζεται το αντίστοιχο πρόγραμμα, για μεγέθη n = 5, 10, 15, 20, 25, 30, 35, 40, 45 και 50. Για κάθε μέγεθος, υλοποιούνται 1000 τυχαίοι περίπατοι ώστε να υπολογιστεί ο μέσος όρος των απαιτούμενων βημάτων. ver Τμήμα Μαθηματικών ΕΚΠΑ 16

17 def main(): ntrials = 1000 # πλήθος δοκιμών για κάθε μέγεθος τετραγώνου print('aποτελέσματα βασισμένα σε', ntrials, 'δοκιμές.') print('μέγεθος \tμ.ο. βημάτων') for n in range(5,51,5): # για διάφορα μεγέθη τετραγώνων steps = 0 for k in range(ntrials): steps += random_walk(n) avg = steps/ntrials print(n, '\t\t', format(avg, '8.3f')) Δείγμα εξόδου του προγράμματος: Aποτελέσματα βασισμένα σε 1000 δοκιμές. Μέγεθος Μ.Ο. βημάτων Δημιουργία Module Οι συναρτήσεις που δημιουργούνται από τον προγραμματιστή, μπορούν και αυτές (όπως οι ενσωματωμένες συναρτήσεις της Python) να αποθηκεύονται σε συγκεκριμένα module, τα οποία στη συνέχεια μπορούν να γίνονται import από άλλα προγράμματα. Ουσιαστικά ένα module δεν είναι τίποτε άλλο παρά ένα πρόγραμμα Python το οποίο περιέχει συναρτήσεις. Άρα, ένα module αποθηκεύεται σε ένα αρχείο: όνομα_module.py Το αρχείο αυτό του module θα πρέπει να βρίσκεται στον ίδιο υποκατάλογο (φάκελο) στον οποίο θα βρίσκεται και το πρόγραμμα που θα το κάνει import. Σε αυτή την περίπτωση, στο πρόγραμμα θα πρέπει να υπάρχει η εντολή: import όνομα_module και οι συναρτήσεις του module θα πρέπει να καλούνται όπως και στην περίπτωση των έτοιμων module της Python, δηλαδή: όνομα_module.όνομα_συνάρτησης() ver Τμήμα Μαθηματικών ΕΚΠΑ 17

18 Παράδειγμα: (αρχείο circle.py) # Το module circle περιέχει συναρτήσεις που σχετίζονται με κύκλους. import math # Η συνάρτηση area δέχεται ακτίνα κύκλου και επιστρέφει το εμβαδόν του. def area(radius): return math.pi * radius**2 # Η συνάρτηση δέχεται ακτίνα κύκλου και επιστρέφει την περιφέρειά του. def circumference(radius): return 2 * math.pi * radius (αρχείο geometry.py) import circle radius = float(input('δώσε την ακτίνα του κύκλου: ')) print('το εμβαδόν είναι', circle.area(radius) ) print('η περιφέρεια είναι', circle.circumference(radius) ) Τοπικές και καθολικές μεταβλητές Μια τοπική (local) μεταβλητή δημιουργείται στο εσωτερικό μιας συνάρτησης και δεν είναι προσπελάσιμη από εντολές που βρίσκονται έξω από τη συνάρτηση. Π.χ., # Ορισμός της συνάρτησης main def main(): get_name() print('γεια σου', name) # Αυτό προκαλεί σφάλμα! # Ορισμός της συνάρτησης get_name def get_name(): name = input('πώς σε λένε; ') main() Εμβέλεια (scope) μιας μεταβλητής ονομάζεται το τμήμα του προγράμματος από το οποίο είναι προσπελάσιμη η μεταβλητή αυτή. Προσοχή: Μια τοπική μεταβλητή δεν είναι προσπελάσιμη από κώδικα που βρίσκεται μέσα στη συνάρτηση σε σημείο πριν από τη δημιουργία τής μεταβλητής. Σε αντιδιαστολή με τις τοπικές μεταβλητές, οι καθολικές (global) μεταβλητές είναι αυτές που δημιουργούνται με μία εντολή εκχώρησης που βρίσκεται έξω από όλες τις συναρτήσεις ενός προγράμματος. Οι καθολικές μεταβλητές είναι προσπελάσιμες από οποιαδήποτε εντολή ενός προγράμματος. ver Τμήμα Μαθηματικών ΕΚΠΑ 18

19 Παράδειγμα 1: # Δημιουργία καθολικής μεταβλητής. my_value = 10 # Η συνάρτηση show_value εμφανίζει # την τιμή μιας καθολικής μεταβλητής. def show_value(): print(my_value) # Κλήση της συνάρτησης show_value() show_value() Παράδειγμα 2: x = 50 # καθολική μεταβλητή def func(x): print('το x είναι', x) x=2 print('άλλαξα το τοπικό x σε', x) func(x) print('το x είναι ακόμα', x) Έξοδος: Το x είναι 50 Άλλαξα το τοπικό x σε 2 Το x είναι ακόμα 50 Παράδειγμα 3: Τι λάθος έχει το ακόλουθο πρόγραμμα; x = 50 # καθολική μεταβλητή def func(): print('το x είναι', x) x=2 print('άλλαξα το τοπικό x σε', x) func() print('το x είναι ακόμα', x) Κατά τη διερμηνεία, προκύπτει το εξής σφάλμα: Traceback (most recent call last): File "/home/dinos/desktop/test.py", line 7, in <module> func() File "/home/dinos/desktop/test.py", line 3, in func print('το x είναι', x) UnboundLocalError: local variable 'x' referenced before assignment Το πρόβλημα παρουσιάζεται επειδή η εντολή x=2 δημιουργεί μία τοπική μεταβλητή μέσα στη συνάρτηση func με το όνομα x, το οποίο είναι ίδιο με το όνομα της καθολικής μεταβλητής. Σε αυτή την περίπτωση, η τοπική μεταβλητή έχει προτεραιότητα στο όνομα μέσα στη συνάρτηση. Επομένως, η πρώτη εντολή της συνάρτησης print('το x είναι', x) αναφέρεται πλέον στην τοπική μεταβλητή, η οποία όμως δεν έχει πάρει ακόμα τιμή σε αυτό το σημείο. ver Τμήμα Μαθηματικών ΕΚΠΑ 19

20 Εάν δεν υπήρχε η εντολή x=2, το πρόγραμμα θα μεταγλωττιζόταν, θεωρώντας ότι η μεταβλητή x μέσα στη συνάρτηση είναι η καθολική μεταβλητή x (Παράδειγμα 3α): x = 50 # καθολική μεταβλητή def func(): print('το x είναι', x) # x=2 print('άλλαξα το τοπικό x σε', x) func() print('το x είναι ακόμα', x) οπότε θα εκτύπωνε: Το x είναι 50 Άλλαξα το τοπικό x σε 50 Το x είναι ακόμα 50 Επίσης, το πρόγραμμα θα λειτουργούσε κανονικά εάν δεν υπήρχε η εντολή print('το x είναι', x) (Παράδειγμα 3β): x = 50 # καθολική μεταβλητή def func(): # print('το x είναι', x) x=2 print('άλλαξα το τοπικό x σε', x) func() print('το x είναι ακόμα', x) οπότε θα εκτύπωνε: Άλλαξα το τοπικό x σε 2 Το x είναι ακόμα 50 Τα προβλήματα που παρουσιάζονται στο Παράδειγμα 3 οφείλονται στο γεγονός ότι μία συνάρτηση δε μπορεί με αυτόν τον τρόπο να αλλάξει την τιμή μιας καθολικής μεταβλητής. Γι αυτό και η εντολή x=2 δημιουργεί τοπική μεταβλητή (με το ίδιο όνομα με την καθολική μεταβλητή). Για να μπορεί μία συνάρτηση να μεταβάλει την τιμή μιας καθολικής μεταβλητής, θα πρέπει η καθολική μεταβλητή να δηλωθεί μέσα στη συνάρτηση, με την εντολή global, ως εξής: x = 50 # καθολική μεταβλητή def func(): global x print('το x είναι', x) x=2 print('άλλαξα το τοπικό x σε', x) func() print('το x είναι ακόμα', x) Το πρόγραμμα αυτό εκτυπώνει: Το x είναι 50 Άλλαξα το τοπικό x σε 2 Το x είναι ακόμα 2 ver Τμήμα Μαθηματικών ΕΚΠΑ 20

21 Σημείωση 1: Η χρήση των καθολικών μεταβλητών καλό είναι να αποφεύγεται και να προτιμάται η χρήση τοπικών μεταβλητών και η μεταβίβασή τους ως ορίσματα σε άλλες συναρτήσεις που τις χρησιμοποιούν. Σημείωση 2: Η χρήση καθολικών μεταβλητών χωρίς τη δήλωσή τους ως global μέσα σε συναρτήσεις, ουσιαστικά δημιουργεί καθολικές σταθερές σε ένα πρόγραμμα, κάτι που πολλές φορές είναι χρήσιμο. ver Τμήμα Μαθηματικών ΕΚΠΑ 21

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

Σημειωματάριο Δευτέρας 30 Οκτ. 2017 Σημειωματάριο Δευτέρας 30 Οκτ. 2017 Συναρτήσεις (functions) Μια συνάρτηση στην Python είναι κομμάτι κώδικα που φέρει το δικό του όνομα (ακολουθεί τη λέξη κλειδί def στον ορισμό της συνάρτησης, έχει τα

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

Εισαγωγή στον Προγ/μό Υπολογιστών

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 1 Εκφράσεις, κλητικές εκφράσεις, ονόματα Περιεχόμενα Εκφράσεις (expressions) Τελεστές (operators) της Python Κλητικές εκφράσεις (call expressions) Ονόματα (names)

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

Συναρτήσεις στη Visual Basic 6.0

Συναρτήσεις στη Visual Basic 6.0 Προγραμματισμός & Εφαρμογές Υπολογιστών Μάθημα 4ο Συναρτήσεις στη Visual Basic 6.0 Κ. Κωστοπούλου Σειρά εκτέλεσης των πράξεων Όταν ορίζετε μια ακολουθία αριθμητικών πράξεων είναι δυνατόν να προκύψει αμφισημία.

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

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

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

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

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

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

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

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

Ηβασικήσυνάρτηση προγράμματος main()

Ηβασικήσυνάρτηση προγράμματος main() Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που

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

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 4ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Συναρτήσεις (functions) 56 Τεμαχισμός του προγράμματος σε μικρότερα κομμάτια που είναι πιο κατανοητά, πιο εύκολα

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Έλεγχος συνθηκών - if Ας μελετήσουμε το πρόβλημα του υπολογισμού του ελάχιστου

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

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

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

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ Ι ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ Τύποι δεδομένων Οι παρακάτω τύποι δεδομένων υποστηρίζονται από τη γλώσσα προγραμματισμού Fortran: 1) Ακέραιοι αριθμοί (INTEGER). 2) Πραγματικοί αριθμοί απλής ακρίβειας

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

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

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

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

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Εισαγωγή στην Tcl. Τί είναι η Tcl; 1 Εισαγωγή στην Tcl Τί είναι η Tcl; Το αρκτικόλεξο Tcl προέρχεται από τις λέξεις «Tool Control Language». Η Tcl είναι μια γλώσσα προγραμματισμού για scripts γενικής χρήσεως, τα οποία επίσης μπορούν να

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

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

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

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

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό 1 Εισαγωγή Σκεφτείτε έναν αριθμό από το 1 έως το 1000 και απαντήστε στην ερώτηση: Ο αριθμός που σκεφτήκατε είναι μεγαλύτερος

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

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

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

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

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

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

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

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

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

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

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

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

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

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

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

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Συναρτήσεις (Functions) Στον προγραμματισμό,

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

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

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

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

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

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

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

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

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

Συναρτήσεις. Υποπρόγραμμα

Συναρτήσεις. Υποπρόγραμμα Συναρτήσεις Υποπρόγραμμα Ένα σύνολο από εντολές που κάνουν κάτι συγκεκριμένο, έχουν στενή σχέση/εξάρτηση μεταξύ τους, έχουν «χαλαρή» σύνδεση με τον υπόλοιπο κώδικα, μπορεί να εξαχθεί από το πρόγραμμά μας

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

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

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

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

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου. ΜΑΘΗΜΑΤΑ PYTHON To 1991 o Guido van Rossman δημιούργησε την Python ως μια ανοιχτού λογισμικού ανεξάρτητη πλατφόρμας γενικού σκοπού γλώσσα προγραμματισμού (open source platformindependent). Είναι βασικά

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

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

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τύποι δεδομένων, μεταβλητές, πράξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Περιεχόμενο μαθήματος: Αλγοριθμική επίλυση προβλημάτων Προγραμματισμός

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

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

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

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

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός Εργαστήριο 9 Συναρτήσεις στη PASCAL Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός 7.1 ΕΠΙΔΙΩΞΗ ΤΗΣ ΕΡΓΑΣΙΑΣ Η έννοια της συνάρτησης ως υποπρογράμματος είναι τόσο βασική σε όλες τις γλώσσες προγραμματισμού,

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

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

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

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

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

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

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4» 1. Τι φαντάζεστε ότι θα κάνει η παρακάτω εντολή: print("καλημέρα.") εκτελέστε την στο περιβάλλον Python Shell 2. γράψτε μια παρόμοια π.χ. print("το όνομα μου είναι Μποντ.") 3. Γράψτε μία εντολή που να

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Συναρτήσεις - Μεταβλητές ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Συναρτήσεις / Μεταβλητές

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch; ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι είναι ; Συναρτήσεις Αυτόνομα τμήματα κώδικα (υποπρογράμματα) που πραγματοποιούν μια καθορισμένη εργασία. Χρήσιμες για περιπτώσεις που ο ίδιος υπολογισμός επαναλαμβάνεται πολλές φορές

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

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

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

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

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

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

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

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

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

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

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων Συναρτήσεις Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων ιεπαφή Συναρτήσεων (Πρωτότυπα Συναρτήσεων function prototypes): εδοµένα εισόδου (παράµετροι parameters): πέρασµα δια τιµής ή µέσω

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

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

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

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

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica Πρώτη επαφή με το μαθηματικό πακέτο Mathematica Με δύο λόγια, μπορούμε να πούμε ότι η Mathematica είναι ένα πρόγραμμα που το χρησιμοποιούμε για να κάνουμε αναλυτικούς και αριθμητικούς υπολογισμούς αλλά

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A)

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A) ΑΣΚΗΣΗ 1 Δίνεται η λογική συνάρτηση: F = ((A AND B) OR (B AND C) OR (A AND C)) ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A) α) Σχεδιάστε το λογικό κύκλωμα που υλοποιεί τη συνάρτηση F. β) Σχηματίστε τον πίνακα

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Δρ. Π. Νικολαΐδου Προγραμματίζοντας στη γλώσσα R Εισαγωγή ( 1 ο Μάθημα ) Βασικές εντολές - λειτουργίες Μπορούμε να διαγράψουμε το περιεχόμενο της R κονσόλας επιλέγοντας Edit>Clear

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

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος Κεφάλαιο 10 Υποπρογράμματα 1 10.1 Τμηματικός προγραμματισμός Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων.

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

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

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

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

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

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

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

12. Συναρτήσεις (Μέρος ΙI)

12. Συναρτήσεις (Μέρος ΙI) Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 12. Συναρτήσεις (Μέρος ΙI) Ιωάννης Κατάκης Σήμερα o Συναρτήσεις χωρίς παραμέτρους o Συναρτήσεις με παραμέτρους Χωρίς επιστροφή τιμής Με επιστροφή τιμής o Εμβέλεια

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

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

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

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

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

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

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

Συναρτήσεις. Εισαγωγή

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

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

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

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

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

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

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