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

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

Download "ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Συναρτήσεις Χειμερινό Εξάμηνο 2016"

Transcript

1 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Συναρτήσεις Χειμερινό Εξάμηνο 2016

2 Δόμηση προγράμματος Μέχρι τώρα έχουμε δει πως να χρησιμοποιούμε έτοιμες συναρτήσεις και μεθόδους στα προγράμματά μας (π.χ. len(), max(), print()) Μπορούμε να ορίσουμε τις δικές μας συναρτήσεις για λειτουργίες που επαναλαμβάνονται στο πρόγραμμά μας Ο ορισμός συναρτήσεων συντελεί στη σωστή δόμηση του προγράμματός μας Το πρόγραμμά μας γίνεται πιο ευανάγνωστο Αποφεύγονται οι επαναλήψεις κώδικα Βοηθούν στο σχεδιασμό του προγράμματός μας 2

3 Συναρτήσεις Οι συναρτήσεις στις γλώσσες προγραμματισμού μοιάζουν με τις συναρτήσεις στα μαθηματικά μπορούν να πάρουν σαν όρισμα κάποιες τιμές μπορούν να επιστρέψουν μια τιμή Οι συναρτήσεις στις γλώσσες προγραμματισμού γενικεύουν τις μαθηματικές συναρτήσεις μπορούν να εκτελέσουν κάποια λειτουργία χωρίς απαραίτητα να παίρνουν ορίσματα ή να επιστρέφουν τιμές μπορούν να παίρνουν μεταβλητό αριθμό ορισμάτων μπορούν να εκτελούν λειτουργίες ανεξάρτητες από τα ορίσματά τους 3

4 Παραδείγματα συναρτήσεων Μαθηματικές συναρτήσεις στην Python: f(x) = x 2 +1 def f(x): return x**2 + 1 print(4*f(2)) μπλοκ κώδικα που ορίζει τη συνάρτηση f Η εντολή return κάνει την f να επιστρέφει μια τιμή μέρος κώδικα όπου εκτελείται η f Τι θα τυπώσει το πρόγραμμα; Γενικά οι συναρτήσεις ορίζονται ως εξής: def <όνομα συνάρτησης> (<μεταβλητές>): <κώδικας συνάρτησης> 4

5 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση με όνομα average που θα παίρνει ως ορίσματα 2 μεταβλητές και θα επιστρέφει το μέσο όρο τους π.χ. average(2,3.5) = 2.75 def average(x,y): return (x+y)/2 5

6 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση με όνομα perimeter που θα παίρνει ως ορίσματα την ακτίνα ενός κύκλου και θα επιστρέφει την περίμετρό του π.χ. perimeter(1) = def perimeter(x): from math import pi return 2*pi*x 6

7 Παραδείγματα συναρτήσεων Άσκηση: Ορίστε μια συνάρτηση που θα παίρνει ως όρισμα ένα όνομα και θα τυπώνει Hello όνομα π.χ. >>>hello('john') hello John! def hello(x): print('hello, '+x+'!') Η συνάρτηση hello() τυπώνει κάτι, αλλά δεν επιστρέφει κάτι. Ποια η διαφορά; 7

8 Προσοχή Οι f1 και f2 φαίνεται να κάνουν το ίδιο, αλλά υπάρχουν σημαντικές διαφορές def f1(x): return x**2 + 1 def f2(x): print(x**2 + 1) >>> f1(2) 5 Επίσης: >>> f2(2) η y = f2(5) δεν θα 5 καταχωρήσει την τιμή της >>> f2(2)+5 f2(5) στο y 5 Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> f2(2)+5 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' 8

9 Οι ορισμοί συναρτήσεων είναι εντολές Τι κάνει το παρακάτω πρόγραμμα; s = input("enter square or cube: ") if s == 'square': def f(x): return x*x else: def f(x): return x*x*x 9

10 Ορισμός πριν την κλήση Πρώτα ορίζουμε μια συνάρτηση, μετά την καλούμε Γιατί θα προκύψει σφάλμα αν εκτελεστεί το παρακάτω πρόγραμμα; print(f(2)) def f(x): return x**

11 Ορισμός πριν την κλήση Θα προκύψει σφάλμα από την εκτέλεση του παρακάτω; def g(x): return f(x) def f(x): return x**2 + 1 Οχι! Οι συναρτήσεις f() και g() δεν εκτελούνται, παρά μόνο ορίζονται. Μετά τον ορισμό τους μπορούν να κληθούν χωρίς κανένα πρόβλημα 11

