ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Συναρτήσεις
|
|
- Βηθανία Αντωνόπουλος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Συναρτήσεις
2 Δόμηση προγράμματος Μέχρι τώρα έχουμε δει πως να χρησιμοποιούμε έτοιμες συναρτήσεις και μεθόδους στα προγράμματά μας (π.χ. le(), max(), prit()) Μπορούμε να ορίσουμε τις δικές μας συναρτήσεις για λειτουργίες που επαναλαμβάνονται στο πρόγραμμά μας Ο ορισμός συναρτήσεων συντελεί στη σωστή δόμηση του προγράμματός μας Το πρόγραμμά μας γίνεται πιο ευανάγνωστο Αποφεύγονται οι επαναλήψεις κώδικα Βοηθούν στο σχεδιασμό του προγράμματός μας 2
3 Συναρτήσεις Οι συναρτήσεις στις γλώσσες προγραμματισμού μοιάζουν με τις συναρτήσεις στα μαθηματικά μπορούν να πάρουν σαν όρισμα κάποιες τιμές μπορούν να επιστρέψουν μια τιμή Οι συναρτήσεις στις γλώσσες προγραμματισμού γενικεύουν τις μαθηματικές συναρτήσεις μπορούν να εκτελέσουν κάποια λειτουργία χωρίς απαραίτητα να παίρνουν ορίσματα ή να επιστρέφουν τιμές μπορούν να παίρνουν μεταβλητό αριθμό ορισμάτων μπορούν να εκτελούν λειτουργίες ανεξάρτητες από τα ορίσματά τους 3
4 Παραδείγματα συναρτήσεων Μαθηματικές συναρτήσεις στην Pytho: f(x) = x 2 +1 def f(x): retur x**2 + 1 prit(4*f(2)) µπλοκ κώδικα που ορίζει τη συνάρτηση f Η εντολή retur κάνει την f να επιστρέφει µια τιµή µέρος κώδικα όπου εκτελείται η f Τι θα τυπώσει το πρόγραµµα; Γενικά οι συναρτήσεις ορίζονται ως εξής: def <όνομα συνάρτησης> (<μεταβλητές>): <κώδικας συνάρτησης> 4
5 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση με όνομα average που θα παίρνει ως ορίσματα 2 μεταβλητές και θα επιστρέφει το μέσο όρο τους π.χ. average(2,3.5) = 2.75 def average(x,y): retur (x+y)/2 5
6 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση με όνομα perimeter που θα παίρνει ως ορίσματα την ακτίνα ενός κύκλου και θα επιστρέφει την περίμετρό του π.χ. perimeter(1) = def perimeter(x): from math import pi retur 2*pi*x 6
7 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση που θα παίρνει ως όρισμα ένα όνομα και θα τυπώνει Hello όνομα π.χ. >>>hello('joh') hello Joh! def hello(x): prit('hello, '+x+'!') Η συνάρτηση hello() τυπώνει κάτι, αλλά δεν επιστρέφει κάτι. Ποια η διαφορά; 7
8 Προσοχή Οι f1 και f2 φαίνεται να κάνουν το ίδιο, αλλά υπάρχουν σημαντικές διαφορές def f1(x): retur x**2 + 1 def f2(x): prit(x**2 + 1) >>> f1(2) 5 Επίσης: >>> f2(2) η y = f2(5) δεν θα 5 καταχωρήσει την τιµή της >>> f2(2)+5 f2(5) στο y 5 Traceback (most recet call last): File "<pyshell#29>", lie 1, i <module> f2(2)+5 TypeError: usupported operad type(s) for +: 'NoeType' ad 'it' 8
9 Χρήση συναρτήσεων Το πρόγραμμα αποτελείται από 2 μέρη: Τον κώδικα των συναρτήσεων (το λέμε αλλιώς δηλώσεις των συναρτήσεων) Το κύριο πρόγραμμα Ο κώδικας μιας συνάρτησης καλείται κάθε φορά που καλείται η συνάρτηση στο πρόγραμμα Η κλήση της συνάρτησης στο πρόγραμμα ισοδυναμεί με τρέξιμο του κώδικα της συνάρτησης, όπου στη θέση των ορισμάτων μπαίνουν οι τιμές μέσα στις παρενθέσεις της κλήσης Έτσι ο έλεγχος του προγράμματος περνάει από το κύριο πρόγραμμα στις συναρτήσεις Ο έλεγχος επιστρέφει στο πρόγραμμα και η κλήση της συνάρτησης αντικαθίσταται με αυτό που επιστρέφει η κλήση 9
10 Παράδειγμα χρήσης συνάρτησης def average(x,y): retur (x+y)/2 prit(average(5,6)) prit(average(6,8)) ροή προγράμματος: prit(average(5,6)) 5.5 prit(average(6,8)) 7 x = 5, y = 6 retur (5+6)/2 x = 6, y = 8 retur (6+8)/2 10
11 Οι ορισμοί συναρτήσεων είναι εντολές Τι κάνει το παρακάτω πρόγραμμα; s = iput("eter square or cube: ") if s == 'square': def f(x): retur x*x else: def f(x): retur x*x*x 11
12 Ορισμός πριν την κλήση Πρώτα ορίζουμε μια συνάρτηση, μετά την καλούμε Γιατί θα προκύψει σφάλμα αν εκτελεστεί το παρακάτω πρόγραμμα; prit(f(2)) def f(x): retur x**
13 Ορισμός πριν την κλήση Θα προκύψει σφάλμα από την εκτέλεση του παρακάτω; def g(x): retur f(x) def f(x): retur x**2 + 1 Οχι! Οι συναρτήσεις f() και g() δεν εκτελούνται, παρά μόνο ορίζονται. Μετά τον ορισμό τους μπορούν να κληθούν χωρίς κανένα πρόβλημα 13
14 Συναρτήσεις σαν αντικείμενα Οι συναρτήσεις είναι κι αυτές αντικείμενα, όπως οι αριθμοί, τα αλφαριθμητικά, οι λίστες, κλπ. Μπορούμε να διαπιστώσουμε αν ένα αντικείμενο είναι συνάρτηση με την callable >>> x = 1 >>> y = le >>> callable(x) False >>> callable(y) True >>> y([1,2,3]) 3 14
15 Προσοχή στο retur Αν η ροή σε μιά συνάρτηση φτάσει σε ένα retur, η συνάρτηση τερματίζει άμεσα επιστρέφοντας το όρισμα του retur Ερώτηση: τι θα κάνει η παρακάτω συνάρτηση όταν κληθεί; def test(): prit('hello', ed='') retur prit(' world') retur Μετά το retur οι εντολές είναι άχρηστες >>> x = test() Hello >>> x >>> prit(x) Noe 15
16 Προσοχή στο retur Φροντίστε οι συναρτήσεις σας να επιστρέφουν τις τιμές που πρέπει σε κάθε περίπτωση κάνοντας ελέγχους μέσω if def traslate_temp(t): if (t<5): retur 'It\'s freezig!' elif (t>25): retur 'It\'s hot!' else: retur 'It\'s cool.' >>> temp = it(iput("eter the curret temperature: ")) Eter the curret temperature: 20 >>> prit(traslate_temp(temp)) It's cool. 16
17 Χρήση του retur για έλεγχο ροής H εντολή retur σταματάει την ροή του κώδικα και μας βγάζει από την συνάρτηση. Πολλές φορές μπορεί να την χρησιμοποιήσουμε όπως την εντολή break για να φύγουμε από την εκτέλεση του κώδικα σε κάποιο σημείο που μας βολεύει.
18 Χρήση του retur για έλεγχο ροής Παράδειγμα: Γράψετε μία συνάρτηση που παίρνει σαν όρισμα δύο λίστες και επιστρέφει True αν είναι ίδιες και False αν όχι (χωρίς την χρήση του τελεστή ==) def equals(x,y): if le(x)!= le(y): retur False for x,y i zip(x,y): if x!= y: retur False retur True
19 Τοπικότητα παραμέτρων Αν αλλάξουμε την τιμή μιας παραμέτρου μέσα στη συνάρτηση η μεταβλητή που περνάει σαν παράμετρος δεν αλλάζει στο εξωτερικό πρόγραμμα για μη μεταβαλλόμενες μεταβλητές. def try_to_chage(): = 'Mr. Gumby' ame = 'Mrs. Etity' try_to_chage(ame) prit(ame) Mrs. Etity Η µεταβλητή µέσα στη συνάρτηση έχει τώρα τιµή 'Mr. Gumby ανεξάρτητα από την τιµή της κατά την κλήση της συνάρτησης Η µεταβλητή ame παραµένει αµετάβλητη µετά την κλήση της try_to_chage 19
20 Τοπικότητα παραμέτρων Αν αλλάξουμε τα περιεχόμενα ενός μεταβαλλόμενου αντικειμένου που περνιέται σαν παράμετρος μέσα στη συνάρτηση, τότε το αντικείμενο αλλάζει στο εξωτερικό πρόγραμμα def chage(): [0] = 'Mr. Gumby' ames = ['Mrs. Etity', 'Mrs. Thig'] chage(ames) prit(ames) ['Mr. Gumby', 'Mrs. Thig'] Το αντικείµενο (λίστα) που δείχνει η παράµετρος αλλάζει και στο εξωτερικό πρόγραµµα Η µεταβλητή ames αλλάζει µετά την κλήση της συνάρτησης chage Τρέξτε τον κώδικα στο 20
21 Άσκηση Τι θα τυπώσει το παρακάτω πρόγραμμα; def chage(): [0] = 'Mr. Gumby' ames = ['Mrs. Etity', 'Mrs. Thig'] chage(ames[:]) prit(ames) ['Mrs. Etity', 'Mrs. Thig'] Αντιγράφει τη µεταβλητή ames σε άλλη µεταβλητή (άλλη λίστα) και η συνάρτηση chage αλλάζει την άλλη λίστα, όχι τη ames Τρέξτε τον κώδικα στο 21
22 Άσκηση Τι θα τυπώσει το παρακάτω πρόγραμμα; def chage(): = ['Mr. Gumby', 'Mrs. Thig'] ames = ['Mrs. Etity', 'Mrs. Thig'] chage(ames) prit(ames) H µεταβλητή τώρα δείχνει κάπου αλλού αλλά δεν αλλάζει η µεταβλητή ames ['Mrs. Etity', 'Mrs. Thig'] Τρέξτε τον κώδικα στο 22
23 Πέρασμα με τιμή/αναφορά Στις γλώσσες προγραμματισμού γενικά υπάρχουν 2 τρόποι περάσματος παραμέτρων σε συναρτήσεις Πέρασμα με τιμή: η τιμή της μεταβλητής που μπαίνει σαν παράμετρος αντιγράφεται σε τοπική μεταβλητή (μεταβλητή παραμέτρου στη συνάρτηση) τυχόν αλλαγές στην τιμή της τοπικής μεταβλητής μέσα στη συνάρτηση δεν επηρεάζουν την εξωτερική μεταβλητή Πέρασμα με αναφορά: η μεταβλητή που μπαίνει σαν παράμετρος αλλάζει άν η τοπική μεταβλητή (μεταβλητή παραμέτρου στη συνάρτηση) αλλάξει 23
24 «Πέρασμα με αναφορά» μη μεταβαλλόμενης μεταβλητής Τι κάνουμε στην Pytho αν η συνάρτησή μας θέλουμε να αλλάξει την τιμή της παραμέτρου, αν αυτή είναι μή μεταβαλλόμενη μεταβλητη; def ic(x): retur x + 1 y = 1 y = ic(y) prit(y) Α τρόπος: βάζουµε τη συνάρτηση να επιστρέφει τη νέα τιµή και την αναθέτουµε στη µεταβλητή def ic(x): x[0] = x[0] + 1 y = [1] ic(y) prit(y) Β τρόπος: κάνουµε τη µεταβλητή µας µεταβαλλόµενη 24
25 Παράμετροι: η σειρά μετράει Η αντιστοίχιση των παραμέτρων με τις εξωτερικές μεταβλητές γίνεται με βάση τη σειρά def my_pow(base, expoet): value = 1 for i i rage(0, expoet): value *= base retur value x = it(iput('iput base: ')) y = it(iput('iput expoet: ')) prit('%d to the power of %d = %d' % (x, y, my_pow(x,y))) Μπορούµε επίσης να γράψουµε: my_pow(base = x, expoet = y) ή my_pow(expoet = y, base = x) (µε αυτό τον τρόπο η σειρά δεν έχει σηµασία) 25
26 Παράμετροι: default τιμές Μπορούμε να ορίσουμε default τιμές για τη συνάρτηση σε περίπτωση που δεν περαστούν όλες def hello(greetig='hello', ame='world'): prit('%s, %s!' % (greetig, ame)) >>> hello('geia sou', 'file') Geia sou, file! >>> hello('geia sou') Geia sou, world! >>> hello(ame = 'aderfe') Hello, aderfe! >>> hello() Hello, world! 26
27 Παράμετροι: default τιμές Κάντε χρήση default τιμών για μη υποχρεωτικές παραμέτρους def hello(ame, greetig='hello', puctuatio='!'): prit ('%s, %s%s' % (greetig, ame, puctuatio)) >>> hello('joh') Hello, Joh! >>> hello('joh','howdy') Howdy, Joh! >>> hello('joh','howdy','...') Howdy, Joh... >>> hello('joh',puctuatio='...') Hello, Joh... >>> hello() Traceback (most recet call last): File "<pyshell#62>", lie 1, i <module> hello() TypeError: hello() missig 1 required positioal argumet: 'ame' 27
28 Μεταβλητός αριθμός παραμέτρων Με χρήση αστερίσκου * πριν το όνομα της παραμέτρου, παίρνουμε μια πλειάδα από αυτές def prit_params(*params): prit(params) >>> prit_params('test1') ('test1',) >>> prit_params('test1',1,2) ('test1', 1, 2) >>> prit_params() () 28
29 Μεταβλητός αριθμός παραμέτρων Με χρήση αστερίσκου * πριν το όνομα της παραμέτρου, παίρνουμε μια πλειάδα από αυτές def prit_params(title, *params): prit(title) prit(params) υποχρεωτική παράµετρος >>> prit_params('label',1,2,3) Label (1, 2, 3) 29
30 Μεταβλητός αριθμός παραμέτρων Παράδειγμα def prit_family(*members): prit('my family cosists of ',ed='') for x i members[:-1]: prit(x, 'ad', ed=' ') prit(members[-1]) >>> prit_family('dad','mom','sis','bro') My family cosists of dad ad mom ad sis ad bro 30
31 Μεταβλητός αριθμός παραμέτρων Μπορούμε να το ορίσουμε το ίδιο και έτσι: def prit_family(members): prit('my family cosists of ',ed='') for x i members[:-1]: prit(x, 'ad', ed=' ') prit(members[-1]) Αλλά αλλάζει η χρήση της συνάρτησης >>> prit_family(('dad','mom','sis','bro )) My family cosists of dad ad mom ad sis ad bro 31
32 Μεταβλητός αριθμός παραμέτρων Με χρήση διπλού αστερίσκου ** πριν το όνομα της παραμέτρου, παίρνουμε ένα λεξικό από αυτές def prit_params(**params): prit(params) >>> prit_params(x=1, y=2, z=3) {'y': 2, 'x': 1, 'z': 3} def prit_params(x, y, z=3, *pospar, **keypar): prit (x, y, z) prit (pospar) prit (keypar) 32
33 Κατανομή τιμών σε παραμέτρους Η συνάρτησή μας μπορεί να έχει συγκεκριμένο αριθμό παραμέτρων και να την καλέσουμε δίνοντας σαν όρισμα μια πλειάδα/λίστα τιμών με χρήση * def add(x, y): retur x + y >>> params=(1,2) >>> add(*params) 3 33
34 Κατανομή τιμών σε παραμέτρους Η συνάρτησή μας μπορεί να έχει συγκεκριμένο αριθμό παραμέτρων και να την καλέσουμε δίνοντας σαν όρισμα ένα λεξικό παραμέτρων:τιμών με χρήση ** def hello(greetig='hello', ame='world'): prit('%s, %s!' % (greetig, ame)) >>> params = {'ame': 'Sir Robi', 'greetig': 'Well met'} >>> hello(**params) Well met, Sir Robi! 34
35 Παραδείγματα def story(**kwds): retur 'Oce upo a time, there was a ' \ '%(obj)s called %(ame)s.' % kwds >>> story(obj='kig', ame='gumby') 'Oce upo a time, there was a kig called Gumby.' >>> story(ame='sir Robi', obj='brave kight') 'Oce upo a time, there was a brave kight called Sir Robi.' >>> params = {'obj': 'laguage', 'ame': 'Pytho'} >>> story(**params) 'Oce upo a time, there was a laguage called Pytho.' >>> del params['obj'] >>> story(obj='stroke of geius', **params) 'Oce upo a time, there was a stroke of geius called Pytho.' 35
36 Παραδείγματα def power(x, y, *others): if others: prit ('Received redudat parameters:', others) retur pow(x, y) >>> power(2,3) 8 >>> power(y=3,x=2) 8 >>> params = (5,) * 2 >>> power(*params) 3125 >>> power(3, 3, 'Hello, world') Received redudat parameters: ('Hello, world',) 27 36
37 Παραδείγματα def iterval(start, stop=noe, step=1): 'Imitates rage() for step > 0' if stop is Noe: # If the stop is ot supplied... start, stop = 0, start # shuffle the parameters result = [] i = start # We start coutig at the start idex while i < stop: # Util the idex reaches the stop idex... result.apped(i) #...apped the idex to the result... i += step #...icremet idex retur result >>> help(iterval) Help o fuctio iterval i module mai : iterval(start, stop=noe, step=1) Imitates rage() for step > 0 Περιγραφή συνάρτησης (σαν σχόλιο) εµφανίζεται στο help >>> iterval(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> iterval(1,5) [1, 2, 3, 4] >>> iterval(3,12,4) [3, 7, 11] >>> power(*iterval(3,7)) Received redudat parameters: (5, 6) 81 37
38 Εμβέλεια μεταβλητών Όταν δίνουμε τιμή σε μια μεταβλητή είναι σαν να δίνουμε τιμή στο κλειδί με το όνομα της μεταβλητής σε ένα λεξικό vars(): επιστρέφει το built-i λεξικό της Pytho για τις μεταβλητές >>> x = 1 >>> vars()['x'] 1 >>> vars()['x']+=1 >>> x 2 ΠΡΟΣΟΧΗ: Γενικά µην αλλάζετε το λεξικό µεταβλητών της Pytho, αλλά να ορίζετε και να αλλάζετε τις µεταβλητές µε τον παραδοσιακό τρόπο 38
39 Εμβέλεια μεταβλητών Σφαιρική/καθολική μεταβλητή: είναι μια μεταβλητή που ορίζεται και χρησιμοποιείται σε όλο το πρόγραμμα τοπική μεταβλητή: είναι μια μεταβλητή που ορίζεται και χρησιμοποιείται μέσα σε μια συνάρτηση >>> def foo(): x = 42 >>> x = 1 >>> foo() >>> x 1 ΠΡΟΣΟΧΗ: Η x µέσα στη συνάρτηση είναι τοπική µεταβλητή ΠΡΟΣΟΧΗ: Μετά την κλήση της foo() η σφαιρική µεταβλητή x δεν αλλάζει Η Pytho ορίζει ένα τοπικό λεξικό μεταβλητών μέσα σε κάθε συνάρτηση 39
40 Στοίβα εκτέλεσης προγράμματος Κατά την εκτέλεση του προγράμματος οι μεταβλητές κρατούνται σε ένα λεξικό μέσα σε ένα πλαίσιο (frame) Κάθε φορά που καλούμε μια συνάρτηση δημιουργείται ένα καινούριο πλαίσιο που μπαίνει στην κορυφή της στοίβας και δημιουργεί ένα καινούριο λεξικό με τοπικές μεταβλητές. Μέσα στην συνάρτηση οι τοπικές μεταβλητές έχουν προτεραιότητα Αν δεν βρούμε την μεταβλητή που θέλουμε στο τοπικό λεξικό κοιτάμε στο πλαίσιο του κυρίως προγράμματος Μια μεταβλητή έχει εμβέλεια στο πλαίσιο που βρίσκεται. Οι μεταβλητές στο πλαίσιο του κυρίως προγράμματος έχουν εμβέλεια παντού. Φεύγοντας από την συνάρτηση επιστρέφουμε στο προηγούμενο πλαίσιο
41 Παράδειγμα def foo(): x = 42 prit(x) prit(vars()) To frame του βασικού προγράμματος Λεξικό vars: foo: <fuctio> x: 1 x = 1 prit(vars()) foo() prit(x)
42 Παράδειγμα def foo(): x = 42 prit(x) prit(vars()) x = 1 prit(vars()) foo() prit(x) To frame του βασικού προγράμματος Λεξικό vars: foo: <fuctio> x: 1 To frame της συνάρτησης foo() Λεξικό vars: x: 42 Κλήση της foo() To frame της foo είναι τώρα το ενεργό frame
43 Παράδειγμα def foo(): y = 42 prit(x) prit(vars()) x = 1 prit(vars()) foo() prit(x) To frame του βασικού προγράμματος Λεξικό vars: foo: <fuctio> x: 1 To frame της συνάρτησης foo() Λεξικό vars: y: 42 Κλήση της foo() To frame της foo είναι τώρα το ενεργό frame Αν δεν βρούμε την μεταβλητή που ψάχνουμε στο τοπικό λεξικό ψάχνουμε στo λεξικό με τις καθολικές μεταβλητές
44 Παράδειγμα def foo(): y = 42 prit(x) prit(vars()) x = 1 prit(vars()) foo() prit(y) Λάθος! To frame του βασικού προγράμματος Λεξικό vars: foo: <fuctio> x: 1 Η μεταβλητή y έχει εμβέλεια μόνο μέσα στην συνάρτηση foo. Όταν φύγουμε από την foo το πλαίσιο και το λεξικό της foo παύουν να υπάρχουν και η μεταβλητή χάνεται.
45 Εμβέλεια μεταβλητών Οι εξωτερικές (π.χ. σφαιρικές) μεταβλητές μπορούν να διαβαστούν μέσα σε μια συνάρτηση, αλλά δεν μπορούν να πάρουν νέα τιμή >>> def combie(param): prit (param + exteral) >>> exteral = 'berry' >>> combie('black') blackberry προσπέλαση εξωτερικής µεταβλητής µέσα στη συνάρτηση combie() 45
46 Επισκίαση Η επισκίαση (shadowig) μιας μεταβλητής συμβαίνει όταν έχει οριστεί εξωτερικά, αλλά δεν μπορεί να προσπελαστεί μέσα σε μια συνάρτηση επειδή υπάρχει μια τοπική μεταβλητή με το ίδιο όνομα def dosomethig(): y=5 x=3 prit(x,y) x = 1 dosomethig() prit(x) Αν ήθελα στο σηµείο αυτό να χρησιµοποιήσω την εξωτερική µεταβλητή x δεν θα µπορούσα γιατί το x πλέον αναφέρεται στην τοπική µεταβλητή x 46
47 Παράδειγμα Τι θα γίνει αν προσπαθήσουμε να τρέξουμε τον παρακάτω κώδικα? def f(): prit(x) def g(): prit(x) x = 1 x = 3 f() g() Traceback (most recet call last): File "globaltest.py", lie 10, i <module> g() File "globaltest.py", lie 5, i g prit(x) UboudLocalError: local variable 'x' refereced before assigmet
48 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomethig(): lst.apped(10) lst = [1] dosomethig() prit(lst) Εδώ αλλάζουµε τα περιεχόµενα της λίστας αλλά όχι το που δείχνει η µεταβλητή lst Τρέξτε τον κώδικα στο 48
49 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomethig(): lst = [1,10] lst = [1] dosomethig() prit(lst) Εδώ δηµιουργούµε µια καινούρια µεταβλητή lst που είναι τοπική Τρέξτε τον κώδικα στο 49
50 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomethig(): lst.apped(10) lst = [1,10,20] lst = [1] dosomethig() prit(lst) Traceback (most recet call last): File "<pyshell#7>", lie 1, i <module> dosomethig() File "<pyshell#5>", lie 2, i dosomethig lst.apped(10) UboudLocalError: local variable 'lst' refereced before assigmet 50
51 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση >>> def output(x): prit(x); x += 1; prit(x) >>> y=2 >>> output(y) >>> def add0(l): l.apped(0) 2 >>> lst = [] 3 >>> add0(lst) >>> y >>> lst 2 [0] 51
52 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): prit(x); x = x+1; prit(x) y = 2 output(y) prit(y) Τι θα τυπωθεί?
53 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(y): prit(y); y = y+1; prit(y) y = 2 output(y) prit(y) To y είναι τοπική µεταβλητή της συνάρτησης output Τι θα τυπωθεί?
54 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): for i i rage(le(x)): x[i]+=1 prit(x) y = [2,3] output(y) prit(y) Τι θα τυπωθεί? [3,4] [3,4] 54
55 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): for e i x: e+=1 prit(x) y = [2,3] output(y) prit(y) Τι θα τυπωθεί? [2,3] [2,3] 55
56 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): x = [e+1 for e i x] prit(x) y = [2,3] output(y) prit(y) Αλλάζουµε που δείχνει η τοπική µεταβλητή, όχι τα περιεχόµενα της Τι θα τυπωθεί? [3,4] [2,3] 56
57 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): x = [3,4] prit(x) y = [2,3] output(y) prit(y) Αλλάζουµε που δείχνει η τοπική µεταβλητή, όχι τα περιεχόµενα της Τι θα τυπωθεί? [3,4] [2,3] 57
58 Επισκίαση Η προσπέλαση μιας σφαιρικής μεταβλητής που επισκιάζεται σε μια συνάρτηση επισκίαση, μπορεί να γίνει μέσω του λεξικού που επιστρέφει η globals() def dosomethig(): y=5 x=3 prit(x,y,globals()['x']) Αναφορά στη σφαιρική µεταβλητή x x = 1 dosomethig() prit(x) Το λεξικό που επιστρέφει η locals() περιέχει τις μεταβλητές που έχουν τοπική εμβέλεια (στη συνάρτηση) 58
59 «Δέσιμο» τοπικής μεταβλητής σε σφαιρική Αν θέλουμε να αλλάξουμε μια σφαιρική μεταβλητή μέσα σε μια συνάρτηση μπορούμε να τη δηλώσουμε ως σφαιρική μεταβλητή της συνάρτησης >>> x = 1 >>> def chage_global(): global x x = x + 1 Η τοπική µεταβλητή x «δένεται» στην αντίστοιχη σφαιρική >>> chage_global() >>> x 2 Τι θα γινόταν αν δεν είχαμε την εντολή global x? 59
60 Άσκηση def f(x): x = x+1 prit('x = ',x) h() g() prit('x = ',x) def g(): x = 'abc' prit('x = ', x) def h(): z = x; prit('z = ', z) x = 3 z = f(x) prit ('x = ',x) Τι θα τυπώσει το πρόγραμμα?
61 Σφαιρικές/Καθολικές μεταβλητές Μεταβλητές που ορίζονται στο κύριο μέρος του προγράμματος (όχι μέσα στην συνάρτηση) και η τιμή τους χρησιμοποιείται και μέσα στην συνάρτηση Γενικά δεν είναι καλή πρακτική να χρησιμοποιείτε καθολικές μεταβλητές Αν θέλετε να χρησιμοποιήσετε μια μεταβλητή του κυρίως προγράμματος προσθέσετε μια επιπλέον παράμετρο.
62 Περίληψη Οι μεταβλητές που ορίζουμε στο κυρίως πρόγραμμα είναι καθολικές μεταβλητές Μπορούμε να τις χρησιμοποιήσουμε παντού Οι παράμετροι και οι μεταβλητές που ορίζουμε (τους αναθέτουμε τιμή) μέσα στις συναρτήσεις είναι τοπικές μεταβλητές. Οι τοπικές μεταβλητές έχουν εμβέλεια μόνο μέσα στην συνάρτηση. Εξαφανίζονται έξω από την συνάρτηση. Αν μία τοπική και μία καθολική μεταβλητή έχουν το ίδιο όνομα τότε η τοπική μεταβλητή έχει προτεραιότητα. Οι αλλαγές στις τοπικές μεταβλητές δεν αλλάζουν τις καθολικές μεταβλητές Αν μια τοπική μεταβλητή (ή παράμετρος) και μια καθολική μεταβλητή δείχνουν στο ίδιο αντικείμενο, η αλλαγή στα περιεχόμενα του αντικειμένου θα εμφανιστεί και στην καθολική μεταβλητή.
63 Προγραμματισμός με συναρτήσεις Στον κώδικα μας θα ορίζουμε πρώτα τις συναρτήσεις και μετά το κύριο κομμάτι του κώδικα. Στο μέλλον αν έχετε μεγάλο κώδικα μπορείτε να τον σπάτε σε πολλά αρχεία def fuctio1(<params>): <code> def fuctio2(<params>): <code> def fuction(<params>): <code> <mai code>
64 Προγραμματισμός με συναρτήσεις Αν θέλουμε να επιστρέψουμε τιμή χρησιμοποιούμε την εντολή retur To prit δεν επιστρέφει κάποια τιμή, απλά εκτυπώνει στην οθόνη. Η εντολή retur επιστρέφει μια τιμή για την συνάρτηση και σταματάει την εκτέλεση της συνάρτησης! Άρα κατά την εκτέλεση του κώδικα (ru time) δεν γίνεται να κληθεί η retur πολλαπλές φορές Άρα αν καλέσουμε την retur μέσα σε for θα κληθεί μόνο μία φορά και θα σταματήσει το for
65 Προγραμματισμός με συναρτήσεις Η κλήση της συνάρτησης γίνεται μέσα στο κύριο πρόγραμμα. Η συνάρτηση πλέον είναι σαν μια οποιαδήποτε άλλη συνάρτηση/εντολή της pytho. Μπορούμε να την καλέσουμε όσες φορές θέλουμε, να την βάλουμε σε loop, σε if κλπ.
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Συναρτήσεις Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Συναρτήσεις Χειµερινό Εξάµηνο 2014 Δόµηση προγράµµατος Μέχρι τώρα έχουµε δει πως να χρησιµοποιούµε έτοιµες συναρτήσεις και µεθόδους στα προγράµµατά µας (π.χ. len(),
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Συναρτήσεις Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Συναρτήσεις Χειμερινό Εξάμηνο 2016 Δόμηση προγράμματος Μέχρι τώρα έχουμε δει πως να χρησιμοποιούμε έτοιμες συναρτήσεις και μεθόδους στα προγράμματά μας (π.χ. len(),
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Έλεγχος Ροής Προγράμματος
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Έλεγχος Ροής Προγράμματος Ροή προγράμματος Μέχρι τώρα έχουμε δει προγράμματα απλής ροής Οι εντολές εκτελούνται η μία μετά την άλλη σύμφωνα με την ακολουθία γραμμών
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Επαναληπτικές Ασκήσεις
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Επαναληπτικές Ασκήσεις Μεταβλητές Τι θα τυπώσουν τα παρακάτω προγράμματα? Γιατί? def add(): y = x+1 prit(y) x = 3 add() 4 H add χρησιμοποιεί την καθολική μεταβλητή
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1
Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή
Πληρουορική Γ Γσμμασίοσ
Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:
Εισαγωγή στον Προγ/μό Υπολογιστών
Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 1 Εκφράσεις, κλητικές εκφράσεις, ονόματα Περιεχόμενα Εκφράσεις (expressions) Τελεστές (operators) της Python Κλητικές εκφράσεις (call expressions) Ονόματα (names)
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής
Σημειωματάριο Τετάρτης 18 Οκτ. 2017
Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07
Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 8/11/07 Συμπλήρωμα προηγούμενης εβδομάδας: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 8/11/07 Τι συμβαίνει όταν στην ίδια έκφραση υπάρχει πάνω από
Σημειωματάριο Δευτέρας 30 Οκτ. 2017
Σημειωματάριο Δευτέρας 30 Οκτ. 2017 Συναρτήσεις (functions) Μια συνάρτηση στην Python είναι κομμάτι κώδικα που φέρει το δικό του όνομα (ακολουθεί τη λέξη κλειδί def στον ορισμό της συνάρτησης, έχει τα
Pascal. 15 Νοεμβρίου 2011
Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε
Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C
Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016 Δομές δεδομένων Μια δομή δεδομένων είναι μια δομημένη (οργανωμένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων,
Εισαγωγή στον Προγ/μό Υπολογιστών
Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 7 Ακολουθίες (Sequences) Περιεχόμενα 1. Ακολουθίες 2. Λίστα (list) 3. Επαναληπτικοί υπολογισμοί ακολουθιών 4. Επεξεργασία ακολουθιών 5. Τελεστές ακολουθιών 6.
Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client
ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις
Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ
Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει
Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python
Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Συναρτήσεις (Functions) Στον προγραμματισμό,
Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Προγραμματισμός Συστημάτων
MYY502 Προγραμματισμός Συστημάτων Β. Δημακόπουλος dimako@cse.uoi.gr http://www.cse.uoi.gr/~dimako Εργαστήρια Μάλλον (!) ξεκινούν την επόμενη εβδομάδα Εγγραφές στο εργαστήριο 2 βάρδιες, 15:00 17:00 και
Γλώσσα προγραμματισμού python
Προηγούμενο Σημειώσεις Επόμενο Γλώσσα προγραμματισμού python Η γλώσσα αυτή γράφτηκε από τον Ολλανδό προγραμματιστή Guido van Rossum στα τέλη της δεκαετίας 1980-90. Η έκδοση 2.0 δημοσιεύτηκε στις 16 Οκτωβρίου
Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών
Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:
Δομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 Αναζήτηση και Ταξινόμηση Βασικές λειτουργίες σε προγράμματα Αναζήτηση (searching): Βρες ένα ζητούμενο στοιχείο σε μια
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Λεξικά Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Λεξικά Χειμερινό Εξάμηνο 2016 Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθμητικά) μπορούμε να αναφερόμαστε σε ένα στοιχείο με τον αριθμητικό δείκτη του (π.χ.
Ανάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη
ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λεξικά Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Λεξικά Χειµερινό Εξάµηνο 2014 Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθµητικά) µπορούµε να αναφερόµαστε σε ένα στοιχείο µε τον αριθµητικό δείκτη του (π.χ.
ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor
ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται
Σύντομες εισαγωγικές σημειώσεις για την. Matlab
Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και
Προγραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναδροµικές Συναρτήσεις Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναδροµικές Συναρτήσεις Χειµερινό Εξάµηνο 2014 Ορισµός και ιδιότητες Μια συνάρτηση είναι αναδροµική αν καλεί τον εαυτό της Οι περισσότερες γλώσσες προγραµµατισµού υποστηρίζουν
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αλφαριθμητικά Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αλφαριθμητικά Χειμερινό Εξάμηνο 2016 Λειτουργίες σε αλφαριθμητικά Μπορούμε να εφαρμόσουμε όλες τις λειτουργίες που έχουμε δει για πλειάδες και λίστες (π.χ. slicing)
Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:
Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4
ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 Λίστες (Lists) Λίστα (list) στην Python ονομάζεται μια δυναμική δομή δεδομένων (στην πραγματικότητα, ένα αντικείμενο) που περιέχει πολλαπλά δεδομένα. Ουσιαστικά, η λίστα
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Έλεγχος Ροής - Παραδείγματα
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Έλεγχος Ροής - Παραδείγματα Δίσεκτο έτος Ένα έτος είναι δίσεκτο αν διαιρείται ακριβώς με το 400 ή διαιρείται ακριβώς με το 4 και δεν διαιρείται ακριβώς με το 100 Υπολογίστε
Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Συναρτήσεις. Υποπρόγραμμα
Συναρτήσεις Υποπρόγραμμα Ένα σύνολο από εντολές που κάνουν κάτι συγκεκριμένο, έχουν στενή σχέση/εξάρτηση μεταξύ τους, έχουν «χαλαρή» σύνδεση με τον υπόλοιπο κώδικα, μπορεί να εξαχθεί από το πρόγραμμά μας
Pascal. 26 Οκτωβρίου 2011
Pascal 6 Οκτωβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε
Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ
7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7.1 Ορισμός και δήλωση συνάρτησης Μία συνάρτηση είναι μία ενότητα οδηγιών οι οποίες μαζί εκτελούν μία συγκεκριμένη εργασία. Παρέχει έναν κατάλληλο τρόπο να μπορέσουμε να κάνουμε
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε
Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού
Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Συναρτήσεις και διαδικασίες
Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί
Συναρτήσεις. ΚΕΡΟΣ ΓΙΑΝΝΗΣ, ΠΕ19 1ο ΕΠΑΛ ΚΙΛΚΙΣ. Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς
Συναρτήσεις Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς Συναρτήσεις - Εισαγωγή Τι είναι μία συνάρτηση; def numbers(): Επικεφαλίδα της συνάρτησης Μία συνάρτηση είναι: print 'One' ένα σύνολο
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Δομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 9: Συναρτήσεις Εμβέλεια Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων
Διάλεξη 5η: Εντολές Επανάληψης
Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016
Κεφάλαιο 10 ο Υποπρογράµµατα
Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,
Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου
ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter
Εισαγωγή στον Προγραμματισμό με C++
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν
Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης
Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Εντολές Ελέγχου 2 Γενικά Εντολές λήψης αποφάσεων Επιτρέπουν στο πρόγραμμα να εκτελεί διαφορετικές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 Αναζήτηση και Ταξινόµηση Βασικές λειτουργίες σε προγράµµατα Αναζήτηση (searching): Βρες ένα ζητούµενο στοιχείο σε µια
Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ
ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
1. Λογικά λάθη ονομάζονται αυτά που οφείλονται σε σφάλματα κατά την υλοποίηση του αλγόριθμου.
ΑΕσΠΠ-Κεφ 10.Υποπρογράμματα 1 1. Λογικά λάθη ονομάζονται αυτά που οφείλονται σε σφάλματα κατά την υλοποίηση του αλγόριθμου. ΣΩΣΤΟ ΛΑΘΟΣ 2. Συντακτικά λάθη ονομάζονται αυτά που οφείλονται σε αναγραμματισμούς
Εισαγωγή στην Αριθμητική Ανάλυση
Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον
Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a
Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας
Εισαγωγή Εξαιρέσεις ηµήτρης Λεβεντέας 20 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Ο χειρισµός εξαιρέσεων είναι µια κατασκευή η οποία µας επιτρέπει να χειριστούµε ειδικές συνθήκες που αλλάζουν την ϕυσιολογική
ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή
ΚΕΦΑΛΑΙΟ 2 Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές Σύνοψη Το κεφάλαιο αυτό εισάγει τον αναγνώστη σε βασικές έννοιες που είναι χρήσιμες για την απόκτηση μιας πρώτης εμπειρίας με την Python. Προαπαιτούμενη
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο
FORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19
Βασικά στοιχεία γλώσσας προγραμματισμού Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Ας θυμηθούμε ξανά την παλιά μας «αγάπη» Η Python είναι μία σύγχρονη, διερμηνευόμενη, υψηλού επιπέδου γλώσσα γενικής χρήσης
2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων
2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014 Δοµές δεδοµένων Μια δοµή δεδοµένων είναι µια δοµηµένη (οργανωµένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων, αριθµών,
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος
Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός
ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;
ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι είναι ; Συναρτήσεις Αυτόνομα τμήματα κώδικα (υποπρογράμματα) που πραγματοποιούν μια καθορισμένη εργασία. Χρήσιμες για περιπτώσεις που ο ίδιος υπολογισμός επαναλαμβάνεται πολλές φορές
3 ο Εργαστήριο Μεταβλητές, Τελεστές
3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση
Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)
Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και
Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:
Επαναλήψεις - Loops Οι επαναλήψεις σε ένα πρόγραμμα μας επιτρέπουν μια ομάδα εντολών να εκτελείται για όσες φορές επιθυμούμε Υπάρχουν τρεις τρόποι επανάληψης εντολών με τη χρήση: While loops For loops
Λογισµικό (Software SW) Γλώσσες
Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής
// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!
// ------ MATHIMA 2, 07.03.12 ------ // s.boot; s.makewindow.boot; // boot server! /* Αυτά θα τα δούμε αργότερα, απλώς είπα να τα συμπεριλάβω από τώρα: Server.local.options.blockSize = 16; Server.local.options.sampleRate
4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)
4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή
Εντολές ελέγχου ροής if, for, while, do-while
Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή