Τεχνητή Νοημοσύνη Ι. Διαφάνειες Εργαστηρίου. v1.09, 2/11/2012, Κ.Σγάρμπας ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ

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

Download "Τεχνητή Νοημοσύνη Ι. Διαφάνειες Εργαστηρίου. v1.09, 2/11/2012, Κ.Σγάρμπας ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ"

Transcript

1 Τεχνητή Νοημοσύνη Ι Διαφάνειες Εργαστηρίου v1.09, 2/11/2012, Κ.Σγάρμπας ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ

2 SWI-Prolog (Free Compiler) SWI-Prolog Editor

3 Εκμάθηση Prolog

4 "Programming in Prolog" W.F. Clocksin and C.S. Mellish 5 th edition, Springer Verlag, 2003 "Prolog: The Standard - Reference Manual P. Deransart, A. Ed- Dbali, L. Cervoni Springer-Verlag, 1996 "Prolog Programming for Artificial Intelligence Ivan Bratko 3 rd edition, Addison-Wesley, 2000

5 Free Prolog Books & Tutorials

6 Prolog Γλώσσα λογικού προγραμματισμού (Prolog = Programming in logic) Δεν προγραμματίζουμε τη διαδικασία επίλυσης. Αντίθετα, ορίζουμε το πρόβλημα και η γλώσσα προσπαθεί να το λύσει μόνη της! Διαθέτει: έναν μηχανισμό αναζήτησης εις βάθος (depth-first search) έναν μηχανισμό ταιριάσματος (matching) μια βάση γνώσης (knowledge base) στην οποία επεμβαίνουμε στατικά ή δυναμικά Μοιάζει σαν βάση δεδομένων, μόνο που εκτός από γεγονότα διαχειρίζεται και κανόνες (βάση γνώσης).

7 Αναλογία με κατηγορηματική λογική Clausal Form g(x) γεγονός g(x). Horn Clauses a(x), b(x) c(x), d(x) f(x) άρνηση γεγονότος, έλεγχος υπόθεσης κανόνας a(x) :- c(x), d(x), \+ b(x). :- f(x). άμεση εκτέλεση

8 Γεγονότα & Ερωτήσεις man(peter). man(jimmy). woman(helen). Πρόγραμμα (Βάση Γνώσης)?- man(peter). Yes?- woman(helen). Yes?- man(helen).?- woman(jimmy).?- woman(jenny). Yes = True = False

9 man(peter). man(jimmy). woman(helen). Στον κώδικα δεν επιτρέπονται: \+ man(helen). man(peter); man(jimmy). Ερωτήσεις με λογικούς τελεστές?- \+ man(peter).?- \+ woman(peter). Yes?- \+ woman(jenny). Yes?- \+ man(jenny). Yes?- man(peter), man(jimmy). Yes?- man(peter), \+ man(jimmy).?- man(peter); \+ man(jimmy). Yes

10 Ερωτήσεις με μεταβλητές?- man(x). X = peter ; X = jimmy ; Νo?- man(x). X = peter Yes?- man(x). X = peter ; X = jimmy Yes?- man(x). X = peter ; X = jimmy ; Νo man(peter). man(jimmy). woman(helen).?- man(x); woman(x). X = peter ; X = jimmy ; X = helen ;?- woman(x); man(x). X = helen ; X = peter ; X = jimmy ;?- man(x), \+ woman(x). X = peter ; X = jimmy ; Νo?- \+ woman(x), man(x). Νo

11 Γεννήτριες και ελεγκτές man(peter). man(jimmy). woman(helen).?- \+ woman(x).?- man(x), \+ woman(x). X = peter ; X = jimmy ;?- \+ woman(x), man(x).?- \+ woman(x); man(x). X = peter ; X = jimmy ;?- \+ \+ woman(helen). Υes?- woman(x). X = helen ; Νo

12 mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george).?- mother_of(helen,peter). Yes?- mother_of(helen,x). X = peter ; X = jimmy ;?- mother_of(x,peter). X = helen ; Γεγονότα με περισσότερα ορίσματα?- mother_of(x,y). X = helen Y = peter ; X = helen Y = jimmy ; X = jenny Y = george ;?- mother_of(x,x).?- mother_of(x,_). X = helen ; X = helen ; X = jenny ;?- mother_of(_,_). Yes

13 ?- mother_of(x,y1), mother_of(x,y2). X = helen Y1 = peter Y2 = peter ; X = helen Y1 = peter Y2 = jimmy ; X = helen Y1 = jimmy Y2 = peter ; X = helen Y1 = jimmy Y2 = jimmy ; X = jenny Y1 = george Y2 = george ; Σύνθετες ερωτήσεις mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george).