12 Συναρτήσεις σαν αντικείμενα Οι συναρτήσεις είναι κι αυτές αντικείμενα, όπως οι αριθμοί, τα αλφαριθμητικά, οι λίστες, κλπ. Μπορούμε να διαπιστώσουμε αν ένα αντικείμενο είναι συνάρτηση με την callable >>> x = 1 >>> y = len >>> callable(x) False >>> callable(y) True >>> y([1,2,3]) 3 12

13 Προσοχή στο return Αν η ροή σε μιά συνάρτηση φτάσει σε ένα return, η συνάρτηση τερματίζει άμεσα επιστρέφοντας το όρισμα του return Ερώτηση: τι θα κάνει η παρακάτω συνάρτηση όταν κληθεί; def test(): print('hello', end='') return print(' world') return Μετά το return οι εντολές είναι άχρηστες >>> x = test() Hello >>> x >>> print(x) None 13

14 Προσοχή στο return Φροντίστε οι συναρτήσεις σας να επιστρέφουν τις τιμές που πρέπει σε κάθε περίπτωση κάνοντας ελέγχους μέσω if def translate_temp(t): if (t<5): return 'It\'s freezing!' elif (t>25): return 'It\'s hot!' else: return 'It\'s cool.' >>> temp = int(input("enter the current temperature: ")) Enter the current temperature: 20 >>> print(translate_temp(temp)) It's cool. 14

15 Χρήση του return για έλεγχο ροής H εντολή return σταματάει την ροή του κώδικα και μας βγάζει από την συνάρτηση. Πολλές φορές μπορεί να την χρησιμοποιήσουμε όπως την εντολή break για να φύγουμε από την εκτέλεση του κώδικα σε κάποιο σημείο που μας βολεύει.

16 Χρήση του return για έλεγχο ροής Παράδειγμα: Γράψετε μία συνάρτηση που παίρνει σαν όρισμα δύο λίστες και επιστρέφει True αν είναι ίδιες και False αν όχι (χωρίς την χρήση του τελεστή ==) def equals(x,y): if len(x)!= len(y): return False for x,y in zip(x,y): if x!= y: return False return True

17 Τοπικότητα παραμέτρων Αν αλλάξουμε την τιμή μιας παραμέτρου μέσα στη συνάρτηση η μεταβλητή που περνάει σαν παράμετρος δεν αλλάζει στο εξωτερικό πρόγραμμα για μη μεταβαλλόμενες μεταβλητές. def try_to_change(n): n = 'Mr. Gumby' name = 'Mrs. Entity' try_to_change(name) print(name) Mrs. Entity Η μεταβλητή n μέσα στη συνάρτηση έχει τώρα τιμή 'Mr. Gumby ανεξάρτητα από την τιμή της κατά την κλήση της συνάρτησης Η μεταβλητή name παραμένει αμετάβλητη μετά την κλήση της try_to_change 17

18 Τοπικότητα παραμέτρων Αν αλλάξουμε τα περιεχόμενα ενός μεταβαλλόμενου αντικειμένου που περνιέται σαν παράμετρος μέσα στη συνάρτηση, τότε το αντικείμενο αλλάζει στο εξωτερικό πρόγραμμα def change(n): n[0] = 'Mr. Gumby' names = ['Mrs. Entity', 'Mrs. Thing'] change(names) print(names) ['Mr. Gumby', 'Mrs. Thing'] Το αντικείμενο (λίστα) που δείχνει η παράμετρος n αλλάζει και στο εξωτερικό πρόγραμμα Η μεταβλητή names αλλάζει μετά την κλήση της συνάρτησης change Τρέξτε τον κώδικα στο 18

19 Άσκηση Τι θα τυπώσει το παρακάτω πρόγραμμα; def change(n): n[0] = 'Mr. Gumby' names = ['Mrs. Entity', 'Mrs. Thing'] change(names[:]) print(names) ['Mrs. Entity', 'Mrs. Thing'] Αντιγράφει τη μεταβλητή names σε άλλη μεταβλητή (άλλη λίστα) και η συνάρτηση change αλλάζει την άλλη λίστα, όχι τη names Τρέξτε τον κώδικα στο 19

20 Άσκηση Τι θα τυπώσει το παρακάτω πρόγραμμα; def change(n): n = ['Mr. Gumby', 'Mrs. Thing'] names = ['Mrs. Entity', 'Mrs. Thing'] change(names) print(names) H μεταβλητή n τώρα δείχνει κάπου αλλού αλλά δεν αλλάζει η μεταβλητή names ['Mrs. Entity', 'Mrs. Thing'] Τρέξτε τον κώδικα στο 20

