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

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

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

Transcript

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

2

3 Δομές Δεδομένων της Python αλφαριθμητικά πλειάδες λίστες λεξικά πίνακες?

4 Strings >>> Hello, world! Hello, world! s= Hello, world! >>>s Hello, world! >>>x= Hello, >>>y= world! >>>x+y Hello, world!

5 Λίστες δημιουργία λίστας >>> list ('Hello') ['H', 'e', 'l', 'l', 'o'] παράθεση >>> x [1, 5, 4, 7, 8, 9] >>> y [7, 8, 9] >>> x+y [1, 5, 4, 7, 8, 9, 7, 8, 9]

6 Λίστες διάβασμα γράψιμο >>> x=[1,2,3] >>> x [1, 2, 3] >>> x[2]=-1 >>> x [1, 2, -1]

7 Λίστες διαγραφή >>> x=[1,2,3] >>> del x[1] >>> x [1, 3] αντικατάσταση >>> list = [1,2,3,4,5,6] >>> list[3:]=[7,8,9] >>> list [1, 2, 3, 7, 8, 9]

8 Πλειάδες Οι πλειάδες δημιουργούνται και δεν τροποποιούνται στη συνέχεια >>> 1, 2, 3 (1, 2, 3) >>> tuple([1, 2, 3]) (1, 2, 3) >>> tuple('abc') ('a', 'b', 'c')

9 Πλειάδες >>> x = 1, 2, 3 >>> x[1] 2 >>> x[0:2] (1, 2) Χρησιμότητα Θα μπορούσαμε να χρησιμοποιούσαμε και λίστες αντί τις πλειάδες Κάποιες λειτουργίες απαιτούν την χρήση τους αντί αυτή των λιστών για να εξασφαλίζουν ότι δε θα τροποποιηθούν

10 Λεξικά χρησιμοποιούν κλειδιά και όχι απλούς δείκτες η αναζήτηση βασίζεται στα κλειδιά, τα οποία είναι πλειάδες π.χ. phonebook = { Αλίκη': '2341', Μπέτυ': '9102', Σεσίλ': '3258'} >>> phonebook[ Αλίκη ] 2341

11 Λεξικά >>> d = {} >>> d['name'] = Γιώργος' >>> d['age'] = 42 >>> d {'age': 42, 'name': Γιώργος'} >>> d[ age ] 42

12 Δομές Έλεγχου Η δομή if, elif και else Ο βρόχος while Ο βρόχος for Επαναλήψεις σε λεξικά

13 if, elif και else num = eval(input('enter a number: ')) if num > 0: >>> x = 1 >>> eval('x + 1') 2 >>> eval('x') 1 print('the number is positive') elif num < 0: print('the number is negative') else: print('the number is zero')

14 Ο βρόχος while x = 1 while x <= 100: print(x) x += 1 name = '' while not name: name = input('please enter your name: ') print('hello, %s!' % name)

15 Ο βρόχος for words = ['this', 'is', 'an', 'ex', 'parrot'] for word in words: print(word) numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for number in numbers: print(number)

