ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ

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

Download "ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ"

Transcript

1 ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η ΓΛΩΣΣΑ PROLOG ΤΟ ΣΥΣΤΗΜΑ ΚΑΝΟΝΩΝ CLIPS Καραγιώργου Σοφία

2 Βασικά στοιχεία γλώσσας Prolog Ορισμοί (statements): Επιτελούν το ρόλο εντολών στις κλασσικές γλώσσες προγραμματισμού Γεγονότα Κανόνες Ερωτήσεις Όροι (terms): Μοναδική δομή δεδομένων Prolog

3 Γεγονός Είναι το απλούστερο είδος ορισμού, που υποστηρίζει η Prolog Παρέχει τρόπο έκφρασης της σχέσης, που ισχύει ανάμεσα σε οντότητες

4 Παράδειγμα γεγονότος Το γεγονός?-father (john, mary). Εκφράζει ότι ο john είναι πατέρας της mary ή ότι η σχέση father ισχύει ανάμεσα στα άτομα john και mary

5 Ορισμοί Σχέσεις όπως το father ονομάζονται κατηγορήματα Οι οντότητες mary και john ονομάζονται ορίσματα του κατηγορήματος Ένα κατηγόρημα μαζί με τα ορίσματα, που περιλαμβάνει ονομάζεται ατομικός τύπος

6 Μεταβλητές Η Prolog επιτρέπει τη χρήση μεταβλητών σε Γεγονότα, κανόνες και ερωτήσεις Οι μεταβλητές αρχίζουν πάντα με κεφαλαίο γράμμα Παράδειγμα: plus(0,x,x). Εκφράζει την ιδιότητα του ουδέτερου στοιχείου της πρόσθεσης Η χρήση μεταβλητών επιτρέπει την έκφραση συνόλου γεγονότων

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

8 Βασικά στοιχεία PROLOG Γεγονότα father(george,mary). Κανόνες parent(x,y):-father(x,y). parent(x,y):-mother(x,y). Ερωτήματα?-parent(X,Y). Χ=george,Y=mary; yes

9 Βασικά στοιχεία PROLOG Υπάρχουν προτάσεις σε μια βάση γνώσης, κάποιες μπορεί να είναι γεγονότα και κάποιες άλλες κανόνες Στο τέλος κάθε πρότασης υπάρχει τελεία «.» Κατηγορήματα, πχ parent, father κτλ Το κόμμα (,) υποδηλώνει σύζευξη κατηγορημάτων Το ερωτηματικό (;) υποδηλώνει διάζευξη κατηγορημάτων Μεταβλητές και συγκεκριμενοποίηση (instantiation)?- woman(x). X=mia

10 Μεταβλητές και ερωτήσεις Ερώτηση:?-father(X,mary). Διαβάζεται ως: «Υπάρχει κάποιο πρόσωπο Χ το οποίο είναι πατέρας της mary;»

11 Μεταβλητές και ερωτήσεις Μία ερώτηση μπορεί να επιστρέψει περισσότερες από μία απαντήσεις Παράδειγμα: Αν έχουμε δώσει στην Prolog δύο γεγονότα?-father(john, mary).?-father(john, ann). Τότε η ερώτηση:?-father(john, X). Θα επιστρέψει δύο λύσεις X=mary και X=ann

12 Παράδειγμα Ερώτηση:?-father(john, mary). Διερευνά αν η σχέση father ισχύει ανάμεσα στα άτομα john και mary

13 Παράδειγμα Γνώση father(george,mary). father(george,nick). father(peter,marina). mother(helen,mary). mother(helen,nick). mother(ann,marina). parent(x,y):-father(x,y). parent(x,y):-mother(x,y). Αποθηκεύεται σε ένα αρχείο, π.χ. family.pl Φορτώνεται:?-consult( family.pl ).

14 Παράδειγμα Ερωτήματα Είναι ο george πατέρας της mary??-father(george,mary). yes Ποιος (Χ) έχει πατέρα τον peter??-father(peter,x). X=marina Ποια είναι τα ζεύγη (Χ Υ) για τα οποία το Χ είναι mother του Υ??-mother(X,Y). X=helen,Y=mary; X=helen,Y=nick; X=ann,Y=marina; no

15 Παράδειγμα Αν έχει δοθεί στην Prolog το γεγονός:?-father(john, mary). Τότε η απάντηση στην παραπάνω ερώτηση θα είναι yes

16 Σύνθετες ερωτήσεις Ερώτηση:?-father(X,mary), father(x,ann) Αναζητά το πρόσωπο που είναι πατέρας της mary και της ann Η σύνθετη ερώτηση αποτελείται από υποερωτήσεις (κλήσεις). Οι κλήσεις σε μία σύνθετη ερώτηση χωρίζονται μεταξύ τους με κόμμα, που έχει την έννοια λογικού «και» Για να αληθεύει μία σύνθετη ερώτηση πρέπει να αληθεύουν όλες οι απλούστερες ερωτήσεις, που την αποτελούν

17 Κανόνες Επιτρέπουν τον ορισμό νέων σχέσεων ως συνάρτηση άλλων σχέσεων Παράδειγμα:?-son(X,Y):-father(Y,X), male(x). Ορίζει τη σχέση son ως συνάρτηση των σχέσεων father και male. Διαβάζεται ως: «Ο Χ είναι γιός του Υ αν ο Υ είναι πατέρας του Χ και ο Χ είναι γένους αρσενικού». Το σύμβολο «:-» διαβάζεται σαν «εάν», ενώ το «,» ως «και»

18 Αναδρομικοί κανόνες?-ancestor(x,y):-parent(x,y).?-ancestor(x,y):-parent(x,z), ancestror(z,y). Η σχέση ancestor (πρόγονος) μπορεί να ορισθεί με χρήση δύο κανόνων, εκ των οποίων ο ένας είναι αναδρομικός Γενικά, ένας κανόνας έχει τη μορφή Η:-Β1,,Βn, όπου το Η λέγεται κεφαλή του κανόνα και οι ατομικοί τύποι Β1,,Βn, αποτελούν το σώμα του κανόνα