21 Πέρασμα με τιμή/αναφορά Στις γλώσσες προγραμματισμού γενικά υπάρχουν 2 τρόποι περάσματος παραμέτρων σε συναρτήσεις Πέρασμα με τιμή: η τιμή της μεταβλητής που μπαίνει σαν παράμετρος αντιγράφεται σε τοπική μεταβλητή (μεταβλητή παραμέτρου στη συνάρτηση) τυχόν αλλαγές στην τιμή της τοπικής μεταβλητής μέσα στη συνάρτηση δεν επηρεάζουν την εξωτερική μεταβλητή Πέρασμα με αναφορά: η μεταβλητή που μπαίνει σαν παράμετρος αλλάζει άν η τοπική μεταβλητή (μεταβλητή παραμέτρου στη συνάρτηση) αλλάξει 21

22 «Πέρασμα με αναφορά» μη μεταβαλλόμενης μεταβλητής Τι κάνουμε στην Python αν η συνάρτησή μας θέλουμε να αλλάξει την τιμή της παραμέτρου, αν αυτή είναι μή μεταβαλλόμενη μεταβλητη; def inc(x): return x + 1 y = 1 y = inc(y) print(y) Α τρόπος: βάζουμε τη συνάρτηση να επιστρέφει τη νέα τιμή και την αναθέτουμε στη μεταβλητή def inc(x): x[0] = x[0] + 1 y = [1] inc(y) print(y) Β τρόπος: κάνουμε τη μεταβλητή μας μεταβαλλόμενη 22

23 Παράμετροι: η σειρά μετράει Η αντιστοίχιση των παραμέτρων με τις εξωτερικές μεταβλητές γίνεται με βάση τη σειρά def my_pow(base, exponent): value = 1 for i in range(0, exponent): value *= base return value x = int(input('input base: ')) y = int(input('input exponent: ')) print('%d to the power of %d = %d' % (x, y, my_pow(x,y))) Μπορούμε επίσης να γράψουμε: my_pow(base = x, exponent = y) ή my_pow(exponent = y, base = x) (με αυτό τον τρόπο η σειρά δεν έχει σημασία) 23

24 Παράμετροι: default τιμές Μπορούμε να ορίσουμε default τιμές για τη συνάρτηση σε περίπτωση που δεν περαστούν όλες def hello(greeting='hello', name='world'): print('%s, %s!' % (greeting, name)) >>> hello('geia sou', 'file') Geia sou, file! >>> hello('geia sou') Geia sou, world! >>> hello(name = 'aderfe') Hello, aderfe! >>> hello() Hello, world! 24

25 Παράμετροι: default τιμές Κάντε χρήση default τιμών για μη υποχρεωτικές παραμέτρους def hello(name, greeting='hello', punctuation='!'): print ('%s, %s%s' % (greeting, name, punctuation)) >>> hello('john') Hello, John! >>> hello('john','howdy') Howdy, John! >>> hello('john','howdy','...') Howdy, John... >>> hello('john',punctuation='...') Hello, John... >>> hello() Traceback (most recent call last): File "<pyshell#62>", line 1, in <module> hello() TypeError: hello() missing 1 required positional argument: 'name' 25

26 Μεταβλητός αριθμός παραμέτρων Με χρήση αστερίσκου * πριν το όνομα της παραμέτρου, παίρνουμε μια πλειάδα από αυτές def print_params(*params): print(params) >>> print_params('test1') ('test1',) >>> print_params('test1',1,2) ('test1', 1, 2) >>> print_params() () 26

27 Μεταβλητός αριθμός παραμέτρων Με χρήση αστερίσκου * πριν το όνομα της παραμέτρου, παίρνουμε μια πλειάδα από αυτές def print_params(title, *params): print(title) print(params) υποχρεωτική παράμετρος >>> print_params('label',1,2,3) Label (1, 2, 3) 27

28 Μεταβλητός αριθμός παραμέτρων Παράδειγμα def print_family(*members): print('my family consists of ',end='') for x in members[:-1]: print(x, 'and', end=' ') print(members[-1]) >>> print_family('dad','mom','sis','bro') My family consists of dad and mom and sis and bro 28