14 ...με έλεγχο τιμών?- mother_of(x,y1), mother_of(x,y2), \+ Y1==Y2. X = helen Y1 = peter Y2 = jimmy ; X = helen Y1 = jimmy Y2 = peter ; mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george).

15 Ανώνυμη Μεταβλητή?- mother_of(_,y1), mother_of(_,y2), \+ Y1==Y2. Y1 = peter Y2 = jimmy ; Y1 = peter Y2 = george ; Y1 = jimmy Y2 = peter ; Y1 = jimmy Y2 = george ; Y1 = george Y2 = peter ; Y1 = george Y2 = jimmy ; mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george).

16 Constants (Σταθερές): Objects (Αντικείμενα) στην Prolog Atoms: john john 'JOHN' b019 tell_me 'c d' (σε αντίθεση με: 18ab John _alpha tell-me ) Integers: 0, 1, 2, -41, 6221 Variables (Μεταβλητές): Answer Tell_me WHAT _get 45E8 Compound Objects (Σύνθετα Αντικείμενα) date(wednesday,16,8,2006) now(date(wednesday,16,8,2006),time(23,15,20)) Lists (Λίστες): [1,2,f(3,h),go]

17 ΑΣΚΗΣΗ #1 1. Εκφράστε τις συνδέσεις μεταξύ των πόλεων ως γεγονότα στην Prolog. Πχ.: link(d,c,120). link(s,f,99).... link(h,e,86).

18 2. Κάντε κατάλληλη ερώτηση στην Prolog ώστε να βρείτε: (a) όλες τις πόλεις που συνδέονται απευθείας με το Sibiu. (b) όλες τις πόλεις που συνδέονται απευθείας με το Sibiu και απέχουν λιγώτερο από 100 χιλιόμετρα από αυτό. ΑΣΚΗΣΗ #1

19 ΑΣΚΗΣΗ #1 (c) όλες τις πόλεις που συνδέονται απευθείας: i. και με το Arad και με την Oradea (AND). ii. με το Arad ή με την Oradea (OR). iii. ή με το Arad ή με την Oradea (XOR).

20 (d) σε ποιές πόλεις μπορείτε να ταξιδέψετε από το Pitesti: i. κάνοντας ακριβώς έναν ενδιάμεσο σταθμό, ii...., χωρίς όμως να καταλήξετε στο Pitesti, iii...., ούτε σε πόλεις οι οποίες συνδέονται απευθείας με αυτό. ΑΣΚΗΣΗ #1

21 ΑΣΚΗΣΗ #1 (e) όλες τις πόλεις που συνδέονται απευθείας με τουλάχιστον τρεις άλλες πόλεις.

22 ΑΣΚΗΣΗ #1 Παρατηρήστε πόσο περιπλέκονται οι απευθείας ερωτήσεις. Και ότι δεν μπορούμε να βάλουμε συνθήκες μεταξύ διαφορετικών επιστροφών. Τα πράγματα διευκολύνονται αν ορίσουμε βοηθητικές συναρτήσεις. 2. Κάντε κατάλληλη ερώτηση στην Prolog ώστε να βρείτε: (a) όλες τις πόλεις που συνδέονται απευθείας με το Sibiu. (b) όλες τις πόλεις που συνδέονται απευθείας με το Sibiu και απέχουν λιγώτερο από 100 χιλιόμετρα από αυτό. (c) όλες τις πόλεις που συνδέονται απευθείας: i. και με το Arad και με την Oradea (AND). ii. με το Arad ή με την Oradea (OR). iii. ή με το Arad ή με την Oradea (XOR). (d) σε ποιές πόλεις μπορείτε να ταξιδέψετε από το Pitesti: i. κάνοντας ακριβώς έναν ενδιάμεσο σταθμό, ii...., χωρίς όμως να καταλήξετε στο Pitesti, iii...., ούτε σε πόλεις οι οποίες συνδέονται απευθείας με αυτό. (e) όλες τις πόλεις που συνδέονται απευθείας με τουλάχιστον τρεις άλλες πόλεις.

23 Κανόνες fact. fact :- true. Head :- Body. neck mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george). brothers(x,y):- mother_of(z,x), mother_of(z,y), \+ X==Y. brothers2:- brothers(x,y). brothers3:- brothers(x,y), write(x), nl, write(y), nl. brothers4:- brothers3.