19 Παράδειγμα - Αναδρομή Παράδειγμα parent(john,george). parent(john,nick). parent(jim,bill). parent(jim,jack). parent(gregory,john). parent(gregory,jim). parent(bob,gregory). parent(joseph,bob). Μπορούμε να ορίσουμε ένα κατηγόρημα για τον πρόγονο? π.χ. predecessor(x,z)

20 Παράδειγμα - Αναδρομή Λύση πρώτη predecessor(x,z):-parent(x,z). predecessor(x,z):-parent(x,y),parent(x,z). predecessor(x,z):-parent(x,y),parent(y,w),parent(w,z). Λύση δεύτερη predecessor(x,z):-parent(x,z). predecessor(x,z):-parent(x,y),predecessor(υ,z)

21 Όροι Βασική δομή στον λογικό προγραμματισμό Σταθερά (όπως john), μεταβλητή (όπως Χ) ή σύνθετος όρος Ο σύνθετος όρος αποτελείται από ένα συναρτησιακό σύμβολο (functional symbol), που εφαρμόζεται σε ακολουθία από όρους Παράδειγμα: list(a,nil) όπου list το συναρτησιακό σύμβολο και a,nil σταθερές

22 Όροι Χρήση για κωδικοποίηση σύνθετων μορφών πληροφορίας Παράδειγμα: Ορισμός κατηγορήματος book, που λαμβάνει σαν παραμέτρους όρους για περιγραφή των χαρακτηριστικών της έννοιας βιβλίο. Με τον τρόπο αυτό δημιουργείται μία απλή βάση δεδομένων:?-book(author(surname(stoll), name(robert)), subject(logic)).?-book(author(surname(kleene), name(steven)),subject(mathematics)).

23 Όροι Διαφορά ανάμεσα στο book (όνομα κατηγορήματος) και στα author, surname, name, subject (συναρτησιακά σύμβολα)

24 Δομές δεδομένων Σύνθετες δομές δεδομένων triangle(point(0,0),point(1,4),point(5,12))..(a,.(b,.(c,[]))). Παραδείγματα λιστών member/2 append/3 [a b c]. [[a,b],c]. [mia,vincent,jules,yolanda] [mia,robber(honeybunny),x,2,mia] [] [mia,[vincent,jules],[butch,friend(butch)]] [[], dead(z), [2, [b,c]], [ ], Z, [2, [b,c]]]

25 Ενσωματωμένα κατηγορήματα Μαθηματικές πράξεις ==/2 Ίσο =/2 Ανάθεση \==/2 Διάφορο is/2 αποτιμά αριθμητικές εκφράσεις?-x is X=7?-9 is 3 * 3. Yes Διαδικασίες εισόδου εξόδου?-read(x). :hello. X=hello?-write(hello),nl,write(world),nl. hello world yes