29 Μεταβλητός αριθμός παραμέτρων Μπορούμε να το ορίσουμε το ίδιο και έτσι: def print_family(members): print('my family consists of ',end='') for x in members[:-1]: print(x, 'and', end=' ') print(members[-1]) Αλλά αλλάζει η χρήση της συνάρτησης >>> print_family(('dad','mom','sis','bro )) My family consists of dad and mom and sis and bro 29

30 Μεταβλητός αριθμός παραμέτρων Με χρήση διπλού αστερίσκου ** πριν το όνομα της παραμέτρου, παίρνουμε ένα λεξικό από αυτές def print_params(**params): print(params) >>> print_params(x=1, y=2, z=3) {'y': 2, 'x': 1, 'z': 3} def print_params(x, y, z=3, *pospar, **keypar): print (x, y, z) print (pospar) print (keypar) 30

31 Κατανομή τιμών σε παραμέτρους Η συνάρτησή μας μπορεί να έχει συγκεκριμένο αριθμό παραμέτρων και να την καλέσουμε δίνοντας σαν όρισμα μια πλειάδα/λίστα τιμών με χρήση * def add(x, y): return x + y >>> params=(1,2) >>> add(*params) 3 31

32 Κατανομή τιμών σε παραμέτρους Η συνάρτησή μας μπορεί να έχει συγκεκριμένο αριθμό παραμέτρων και να την καλέσουμε δίνοντας σαν όρισμα ένα λεξικό παραμέτρων:τιμών με χρήση ** def hello(greeting='hello', name='world'): print('%s, %s!' % (greeting, name)) >>> params = {'name': 'Sir Robin', 'greeting': 'Well met'} >>> hello(**params) Well met, Sir Robin! 32

33 Παραδείγματα def story(**kwds): return 'Once upon a time, there was a ' \ '%(obj)s called %(name)s.' % kwds >>> story(obj='king', name='gumby') 'Once upon a time, there was a king called Gumby.' >>> story(name='sir Robin', obj='brave knight') 'Once upon a time, there was a brave knight called Sir Robin.' >>> params = {'obj': 'language', 'name': 'Python'} >>> story(**params) 'Once upon a time, there was a language called Python.' >>> del params['obj'] >>> story(obj='stroke of genius', **params) 'Once upon a time, there was a stroke of genius called Python.' 33

34 Παραδείγματα def power(x, y, *others): if others: print ('Received redundant parameters:', others) return 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 redundant parameters: ('Hello, world',) 27 34

35 Παραδείγματα def interval(start, stop=none, step=1): 'Imitates range() for step > 0' if stop is None: # If the stop is not supplied... start, stop = 0, start # shuffle the parameters result = [] i = start # We start counting at the start index while i < stop: # Until the index reaches the stop index... result.append(i) #...append the index to the result... i += step #...increment index return result >>> help(interval) Help on function interval in module main : interval(start, stop=none, step=1) Imitates range() for step > 0 Περιγραφή συνάρτησης (σαν σχόλιο) εμφανίζεται στο help >>> interval(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> interval(1,5) [1, 2, 3, 4] >>> interval(3,12,4) [3, 7, 11] >>> power(*interval(3,7)) Received redundant parameters: (5, 6) 81 35

36 Εμβέλεια μεταβλητών Όταν δίνουμε τιμή σε μια μεταβλητή είναι σαν να δίνουμε τιμή στο κλειδί με το όνομα της μεταβλητής σε ένα λεξικό vars(): επιστρέφει το built-in λεξικό της Python για τις μεταβλητές >>> x = 1 >>> vars()['x'] 1 >>> vars()['x']+=1 >>> x 2 ΠΡΟΣΟΧΗ: Γενικά μην αλλάζετε το λεξικό μεταβλητών της Python, αλλά να ορίζετε και να αλλάζετε τις μεταβλητές με τον παραδοσιακό τρόπο 36

37 Εμβέλεια μεταβλητών Σφαιρική/καθολική μεταβλητή: είναι μια μεταβλητή που ορίζεται και χρησιμοποιείται σε όλο το πρόγραμμα τοπική μεταβλητή: είναι μια μεταβλητή που ορίζεται και χρησιμοποιείται μέσα σε μια συνάρτηση >>> def foo(): x = 42 >>> x = 1 >>> foo() >>> x 1 ΠΡΟΣΟΧΗ: Η x μέσα στη συνάρτηση είναι τοπική μεταβλητή ΠΡΟΣΟΧΗ: Μετά την κλήση της foo() η σφαιρική μεταβλητή x δεν αλλάζει Η Python ορίζει ένα τοπικό λεξικό μεταβλητών μέσα σε κάθε συνάρτηση 37

38 Στοίβα εκτέλεσης προγράμματος Κατά την εκτέλεση του προγράμματος οι μεταβλητές κρατούνται σε ένα λεξικό μέσα σε ένα πλαίσιο (frame) Κάθε φορά που καλούμε μια συνάρτηση δημιουργείται ένα καινούριο πλαίσιο που μπαίνει στην κορυφή της στοίβας και δημιουργεί ένα καινούριο λεξικό με τοπικές μεταβλητές. Μέσα στην συνάρτηση οι τοπικές μεταβλητές έχουν προτεραιότητα Αν δεν βρούμε την μεταβλητή που θέλουμε στο τοπικό λεξικό κοιτάμε στο πλαίσιο του κυρίως προγράμματος Μια μεταβλητή έχει εμβέλεια στο πλαίσιο που βρίσκεται. Οι μεταβλητές στο πλαίσιο του κυρίως προγράμματος έχουν εμβέλεια παντού. Φεύγοντας από την συνάρτηση επιστρέφουμε στο προηγούμενο πλαίσιο

39 Παράδειγμα def foo(): x = 42 print(x) print(vars()) To frame του βασικού προγράμματος Λεξικό vars: foo: <function> x: 1 x = 1 print(vars()) foo() print(x)

40 Παράδειγμα def foo(): x = 42 print(x) print(vars()) x = 1 print(vars()) foo() print(x) To frame του βασικού προγράμματος Λεξικό vars: foo: <function> x: 1 To frame της συνάρτησης foo() Λεξικό vars: x: 42 Κλήση της foo() To frame της foo είναι τώρα το ενεργό frame

41 Παράδειγμα def foo(): y = 42 print(x) print(vars()) x = 1 print(vars()) foo() print(x) To frame του βασικού προγράμματος Λεξικό vars: foo: <function> x: 1 To frame της συνάρτησης foo() Λεξικό vars: y: 42 Κλήση της foo() To frame της foo είναι τώρα το ενεργό frame Αν δεν βρούμε την μεταβλητή που ψάχνουμε στο τοπικό λεξικό ψάχνουμε στo λεξικό με τις καθολικές μεταβλητές

42 Παράδειγμα def foo(): y = 42 print(x) print(vars()) x = 1 print(vars()) foo() print(y) Λάθος! To frame του βασικού προγράμματος Λεξικό vars: foo: <function> x: 1 Η μεταβλητή y έχει εμβέλεια μόνο μέσα στην συνάρτηση foo. Όταν φύγουμε από την foo το πλαίσιο και το λεξικό της foo παύουν να υπάρχουν και η μεταβλητή χάνεται.

43 Εμβέλεια μεταβλητών Οι εξωτερικές (π.χ. σφαιρικές) μεταβλητές μπορούν να διαβαστούν μέσα σε μια συνάρτηση, αλλά δεν μπορούν να πάρουν νέα τιμή >>> def combine(param): print (param + external) >>> external = 'berry' >>> combine('black') blackberry προσπέλαση εξωτερικής μεταβλητής μέσα στη συνάρτηση combine() 43

44 Επισκίαση Η επισκίαση (shadowing) μιας μεταβλητής συμβαίνει όταν έχει οριστεί εξωτερικά, αλλά δεν μπορεί να προσπελαστεί μέσα σε μια συνάρτηση επειδή υπάρχει μια τοπική μεταβλητή με το ίδιο όνομα def dosomething(): y=5 x=3 print(x,y) x = 1 dosomething() print(x) Αν ήθελα στο σημείο αυτό να χρησιμοποιήσω την εξωτερική μεταβλητή x δεν θα μπορούσα γιατί το x πλέον αναφέρεται στην τοπική μεταβλητή x 44

45 Παράδειγμα Τι θα γίνει αν προσπαθήσουμε να τρέξουμε τον παρακάτω κώδικα? def f(): print(x) def g(): print(x) x = 1 x = 3 f() g() Traceback (most recent call last): File "C:/Users/Panayiotis/Dropbox/Teaching/Python/python_2016/ lectures/lecture9/globaltest.py", line 10, in <module> g() File "C:/Users/Panayiotis/Dropbox/Teaching/Python/python_2016/ lectures/lecture9/globaltest.py", line 5, in g print(x) UnboundLocalError: local variable 'x' referenced before assignment

46 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomething(): lst.append(10) lst = [1] dosomething() print(lst) Εδώ αλλάζουμε τα περιεχόμενα της λίστας αλλά όχι το που δείχνει η μεταβλητή lst Τρέξτε τον κώδικα στο 46

47 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomething(): lst = [1,10] lst = [1] dosomething() print(lst) Εδώ δημιουργούμε μια καινούρια μεταβλητή lst που είναι τοπική Τρέξτε τον κώδικα στο 47

48 Επισκίαση Όπως και με τις παραμέτρους δεν μπορούμε να αλλάξουμε που δείχνει μια καθολική μεταβλητή, αλλά μπορούμε να αλλάξουμε τα περιεχόμενα του αντικειμένου στο οποίο δείχνει def dosomething(): lst.append(10) lst = [1,10,20] lst = [1] dosomething() print(lst) Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> dosomething() File "<pyshell#5>", line 2, in dosomething lst.append(10) UnboundLocalError: local variable 'lst' referenced before assignment 48

49 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση >>> def output(x): print(x); x += 1; print(x) >>> y=2 >>> output(y) >>> def add0(l): l.append(0) 2 >>> lst = [] 3 >>> add0(lst) >>> y >>> lst 2 [0] 49

50 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): print(x); x = x+1; print(x) y = 2 output(y) print(y) Τι θα τυπωθεί?

51 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(y): print(y); y = y+1; print(y) y = 2 output(y) print(y) To y είναι τοπική μεταβλητή της συνάρτησης output Τι θα τυπωθεί?

52 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): for i in range(len(x)): x[i]+=1 print(x) y = [2,3] output(y) print(y) Τι θα τυπωθεί? [3,4] [3,4] 52