24 3. Φτιάξτε μια συνάρτηση Prolog με όνομα neighbours/2 η οποία θα δέχεται τα ονόματα δυο πόλεων και θα επαληθεύεται μόνο όταν υπάρχει απευθείας σύνδεση μεταξύ τους.?- neighbours(m,l). true? - neighbours(a,p). false Σημείωση: Υπάρχουν 2 τρόποι να την ορίσετε. ΑΣΚΗΣΗ #1

25 ΑΣΚΗΣΗ #1 Σημείωση: Υπάρχουν 2 τρόποι να την ορίσετε. 4. Φτιάξτε μια συνάρτηση Prolog με όνομα next/2 η οποία θα δέχεται το όνομα μιας πόλης και θα επιστρέφει όλες τις πόλεις με τις οποίες η πρώτη έχει απευθείας σύνδεση.?- next(a,x). X = z ; X = s ; X = t ; false

26 ?- brothers(x,y). X = peter Y = jimmy ; X = jimmy Y = peter ; mother_of(helen,peter). mother_of(helen,jimmy). mother_of(jenny,george). brothers(x,y):- mother_of(z,x), mother_of(z,y), \+ X==Y. brothers2:- brothers(x,y). brothers3:- brothers(x,y), write(x), nl, write(y), nl. brothers4:- brothers3.?- mother_of(z,x), mother_of(z,y), \+ X==Y. Z = helen X = peter Y = jimmy ; Z = helen X = jimmy Y = peter ;?- brothers2. Yes?- brothers2(x,y). no?- brothers3. peter jimmy Yes?- brothers4. peter jimmy Yes

27 Αν η Βάση Γνώσης περιέχει γεγονότα του τύπου... man(peter). man(jimmy). : : woman(helen). woman(jenny). : : parent_of(peter,jenny). parent_of(helen,peter). : :

28 ...ορίζουμε κανόνες (σχέσεις) συγγένειας father_of(x,y):- parent_of(x,y), man(x). mother_of(x,y):- parent_of(x,y), woman(x). son_of(x,y):- parent_of(y,x), man(x). daughter_of(x,y):- parent_of(y,x), woman(x). grandfather_of(x,y):- parent_of(x,z),parent_of(z,y),man(x). grandmother_of(x,y):- mother_of(x,z), parent_of(z,y). brother_of(x,y):- parent_of(z,x), parent_of(z,y), \+ X==Y,man(X). sister_of(x,y):- daughter_of(x,z), parent_of(z,y), \+ X==Y. uncle_of(x,y):- parent_of(z,y), brother_of(x,z). aunt_of(x,y):- sister_of(x,z), (father_of(z,y); mother_of(z,y)).

29 ΑΣΚΗΣΗ #1 Σημείωση: Υπάρχουν 2 τρόποι να την ορίσετε. 4. Φτιάξτε μια συνάρτηση Prolog με όνομα next/2 η οποία θα δέχεται το όνομα μιας πόλης και θα επιστρέφει όλες τις πόλεις με τις οποίες η πρώτη έχει απευθείας σύνδεση.?- next(arad,x). X = zerind ; X = sibiu ; X = timisoara ; false Σχολιάστε την συμμετρία της και την σχέση της με την neighbours/2.

30 Backtracking (Οπισθοδρόμηση) man(peter). man(jimmy). man(george). woman(helen). woman(jenny). woman(mary). goal0:- man(x). goal1:- man(x), write(x), nl. goal2:- man(x), write(x), nl, fail. goal3:- man(x), write(x), nl, woman(x). goal4:- man(x), woman(x), write(x), nl.?- man(x). X = peter ; X = jimmy ; X = george ;?- goal0. Yes?- goal1. peter Yes?- goal2. peter jimmy george?- goal3. peter jimmy george?- goal4.

31 Matching (Ταίριασμα) now(date(wednesday,16,august,2006),time(23,15,20)).?- now(x,time(y,15,20)). X = date(wednesday,16,august,2006) Y = 23 ;?- now(date(x,16,_,2006),_). X = wednesday ;?- now(date(x,16,_,2006),_,_).?- now(date(x,9,_,_),_).?- now(gate(x,16,_,_),_).

32 Παραδείγματα sum(5). sum(2+3).?- sum(5). Yes?- sum(2+3).?- sum(5).?- sum(x). X = 2+3 ;?- sum(2+x). X = 3 ;?- sum(3+x).