26 Παράδειγμα Αναζήτηση ονοματεπωνύμων, που έχουν γράψει βιβλία σε λογική Ερώτηση:?-book(author(surname(X), name(y), subject(logic)). Αν δεν ενδιαφέρουν τα μικρά ονομάτων συγγραφέων, η ερώτηση μπορεί να τεθεί:?-book(author(surname(x), _), subject(logic)). Όπου με «_» συμβολίζονται οι όροι των οποίων η τιμή δεν μας ενδιαφέρει (ανώνυμη μεταβλητή)

27 Όροι Γράφουμε προγράμματα όχι μόνο με χρήση κανόνων και γεγονότων Συνδυάζουμε δομικά στοιχεία, αναδρομή, κτλ

28 Ορίσματα Στην Prolog δεν γίνεται καθορισμός ποια από τα ορίσματα ενός κατηγορήματος είναι είσοδοι και ποια έξοδοι Πολλά προγράμματα έχουν διαφορετικές χρήσεις

29 Modules και αρχεία Modules :- module(printmovies,[printmovies/1]). Ορισμός :- use_module(library(lists)). Χρήση Αρχεία at_end_of_stream(s) open/3, write/2, close/1 εγγραφή σε αρχείο open/3, read/2, close/1 ανάγνωση από αρχείο

30 Εκτέλεση προγραμμάτων Prolog Έστω το πρόγραμμα?-grandparent(x,y):-parent(x,z), parent(z,y).?-parent(tom,jim).?-parent(jim,george). Όταν τεθεί η ερώτηση:?-grandparent(a,b). Ο μηχανισμός εκτέλεσης της Prolog εκτελεί αναζήτηση λύσεων της μορφής του δέντρου, που ακολουθεί

31 Δέντρο εκτέλεσης της ερώτησης?-grandparent(a,b)

32 Εκτέλεση προγραμμάτων Prolog Αρχικά ο μηχανισμός της Prolog αναζητά στο πρόγραμμα κατηγόρημα με το όνομα grandparent ώστε να ταιριάζει με τη δεδομένη ερώτηση Μόλις βρεθεί πρόταση, που αφορά αυτό το κατηγόρημα, αντικαθιστά την δεδομένη ερώτηση με το σώμα της πρότασης και δημιουργείται νέα (σύνθετη) ερώτηση parent(a,z), parent(z,b)

33 Μηχανισμός εκτέλεσης Prolog Έστω ότι έχουμε ένα πρόγραμμα και μία ερώτηση της μορφής?-α1,, Αn. Τότε: Η Prolog εξετάζει εάν ικανοποιούνται όλοι οι στόχοι Α1,, Αn ξεκινώντας από το Α1 και πηγαίνοντας προς το Αn Για να ικανοποιήσει ένα από τα Αi, η Prolog διαλέγει την πρώτη πρόταση στο πρόγραμμα της οποίας η κεφαλή ταιριάζει με το Αi, και αντικαθιστά το Αi με το σώμα της πρότασης αυτής (αφού πρώτα το τροποποιήσει κατάλληλα) Η διαδικασία συνεχίζεται μέχρι να μην υπάρχει πλέον άλλη κλήση, που να πρέπει να ικανοποιηθεί

34 Μαθηματικές σχέσεις φυσικών αριθμών Με χρήση του ορισμού του πολλαπλασιασμού δίνεται η σχέση για το παραγοντικό ενός φυσικού αριθμού?-factorial(0,s(0)).?-factorial(s(n),f):-factorial(n,f1),times(s(n),f1,f).

35 Μαθηματικές σχέσεις φυσικών αριθμών Σχέση between(x,y,z): αληθεύει όταν Χ είναι ένας φυσικός αριθμός μικρότερος ή ίσος από τον Υ και ο Υ είναι μικρότερος ή ίσος από τον Ζ.?-between(0,0,Z).?-between(0,s(Y),s(Z)):-between(0,Y,Z).?-between(s(X),s(Y),s(Z)):-between(X,Y,Z).

36 Σχόλια Οι φυσικοί αριθμοί αναπαρίστανται με πολύ πιο βολικό τρόπο στην Prolog (όπως και στις υπόλοιπες γλώσσες προγραμματισμού) Η αναπαράσταση, που χρησιμοποιήθηκε στα παραπάνω προγράμματα δεν είναι γενικά βολική και αποτελεσματική. Υιοθετήθηκε για να δειχθούν οι αρχικές δυνατότητες της Prolog

37 Αναδρομικός προγραμματισμός με λίστες Λίστα Πολύ χρήσιμη δομή δεδομένων για προγραμματισμό σε Prolog Κενή - συμβολίζεται με [ ] Περιέχει στοιχεία, πχ η [a,b,c] είναι μη κενή λίστα Το πρώτο στοιχείο λίστας ονομάζεται κεφαλή (head) Η λίστα που προκύπτει αν αφαιρέσουμε την κεφαλή, ονομάζεται ουρά (tail) Ο τελεστής αποτελεί ειδική αναπαράσταση, που δείχνει άμεσα την κεφαλή και την ουρά μιας λίστας. Η λίστα [a,b,c] γράφεται ως [a [b,c]] και η [a] ως [a [ ]].

38 Παράδειγμα Οι λίστες Prolog μπορούν να περιέχουν σαν στοιχεία τους και άλλες λίστες, αλλά και πολύπλοκους όρους, όπως [[ ]] επιτρεπτή λίστα [[1,Χ], s(s(x))] Οι [a [1 [2]]] και [Χ,Υ [a]] είναι ισοδύναμες με τις λίστες [a,1,2] και [X,Y,a] αντίστοιχα.

39 Παράδειγμα Η σχέση member (X,Y) είναι αληθής, όταν το Χ είναι στοιχείο της λίστας Υ?-member(X,[X Y]).?-member(X,[Y Z]):-member(X,Z). Το νόημα του προγράμματος είναι: «Το Χ είναι μέλος μιας λίστας αν είναι η κεφαλή της λίστας ή αν είναι μέλος της ουράς της λίστας»

40 Παράδειγμα Η σχέση append(x,y,z) είναι αληθής, όταν το Z είναι η λίστα, που προκύπτει από την συνένωση των λιστών Χ και Υ?-append([],Y,Y).?-append([X Xs],Ys,[X Zs]):-append(Xs,Ys,Zs). Η δομή του παραπάνω προγράμματος είναι παρόμοια με αυτή του προγράμματος για τον ορισμό της σχέσης plus

41 Παράδειγμα Συχνά στον προγραμματισμό σε Prolog χρησιμοποιούνται απλές σχέσεις, ήδη ορισμένες για να γραφούν πιο πολύπλοκα προγράμματα Σχέσεις όπως η member και η append χρησιμοποιούνται σχεδόν σε οποιοδήποτε μεγάλο πρόγραμμα γραφτεί σε Prolog

42 Παράδειγμα Σχέση reverse(x,y) ορίζεται σα συνάρτηση της append. Είναι αληθής, όταν η λίστα Υ είναι η αντίστροφη της λίστας Χ:?-reverse([],[]).?-reverse([X Xs],Ys):-reverse(Xs,Rs), append(rs, [X], Ys). Το νόημα του παραπάνω προγράμματος είναι: «Η αντίστροφη της κενής λίστας είναι η κενή λίστα. Η αντίστροφη μη-κενής λίστας μπορεί να παραχθεί αντιστρέφοντας την ουρά της και προσκολλώντας στο τέλος της αντεστραμμένης ουράς την κεφαλή της αρχικής λίστας»

43 Παράδειγμα Το προηγούμενο παράδειγμα μπορεί να γραφεί και χωρίς τη χρήση της append, αλλά με προσθήκη ενός βοηθητικού κατηγορήματος του reverse1, που διαθέτει ένα επιπλέον όρισμα:?-reverse(xs, Ys):-reverse1(Xs,[],Ys).?-reverse1([],Ys, Ys).?-reverse1([X Xs],A,Ys):-reverse1(Xs,[X A],Ys). Το όρισμα Α ονομάζεται συσσωρευτής (accumulator) διότι συσσωρεύει βήμα-βήμα το τελικό αποτέλεσμα (δηλαδή την αντίστροφη λίστα)

44 Αναδρομικός προγραμματισμός με δέντρα Δέντρα Πολύ χρήσιμος τύπος δεδομένων Αναπαρίστανται με χρήση όρων (μοναδική δομή δεδομένων Prolog) Χρήση του συναρτησιακού συμβόλου tree με τρεις παραμέτρους: tree(element, Left, Right) Το στοιχείο Element είναι η ρίζα του συγκεκριμένου δέντρου, το Left το αριστερό υπόδεντρο και το Right το δεξί υποδέντρο Το κενό δέντρο αναπαρίσταται με τη σταθερά void

45 Παράδειγμα Δέντρο με κορυφή a, αριστερό παιδί b και δεξί παιδί c γράφεται ως:?-tree(a, tree(b,void,void), tree(c,void, void))

46 Παράδειγμα Πρόγραμμα για έλεγχο του αν ένας δεδομένος όρος είναι πράγματι δυαδικό δέντρο (ανάλογο του κατηγορήματος nat)?-binary_tree(void).?-binary_tree(tree(e,l,r)):-binary_tree(l),binary_tree (R).

47 Παράδειγμα Πρόγραμμα για έλεγχο του αν ένα δεδομένο στοιχείο ανήκει σε ένα δέντρο ή όχι. Το πρόγραμμα είναι ανάλογο με το member, που ορίσθηκε για τις λίστες:?-tree_member(x, tree(x,_,_)).?-tree_member(x, tree(y,l,r)):-tree_member(x,l).?-tree_member(x, tree(y,l,r)):-tree_member(x,r).

48 Παράδειγμα Το παραπάνω πρόγραμμα ελέγχει αν ένα δεδομένο στοιχείο είναι ταυτόσημο με την κορυφή του δεδομένου δέντρου. Αν ναι, το πρόγραμμα σταματά με επιτυχία. Αν όχι, το πρόγραμμα συνεχίζει αναδρομικά τη διερεύνηση στο αριστερό και το δεξί υποδέντρο.

49 Κατηγορήματα Ουσιαστικά «διασχίζουν» ένα δεδομένο δέντρο με μία προκαθορισμένη σειρά Το αποτέλεσμα της διάσχισης επιστρέφεται σε μία λίστα

50 Παράδειγμα Η preorder διάσχιση ενός δυαδικού δέντρου ορίζεται από το ακόλουθο κατηγόρημα: preorder(void,[]). preorder(tree(x,l,r), Xs):-preorder(L,Ls), preorder(r,rs), append([x Ls],Rs,Xs). Κατά την preorder διάσχιση ενός δέντρου καταγράφεται αρχικά η ρίζα του δέντρου και κατόπιν επισκεπτόμαστε αναδρομικά πρώτα το αριστερό υποδέντρο και μετά το δεξί.

51 Παράδειγμα Με ανάλογο τρόπο γράφεται πρόγραμμα, που υλοποιεί την διάσχιση inorder: inorder(void,[]). inorder(tree(x,l,r), Xs):-inorder(L,Ls), inorder(r,rs), append(ls,[x Rs],Xs).

52 Παράδειγμα postorder(void,[]). postorder(tree(x,l,r),xs):-postorder(l,ls), postorder(r,rs), append(ls,rs,ms),append(ms,[x],xs). Τα παραπάνω προγράμματα διαφέρουν μόνο ως προς τον τρόπο, που γίνεται η συνένωση των επιμέρους αποτελεσμάτων (append)

53 Τελεστές Συναρτησιακά σύμβολα Χρήση σε επεξεργασία πιο πολύπλοκων δομών από ότι οι λίστες και τα δέντρα Στην έκφραση 1+3, το + είναι τελεστής Ισοδύναμη έκφραση +(1,3) και όχι ο αριθμός 4, όπως συμβαίνει σε άλλες γλώσσες προγραμματισμού Η πρόσθεση θα πραγματοποιούταν αν ο όρος 1+3 ήταν όρισμα στο ειδικό κατηγόρημα is της Prolog για υπολογισμό αριθμητικών εκφράσεων

54 Τελεστές Οι τελεστές +,-,*,/,... δεν λαμβάνουν συγκεκριμένο νόημα από την Prolog Χρησιμοποιούνται για να γραφούν εφαρμογές με κομψό και συνοπτικό τρόπο Στο επόμενο παράδειγμα οι τελεστές χρησιμοποιούνται, για τη διατύπωση της διαδικασίας παραγώγισης συναρτήσεων

55 Αριθμητικές πράξεις και Prolog Κάθε γλώσσα προγραμματισμού παρέχει ιδιαίτερες ευκολίες στη χρήση και επεξεργασία αριθμών Η Prolog διαθέτει Ειδικά κατηγορήματα, γνωστά ως κατηγορήματα συστήματος (system predicates)

56 Κατηγορήματα Prolog Βασικό κατηγόρημα το is, που χρησιμοποιείται στη μορφή V is E H Prolog υπολογίζει την τιμή του Ε και αν αυτή η τιμή συμφωνεί με το V, τότε επιτυγχάνει Αν V μεταβλητή, τότε λαμβάνει την τιμή του Ε Όταν Ε περιέχει μεταβλητές με άγνωστη τιμή τη στιγμή της εκτέλεσης, ο διερμηνέας της Prolog δίνει μήνυμα λάθους

57 Παράδειγμα Η ερώτηση?-8 is 5+3 επιτυγχάνει Ενώ η ερώτηση?-5+3 is 8 αποτυγχάνει Διότι η Prolog βλέπει το αριστερό μέλος της σαν τον όρο +(5,3) και δεν υπολογίζει την τιμή του.

58 Παράδειγμα Η ερώτηση?-χ is 5+3 θα δώσει την απάντηση Χ = 8 Η ερώτηση?-χ is 2+Y θα δώσει μήνυμα λάθους, διότι η αριθμητική τιμή του δεξιού μέλους δεν μπορεί να υπολογισθεί λόγω της μεταβλητής Υ

59 Κατηγορήματα της Prolog Για αριθμητικές πράξεις Χ = : = Υ (Οι αριθμητικές τιμές των Χ και Υ είναι ίδιες) Χ = \ = Υ (Οι αριθμητικές τιμές των Χ και Υ είναι διαφορετικές)

60 Κατηγορήματα της Prolog Χ < Υ (Η αριθμητική τιμή του Χ είναι μικρότερη από αυτή του Υ) Χ=<Υ (Η αριθμητική τιμή του Χ είναι μικρότερη ή ίση από αυτή του Υ)

61 Κατηγορήματα της Prolog Χ > Υ (Η αριθμητική τιμή του Χ είναι μεγαλύτερη από αυτή του Υ) Χ >= Υ (Η αριθμητική τιμή του Χ είναι μεγαλύτερη ή ίση από αυτή του Υ)

62 Κατηγορήματα Με χρήση των προηγούμενων κατηγορημάτων μπορούν να ξαναγραφούν κατηγορήματα, που ορίσθηκαν με χρήση των όρων

63 Κατηγορήματα Η ερώτηση?-plus(a,b,8) Θα δώσει μήνυμα λάθους (και όχι όλα τα ζεύγη φυσικών με άθροισμα 8) Αυτό συμβαίνει γιατί η παραπάνω ερώτηση ανάγεται από το μηχανισμό της Prolog στην ερώτηση?-8 is A+B

64 Κατηγορήματα Με χρήση κατηγορημάτων συστήματος μπορούν να γραφούν προγράμματα, που εκτελούν αριθμητικές πράξεις με το συνηθισμένο τρόπο:?-sumlist([],0).?-sumlist([i L],Sum):-sumlist(L,S), Sum is S+I.

65 Αποκοπή Προγράμματα Prolog Αναποτελεσματικά, γιατί το δένδρο αναζήτησης είναι αρκετά μεγάλο Ενδιαφέρον Ύπαρξη λύσης προβλήματος Όχι για την ποσότητα ή είδος λύσεων

66 Αποκοπή Δεν είναι απαραίτητο ο μηχανισμός εκτέλεσης της Prolog να διασχίσει ολόκληρο το δέντρο αναζήτησης, αλλά ένα μέρος του Ο προγραμματιστής καθοδηγεί το μηχανισμό αναζήτησης προς αποφυγή περιττών αναζητήσεων με τη βοήθεια της αποκοπής (cut) (σύμβολο (!))

67 Παράδειγμα Έστω ερώτηση της μορφής? A, B, C. Και το ακόλουθο τμήμα προγράμματος Β: -Α1,...Αk,!, Ak+1,, An. B: -Do,, Dm. B: -Fo,, Fk.

68 Ρόλος αποκοπής Όταν ο μηχανισμός εκτέλεσης της Prolog περάσει από την αποκοπή, τότε τα Α1,..., Ak δεν πρόκειται να ξαναεξεταστούν για επιπλέον λύσεις οι εναλλακτικές προτάσεις για το Β, που υπάρχουν στο πρόγραμμα μετά την πρόταση, που περιέχει την αποκοπή, δεν πρόκειται να εξεταστούν Κάποιες λύσεις αποκόπτονται από τη διαδικασία

69 Παράδειγμα Έστω το πρόγραμμα: father(tom,jim). male(jim). son(x,y):-father(y,x), male(x). son(george, jim). son(john, nick). Και η ερώτηση?-son(s,f).

70 Παράδειγμα Ο μηχανισμός της Prolog θα δώσει τρεις λύσεις: {S=jim, F=tom} {S=george, F=jim} {S=john, F=nick}

71 Παράδειγμα Αν το πρόγραμμα αντικατασταθεί με το: father(tom,jim). male(jim). son(x,y):-father(y,x),!,male(x). son(george, jim). son(john, nick).

72 Παράδειγμα Ο μηχανισμός εκτέλεσης της Prolog δίνει τη λύση {S=jim, F=tom}. Οι άλλες δύο λύσεις αποκόπτονται λόγω του συμβόλου!, που δεν επιτρέπει την εξέταση των εναλλακτικών προτάσεων για το son(s,f)

73 Παράδειγμα Η αποκοπή χρησιμοποιείται συνήθως όταν γνωρίζουμε ότι το πρόβλημα έχει μία και μοναδική λύση και επιθυμούμε τον περιορισμό άσκοπου ψαξίματος. Τα προγράμματα είναι έτσι πιο αποτελεσματικά. Η αποκοπή δεν ανήκει στο λογικό τμήμα της Prolog και για αυτό ενδέχεται να δημιουργήσει δυσνόητα προγράμματα. Λανθασμένη χρήση της περικόπτει λύσεις χρήσιμες και επιθυμητές.

74 Το σύστημα κανόνων CLIPS Λίστα Γεγονότων (facts list) (name george) Βάση κανόνων (rule/knowledge base) (defrule rain in case of rain (weather rain) => (assert (action take umbrella ))) Μηχανισμός Εξαγωγής Συμπερασμάτων (Inference Engine) Στρατηγικές Eπίλυσης Ανταγωνισμού (Conflict Resolution Strategies)

75 Εκτέλεση Προγράμματος Πρόγραμμα Ένα σύνολο από κανόνες και γεγονότα Εκτέλεση Ακολουθία από πυροδοτήσεις κανόνων των οποίων οι συνθήκες ικανοποιούνται Ικανοποίηση συνθηκών Ταυτοποίηση με γεγονότα Η εκτέλεση τερματίζεται όταν: Δεν υπάρχουν άλλοι κανόνες προς πυροδότηση Κληθεί συγκεκριμένη εντολή τερματισμού (halt)

76 Κύκλος Λειτουργίας CLIPS Εύρεση όλων των κανόνων των οποίων οι συνθήκες ικανοποιούνται και προσθήκη τους στην agenda (agenda - conflict set) Αν η ατζέντα είναι κενή τότε η εκτέλεση τερματίζεται Επιλογή ενός κανόνα με βάση τη στρατηγική επίλυσης ανταγωνισμού (conflict resolution) και εκτέλεσή του Επιστροφή στο βήμα 1, εκτός αν υπάρχει εντολή τερματισμού (halt)

77 Σύνταξη του CLIPS Θυμίζει LISP Είναι Case-Sensitive Δομικά Στοιχεία: Σύμβολα, π.χ. you, why_this, good-morning Αλφαριθμητικά, π.χ. This is a String Αριθμοί, π.χ. 24,-45.6, 8e11 Σχόλια: ότι ακολουθεί τον χαρακτήρα ; Μεταβλητές Μονότιμες π.χ.?var,?x Πολλαπλών Τιμών π.χ. $?fruits, $?shopping

78 Μεταβλητές Εμφανίζονται Στις συνθήκες ενός κανόνα Στις ενέργειες ενός κανόνα Παίρνουν τιμές Κυρίως στις συνθήκες των κανόνων μέσω της διαδικασίας ταυτοποίησης Η ανάθεση τιμής σε μεταβλητή στις ενέργειες ενός κανόνα είναι δυνατή με τη χρήση κατάλληλης συνάρτησης, αλλά καλό είναι να αποφεύγεται Η εμβέλεια των μεταβλητών περιορίζεται στον κανόνα που αυτές εμφανίζονται

79 Γεγονότα Λίστες από σύμβολα που περικλείονται σε παρενθέσεις π.χ. (name John Papas) (shopping_list cheese wine bread book) (days Monday Friday Sunday) Κάθε γεγονός έχει μοναδικό αριθμό-ταυτότητα (fact index) που καθορίζεται αυτόματα Εμφάνιση γεγονότων CLIPS> (facts) f-0 (name John Papas) for a total of 1 fact.

80 Εισαγωγή Γεγονότων Με τη χρήση της εντολής assert (assert <fact>) CLIPS> (assert (gift book)) <Fact-0> CLIPS> (facts) f-0 (gift book) for a total of 1 fact. CLIPS> (assert (day Monday) (phone )) CLIPS> (facts) f-0 (gift book) f-1 (day Monday) f-2 (phone ) for a total of 3 facts.

81 Εισαγωγή Γεγονότων Με τη χρήση της εντολής deffacts (μαζί με reset) (deffacts <name> comments (<fact1>) (<fact2>) (<fact n>) )

82 Εντολή deffacts CLIPS> (deffacts colours this is to insert some colours (colour red)(colour blue)(colour green)) CLIPS> (reset) CLIPS> (facts) f-0 (initial-fact) f-1 (colour red) f-2 (colour blue) f-3 (colour green) for a total of 4 facts. CLIPS> (facts 2) f-2 (colour blue) f-3 (colour green) for a total of 2 facts.

83 Επιτρέπονται διπλά γεγονότα? CLIPS> (assert (name nick)) <Fact-0> CLIPS> (facts) f-0 (name nick) For a total of 1 facts. CLIPS> (assert (name nick)) FALSE CLIPS> (facts) f-0 (name nick) For a total of 1 facts.

84 Διαγραφή Γεγονότων Χρήση της εντολής (retract) (retract <fact-index>) CLIPS> (retract 1 3) CLIPS> (facts) f-0 (initial-fact) f-2 (colour blue) for a total of 2 facts. CLIPS> (retract 1) [PRNUTIL1] Unable to find fact-1 Χρήση της εντολής (clear)

85 Παρακολούθηση Προσθήκης και Διαγραφής Γεγονότων Χρήση της εντολής (watch facts) CLIPS> (watch facts) CLIPS> (assert (age 23)) ==> f-0 (age 23) <Fact-0> CLIPS> (reset) <== f-0 (age 23) ==> f-0 (initial-fact) CLIPS> (assert (mobile )) ==> f-1 (mobile ) <Fact-1> CLIPS> (retract 1) <== f-1 (mobile ) CLIPS> (facts) f-0 (initial-fact) for a total of 1 fact.

86 Κανόνες Μορφή: if (Συνθήκες) then (Ενέργειες) Συνθήκες: Γεγονότα & Μεταβλητές Ενέργειες: Πράξεις (εντολές) μετά την ενεργοποίηση του κανόνα Σημασία: Εάν ικανοποιούνται οι συνθήκες (δηλαδή ταυτοποιούνται με τη λίστα γεγονότων) Τότε εκτέλεσε τις ενέργειες

87 Κανόνες Σύνταξη: (defrule <όνομα κανόνα> <σχόλια> (<συνθήκη 1>) (<συνθήκη n>) => (<εντολή 1>) (<εντολή m>) )

88 Κανόνες Παράδειγμα (defrule soccer-time Warns for your soccer time (day sunday) (time afternoon) => (assert (go for soccer)))

89 Ταυτοποίηση

90 Ταυτοποίηση

91 Build-in Συναρτήσεις Βασικές Αριθμητικές Συναρτήσεις (+ <ορίσματα>) (- <ορίσματα>) (* <ορίσματα>) (/ <ορίσματα>) Συναρτήσεις σύγκρισης αριθμών (= <ορίσματα>) (< <ορίσματα>) (>= <ορίσματα>) (> <ορίσματα>) (<= <ορίσματα>) (<> <ορίσματα>) Οι ακόλουθες συναρτήσεις επιστρέφουν TRUE (>= ) (<= ) (<> 3 5)

92 Λογικές Συναρτήσεις Δυνατότητα να εκφραστούν πολύπλοκες συνθήκες κανόνων (and <ορίσματα>) (or <ορίσματα>) (not <όρισμα>) (eq <ορίσματα>) (neq <ορίσματα>) Οι ακόλουθες συναρτήσεις επιστρέφουν TRUE (and (>= 5 5) (> 3 2 1) (= 10 10)) (and (not (= 10 7)) (= 9 9))

93 Λογικές Συναρτήσεις (defrule days (month Jan mon) (or (hour 12) (hour 13)) => (assert (day is Monday noon time)) ) (defrule days (month Jan mon) (or (and (hour 12) (lunch break)) (and (hour 17) (departure time)) ) => (assert (office closed at this hour)) )

94 Συναρτήσεις εισόδου - εξόδου (printout <device> <expression>) Αποστέλλει την έκφραση <expression> στη συσκευή <device> Η συσκευή μπορεί να είναι ένα αρχείο ή η οθόνη Για οθόνη, χρησιμοποιούμε t (terminal) (printout t "The day was "?type crlf) The day was sunny Το σύμβολο crlf δηλώνει αλλαγή γραμμής

95 Συναρτήσεις εισόδου - εξόδου (read) Eισάγει σύμβολο από τo πληκτρολόγιο Συνήθως χρησιμοποιείται σε συνδυασμό με την εντολή bind, για ανάθεση τιμής σε μεταβλητή στις ενέργειες ενός κανόνα (defrule get-user-answer (initial-fact) => (printout t "What s your name: ") (bind?name (read)) (assert (user-name?name)) )

96 Ανάθεση τιμής σε μεταβλητή (bind <variable> <value>) Ανατίθεται η τιμή <value> σε μια μεταβλητή <variable> στις ενέργειες των κανόνων (defrule rule1 "example rule" (oldcost?oldcost) (newcost?newcost) => (bind?total_cost (+?newcost?oldcost)) (assert (cost?total_cost)) (printout t "The total cost is "?total_cost crlf) )

97 Έλεγχος ροής προγράμματος (while) Έστω ότι υπάρχει ένα γεγονός (num 1) Τύπωσε όλους τους αριθμούς από το 1 μέχρι το 9, με τη φράση "the num is:" σαν πρόθεμα (defrule test (num?n) => (while (<?n 10) do (printout t "the num is: "?n crlf) (bind?n (+ 1?n)) ) )

98 Έλεγχος ροής προγράμματος (if-else) Τύπωσε positive, negative ή zero, αν ο αριθμός?n είναι μεγαλύτερος, μικρότερος ή ίσος με μηδέν (defrule sign (num?n) => (if (>?n 0) then (printout t "positive" crlf)) else (if (<?n 0) then (printout t "negative" crlf) else (printout t "zero" crlf)) ) )