53 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): for e in x: x[i]+=1 print(x) y = [2,3] output(y) print(y) Τι θα τυπωθεί? [2,3] [2,3] 53

54 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): x = [e+1 for e in x] print(x) y = [2,3] output(y) print(y) Αλλάζουμε που δείχνει η τοπική μεταβλητή, όχι τα περιεχόμενα της Τι θα τυπωθεί? [3,4] [2,3] 54

55 Παράμετροι Οι παράμετροι μιας συνάρτησης αντιγράφονται ως τοπικές μεταβλητές Οι παράμετροι είναι τοπικές μεταβλητές που έχουν αρχικοποιηθεί με τις τιμές των ορισμάτων Αλλαγή στις τιμές των παραμέτρων δεν επηρεάζουν τις εξωτερικές (σφαιρικές) μεταβλητές Προσοχή: αν η τοπική μεταβλητή δείχνει στο ίδιο μεταβαλλόμενο αντικείμενο όπως η σφαιρική, το περιεχόμενο του αντικείμενου αλλάζει μέσα στη συνάρτηση def output(x): x = [3,4] print(x) y = [2,3] output(y) print(y) Αλλάζουμε που δείχνει η τοπική μεταβλητή, όχι τα περιεχόμενα της Τι θα τυπωθεί? [3,4] [2,3] 55