33 Είδη Ισότητας = is =:= == Κάνει σύγκριση και καταχώρηση με matching. Χειρίζεται τα μέλη ως μη αριθμητικά, γιαυτό και δεν κάνει πράξεις. Μόνo για αριθμητικές παραστάσεις. Υπoλoγίζει τo δεξί μέλoς και κάνει καταχώρηση ή σύγκριση. Μόνo για αριθμητικές παραστάσεις. Υπoλoγίζει και τα δυo μέλη. Κάνει σύκγριση αλλά όχι καταχώρηση. Χειρίζεται τα μέλη ως μη αριθμητικά (δεν εκτελεί υπoλoγισμoύς). Δεν κάνει καταχώρηση, μόνo έλεγχo.

34 ?- 5=5. Yes?- hello = hello. Yes?- X = hello. X = hello ;?- X=5. X = 5 ;?- 5=X. X = 5 ;?- X=4+1. X = 4+1?- X is 4+1. X = 5 ;?- 4+1 is X.?- 5 is 5. Yes?- hello is hello.?- Χ is 5, X is 6.?- X=5, X=6.

35 ?- 4+5 =:= 3*3. Yes?- X =:= 4+5. ERROR: =:=/2: Arguments are not sufficiently instantiated?- hello =:= hello.?- 5 == 5. Yes?- hello == hello. Yes?- X=5, X == 5. X = 5 ;?- X == X. X = _G224 ;?- X == Y.?- X = Y. X = _G206 Y = _G206 ;?- 5 == 4+1.?- X == 5.

36 Recursion (Αναδρομικότητα) parent(alex,bill). parent(bill,charlie). parent(charlie,don). : : : % (n γεγoνότα) : : parent(simon,timothy). ancestor(x,y):- parent(x,y); ( parent(x,z), parent(z,y) ); ( parent(x,z), parent(z,w), parent(w,y) ); : : : % (n όρoι)

37 ancestor(x,y):- parent(x,y). ancestor(x,y):- parent(x,z), parent(z,y). ancestor(x,y):- parent(x,z), parent(z,w), parent(w,y). : : : % (n κανόνες) τερματική σχέση ancestor(x,y):- parent(x,y). ancestor(x,y):- parent(x,z), ancestor(z,y). αναδρομική σχέση

38 Παραδείγματα % Υπoλoγισμός Παραγoντικoύ paragontiko(1,1). paragontiko(x,y):- X2 is X-1, paragontiko(x2,y2), Y is Y2*X.?- paragontiko(4,x). X = 24 Yes % Ένα ατέρμονο loop στην Prolog loop:- loop.

39 Μετρητές % Ενας μερτητής count(x):- write(x), nl, NewX is X+1, count(newx). % Ενας "κακός" μερτητής badcount1(x):- write(x), nl, NewX is X+1, badcount1(newx), nl. % Eνας εξίσoυ "κακός" μερτητής badcount3(x):- write(x), nl, NewX is X+1, check(newx), badcount3(newx). check(z):- Z>0. check(z):- Z<0, write('x is negatiνe'), nl. % Αλλoς ένας "κακός" μερτητής badcount2(x):- write(x), nl, NewX is X+1, badcount2(newx). badcount2(x):- X<0, write('x is negatiνe'), nl.

40 ΑΣΚΗΣΗ #2

41 ΑΣΚΗΣΗ #2

42 Cut (!) man(peter). man(jimmy). man(george). a:- man(x), write(x), nl, fail. b:- man(x),!, write(x), nl, fail. c:- man(x), write(x), nl,!, fail. d:-!, man(x), write(x), nl, fail. e:- man(x), write(x), nl, fail,!.?- a. peter jimmy george?- b. peter?- c. peter?- d. peter jimmy george?- e. peter jimmy george

43 Το Cut στο body ενός κανόνα... απαγορεύει το backtracking προς τα αριστερά του ακυρώνει τους επόμενους εναλλακτικούς κανόνες με το ίδιο head logicnot(x):- X,!, fail. logicnot(_).?- logicnot(1==2). Yes?- logicnot1(2==2).

44 ΑΣΚΗΣΗ #2

45 ΑΣΚΗΣΗ #2 8. Έστω η συνάρτηση find_link_dist/3 που ορίζεται ως εξής: find_link_dist(x,x,0):-!. find_link_dist(x,y,1):- next(x,y),!. find_link_dist(x,y,cd):- next(x,z), find_link_dist(z,y,cdn), CD is CDn+1. Ελέγξτε αν μπορεί να αντικαταστήσει επαρκώς την min_link_dist/3. Τί προβλήματα μπορεί να προκαλέσει; Κάτω από ποιές συνθήκες;