99 Η χρήση του not Aν εμφανίζονται μεταβλητές μέσα σε κάποιο (not...) τότε δε γίνεται ανάθεση τιμών σε αυτές (defrule wrong-rule (not (element?b)) => (printout t "not element"?b crlf) )

100 Μεγάλα/Σύνθετα Γεγονότα Σε μεγάλα προγράμματα χρειάζεται να αναπαρασταθεί η πληροφορία με μεγάλα ή σύνθετα γεγονότα Π.χ. βάση δεδομένων μαθητών: (student name <name> surname <surname> sex <sex> age <age> classes <classes>) (student name john surname ref sex male age 28 classes math physics chem)

101 Agenda και Εκτέλεση Κανόνων Όλοι οι κανόνες των οποίων οι συνθήκες ικανοποιούνται εισάγονται στην agenda Σύνολο συγκρούσεων (conflict set) Από την agenda επιλέγεται κάθε φορά 1 μόνο κανόνας, ο οποίος και πυροδοτείται με βάση 2 κριτήρια: την προτεραιότητα των κανόνων τη στρατηγική επίλυσης συγκρούσεων

102 Η Agenda ως Στοίβα Η ατζέντα συμπεριφέρεται σαν στοίβα (stack) όπου όσο μεγαλύτερη προτεραιότητα έχει ένας κανόνας τόσο πιο ψηλά βρίσκεται σε αυτή Κάθε φορά εκτελείται ο κανόνας που βρίσκεται στην κορυφή της στοίβας Ένας νέος κανόνας τοποθετείται στην ατζέντα σύμφωνα με τα ακόλουθα κριτήρια: Προτεραιότητα (salience) Στρατηγική Επίλυσης Συγκρούσεων Αυθαίρετη σειρά