56 Επισκίαση Η προσπέλαση μιας σφαιρικής μεταβλητής που επισκιάζεται σε μια συνάρτηση επισκίαση, μπορεί να γίνει μέσω του λεξικού που επιστρέφει η globals() def dosomething(): y=5 x=3 print(x,y,globals()['x']) Αναφορά στη σφαιρική μεταβλητή x x = 1 dosomething() print(x) Το λεξικό που επιστρέφει η locals() περιέχει τις μεταβλητές που έχουν τοπική εμβέλεια (στη συνάρτηση) 56

57 «Δέσιμο» τοπικής μεταβλητής σε σφαιρική Αν θέλουμε να αλλάξουμε μια σφαιρική μεταβλητή μέσα σε μια συνάρτηση μπορούμε να τη δηλώσουμε ως σφαιρική μεταβλητή της συνάρτησης >>> x = 1 >>> def change_global(): global x x = x + 1 Η τοπική μεταβλητή x «δένεται» στην αντίστοιχη σφαιρική >>> change_global() >>> x 2 Τι θα γινόταν αν δεν είχαμε την εντολή global x? 57

58 Άσκηση def f(x): x = x+1 print('x = ',x) h() g() print('x = ',x) Τι θα τυπώσει το πρόγραμμα? def g(): x = 'abc' print('x = ', x) def h(): z = x; print('z = ', z) x = 3 z = f(x) print ('x = ',x)

59 Σφαιρικές/Καθολικές μεταβλητές Μεταβλητές που ορίζονται στο κύριο μέρος του προγράμματος (όχι μέσα στην συνάρτηση) και η τιμή τους χρησιμοποιείται και μέσα στην συνάρτηση Γενικά δεν είναι καλή πρακτική να χρησιμοποιείτε καθολικές μεταβλητές Αν θέλετε να χρησιμοποιήσετε μια μεταβλητή του κυρίως προγράμματος προσθέσετε μια επιπλέον παράμετρο.

60 Περίληψη Οι μεταβλητές που ορίζουμε στο κυρίως πρόγραμμα είναι καθολικές μεταβλητές Μπορούμε να τις χρησιμοποιήσουμε παντού Οι παράμετροι και οι μεταβλητές που ορίζουμε (τους αναθέτουμε τιμή) μέσα στις συναρτήσεις είναι τοπικές μεταβλητές. Οι τοπικές μεταβλητές έχουν εμβέλεια μόνο μέσα στην συνάρτηση. Εξαφανίζονται έξω από την συνάρτηση. Αν μία τοπική και μία καθολική μεταβλητή έχουν το ίδιο όνομα τότε η τοπική μεταβλητή έχει προτεραιότητα. Οι αλλαγές στις τοπικές μεταβλητές δεν αλλάζουν τις καθολικές μεταβλητές Αν μια τοπική μεταβλητή (ή παράμετρος) και μια καθολική μεταβλητή δείχνουν στο ίδιο αντικείμενο, η αλλαγή στα περιεχόμενα του αντικειμένου θα εμφανιστεί και στην καθολική μεταβλητή.