46 ΑΣΚΗΣΗ #2 9. Έστω η συνάρτηση find_link_dist2/3 που ορίζεται ως εξής: find_link_dist2(x,x,0,_):-!. find_link_dist2(x,y,1,_):- next(x,y),!. find_link_dist2(x,y,cd,pass_prev_x):- next(x,z), \+(Z==Pass_prev_X), find_link_dist2(z,y,cdn,x), CD is CDn+1. Ελέγξτε πώς λειτουργεί και εξηγήστε τί κάνει. Μπορεί να προκαλέσει προβλήματα; Κάτω από ποιές συνθήκες;

47 Λίστες [1,2,3] [abc,'john',4711,date(10,june,2006)] [4,[yet,f(2,a(1,4))],[4,3,f,2,[0]],end] [bill] bill []

48 chop(list,head,tail):- LIST = [HEAD TAIL].?- chop([1,2,3],h,t). H = 1 T = [2,3] ;?- chop([2,3],h,t). H = 2 T = [3] ;?- chop([3],h,t). H = 3 T = [] ;?- chop([],h,t).

49 Συμμετρικότητα?- chop([[1,2,3],4,5],h,t). H = [1,2,3] T = [4,5] ;?- chop(l,5,[10,20]). L = [5,10,20] ; ισοδύναμοι ορισμοί chop(list,head,tail):- LIST = [HEAD TAIL]. chop([h T],H,T).

50 Συνάρτηση member/2 member(x,[x _]). member(x,[_ T]):- member(x,t).?- member(2,[1,2,3,4]). Yes?- member(5,[1,2,3,4]).?- member(x,[1,2,3,4]). X = 1 ; X = 2 ; X = 3 ; X = 4 ;

51 Συνάρτηση append/3 append([],l,l). append([h T],L1,[H L2]):- append(t,l1,l2).?- append([a,b,c],[d,e],x). X = [a,b,c,d,e] ;?- append(x,[d,e],[a,b,c,d,e]). X = [a,b,c] ;?- append([a,b,c],x,[a,b,c,d,e]). X = [d,e] ;

52 Παράδειγμα χρήσης των συμμετριών της append/3 take(l,x,l2):- append(b,[x A],L), append(b,a,l2).?- take([a,b,c,d,e],c,l). L = [a,b,d,e] ;

53 ΑΣΚΗΣΗ #3 10. Προσθήκη μνήμης: Ερώτημα 10.a Ορίστε μια συνάρτηση smart_find_link_dist(+city1, +City2,? Link_Distance, +Memory) που θα λειτουργεί όπως η reach2/3, αλλά θα αποφεύγει τους κύκλους με τη χρήση της λίστας Memory που θα θυμάται τις πόλεις που έχει συναντήσει. Υπόδειξη: Κατά την κλήση η Memory ξεκινά με αρχική τιμή []. (Τί χρησιμότητα θα είχε μια διαφορετική αρχική τιμή για τη λίστα Memory;)

54 ΑΣΚΗΣΗ #3

55 findall/3, sort/2, msort/2 woman(helen). woman(jenny). woman(mary).?- findall(x,woman(x),l). X = _G320 L = [helen, jenny, mary]?- X1=[4,1,2,5,4], sort(x1,x2). X1 = [4, 1, 2, 5, 4] X2 = [1, 2, 4, 5]?- X1=[4,1,2,5,4], msort(x1,x2). X1 = [4, 1, 2, 5, 4] X2 = [1, 2, 4, 4, 5]

56 ΑΣΚΗΣΗ #3 Ερώτημα 10.b Ορίστε μια συνάρτηση min_link_dist2/3 που θα λειτουργεί όπως η min_link_dist/3, χωρίς όμως να λαμβάνει υπ'όψιν τη διάμετρο του χώρου καταστάσεων. Υπόδειξη: Χρησιμοποιήστε την findall/3, την smart_find_link_dist/4 και την sort/2.

57 11. Προσθήκη διαδρομής: ΑΣΚΗΣΗ #3 (a) Ορίστε μια συνάρτηση smart_find_link_path/5 που θα λειτουργεί όπως η smart_find_link_dist/4, αλλά θα επιστρέφει και μια λίστα με το μονοπάτι της διαδρομής. (b) Ορίστε μια συνάρτηση min_link_path/4 που θα λειτουργεί όπως η min_link_dist/3, αλλά θα επιστρέφει και μια λίστα με το μονοπάτι της διαδρομής. Αν δύο ή περισσότερες διαδρομές έχουν το ίδιο μήκος, να τις επιστρέφει όλες (μη ντετερμινιστικά).