103 Τοποθέτηση Κανόνα στην Agenda Οι νέοι κανόνες μπαίνουν "πάνω" από όλους τους κανόνες με μικρότερη ή ίση προτεραιότητα (salience) και "κάτω" από όλους τους κανόνες με μεγαλύτερη προτεραιότητα Στους κανόνες με ίδια προτεραιότητα χρησιμοποιείται η τρέχουσα στρατηγική επίλυσης συγκρούσεων για να καθοριστεί η σειρά τους

104 Τοποθέτηση Κανόνα στην Agenda Εάν κάποιοι κανόνες ενεργοποιήθηκαν από το ίδιο σύνολο γεγονότων και τα προηγούμενα βήματα δεν μπόρεσαν να ορίσουν μία σειρά, τότε δίνεται σε αυτούς μια αυθαίρετη σειρά (όχι τυχαία), η οποία εξαρτάται από την υλοποίηση του συστήματος

105 Προτεραιότητα Κανόνων Σύνταξη (μέσα στον ορισμό του κανόνα) (declare (salience <number>)) Παράδειγμα: (defrule cartesian (declare (salience 30)) (element?a) (element?b) => (printout t "Elements: "?a " "?b crlf))

106 Ιδιότητες Προτεραιότητας Κανόνα Είναι ακέραια αριθμητική τιμή Όσο μεγαλύτερη είναι, τόσο μεγαλύτερη είναι και η προτεραιότητα του κανόνα Οι επιτρεπτές τιμές είναι από έως Εάν δεν υπάρχει δήλωση, ο κανόνας θεωρείται ότι έχει την προκαθορισμένη τιμή μηδέν