16 range for number in range(1,101): print(number) >>>list(range(0,10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Το δεύτερο όριο δεν συμπεριλαμβάνεται.

17 Επαναλήψεις σε λεξικά d = {'x': 1, 'y': 2, 'z': 3} for key in d: print(key, 'corresponds to', d[key]) Εναλλακτικά: d = {'x': 1, 'y': 2, 'z': 3} for key, value in d.items(): print(key, 'corresponds to', value)

18 O ιδιωματισμός while True/break χωρίς break: word = input('please enter a word: ') while word: # do something with the word: print('the word was ' + word) word = input('please enter a word: ')

19 O ιδιωματισμός while True/break Με χρήση του while True/break: while True: word = input('please enter a word: ') if not word: break # do something with the word: print('the word was ' + word)

20 Χρήση else στη for

21 Χρήση else στη for To for μπορεί να ακολουθείται από ένα else το else εκτελείται όταν τελειώσουν οι επαναλήψεις του for αλλά όχι όταν εξερχόμαστε από το βρόχο με break

22 Χρήση else στη while

23 Χρήση else στη while To else μπορεί να ακολουθείται από ένα else το else εκτελείται όταν γίνει false η συνθήκη της while αλλά όχι όταν εξερχόμαστε από το βρόχο με break

24 Χρήση else στη for - συμπληρώστε from math import sqrt for n in range(99, 81, -1): root = sqrt(n) if root == int(root): print(n)??? else: print("didn't find it!")

25 Περισσότερα για λίστες >>> [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [x*x for x in range(10) if x % 3 == 0] [0, 9, 36, 81] >>> [(x, y) for x in range(3) for y in range(3)] [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

26 Περισσότερα για λίστες >>> girls = ['alice', 'bernice', 'clarice'] >>> boys = ['chris', 'arnold', 'bob'] >>> [b+'+'+g for b in boys for g in girls if b[0] == g[0]] ['chris+clarice', 'arnold+alice', 'bob+bernice']

27 Πίνακες

28 Πίνακες Μπορούμε να χρησιμοποιήσουμε λίστες ως πίνακες. Μονοδιάστατος πίνακας: Α=[1, 2, 3, 4, 5] Διδιάστατος πίνακας: Β=[[1, 2, 3], [4, 5, 6], [7, 8, 9]] Κάθε γραμμή του πίνακα είναι μία λίστα.

29 Αρχικοποίηση πινάκων Μονοδιάστατος πίνακας Ν=5 Α=[0]*Ν Εναλλακτικά: Α=[0 for i in range(n)] Αντί για 0 μπορούμε να βάλουμε και None.

30 Αρχικοποίηση πινάκων Δισδιάστατος πίνακας Ν=3 pinakas=[[0 for i in range(n)] for i in range(n)] pinakas pinakas[0][0] pinakas[0][1] pinakas[0][2] Προσοχή: pinakas[1][0] pinakas[1][1] pinakas[1][2] pinakas[2][0] pinakas[2][1] pinakas[2][2] Είναι pinakas[i][j] και όχι pinakas[i, j] 0 1 2

31 Πρόσθεση πινάκων N = 3 A = [[0.0 for j in range(n)] for i in range(n)] B = [[0.0 for j in range(n)] for i in range(n)] C = [[0.0 for j in range(n)] for i in range(n)] for i in range(n): for j in range(n): A[i][j] = float(input('a[%d][%d]: ' % (i, j))) for i in range(n): for j in range(n): B[i][j] = float(input('b[%d][%d]: ' % (i, j)))

32 Πρόσθεση πινάκων (συνέχεια) for i in range(n): for j in range(n): C[i][j] = A[i][j] + B[i][j] for i in range(n): for j in range(n): print('c[%d][%d]:%7.2f ' % (i, j, C[i][j]), end = '') print('')

33 Πολλαπλασιασμός πινάκων NxN C A B C[ i, j] N 1 A[ i, k] B[ k, j] k 0

34 Πολλαπλασιασμός πινάκων N = 3 A = [[0.0 for j in range(n)] for i in range(n)] B = [[0.0 for j in range(n)] for i in range(n)] C = [[0.0 for j in range(n)] for i in range(n)] for i in range(n): for j in range(n): A[i][j] = float(input('a[%d][%d]: ' % (i, j))) for i in range(n): for j in range(n): B[i][j] = float(input('b[%d][%d]: ' % (i, j)))

35 Πολλαπλασιασμός πινάκων (συνέχεια) for i in range(n): for j in range(n): thiselement = 0.0 for k in range(n): thiselement += A[i][k]*B[k][j] C[i][j] = thiselement for i in range(n): for j in range(n): print('c[%d][%d]:%7.2f ' % (i, j, C[i][j]), end = '') print(' )

36 Ανάστροφος πίνακα N = 3 A = [[0.0 for j in range(n)] for i in range(n)] C = [[0.0 for j in range(n)] for i in range(n)] for i in range(n): for j in range(n): A[i][j] = float(input('a[%d][%d]: ' % (i, j))) for i in range(n): for j in range(n): C[i][j] = A[j][i]

37 Ανάστροφος πίνακα (συνέχεια) for i in range(n): for j in range(n): print('c[%d][%d]:%7.2f ' % (i, j, C[i][j]), end = '') print('')

38 Περισσότεροι Πίνακες σε βιβλιοθήκη

39 Συναρτήσεις

40 Hello world >>> def helloworld(): print('hello World') >>> helloworld() Hello World >>>

41 Hello world >>> def hello(name): return 'Hello, '+name+'!' >>> hello ('world') 'Hello, world!' >>> hello ('George') 'Hello, George!' >>>

42 Fibonacci numbers fib(0) = 1 fib(1) = 1 fib(n)=fib(n-1)+fib(n-2)

43 Fibonacci numbers >>> def fibs(num): result = [0, 1] for i in range(num-2): result.append(result[-2] + result[-1]) return result >>> fibs(10) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] >>>

44 Τεκμηρίωση >>> def hello(name): 'prints hello, a comma and a name following them' return 'Hello, '+name+'!' >>> hello('george') 'Hello, George!' >>> hello. doc 'prints hello, a comma and a name following them' >>>

45 Τεκμηρίωση >>> from math import sqrt >>> help(sqrt) Help on built-in function sqrt in module math: sqrt(...) sqrt(x) Return the square root of x.

46 Παράμετροι def hello(name): return 'Hello, '+name+'!' >>> x='george' >>> hello(x) 'Hello, George!' >>> x 'George'

47 Παράμετροι def hello(name): name='123' return 'Hello, '+name+'!' >>> x='george' >>> hello(x) 'Hello, 123!' >>> x 'George' >>>

48 Παράμετροι >>> def change(n): n[0] = 'Mr. Gumby' >>> names = ['Mrs. Entity', 'Mrs. Thing'] >>> change(names) >>> names ['Mr. Gumby', 'Mrs. Thing']

49 Παράμετροι def hello_1(greeting, name): print '%s, %s!' % (greeting, name) def hello_2(name, greeting): print '%s, %s!' % (name, greeting) >>> hello_1('hello', 'world') Hello, world! >>> hello_2('hello', 'world') Hello, world!

50 Παράμετροι >>> hello_1(greeting='hello', name='world') Hello, world! >>> hello_1(name='world', greeting='hello') Hello, world! >>> hello_2(greeting='hello', name='world') world, Hello!

51 Παράμετροι Πιο ευανάγνωστος κώδικας >>> store('mr. Brainsample', 10, 20, 13, 5) >>> store(patient='mr. Brainsample', hour=10, minute=20, day=13, month=5)

52 Παράμετροι def hello_3(greeting='hello', name='world'): print '%s, %s!' % (greeting, name) >>> hello_3() Hello, world! >>> hello_3('greetings') Greetings, world! >>> hello_3('greetings', 'universe') Greetings, universe! >>> hello_3(name='gumby') Hello, Gumby!

53 Μεταβλητός αριθμός παραμέτρων def print_params(*params): print (params) >>> print_params('testing') ('Testing',) >>> print_params(1, 2, 3) (1, 2, 3)

54 Μεταβλητός αριθμός παραμέτρων def print_params_2(title, *params): print (title) print (params) print_params_2('params:', 1, 2, 3) Params: (1, 2, 3) >>> print_params_2('nothing:') Nothing: ()

55 Μεταβλητός αριθμός παραμέτρων def print_params_3(**params): print (params) >>> print_params_3(x=1, y=2, z=3) {'z': 3, 'x': 1, 'y': 2}

56 Μεταβλητός αριθμός παραμέτρων def print_params_4(x, y, z=3, *pospar, **keypar): print (x, y, z) print (pospar) print (keypar) >>> print_params_4(1, 2, 3, 5, 6, 7, foo=1, bar=2) (5, 6, 7) {'foo': 1, 'bar': 2} >>> print_params_4(1, 2) () {}

57 Κατανομή στις παραμέτρους def add(x, y): return x + y params = (1, 2) >>> add(*params) 3

58 Κατανομή στις παραμέτρους >>> params = {'name': 'Sir Robin', 'greeting': 'Well met'} >>> hello_3(**params) Well met, Sir Robin!

59 Παραδείγματα def story(**kwds): return 'Once upon a time, there was a ' \ '%(job)s called %(name)s.' % kwds >>> print story(job='king', name='gumby') Once upon a time, there was a king called Gumby. >>> print story(name='sir Robin', job='brave knight') Once upon a time, there was a brave knight called Sir Robin.

60 Παραδείγματα def power(x, y, *others): if others: print ('Received redundant parameters:', others) return pow(x, y) >>> power(2,3) 8 >>> power(3,2) 9 >>> power(y=3,x=2) 8

61 Παραδείγματα def power(x, y, *others): if others: print ('Received redundant parameters:', others) return pow(x, y) >>> params = (5,) * 2 >>> power(*params) 3125 >>> power(3, 3, 'Hello, world') Received redundant parameters: ('Hello, world',) 27

62 Ταξινόμηση

63 Ταξινόμηση Η Python έχει ενσωματωμένη μέθοδο για ταξινόμηση λιστών: >>> seq = [34, 67, 8, 123, 4, 100, 95] >>>seq.sort() >>>seq [4, 8, 34, 67, 95, 100, 123]

64 Η συνάρτηση sorted >>>sorted([4, 3, 6, 8, 3]) [3, 3, 4, 6, 8]

65 Ταξινόμηση με επιλογή (selection sort) def SortIntegerArray(array): n=len(array) for lh in range(0,n): rh=findsmallestinteger(array, lh, n-1) SwapIntegerElements(array, lh, rh) def FindSmallestInteger(array, low, high): spos=low for i in range(low, high+1): if array[i]<array[spos]: spos=i return(spos) def SwapIntegerElements(array, p1, p2): array[p1], array[p2] = array[p2], array[p1]

66 Βubblesort def bubblesort(numbers): array_size=len(numbers) for i in range(array_size-1, -1, -1): for j in range(1,i+1): if numbers[j-1]>numbers[j]: numbers[j-1], numbers[j]=numbers[j], numbers[j-1]

67 Insertionsort def InsertionSort(numbers): array_size=len(numbers) for i in range(1, array_size): index=numbers[i] j=i while (j>0) and numbers[j-1]>index: numbers[j]=numbers[j-1] j=j-1 numbers[j]=index

68 Αναζήτηση στην Python >>>x=[232, 2, 21, 1, 2] >>>21 in x True >>>3 in x False Δεν μου λέει σε ποια θέση της λίστας βρίσκεται το στοιχείο που ψάχνω.

69 Η μέθοδος index >>>[2, 3, 4, 2, 1].index(2) 0 >>>[2, 3, 4, 2, 1].index(5) Traceback (most recent call last): File "<pyshell#24>", line 1, in <module>

70 Γραμμική Αναζήτηση (Linear Search) Ψάχνουμε την θέση μιας τιμής κλειδί Γραμμική Αναζήτηση (Linear search) Απλούστερη δυνατή Σύγκρινε σειριακά κάθε στοιχείο του πίνακα με την τιμή-κλειδί Χρήσιμο για μικρούς και ΜΗ ταξινομημένους πίνακες

71 linearsearch def linearsearch(a, key): array_size=len(a) for i in range(array_size): if key==a[i]: return I return -1

72 Δυαδική Αναζήτηση (Binary Search) Δυαδική Αναζήτηση Σε ταξινομημένους πίνακες μόνο Συγκρίνει το middle στοιχείο με το ζητούμενο key Αν είναι ίσα βρέθηκε Αν key < middle, ψάχνει στο 1ο μισό του πίνακα Αν key > middle, ψάχνει στο 2ο μισό του πίνακα Επανάληψη Πολύ γρήγορη Στη χειρότερη περίπτωση n βήματα, για 2 n > αριθμό στοιχείων Πίνακας 30 στοιχείων χρειάζεται το πολύ 5 βήματα 2 5 > 30 δηλαδή 5 βήματα

73 binarysearch def binarysearch(a, key, low, high): while low<=high: middle=(low+high)//2 if key==a[middle]: return middle elif key<middle: high=middle-1 else: low=middle+1 return -1

74 Άνοιγμα αρχείων >>>f=open( somefile.txt ) ή >>>f = open(r'c:\text\somefile.txt') To f είναι file object. Αν δεν προσδιορίσω διαφορετικά, το αρχείο έχει ανοιχτεί για ανάγνωση. Αν το αρχείο δεν υπάρχει: Traceback (most recent call last): File "<pyshell#0>", line 1, in? IOError: [Errno 2] No such file or directory: "C:\\text\\somefile.txt"

75 File modes 'r' Read mode 'w' Write mode 'a' Append mode 'b' Binary mode (added to other mode) Αν δεν προσδιορίσω mode, εννοείται r. rb σημαίνει ότι ανοίγουμε δυαδικό αρχείο (όχι αρχείο κειμένου).

76 Μέθοδοι αρχείων >>> f = open('somefile.txt', 'w') >>> f.write('hello, ') >>> f.write('world!') >>> f.close() H f.close() χρειάζεται οπωσδήποτε στην εγγραφή γιατί μπορεί ο υπολογιστής να έχει κρατήσει τα δεδομένα που θέλουμε να γράψουμε σε buffer και να μην τα έχει σώσει στο αρχείο.

77 Μέθοδοι αρχείων >>> f = open('somefile.txt', 'r') >>> f.read(4) 'Hell' >>> f.read() 'o, World! Το f.read(4) διαβάζει 4 χαρακτήρες, ενώ το f.read() διαβάζει όλο το υπόλοιπο αρχείο.

78 Τυχαία πρόσβαση Υπάρχει η μέθοδος seek(offset[, whence]). offset είναι ο αριθμός χαρακτήρων που θέλουμε να μετακινηθούμε. Το whence μπορεί να είναι: 0 (default), όπου μετράμε από την αρχή του αρχείου. 1, όπου μετράμε από την τρέχουσα θέση. 2, όπου μετράμε από το τέλος του αρχείου.

79 Τυχαία πρόσβαση >>> f = open('somefile.txt', 'w') >>> f.write(' ') >>> f.seek(5) >>> f.write('hello, World!') >>> f.close() >>> f = open('somefile.txt') >>> f.read() '01234Hello, World!89'

80 Τυχαία πρόσβαση Η μέθοδος tell() μας δίνει την τρέχουσα θέση μέσα στο αρχείο. >>> f = open('somefile.txt') >>> f.read(3) '012' >>> f.read(2) '34' >>> f.tell() 5

81 readline, readlines, writelines Η μέθοδος readline() διαβάζει την επόμενη γραμμή του αρχείου. Το τέλος μίας γραμμής υποδηλώνεται από το \n. Η readline(5) διαβάζει τους 5 πρώτους χαρακτήρες της γραμμής. Η μέθοδος readlines() διαβάζει όλες τις γραμμές του αρχείου και τις επιστρέφει σε μία λίστα. Η μέθοδος writelines() παίρνει μία λίστα από αλφαριθμητικά και τα σώζει στο αρχείο. Πρέπει εμείς να προσθέσουμε τα \n.

82 Παραδείγματα Έστω ότι το αρχείο somefile.txt περιέχει: Welcome to this file There is nothing here except This stupid haiku >>> f = open('somefile.txt') >>> f.read(7) 'Welcome' >>> f.read(4) ' to ' >>> f.close()

83 read() >>> f = open('somefile.txt') >>> print(f.read()) Welcome to this file There is nothing here except This stupid haiku >>> f.close()

84 readline() >>> f = open('somefile.txt') >>> for i in range(3): print(str(i) + ': ' + f.readline(),) 0: Welcome to this file 1: There is nothing here except 2: This stupid haiku >>> f.close()

85 write(string) >>>f = open( somefile.txt', 'w') >>> f.write('this\nis no\nhaiku') >>> f.close() Το αρχείο τώρα περιέχει: this is no haiku

86 writelines(list) >>> f = open('somefile.txt') >>> lines = f.readlines() >>> f.close() >>> lines[1] = "isn't a\n" >>> f = open('somefile.txt', 'w') >>> f.writelines(lines) >>> f.close()

87 writelines(list) Τώρα το αρχείο περιέχει: this isn't a haiku

88 Επαναλήψεις σε αρχεία Έστω μια απλή συνάρτηση: def process(string): print('processing: ', string) f = open(filename) char = f.read(1) while char: process(char) char = f.read(1) f.close()

89 Με while True/break f = open(filename) while True: char = f.read(1) if not char: break process(char) f.close()

90 Διαβάζοντας μία γραμμή τη φορά f = open(filename) while True: line = f.readline() if not line: break process(line) f.close()

91 Διαβάζοντας ολόκληρο το αρχείο f = open(filename) for char in f.read(): process(char) f.close() f = open(filename) for line in f.readlines(): process(line) f.close()

92 Επαναλήψεις με file objects f = open(filename) for line in f: process(line) f.close() Εναλλακτικά: for line in open(filename): process(line)

93 list(open(filename)) Μπορώ να μετατρέψω τα περιεχόμενα του αρχείου σε λίστα χρησιμοποιώντας list(open(filename)) Αντίστοιχα με το list(range(5))

94 Παράδειγμα >>> f = open('somefile.txt', 'w') >>> f.write('first line\n') >>> f.write('second line\n') >>> f.write('third line\n') >>> f.close() >>> lines = list(open('somefile.txt)') >>> lines ['First line\n', 'Second line\n', 'Third line\n']

95 Παράδειγμα (συνέχεια) >>> first, second, third = open('somefile.txt') >>> first 'First line\n' >>> second 'Second line\n' >>> third 'Third line\n'

96 numpy βιβλιοθήκη για πίνακες

97 Πίνακες στο numpy με παραδείγματα >>> from numpy import * >>> a = arange(15).reshape(3, 5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> a.shape (3, 5) >>> a.ndim 2

98 Πίνακες στο numpy με παραδείγματα >>> a.dtype.name 'int32' >>> a.itemsize 4 >>> a.size 15 >>> type(a) numpy.ndarray

99 Πίνακες στο numpy με παραδείγματα >>> b = array([6, 7, 8]) >>> b array([6, 7, 8]) >>> type(b) numpy.ndarray

100 Πίνακες στο numpy με παραδείγματα >>> zeros( (3,4) ) array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) >>> ones( (2,3,4), dtype=int16 ) # dtype can also be specified >>> empty( (2,3) ) array([[ e-262, e-154, e-260], [ e-313, e-307, e+000]])

101 Πίνακες στο numpy με παραδείγματα >>> a = arange(6) # 1d array >>> print a [ ] >>> b = arange(12).reshape(4,3) # 2d array >>> print b [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ ]]

102 Πίνακες στο numpy με παραδείγματα >>> c = arange(24).reshape(2,3,4) # 3d array >>> print c [[[ ] [ ] [ ]] [[ ] [ ] [ ]]]

103 Πίνακες στο numpy με παραδείγματα >>> a = array( [20,30,40,50] ) >>> b = arange( 4 ) >>> b array([0, 1, 2, 3]) >>> c = a-b >>> c array([20, 29, 38, 47])

104 Πίνακες στο numpy με παραδείγματα >>> b**2 array([0, 1, 4, 9]) >>> 10*sin(a) array([ , , , ]) >>> a<35 array([true, True, False, False])

105 Πίνακες στο numpy με παραδείγματα >>> A = array( [[1,1],... [0,1]] ) >>> B = array( [[2,0],... [3,4]] ) >>> A*B # elementwise product array([[2, 0], [0, 4]]) >>> dot(a,b) # matrix product array([[5, 4], [3, 4]])

106 Παράλληλος προγραμματισμός

107 Παράλληλος προγραμματισμός

108 Παράλληλος προγραμματισμός Εάν χρησιμοποιήσουμε τη pool.map_asynch η λίστα θα περιέχει τις τιμές όπως παρήχθησαν και όχι με τη σειρά που αναλογούν στην λίστα της εισόδου

109 Classes and Instantiation

110 Initialization

111 Classes and Instance Variables

112 Classes and Instance Variables

113 Inheritance

114 A Clock Example

115 The Calendar Class

116 A Clock Calendar Class

117 Private Variables δεν υπάρχουν υπάρχει η σύμβαση οτιδήποτε ξεκινάει από κάτω παύλα, είτε είναι μέθοδος είτε δεδομένα να το χρησιμοποιούμε σαν μη δημόσιο

118 Records - Structs

119 Operating System Interface

120 Operating System Interface

121 Data Compression

122 Modules

123 Modules δίνουμε ένα μικρότερο, πιο βολικό όνομα

124 Modules

125 Modules as Scripts το εκτελούμε σαν script αν έχει κάποιο main τρέχει αλλιώς απλά γίνεται import

126 Renaming

127 More lists Από Κελσίου σε Φαρενάιτ

128 More lists Τριπλέτες του Πυθαγόρα

129 More lists συνδυασμός από δύο σύνολα

130 More lists πρώτοι αριθμοί

131 Ευχαριστώ

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 6 Οκτωβρίου 2014

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής Mάρτιος 2015 Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής Mάρτιος 2015 Python Η Python δημιουργήθηκε το 1990 Ο κύριος στόχος της είναι η αναγνωσιμότητα του κώδικά της και η ευκολία χρήσης

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

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

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

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

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 29 Οκτωβρίου 2014

Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 29 Οκτωβρίου 2014 Γιώργος Μανής Επίκουρος Καθηγητής Τμήματος Μηχανικών Η/Υ και Πληροφορικής 29 Οκτωβρίου 2014 Python Η Python δημιουργήθηκε το 1990 Ο κύριος στόχος της είναι η αναγνωσιμότητα του κώδικά της και η ευκολία

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

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

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

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα). ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα). i) Σχεδιάστε το αντίστοιχο κύκλωμα. ii) Δημιουργήστε τον πίνακα αλήθειας της συνάρτησης

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

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

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

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

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

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

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Python & NLTK: Εισαγωγή Εισαγωγή Γιατί Python? Παρουσίαση NLTK Πηγές και χρήσιμα εργαλεία Φροντιστήριο σε Python Στο φροντιστήριο: Εισαγωγή στην Python Ζητήματα προγραμματισμού για

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

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

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

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

Αναζήτηση και ταξινόμηση

Αναζήτηση και ταξινόμηση Αναζήτηση και ταξινόμηση Περιεχόμενα Αναζήτηση (searching): εύρεση ενός στοιχείου σε έναν πίνακα Ταξινόμηση (sorting): αναδιάταξη των στοιχείων ενός πίνακα ώστε να είναι τοποθετημένα με μια καθορισμένη

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

Εισαγωγή στην Γλώσσα Προγραμματισμού 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 Περίληψη Παρουσίασης

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

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

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

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

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

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

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

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

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

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

ΗΥ-150. Ταξινόµηση και Αναζήτηση

ΗΥ-150. Ταξινόµηση και Αναζήτηση ΗΥ-150 Ταξινόµηση και Αναζήτηση To πρόβληµα της Αναζήτησης οθέντος δεδοµένων, λ.χ. σε Πίνακα (P) Ψάχνω να βρω κάποιο συγκεκριµένο στοιχείο (key) Αν ο πίνακας δεν είναι ταξινοµηµένος Γραµµική Αναζήτηση

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

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

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

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

Βασικά Στοιχεία Python 3

Βασικά Στοιχεία Python 3 Βασικά Στοιχεία Python 3 Compiler Lecture s 1.0 documentation Βασικά Στοιχεία Python 3 Στη συνέχεια παρουσιάζονται ορισμένα ενδιαφέροντα στοιχεία της Python 3. Αυτό που ακολουθεί δεν είναι tutorial, αν

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

Διορθώσεις σελ

Διορθώσεις σελ Διορθώσεις σελ. 73-74 # Τώρα ο άνθρωπος σκέφτεται έναν αριθμό από 1 έως 1000 Ν = 1000 print Σκέψου έναν αριθμό από το 1 έως το, Ν guesses = 0 found = False first = 1 last = N while not found and guesses

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση

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

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

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

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

Πανεπιστήμιο Πελοποννήσου. Σχολή Θετικών Επιστημών & Τεχνολογίας. Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών. Προγραμματισμός Ι Εργαστήριο

Πανεπιστήμιο Πελοποννήσου. Σχολή Θετικών Επιστημών & Τεχνολογίας. Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών. Προγραμματισμός Ι Εργαστήριο Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών & Τεχνολογίας Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Προγραμματισμός Ι Εργαστήριο 03-12-2012 1 η Εργαστηριακή Άσκηση Να δημιουργήσετε πρόγραμμα που

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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

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

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

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

Γλωσσική Τεχνολογία. Εισαγωγικό Φροντιστήριο

Γλωσσική Τεχνολογία. Εισαγωγικό Φροντιστήριο Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο Project του μαθήματος Εργασία 2 ατόμων Προφορική εξέταση για: Project (80%) Θεωρία (20%) Στο φροντιστήριο: Συζητάμε σχεδιαστικές επιλογές Λύνουμε ζητήματα υλοποίησης

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

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Project του μαθήματος Εργασία 2 ατόμων Προφορική εξέταση για: Project (80%) Θεωρία (20%) Στο φροντιστήριο: Συζητάμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

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

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση Διάλεξη 17η: Ταξινόμηση και Αναζήτηση Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Ταξινόμηση CS100, 2016-2017 1 / 10 Το πρόβλημα της Αναζήτησης

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

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

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

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

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, προσοχή στη στοίχιση, διότι γίνεται από

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

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

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

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

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

Εισαγωγικό Φροντιστήριο

Εισαγωγικό Φροντιστήριο Εισαγωγικό Φροντιστήριο Project του μαθήματος Εργασία 2 ατόμων Προφορική εξέταση για: Project 80% Θεωρία 20% Στο φροντιστήριο: Θα συζητάμε σχεδιαστικές επιλογές Θα λύνουμε ζητήματα υλοποίησης Θα παρουσιάζουμε

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

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

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

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

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

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

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

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

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

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

ιαφάνειες παρουσίασης #6 (β)

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;.. Επιλογή - Επανάληψη Η εντολή if-else Ο τελεστής παράστασης συνθήκης H εντολή switch Η εντολές for και while Η εντολή do-while Η εντολές break - continue - goto Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη

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

5 η Διάλεξη Python - Αρχεία

5 η Διάλεξη Python - Αρχεία 5 η Διάλεξη Python - Αρχεία Αρχεία Άνοιγμα Επεξεργασία Κλείσιμο Αρχεία Η python κάνει διάκριση μεταξύ αρχείων κειμένου (text) και δυαδικών αρχείων (binary) Τα δεδομένα στα αρχεία κειμένου χωρίζονται μεταξύ

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

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20 Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20 Διάλεξη 4 Ανακυκλώσεις Παπαϊωάννου Αθανάσιος Π.Μ.Σ. «Εφαρμοσμένη Πληροφορική» Χειμερινό Εξάμηνο 20 16-20 17 Συναρτήσεις: Παράμετρος key/value Μπορούμε να περάσουμε

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN: Άσκηση 1 Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του J στα παρακάτω κομμάτια κώδικα FORTRAN: INTEGER J J = 5 J = J + 1 J = J + 1 INTEGER X, Y, J X = 2 Y =

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

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αναζήτηση με linearsearch, binarysearch, ternarysearch - Ανάλυση Πολυπλοκότητας ternarysearch

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

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

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

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

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

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός Πίνακες (i) Δομημένη μεταβλητή: αποθηκεύει μια συλλογή από τιμές δεδομένων Πίνακας (array): δομημένη μεταβλητή που αποθηκεύει πολλές τιμές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Επαναληπτικές Ασκήσεις Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Επαναληπτικές Ασκήσεις Χειµερινό Εξάµηνο 2014 Λίστες όρισµα 2 λίστες και θα επιστρέφει το γινόµενo των 2 «µεσαίων» στοιχείων τους. Π.χ. L1 = [5,1,3,2,4], L2 = [9,2,1,8,0]

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

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

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

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

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

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

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

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

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

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

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

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

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

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα 3 Φύλλο Εργασίας 3 Στο φύλλο εργασιών 3 θα ασχοληθούμε με τις λίστες μια δομή της γλώσσας python που έχει την δομή ενός πίνακα. Θα χρησιμοποιήσουμε τις βασικές εντολές από τις λίστες και θα κατασκευάσουμε

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Έλεγχος Ροής - Παραδείγµατα Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Έλεγχος Ροής - Παραδείγµατα Χειµερινό Εξάµηνο 2014 Δίσεκτο έτος Ένα έτος είναι δίσεκτο αν διαιρείται ακριβώς µε το 400 ή διαιρείται ακριβώς µε το 4 και δεν διαιρείται

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 2: Πίνακες

Εργαστήριο 2: Πίνακες Εργαστήριο 2: Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Επεξεργασία Πινάκων - Υλοποίηση της Δυαδικής Αναζήτησης σε πίνακες - Υλοποίηση της Ταξινόμησης με Επιλογής σε πίνακες ΕΠΛ035

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

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20 Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20 Διάλεξη 2 Τύποι, Υπό Όρους Εκτέλεση Παπαϊωάννου Αθανάσιος Π.Μ.Σ. «Εφαρμοσμένη Πληροφορική» Χειμερινό Εξάμηνο 20 16-20 17 Αριθμητικές Εκφράσεις Τελεστής Πράξη

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

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

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

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

Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 5)

Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 5) Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 5) Η Python επιτρέπει να χρησιμοποιούμε πολλές μεταβλητές οποιουδήποτε τύπου στην αριστερή πλευρά μίας καταχώρισης, αρκεί ο αριθμός των τιμών ή μεταβλητών

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

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

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

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

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