58 12. Υπολογισμός πραγματικής απόστασης: ΑΣΚΗΣΗ #3 (a) Ορίστε μια συνάρτηση smart_find_distance/4 που θα λειτουργεί όπως η smart_find_link_dist/4 αλλά η απόσταση που θα μετράει δεν θα είναι σε πλήθος links αλλά σε χιλιόμετρα. (b) Ορίστε μια συνάρτηση min_distance/3 που θα λειτουργεί όπως η min_link_dist2/3 αλλά η απόσταση που θα μετράει δεν θα είναι σε πλήθος links αλλά σε χιλιόμετρα. (c) Ορίστε μια συνάρτηση smart_find_dist_path/5 που θα λειτουργεί όπως η smart_find_link_path/5, αλλά θα μετράει την απόσταση σε χιλιόμετρα. (d) Ορίστε μια συνάρτηση min_dist_path/4 που θα λειτουργεί όπως η min_link_path/4, αλλά θα μετράει την απόσταση σε χιλιόμετρα.

59 ΑΣΚΗΣΗ #3

60 Auto-executable Goals :- write('now LOADING PROGRAM'), nl. : : : (Πρόγραμμα: γεγονότα, κανόνες, κλπ.) : : :- write('ready to answer your questions'), nl. Εκτελούνται την ώρα του consult, χωρίς να περιμένουν από τον χρήστη να γράψει κάτι στο prompt. Μια τέτοια εντολή στο τέλος του αρχείου το κάνει εκτελέσιμο.

61 :- dynamic paragontiko/2. paragontiko(1,1):-!. paragontiko(x,y):- X2 is X-1, paragontiko(x2,y2), Y is Y2*X, asserta(paragontiko(x,y):-!). assert/retract?- paragontiko(4,x). X = 24 ;?- listing. paragontiko(4,24):-!. paragontiko(3,6):-!. paragontiko(2,2):-!. paragontiko(1,1):-!. paragontiko(a,b):- C is A-1, paragontiko(c,d), B is D*A, asserta((paragontiko(a,b):-!)). Yes

62 Παράδειγμα :- dynamic link/3. link(a,z,75). link(a,s,140). link(a,t,118). :- link(x,y,z), \+link(y,x,z), assert(link(y,x,z)), fail.?- listing. link(a, z, 75). link(a, s, 140). link(a, t, 118). link(z, a, 75). link(s, a, 140). link(t, a, 118).

63 Τελεστές father(alex,bill). father(bill,charlie). father(charlie,don). alex is_father_of bill. bill is_father_of charlie. charlie is_father_of don. :- op(700,xfx,is_father_of). X is_father_of Y :- father(x,y). 'Ολοι οι τελεστές που είναι ορισμένοι:?- current_op(x,y,z).

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 1. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

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

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

Τεχνητή Νοημοσύνη Ι. Διαφάνειες Εργαστηρίου. Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Τεχνητή Νοημοσύνη Ι. Διαφάνειες Εργαστηρίου. Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Τεχνητή Νοημοσύνη Ι Διαφάνειες Εργαστηρίου Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Εργαστήριο Μαθήματος Τεχνητής Νοημοσύνης Ι (Prolog)

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

ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG

ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG ΓΙΑΝΝΟΥΣΙΔΟΥ ΦΩΤΕΙΝΗ ALGORITHM FOR EVALUATION OF

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

Σημαντικότητα της σωστής αναπαράστασης

Σημαντικότητα της σωστής αναπαράστασης Σημαντικότητα της σωστής αναπαράστασης Η επιλογή της κατάλληλης αναπαράστασης των γεγονότων παίζει πολύ σημαντικό ρόλο καθορίζει το είδος των ερωτήσεις που μπορούν να τεθούν την ευκολία με την οποία θα

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

PROLOG Εισαγωγή (PROgramming in LOGic)

PROLOG Εισαγωγή (PROgramming in LOGic) PROLOG Εισαγωγή (PROgramming in LOGic) Γλώσσα Λογικού Προγραμματισμού Βασίζεται στο Προτασιακό Λογισμό 1 ης τάξης Χρησιμοποιεί προτάσεις Horn αλγόριθμος = λογική + έλεγχος Μέσω της Prolog δίνουμε βάρος

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos. Τμήμα Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos. Τμήμα Πληροφορικής Γλώσσες & Τεχνικές 4 ο Εξάμηνο - Ενότητα 2 - Γλώσσες Τεχνητής Νοημοσύνης Λογικός Προγραμματισμός - H Γλώσσα Prolog Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos Τμήμα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