107 Χρήση προτεραιότητας (defrule MAIN::start (declare (salience 10000)) => (set-fact-duplication TRUE) (focus QUESTIONS CHOOSE-QUALITIES WINES PRINT-RESULTS) ) (defrule MAIN::combine-certainties "" (declare (salience 100))?rem1 <- (attribute (name?rel) (value?val) (certainty?per1))?rem2 <- (attribute (name?rel) (value?val) (certainty?per2)) (test (neq?rem1?rem2)) => (retract?rem1) (modify?rem2 (certainty (/ (- (* 100 (+?per1?per2)) (*?per1?per2)) 100))) )

Λογικός Προγραµµατισµός: Η Γλώσσα Prolog

Λογικός Προγραµµατισµός: Η Γλώσσα Prolog Λογικός Προγραµµατισµός: Η Γλώσσα Prolog 1 Βασικά Στοιχεία Γλώσσας Prolog Ορισµοί (statements): Επιτελούν το ρόλο εντολών στις κλασσικές γλώσσες προγραµµατισµού Γεγονότα Κανόνες Ερωτήσεις Όροι (terms):

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

Κεφάλαιο 7. Λογικός Προγραμματισμός: Η Γλώσσα Prolog. Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης

Κεφάλαιο 7. Λογικός Προγραμματισμός: Η Γλώσσα Prolog. Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης Κεφάλαιο 7 Λογικός Προγραμματισμός: Η Γλώσσα Prolog Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Βασικά Στοιχεία Γλώσσας Prolog Ορισμοί (statements): Επιτελούν το ρόλο εντολών στις

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

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

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

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