61 Προγραμματισμός με συναρτήσεις Στον κώδικα μας θα ορίζουμε πρώτα τις συναρτήσεις και μετά το κύριο κομμάτι του κώδικα. Στο μέλλον αν έχετε μεγάλο κώδικα μπορείτε να τον σπάτε σε πολλά αρχεία def function1(<params>): <code> def function2(<params>): <code> def functionn(<params>): <code> <main code>

62 Προγραμματισμός με συναρτήσεις Αν θέλουμε να επιστρέψουμε τιμή χρησιμοποιούμε την εντολή return To print δεν επιστρέφει κάποια τιμή, απλά εκτυπώνει στην οθόνη. Η εντολή return επιστρέφει μια τιμή για την συνάρτηση και σταματάει την εκτέλεση της συνάρτησης! Άρα κατά την εκτέλεση του κώδικα (run time) δεν γίνεται να κληθεί η return πολλαπλές φορές Άρα αν καλέσουμε την return μέσα σε for θα κληθεί μόνο μία φορά και θα σταματήσει το for

63 Προγραμματισμός με συναρτήσεις Η κλήση της συνάρτησης γίνεται μέσα στο κύριο πρόγραμμα. Η συνάρτηση πλέον είναι σαν μια οποιαδήποτε άλλη συνάρτηση/εντολή της python. Μπορούμε να την καλέσουμε όσες φορές θέλουμε, να την βάλουμε σε loop, σε if κλπ.

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Συναρτήσεις Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Συναρτήσεις Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Συναρτήσεις Χειµερινό Εξάµηνο 2014 Δόµηση προγράµµατος Μέχρι τώρα έχουµε δει πως να χρησιµοποιούµε έτοιµες συναρτήσεις και µεθόδους στα προγράµµατά µας (π.χ. len(),

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Συναρτήσεις

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Συναρτήσεις ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δόμηση προγράμματος Μέχρι τώρα έχουμε δει πως να χρησιμοποιούμε έτοιμες συναρτήσεις και μεθόδους στα προγράμματά μας (π.χ. le(), max(), prit()) Μπορούμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αλφαριθμητικά Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αλφαριθμητικά Χειμερινό Εξάμηνο 2016 Λειτουργίες σε αλφαριθμητικά Μπορούμε να εφαρμόσουμε όλες τις λειτουργίες που έχουμε δει για πλειάδες και λίστες (π.χ. slicing)

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

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 3 Μαϊου 2015

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 3 Μαϊου 2015 Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 3 Μαϊου 2015 Δομές Δεδομένων της Python αλφαριθμητικά πλειάδες λίστες λεξικά πίνακες? Strings >>> Hello, world! Hello, world!

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

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

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 7 Ακολουθίες (Sequences) Περιεχόμενα 1. Ακολουθίες 2. Λίστα (list) 3. Επαναληπτικοί υπολογισμοί ακολουθιών 4. Επεξεργασία ακολουθιών 5. Τελεστές ακολουθιών 6.

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016 Δομές δεδομένων Μια δομή δεδομένων είναι μια δομημένη (οργανωμένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων,

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Λεξικά Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Λεξικά Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Λεξικά Χειμερινό Εξάμηνο 2016 Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθμητικά) μπορούμε να αναφερόμαστε σε ένα στοιχείο με τον αριθμητικό δείκτη του (π.χ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Επαναληπτικές Ασκήσεις Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Επαναληπτικές Ασκήσεις Χειμερινό Εξάμηνο 2016 Othello Υλοποίηση της συνάρτησης που υπολογίζει τις αναστροφές κάτω-αριστερά Αν συναντήσουμε μηδενικό σημαίνει ότι δεν

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λεξικά Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λεξικά Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Λεξικά Χειµερινό Εξάµηνο 2014 Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθµητικά) µπορούµε να αναφερόµαστε σε ένα στοιχείο µε τον αριθµητικό δείκτη του (π.χ.

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 Αναζήτηση και Ταξινόμηση Βασικές λειτουργίες σε προγράμματα Αναζήτηση (searching): Βρες ένα ζητούμενο στοιχείο σε μια

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναδροµικές Συναρτήσεις Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναδροµικές Συναρτήσεις Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναδροµικές Συναρτήσεις Χειµερινό Εξάµηνο 2014 Ορισµός και ιδιότητες Μια συνάρτηση είναι αναδροµική αν καλεί τον εαυτό της Οι περισσότερες γλώσσες προγραµµατισµού υποστηρίζουν

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

Προγραμματισμός Συστημάτων

Προγραμματισμός Συστημάτων MYY502 Προγραμματισμός Συστημάτων Β. Δημακόπουλος dimako@cse.uoi.gr http://www.cse.uoi.gr/~dimako Εργαστήρια Μάλλον (!) ξεκινούν την επόμενη εβδομάδα Εγγραφές στο εργαστήριο 2 βάρδιες, 15:00 17:00 και

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

Βασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη Εργ. 3 17:15 και 19:15

Βασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη Εργ. 3 17:15 και 19:15 Βασικές Ασκήσεις από τα Εργαστήρια της Python Πέμπτη Εργ. 3 17:15 και 19:15 Αντί να χρησιμοποιούμε πολλές ομοειδείς μεταβλητές του ίδιου τύπου, όπως παραδείγματος χάριν, οι 7 μέσες θερμοκρασίες μίας εβδομάδας,

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 8/11/07 Συμπλήρωμα προηγούμενης εβδομάδας: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 8/11/07 Τι συμβαίνει όταν στην ίδια έκφραση υπάρχει πάνω από

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014 Δοµές δεδοµένων Μια δοµή δεδοµένων είναι µια δοµηµένη (οργανωµένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων, αριθµών,

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

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

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

print( x is positive ) Στο διερμηνευτή Python, προσοχή στη στοίχιση, διότι γίνεται από το χρήστη:

print( x is positive ) Στο διερμηνευτή Python, προσοχή στη στοίχιση, διότι γίνεται από το χρήστη: 37 ΛΑΜΒΑΝΟΝΤΑΣ ΑΠΟΦΑΣΕΙΣ 1. Εκτέλεση υπό συνθήκη if x >0: print('x is positive') x > = 0 print( x is positive ) Σχήμα: Η λογική του if then Στο διερμηνευτή Python, προσοχή στη στοίχιση, διότι γίνεται από

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

Συναρτήσεις. ΚΕΡΟΣ ΓΙΑΝΝΗΣ, ΠΕ19 1ο ΕΠΑΛ ΚΙΛΚΙΣ. Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς

Συναρτήσεις. ΚΕΡΟΣ ΓΙΑΝΝΗΣ, ΠΕ19 1ο ΕΠΑΛ ΚΙΛΚΙΣ. Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς Συναρτήσεις Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς Συναρτήσεις - Εισαγωγή Τι είναι μία συνάρτηση; def numbers(): Επικεφαλίδα της συνάρτησης Μία συνάρτηση είναι: print 'One' ένα σύνολο

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

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

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

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

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

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

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

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

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

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

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

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

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

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

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους: Επαναλήψεις - Loops Οι επαναλήψεις σε ένα πρόγραμμα μας επιτρέπουν μια ομάδα εντολών να εκτελείται για όσες φορές επιθυμούμε Υπάρχουν τρεις τρόποι επανάληψης εντολών με τη χρήση: While loops For loops

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Έλεγχος Ροής Προγράµµατος Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Έλεγχος Ροής Προγράµµατος Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Έλεγχος Ροής Προγράµµατος Χειµερινό Εξάµηνο 2014 Ροή προγράµµατος n n Μέχρι τώρα έχουµε δει προγράµµατα απλής ροής Οι εντολές εκτελούνται η µία µετά την άλλη σύµφωνα

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

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

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

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

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

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

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

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1 Εισαγωγή στην Γλώσσα Προγραμματισμού Python 12/10/16 costis@teicrete.gr 1 Διάφορες Γλώσσες Προγραμματισμού C or C++ Java Perl Scheme Fortran Python Matlab 12/10/16 costis@teicrete.gr 2 Περίληψη Παρουσίασης

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

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

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

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

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

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

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

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

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

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

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

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

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

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

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

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

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

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7.1 Ορισμός και δήλωση συνάρτησης Μία συνάρτηση είναι μία ενότητα οδηγιών οι οποίες μαζί εκτελούν μία συγκεκριμένη εργασία. Παρέχει έναν κατάλληλο τρόπο να μπορέσουμε να κάνουμε

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

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

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 3 ο Symbol Table & Scopes Ι ΑΣΚΩΝ Αντώνιος Σαββίδης

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 Αναζήτηση και Ταξινόµηση Βασικές λειτουργίες σε προγράµµατα Αναζήτηση (searching): Βρες ένα ζητούµενο στοιχείο σε µια

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

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

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

Κεφάλαιο 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 (); Πρότυπο ( ήλωση) Συνάρτησης (

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

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο

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

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

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

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΔΙΔΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙΔΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Παράδοση: Πέμπτη 10 Απριλίου 2008, 24:00 (μεσάνυχτα)

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Εντολές επιλογής Επαναλήψεις (if, switch, while) Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση

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

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

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

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

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

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

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

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