ΕΠΛ 434: Λογικός Προγραμματισμός

ΕΠΛ 434: Λογικός Προγραμματισμός ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη Επισκ. Λέκτορας Λοΐζος Μιχαήλ Τμήμα Πληροφορικής ρ Πανεπιστήμιο Κύπρου (Χειμερινό Εξάμηνο 2008 2009) Προγράμματα στην Prolog Αλγόριθμος = Λογική +

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

(α) Ζητείται να αναπαρασταθεί η παραπάνω γνώση σε Prolog, ώστε να δημιουργηθεί αντίστοιχο πρόγραμμα.

(α) Ζητείται να αναπαρασταθεί η παραπάνω γνώση σε Prolog, ώστε να δημιουργηθεί αντίστοιχο πρόγραμμα. 1. Δίνονται τα εξής γεγονότα «Ο Παύλος είναι πατέρας του Γιάννη και της Γεωργίας» και «Η Ελένη είναι μητέρα της Μαρίας και του Πέτρου». Επίσης, μας δίνεται και η εξής γνώση τύπου κανόνα, που αφορά το πότε

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

Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG

Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG (ΜΕΘΟΔΟΣ ΤΑΧΕΙΑΣ ΕΚΜΑΘΗΣΗΣ ΒΑΣΕΙ ΠΑΡΑΔΕΙΓΜΑΤΩΝ) Έκδοση 2.0 Κυριάκος Σγάρμπας, Επίκ.Καθηγητής Εργαστήριο Ενσύρματης Τηλεπικοινωνίας, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

Υπολογιστική Λογική και Λογικός Προγραμματισμός

Υπολογιστική Λογική και Λογικός Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Υπολογιστική Λογική και Λογικός Προγραμματισμός Ενότητα 7: Γλώσσα Prolog: Έλεγχος εκτέλεσης προγράμματος, Αποκοπή, Άρνηση Νίκος Βασιλειάδης,

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

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

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

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

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

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

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

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

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

Βασικές Αρχές Προγραμματισμού

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog Περιεχόμενα Πρόλογος... xxv 1. Εισαγωγή... 1 1.1. Ιστορική Εξέλιξη της Prolog.... 2 1.2. Προστακτικός και Δηλωτικός Προγραμματισμός.... 2 1.3. Δηλωτική και διαδικαστική έννοια ενός προγράμματος Prolog....

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

HY118-Διακριτά Μαθηματικά