Οικονόμου Παναγιώτης. Οι διαφάνειες παρουσιάζονται κατόπιν άδειας της Δρ. Ελπινίκης Παπαγεωργίου.

Οικονόμου Παναγιώτης.  Οι διαφάνειες παρουσιάζονται κατόπιν άδειας της Δρ. Ελπινίκης Παπαγεωργίου. Οικονόμου Παναγιώτης panawths@gmail.com poikonomou@teilam.gr Οι διαφάνειες παρουσιάζονται κατόπιν άδειας της Δρ. Ελπινίκης Παπαγεωργίου. Οικονόμου Παναγιώτης 1 CLIPS Παπαγεωργίου. 2 C Language Integrated

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

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

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

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

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο κέλυφος ανάπτυξης έµπειρων συστηµάτων του CLIPS

Εισαγωγή στο κέλυφος ανάπτυξης έµπειρων συστηµάτων του CLIPS Εισαγωγή στο κέλυφος ανάπτυξης έµπειρων συστηµάτων του CLIPS Το περιβάλλον του CLIPS Πανεπιστήµιο Πατρών 2 Τι είναι το CLIPS To CLIPS µπορεί να θεωρηθεί σαν ένα γενικό εργαλείο ανάπτυξης συστηµάτων λογισµικού.

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

CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης

CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης Ιστορία της CLIPS CLIPS = C Language Integrated Production System Αναπτύχθηκε στη NASA τη δεκαετία του 1980 Η γλώσσα υλοποίησης είναι η C Yποστηρίζει

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

Rule Based systems Συστήματα Βασισμένα σε κανόνες

Rule Based systems Συστήματα Βασισμένα σε κανόνες Rule Based systems Συστήματα Βασισμένα σε κανόνες Τμήματα ενός έμπειρου συστήματος βασισμένου σε κανόνες Βάση Γνώσης (Κανόνες) Μηχανισμός Εξαγωγής Συμπερασμάτων Χώρος Εργασίας (Γεγονότα) Μηχανισμός Επεξήγησης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π2 Το Σύστηµα Κανόνων CLIPS

Π2 Το Σύστηµα Κανόνων CLIPS ΠΑΡΑΡΤΗΜΑ 2 Π2 Το Σύστηµα Κανόνων CLIPS Το CLIPS (C Language Integrated Production System) είναι ένα περιβάλλον που προσφέρει δυνατότητες για προγραµµατισµό µε κανόνες, αντικείµενα και συναρτήσεις. Αναπτύχθηκε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

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

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

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

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

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

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

Π1 Το Σύστηµα Κανόνων CLIPS

Π1 Το Σύστηµα Κανόνων CLIPS Π1 Το Σύστηµα Κανόνων CLIPS Το CLIPS (C Language Integrated Production System είναι ένα περιβάλλον που προσφέρει δυνατότητες για προγραµµατισµό µε κανόνες, αντικείµενα και συναρτήσεις. Αναπτύχθηκε από

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΗΡΙΟ CLIPS ΑΣΚΗΣΗ 6

ΕΡΓΑΣΗΡΙΟ CLIPS ΑΣΚΗΣΗ 6 ΑΣΚΗΣΗ 6 Πρωταρχική μέθοδος αναπαράστασης γνώσης στο CLIPS είναι οι κανόνες. Στις δύο προηγούμενες εργαστηριακές ασκήσεις είδαμε κανόνες με τρεις τύπους συνθηκών: Συνθήκες Προτύπου, Συνθήκες Διεύθυνσης

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

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

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Εισαγωγή - 1 Μία κλασσική γλώσσα προγραμματισμού αποτελείται από: Εκφράσεις (των

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

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

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

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

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

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

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

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

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

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

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

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

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

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

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η χρήση των βασικών τελεστών της Γλώσσας Προγραµµατισµού C : αριθµητικοί τελεστές, τελεστές

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

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

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

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

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

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

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

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

οµές Επιλογής Εντολές if και switch

οµές Επιλογής Εντολές if και switch οµές Επιλογής Εντολές if και switch οµή Ελέγχου Control Structure Ένας συνδυασµός ατοµικών εντολών σε µία λογική µονάδα, όπου υπάρχει µόνο ένα σηµείο εισόδου και ένα σηµείο εξόδου. οµή Ελέγχου για Επιλογή

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ KAI ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΕΜΠΤΗ 26 ΣΕΠΤΕΜΒΡΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

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

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

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

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

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

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

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

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

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

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

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

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

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

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

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

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

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

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

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

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

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

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο Εισαγωγή - Βασικές έννοιες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Αλγόριθμος Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων

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