HY118-Διακριτά Μαθηματικά HY118-Διακριτά Μαθηματικά Πέμπτη, 08/02/2018 Το υλικό των Αντώνης διαφανειών Α. Αργυρός έχει βασιστεί σε διαφάνειες του e-mail: Kees argyros@csd.uoc.gr van Deemter, από το University of Aberdeen 08-Feb-18

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΕΣΜΕΥΜΕΝΑ ΟΝΟΜΑΤΑ +- Υπάρχουν ορισμένες

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

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

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΘΕΜΑ 1 ο (3 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Τρίτη 26 Ιουνίου 2007 ιάρκεια: 13:00-16:00 ίνεται ο

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

5 &6. Τύποι δεδομένων, τελεστές και

5 &6. Τύποι δεδομένων, τελεστές και Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 5 &6. Τύποι δεδομένων, τελεστές και αριθμητικές εκφράσεις Ιωάννης Κατάκης Σήμερα o Τύποι δεδομένων int, char, float, double o Τελεστές = + - * / % o Αριθμητικές

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

Τεχνητή Νοημοσύνη. 12η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 12η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 12η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός HY118-Διακριτά Μαθηματικά Πέμπτη, 08/02/2018 Το υλικό των Αντώνης διαφανειών Α. Αργυρός έχει βασιστεί σε διαφάνειες του e-mail: Kees argyros@csd.uoc.gr van Deemter, από το University of Aberdeen Προηγούμενη

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

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

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

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

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

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

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

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων Τεχνητή Νοημοσύνη Ι Εργαστηριακή Άσκηση 4-6 Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Τεχνητή Νοημοσύνη. 9η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 9η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 9η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται εν μέρει στο βιβλίο Artificial Intelligence A Modern Approach των

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr If at first you don't succeed, call it version

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 7. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Μεταβλητές Μεταβλητή ονομάζεται ένα μέγεθος

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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Εισαγωγή Η PROLOG (PROgramming in LOGic) είναι μια συμβολική γλώσσα προγραμματισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΓΕΝΙΚΑ PROLOG PROgramming in LOGic Πρώτη υλοποίηση: Alain Colmerauer, Μασσαλία (Αρχή Επίλυσης, Εργασία R. Kowalski) εύτερη υλοποίηση: D. Warren, Εδιµβούργο

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL )Βασικά στοιχεία Αναγνωριστικά (Identifiers) Τα αναγνωριστικά είναι ονόματα με τα οποία μπορούμε να αναφερόμαστε σε αποθηκευμένες

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

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

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

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

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1 Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

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

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

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

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

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

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

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

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

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

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

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 15 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2016-17 Οι ασκήσεις της ομάδας αυτής πρέπει

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1 Αναζήτηση σε Γράφους Μανόλης Κουμπαράκης ΥΣ02 Τεχνητή Νοημοσύνη 1 Πρόλογος Μέχρι τώρα έχουμε δει αλγόριθμους αναζήτησης για την περίπτωση που ο χώρος καταστάσεων είναι δένδρο (υπάρχει μία μόνο διαδρομή

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #3 τελεστές 1 Σπύρος Λάλης Τελεστής ανάθεσης Το σύμβολο της ανάθεσης είναι το = προσοχή: το σύμβολο ελέγχου ισότητας είναι το == Η μορφή των προτάσεων = 1. Αποτιμάται

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

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

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

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

Εισαγωγή στην Γλώσσα Lisp

Εισαγωγή στην Γλώσσα Lisp Εισαγωγή Η γλώσσα προγραμματισμού Lisp ( από το List processing language) σχεδιάστηκε ως γλώσσα συμβολικού προγραμματισμού. Γενικά, τα σύμβολα μπορούν να χρησιμοποιηθούν για να αντιπροσωπεύσουν διαφορετικά

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

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

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

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

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

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

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

Αναδρομικός αλγόριθμος

Αναδρομικός αλγόριθμος Αναδρομικός αλγόριθμος Ένας αναδρομικός αλγόριθμος επιλύει ένα πρόβλημα για κάποιες τιμές δεδομένων λύνοντας το ίδιο πρόβλημα για άλλες (σχετιζόμενες) τιμές δεδομένων Είναι απαραίτητο βέβαια να λύνεται

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

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

ΚΕΦΑΛΑΙΟ 6: Αναδρομή

ΚΕΦΑΛΑΙΟ 6: Αναδρομή ΚΕΦΑΛΑΙΟ 6: Αναδρομή Λέξεις Κλειδιά Αναδρομικές συναρτήσεις, Αναδρομή ως εργαλείο επίλυσης προβλημάτων, Αριθμητικές πράξεις και βασικά αριθμητικά κατηγορήματα, Εκφραστικότητα αναδρομικών ορισμών, Η Αναδρομή

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

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

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

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

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

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

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

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΜΑΘΗΜΑ / ΤΑΞΗ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ/Γ' ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 17-1-2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ-Χ.ΠΑΠΠΑ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Εισαγωγή στη Γλώσσα ML. Juan Miró

Εισαγωγή στη Γλώσσα ML. Juan Miró Εισαγωγή στη Γλώσσα ML Juan Miró Κωστής Σαγώνας Συναρτησιακός και Προστακτικός Προγραμματισμός Ένας τρόπος διαχωρισμού Ο προστακτικός προγραμματισμός επικεντρώνει στο πώς θα υλοποιήσουμε

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 10 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2018-19 Οι ασκήσεις της ομάδας αυτής πρέπει

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

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

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

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

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

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

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

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

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

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

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

Βασικά στοιχεία της Java

Βασικά στοιχεία της Java Βασικά στοιχεία της Java προτάσεις, εκφράσεις, µεταβλητές, σταθερές, τελεστές Ορισµοί Πρόταση (statement) είναι µία απλή εντολή σε µία γλώσσα προγραµµατισµού. Γιαπαράδειγµα: int x=12; Έκφραση (expression)

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

Εισαγωγή στη Γλώσσα ML

Εισαγωγή στη Γλώσσα ML Συναρτησιακός και Προστακτικός Προγραμματισμός Εισαγωγή στη Γλώσσα ML Ένας τρόπος διαχωρισμού Ο προστακτικός προγραμματισμός επικεντρώνει στο πως θα υλοποιήσουμε τα συστατικά του προγράμματός μας Ο συναρτησιακός

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

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Αφαίρεση στον FP Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Πολυμορφισμός Θα χρησιμοποιήσουμε σαν παράδειγμα τη συνάρτηση ταυτότητας Ι, που ορίζεται ως: fun I x = x Ο ορισμός

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 2) Σεπτέμβριος 2015

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

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

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

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