Ergasthriak 'Askhsh 3

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

Download "Ergasthriak 'Askhsh 3"

Transcript

1 Kefˆlaio 3 Ergasthriak 'Askhsh 3 Οπου θα δούμε τις λογικές συναρτήσεις και θα εμβαθύνουμε λίγο περισσότερο στις λίστες και τις μεταβλητές. 3.1 Logikèc Sunart seic Οι λογικές συναρτήσεις (logical ή boolean functions 1 ) είναι οι συναρτήσεις εκείνες των οποίων οι είσοδοι και οι έξοδοι είναι τιμές αλήθειας, δηλαδή T ή NIL. Πιο τυπικά, μια λογική συνάρτηση είναι μια αντιστοιχία f : B k B, με το B k εννοούμε B B... B }{{} k forèc, όπου B = {T, NIL} και k : k Z, k 0 (επομένως, k {0} Z + ) είναι η τάξη (arity) της συνάρτησης και εκφράζει το πλήθος των ορισμάτων της (πλήθος συνόλων που συμμετέχουν στο καρτεσιανό γινόμενο που ορίζει το πεδίο ορισμού της). Επομένως, αν θεωρήσουμε για f την and τριών εισόδων (έχει τάξη ίση με τρία), θα μπορούσαμε να πούμε ότι f(t, T, T ) = T, ενώ f(t, T, NIL) = NIL, αφού για την and ισχύει ότι εάν έστω και μία είσοδος είναι NIL, δηλαδή False, τότε και η έξοδος είναι NIL. Για να το καταλάβετε, αρκεί να τις αντιμετωπίσετε όπως τις λογικές συναρτήσεις που χρησιμοποιούμε σε τομείς όπως η Λογική Σχεδίαση, με τη μόνη διαφορά ότι αντί για 0, 1 εδώ χρησιμοποιούμε NIL, T, αντίστοιχα 2. Βέβαια, δεν πρέπει να ξεχνάμε την prefix notation που έχουμε ήδη δει ότι είναι πανταχού παρούσα στη Lisp. Στη Lisp, θα καλούσαμε την παραπάνω λογική συνάρτηση ως (and T T T) και (and T T NIL) για τα αντίστοιχα παραδείγματα. Να τα καλέσετε κι εσείς για να αρχίσετε να εξοικειώνεστε. Οι βασικές λογικές συναρτήσεις είναι η and, η or και η not. Με χρήση αυτών μπορείτε να υλοποιήσετε και όλες τις υπόλοιπες γνωστές λογικές συναρτήσεις όπως η nand και η xor. Για παράδειγμα: 1 Proc tim n enìc BretanoÔ majhmatikoô, efeurèth thc Boolean Algebra, tou George Boole pou èzhse to 19o ai na [ ]. 2 Gi autì tic kaloôme tìso logikèc ìso kai boolean sunart seic, afoô kai sth Logik SqedÐash oi duadikèc timèc 0, 1 paðzoun to rìlo twn tim n yeôdouc kai al jeiac, antðstoiqa kai ìqi to sun jh arijmhtikì touc rìlo. Opìte, na èqete up ìyin sac ìti den upˆrqei kamða ousiastik diaforˆ.

2 24 Εργαστηριακή Άσκηση 3 nand(x, y) = (x y) xor(x, y) = (x y) (y x) Να ορίσετε τις λογικές συναρτήσεις nand, xor και nor (not or), χρησιμοποιώντας τις τρεις βασικές λογικές συναρτήσεις (όποιες χρειάζονται κάθε φορά). Να τις τρέξετε με διάφορες εισόδους για να επιβεβαιώσετε την ορθή λειτουργία τους (θα σας βοηθούσε να κατασκευάσετε τους πίνακες αληθείας τους). Η λογική συνάρτηση nand καλείται λογικά πλήρης (logically complete), ε- πειδή, παίρνοντας διάφορους συνδυασμούς αυτής, μπορούμε να κατασκευάσουμε όλες τις άλλες λογικές συναρτήσεις. Για παράδειγμα, δοκιμάστε τον ακόλουθο όχι και τόσο συνηθισμένο ορισμό της not: (defun not2 (x) (nand x x)) και βεβαιωθείτε ότι κατανοείτε τον τρόπο με τον οποίο λειτουργεί. Οι νόμοι του DeMorgan (γνωστοί και ως θεώρημα του DeMorgan) είναι κανόνες της τυπικής λογικής (formal logic) που συσχετίζουν ζεύγη δυαδικών λογικών τελεστών (συγκεκριμένα των and και or δύο εισόδων), με ένα συστηματικό τρόπο και με τη βοήθεια του λογικού τελεστή not. Με αυστηρούς μαθηματικούς όρους το θεώρημα λέει ότι κάθε ένας απ τους ακόλουθους τύπους είναι λογικά ισοδύναμος με τον διπλανό του και μπορεί να μετασχηματιστεί σε αυτόν (και προς τις δύο κατευθύνσεις): (p q) ( p) ( q) (p q) ( p) ( q) Να ορίσετε δύο συναρτήσεις check-de-morgan1 και check-de-morgan2, οι οποίες θα ελέγχουν την ισχύ των νόμων του DeMorgan (μία για τον καθένα). (Υπόδειξη: Θα υλοποιήσετε και τα δύο μέλη κάθε ισοδυναμίας και θα ελέγχετε με την eql αν είναι ίδια τα αποτελέσματα που επιστρέφουν). 3.2 Peraitèrw Qeirismìc List n PUSH kai POP Είδαμε στο προηγούμενο εργαστήριο ότι μπορούμε να χρησιμοποιήσουμε τις συναρτήσεις cons, append και list για να κατασκευάσουμε λίστες. Βέβαια, οι συναρτήσεις αυτές μπορούν μεν να κατασκευάζουν λίστες, αλλά η λίστα που επιστρέφουν κάθε φορά θα χάνεται, αν δε χρησιμοποιήσουμε τη συνάρτηση setf για να την αναθέσουμε σε μία μεταβλητή. Υπάρχουν δύο συναρτήσεις, η PUSH και η POP οι οποίες μπορούν και να αποθηκεύουν το αποτέλεσμα 3. (push new first element a symbol bound to a list ) Παίρνει σαν ορίσματα ένα στοιχείο και ένα σύμβολο ήδη δεσμευμένο σε μία λίστα. Επιστρέφει μία νέα λίστα ακριβώς όπως και η cons, μόνο που επιπλέον αναθέτει τη λίστα αυτή στο σύμβολο (το 2ο όρισμά της). 3 MporeÐ na qrhsimopoioôntai spˆnia, allˆ eðnai kalì na tic èqete up ìyin sac.

3 3.2 Περαιτέρω Χειρισμός Λιστών 25 (pop a symbol bound to a list ) Παίρνει σαν ορίσμα ένα σύμβολο ήδη δεσμευμένο σε μία λίστα. Επιστρέφει το πρώτο στοιχείο της λίστας και την υπόλοιπη την αναθέτει στο σύμβολο. Λόγω των αυτόματων αναθέσεων που πραγματοποιούν οι δύο αυτές συναρτήσεις, είναι απαραίτητο να τους δίνουμε ως όρισμα ένα σύμβολο που έχει δεσμευτεί σε λίστα και όχι απλώς μια λίστα, καθώς στη δεύτερη περίπτωση οι συναρτήσεις δε θα βρίσκουν μεταβλητή/σύμβολο για να αναθέσουν το αποτέλεσμα. Ο ακόλουθος διάλογος θα σας βοηθήσει να εξοικειωθείτε με τις push και pop: > (setf new-front a list-to-be-changed (b c)) > (push new-front list-to-be-changed) > list-to-be-changed > (pop list-to-be-changed) > list-to-be-changed REVERSE Η συνάρτηση REVERSE ορίζεται ως εξής: (reverse a list ) Παίρνει για όρισμα μία λίστα και επιστρέφει τη λίστα ανεστραμμένη. Να δοκιμάσετε τα ακόλουθα παραδείγματα: 1. (reverse (one two three four five) 2. (reverse (e v i l)) 3. (reverse ((first list) (second list) (third list))) 4. (reverse live) 5. (reverse (one-element-cannot-be-reversed)) 6. > (setf a-list (a b c d)) > (reverse a-list) > a-list > (defun store-reverse (x) (setf a-list (reverse x))) > (store-reverse (a b c d)) > a-list Απ το Παράδειγμα 6 αξίζει να παρατηρήσουμε ότι η reverse δεν αλλάζει την τιμή καμίας μεταβλητής ούτε τροποποιεί κάποιο απ τα cons cells που αναπαριστούν τη λίστα εσωτερικά. Για το λόγο αυτό καλείται nondestructive function (και η append για τον ίδιο λόγο είναι μία nondestructive function). Για να καταλάβουμε τί πραγματικά γίνεται εσωτερικά, ας εξετάσουμε λίγο την append. Οταν της δώσουμε σαν ορίσματα τις λίστες (a b c) και (d e), αντιγράφει την πρώτη είσοδο, αλλά όχι τη δεύτερη. Εν συνεχεία, κάνει τη δεύτερη θέση μνήμης του τελευταίου κελιού της λίστας που αντέγραψε να δείχνει στην πρώτη θέση μνήμης του πρώτου κελιού της λίστας που δεν αντέγραψε και που ήταν το δεύτερο όρισμά της (Μελετήστε το Σχήμα 3.1 για να το καταλάβετε). Μετά απ αυτή τη συζήτηση είμαστε

4 26 Εργαστηριακή Άσκηση 3 Σχήμα 3.1: Η εσωτερική αναπαράσταση του τύπου (append (a b c) (d e)). Παρατηρήστε το κάτω αντίγραφο της πρώτης εισόδου. Η δεύτερη θέση μνήμης του τελευταίου του κελιού δείχνει στην πρώτη θέση μνήμης του πρώτου κελιού της δεύτερης εισόδου (που δεν έχει αντιγραφεί αλλά είναι η αρχική). Ετσι δημιουργείται μία νέα λίστα (αλυσίδα από cons cells) που ξεκινάει απ το κάτω A και καταλήγει στο NIL. Αυτή δεν είναι άλλη απ τη λίστα (a b c d e). σε θέση να κατανοήσουμε το λόγο για τον οποίο ο τύπος (append a (b c d)) προκαλεί σφάλμα, ενώ αντίθετα ο (append (b c d) a) δεν προκαλεί αλλά ε- πιστρέφει (b c d. a). Στην πρώτη περίπτωση, η append προσπαθώντας να αντιγράψει τα cons cells που συνθέτουν το πρώτο όρισμά της, αποτυγχάνει, και αυτό συμβαίνει διότι το πρώτο όρισμά της δεν είναι λίστα, επομένως δεν συντίθεται από cons cells. Αντίθετα, στη δεύτερη περίπτωση το πρώτο όρισμα είναι λίστα επομένως αντιγράφεται κανονικά και το dotted pair (b c d. a) προκύπτει απλώς διότι η δεύτερη θέση μνήμης του τελευταίου κελιού της αντεγραμμένης λίστας αντί να δείχνει σε κάποιο (cons cell) το οποίο να δείχνει με τη σειρά του στο NIL (αυτή θα ήταν η φυσιολογική περίπτωση του τύπου (append (b c d) (a))), δείχνει απ ευθείας σε ένα σύμβολο. Να ορίσετε μία δική σας συνάρτηση, ονόματι add-to-end, η οποία θα έχει ως εξής: (add-to-end element list ) Παίρνει σαν ορίσματα ένα στοιχείο και μία λίστα και επιστρέφει τη λίστα έχοντας προσθέσει το στοιχείο στο τέλος της (λέγοντας στοιχείο εννοούμε οποιαδήποτε s-expression). και για να το κάνει αυτό θα χρησιμοποιεί υποχρεωτικά τη συνάρτηση reverse, καθώς και όποια συνάρτηση κατασκευής λιστών θεωρείτε ότι ταιριάζει. Α- φού την υλοποιήσετε με αυτό τον τρόπο, υλοποιήστε τη με μία μόνο append. Ο τελευταίος τρόπος είναι και ο πιο αποδοτικός, αφού δημιουργεί μόνο ένα αντίγραφο της λίστας (εσωτερικά), ενώ ο προηγούμενος δημιουργεί δύο.

5 3.2 Περαιτέρω Χειρισμός Λιστών NTH kai NTHCDR Η συνάρτηση NTHCDR επιστρέφει το επίθεμα n μίας λίστας, δηλαδή το επίθεμα εκείνο της λίστας που ξεκινάει απ τη θέση n. Το επίθεμα 0 είναι όλη η λίστα, το 1 είναι η λίστα χωρίς το 1ο της στοιχείο, ενώ το επίθεμα n είναι η λίστα χωρίς τα πρώτα της n στοιχεία. Μπορείτε να το καταλάβετε ακόμα πιο καλά, αν σκεφτείτε τη λίστα ως cons cells και παρατηρήσετε ότι η nthcdr σας μεταφέρει στη δεύτερη θέση μνήμης του n-οστού cons cell που δεν είναι τίποτα άλλο από ένας δείκτης που δείχνει στην πρώτη θέση μνήμης του cons cell υπ αριθμόν n + 1. Επομένως αν την καλέσετε με πρώτο όρισμα τον αριθμό 1, σας πάει στον δείκτη του πρώτου cons cell, ο οποίος δείχνει στα περιεχόμενα του δεύτερου cons cell που δεν είναι άλλα απ το δεύτερο στοιχείο της λίστας. Για το λόγο αυτό σας επιστρέφεται η λίστα που είχατε δώσει ως δεύτερο όρισμα στη nthcdr από το δεύτερο στοιχείο της και μετά, χωρίς δηλαδή το πρώτο της στοιχείο. Η συνάρτηση ορίζεται ως εξής: (nthcdr a number a list ) Παίρνει σαν ορίσματα έναν αριθμό, έστω n, και μία λίστα και επιστρέφει το επίθεμα n της λίστας. Να καλέσετε την nthcdr με δεύτερο όρισμα μία λίστα n στοιχείων (το n της επιλογής σας) και πρώτο όρισμα τον αριθμό n (π.χ. μία λίστα 5 στοιχείων και τον αριθμό 5). Πώς εξηγείτε το αποτέλεσμα με βάση τα όσα είπαμε για τον τρόπο με τον οποίο λειτουργεί η nthcdr; Να αποτιμήσετε τους ακόλουθους τύπους: 1. (nthcdr 0 (a b c d e)) 2. (nthcdr 1 (a b c d e)) 3. (nthcdr 4 (a b c d e)) 4. (nthcdr 5 (a b c d e)) 5. (nthcdr 9 (a b c d e)) Στο ακόλουθο παράδειγμα η λίστα που δίνουμε σαν όρισμα είναι ένα dotted pair, επομένως, ο τελευταίος δείκτης στην αλυσίδα από cons cells που την αναπαριστά δείχνει σε ένα άτομο και όχι στο NIL. Να το τρέξετε για να δείτε τί αποτέλεσμα μας επιστρέφει η Lisp. (nthcdr 4 (a b c. d)) Η συνάρτηση NTH επιστρέφει το πρώτο στοιχείο του n επιθέματος μιας λίστας. (nth a number a list ) Παίρνει σαν ορίσματα έναν αριθμό, έστω n, και μία λίστα και επιστρέφει το πρώτο στοιχείο του επιθέματος n της λίστας. Πιο απλά, μπορούμε να πούμε ότι επιστρέφει το πρώτο στοιχείο της λίστας που θα επέστρεφε η nthcdr, αν είχε κληθεί με τα ίδια ορίσματα. Μετά την παραπάνω συζήτηση μπορούμε εύκολα να ορίσουμε μόνοι μας την my-nth, τη δική μας δηλαδή εκδοχή για την nth, ως εξής: (defun my-nth (n x) "My version of nth function" (first (nthcdr n x)))

6 28 Εργαστηριακή Άσκηση 3 Αφού ορίσετε την my-nth στο Listener, να αποτιμήσετε τους ακόλουθους τύπους (στους δύο τελευταίους να διαβάσετε προσεκτικά τα μηνύματα των σφαλμάτων): 1. (my-nth 0 (a b c d)) 2. (nth 0 (a b c d)) 3. (my-nth 3 (a b c d)) 4. (nth 3 (a b c d)) 5. (my-nth 5 (a b c d)) 6. (nth 5 (a b c d)) 7. (my-nth 2 a) 8. (nth 2 a) BUTLAST Η συνάρτηση BUTLAST παίρνει σαν όρισμα μία λίστα και επιστρέφει τη λίστα χωρίς το τελευταίο της στοιχείο. (butlast a list ) Παίρνει σαν όρισμα μία λίστα και επιστρέφει τη λίστα χωρίς το τελευταίο της στοιχείο. Δοκιμάστε τους ακόλουθους τύπους: 1. (butlast (a b c this-will-be-removed)) 2. (butlast (list)) 3. (butlast ((list))) 4. (butlast ()) 5. (butlast (nthcdr 3 (a b c this-will-be-removed))) LAST Η LAST παίρνει σαν όρισμα μία λίστα και επιστρέφει μια νέα λίστα που περιέχει μόνο το τελευταίο στοιχείο της λίστας που πήρε σαν όρισμα. Για να είμαστε πιο ακριβείς, μπορούμε να πούμε ότι επιστρέφει το cons cell του οποίου το car (αριστερή θέση μνήμης κελιού) είναι το τελευταίο στοιχείο της λίστας. (last a list ) Παίρνει σαν όρισμα μία λίστα και επιστρέφει μια νέα λίστα με ένα μόνο στοιχείο, που είναι το τελευταίο στοιχείο της λίστας την οποία πήρε ως όρισμα. Τί τιμή επιστρέφουν οι παρακάτω τύποι; 1. (last (this is a list)) 2. (last (list)) 3. (last ()) 4. (last nil) 5. (last (a b c. d)) 6. (last ((this is strange-can you find out why?))) 7. (last Produces-an-error-Read-the-error-message)

7 3.2 Περαιτέρω Χειρισμός Λιστών REMOVE Τη REMOVE την έχουμε ήδη δει. Αυτό που κάνει είναι να αφαιρεί ένα στοιχείο από μία λίστα και μάλιστα να αφαιρεί όλες τις εμφανίσεις του στοιχείου από τη λίστα αυτή 4. Το αποτέλεσμα που επιστρέφεται απ τη remove είναι μία νέα λίστα που δεν περιέχει τα διεγραμμένα στοιχεία. (remove element to remove a list ) Παίρνει σαν όρισμα μία λίστα και ένα στοιχείο και διαγράφει όλες τις εμφανίσεις του στοιχείου από τη λίστα επιστρέφοντας με μία νέα λίστα το αποτέλεσμα. Να αποτιμήσετε τους παρακάτω τύπους: 1. (remove e (E v e r y o c c u r e n c e o f t h e l e t t e r e w i l l b e l o s t)) 2. (remove f (r f e v f e a f l f e f d)) 3. (remove 1 ( )) 4. (remove nothing-left (nothing-left)) 5. (remove everything-left ((everything-left))) Ο ακόλουθος διάλογος με τη Lisp θα σας βοηθήσει να καταλάβετε γιατί λέμε ότι και η remove είναι μία nondestructive συνάρτηση: > (setf bounded-symbol (some letters will be temporaly removed)) > (remove e bounded-symbol) > bounded-symbol Οι ακόλουθες ασκήσεις θα σας βοηθήσουν να εξοικειωθείτε ακόμα περισσότερο με το χειρισμό των λιστών: 1. Να ορίσετε μία συνάρτηση, ονόματι change-first, η οποία θα αλλάζει το πρώτο στοιχείο μιας λίστας με ένα στοιχείο της επιλογής σας. Θα παίρνει επομένως δύο ορίσματα, ένα στοιχείο και μια λίστα και θα αλλάζει το πρώτο στοιχείο της λίστας με το στοιχείο που δώσατε ως όρισμα. 2. Προσπαθήστε, χωρίς να την τρέξετε, να καταλάβετε τί κάνει η ακόλουθη συνάρτηση: (defun change-n (x n y) (append (reverse (cons x (nthcdr (- (length y) (- n 1)) (reverse y)))) (nthcdr n y))) Εν συνεχεία, για να την κατανοήσετε καλύτερα, να τρέξετε κάθε τύπο που την αποτελεί ξεχωριστά. Τέλος, τρέξτε τη συνάρτηση για διάφορετικές εισόδους και παρατηρήστε τα αποτελέσματα. Κάνει τελικά αυτό που αναμένατε; 4 Ja doôme argìtera ìti mporoôme na thc zht soume na afairèsei mìno orismènec emfanðseic.

8 30 Εργαστηριακή Άσκηση 3 3. Να ορίσετε μία συνάρτηση, ονόματι my-butlast, η οποία θα είναι η δική σας εκδοχή της συνάρτησης butlast. Θα παίρνει δηλαδή σαν όρισμα μία λίστα και θα την επιστρέφει χωρίς το τελευταίο της στοιχείο. 4. Να ορίσετε μία συνάρτηση, ονόματι palindrome, η οποία θα ανιχνεύει τις παλίνδρομες λίστες. Μία παλίνδρομη λίστα είναι μια λίστα τις οποίας τα στοιχεία διαβάζονται το ίδιο τόσο από αριστερά τόσο και από δεξιά. Για παράδειγμα, η λίστες (a b c d c b a) και (hello world central-point world hello) είναι παλίνδρομες, ενώ η λίστα (a b c a b c) δεν είναι. Ε- πομένως, η συνάρτησή σας θα πρέπει να παίρνει σαν όρισμα μία λίστα και να απαντάει με T αν η λίστα είναι παλίνδρομη, ενώ αντίθετα με NIL εάν δεν είναι. 5. Ποιά primitive συνάρτηση θεωρείτε ότι ορίζει η παρακάτω συνάρτηση; (defun unknown-function (x) (first (last (reverse x)))) 3.3 Oi lðstec wc sônola Ως γνωστών, ένα σύνολο (set) είναι μία συλλογή ξεχωριστών αντικειμένων που την αντιλαμβανόμαστε ως μία ολότητα. Επομένως, εξ ορισμού, στα σύνολα δε μας ενδιαφέρει η διάταξη και κάθε αντικείμενο μπορεί να εμφανίζεται μόνο μία φορά. Τα στοιχεία του συνόλου καλούνται μέλη (members). Οι ημέρες της εβδομάδας, για παράδειγμα, αποτελούν ένα σύνολο το ίδιο και οι ακέραιοι αριθμοί (άπειρο σύνολο). Πρέπει να είναι προφανές ότι οι λίστες δεν είναι σύνολα έχουμε δει ότι διαφορετικές διατάξεις δημιουργούν διαφορετικές λίστες και ότι τα στοιχεία της λίστας μπορούν να επαναλαμβάνονται. Βέβαια, αυτό δεν μας απαγορεύει να χρησιμοποιήσουμε τις λίστες για να κατασκευάζουμε σύνολα. Αναμφίβολα, τα σύνολα είναι ένας απ τους πιο χρήσιμους τύπους δεδομένων που μπορεί να κατασκευάσει κάποιος χρησιμοποιώντας τις λίστες. Οι βασικές πράξεις που μπορούμε να εκτελέσουμε σε ένα σύνολο είναι ο έλεγχος για το εάν ένα αντικείμενο είναι μέλος του συνόλου (member), η ένωση δύο συνόλων (union), η τομή τους (intersection), η διαφορά τους (set-difference) και τέλος ο έλεγχος του εάν ένα σύνολο είναι υποσύνολο κάποιου άλλου συνόλου (subsetp). Στη συνέχεια περιγράφουμε τις primitive συναρτήσεις της Lisp για τις παραπάνω πράξεις MEMBER Η MEMBER είναι στην ουσία ένα κατηγόρημα (predicate), το οποίο ελέγχει εάν ένα αντικείμενο είναι στοιχείο μιας λίστας. Εάν το αντικείμενο βρεθεί μες στη λίστα, τότε επιστρέφεται το επίθεμα της λίστας που ξεκινάει απ το αντικείμενο αυτό. Εάν το αντικείμενο εμφανίζεται περισσότερες από μία φορές, περίπτωση κατά την οποία μιλάμε αμιγώς για λίστα και όχι για σύνολο, τότε επιστρέφεται το επίθεμα που ξεκινάει απ την πρώτη εμφάνιση του αντικειμένου (ο έλεγχος γίνεται από αριστερά προς τα δεξιά). Αν δε βρεθεί το αντικείμενο, η member επιστρέφει NIL 5. 5 H member den eðnai akrib c kathgìrhma, kaj c den epistrèfei potè thn tim T. EÐjistai, pˆntwc, na prosmetrˆtai wc kathgìrhma.

9 3.3 Οι λίστες ως σύνολα 31 Να αποτιμήσετε τους ακόλουθους τύπους: 1. (member y (a b c d e)) 2. (member 1 (3 b 1 d e)) 3. (member b (remove b (3 b 1 b d e b b b))) 4. (member b (last (3 b 1 b d e b b b))) 5. (first (member b (last (3 b 1 b d e b b b)))) Να ορίσετε μία συνάρτηση before η οποία θα καλείται ως εξής: (before element 1 element 2 a list ) Παίρνει ως ορίσματα δύο στοιχεία και μία λίστα και ελέγχει εάν το πρώτο όρισμα εμφανίζεται πριν το δεύτερο (από αριστερά) στη λίστα. Θα πρέπει να χρησιμοποιήσετε δύο φορές τη συνάρτηση member. Αφού την ορίσετε να πειραματιστείτε με τη λίστα (and therefore never send to know for whom the bell tolls-it tolls for thee) INTERSECTION Η συνάρτηση INTERSECTION παίρνει ως ορίσματα δύο σύνολα, πάντα υπό την μορφή λιστών, και επιστρέφει την τομή τους, ένα σύνολο, δηλαδή, με τα στοιχεία που εμφανίζονται και στα δύο σύνολα. Η σειρά με την οποία θα επιστραφούν τα στοιχεία είναι ακαθόριστη και εξ άλλου δε μας ενδιαφέρει, αφού μιλάμε για σύνολα. Στα ακόλουθα, να αποτιμήσετε τους τύπους και να απαντήσετε στις ερωτήσεις: 1. (intersection (c++ java lisp prolog) (c asp php lisp prolog haskell)) 2. (intersection (b c f a) (c a b d)) 3. Ποιό είναι το αποτέλεσμα της τομής ενός συνόλου με το NIL; 4. Ποιό είναι το αποτέλεσμα της τομής ενός συνόλου με τον εαυτό του; UNION Η συνάρτηση UNION επιστρέφει την ένωση δύο συνόλων. Αν ένα αντικείμενο εμφανίζεται και στα δύο σύνολα, στο νέο σύνολο θα εμφανίζεται μόνο μία φορά. Επίσης, η σειρά εμφάνισης των αντικειμένων στο αποτέλεσμα είναι ακαθόριστη. Στα ακόλουθα, να αποτιμήσετε τους τύπους και να απαντήσετε στις ερωτήσεις: 1. (union (a b c d) (e f g h)) 2. (union ( ) ( )) 3. Ποιά είναι η ένωση ενός συνόλου με το NIL; 4. Ποιά είναι η ένωση ενός συνόλου με τον εαυτό του; 6 John Donne [Devotions upon Emergent Occasions, XVII, 1624]; anagrˆfetai epðshc sthn pr th selðda tou mujistor matoc Gia poiìn qtupˆ h kampˆna tou 'Ernest Qèmingoueð.

10 32 Εργαστηριακή Άσκηση SET-DIFFERENCE Η συνάρτηση SET-DIFFERENCE επιστρέφει αυτό που στη θεωρία συνόλων καλούμε σχετικό συμπλήρωμα (relative complement ή set theoretic difference) δύο συνόλων. Το σχετικό συμπλήρωμα δύο συνόλων A, B, που γράφεται ως A/B ή B A είναι ένα σύνολο, του οποίου τα μέλη είναι μέλη του B, αλλά όχι του A. Επομένως, η set-difference επιστρέφει ό,τι απομένει στο πρώτο σύνολο αν διαγραφούν απ αυτό όσα μέλη του περιέχονται και στο δεύτερο σύνολο. Η λέξη πρώτο έχει σημασία, καθώς η set-difference υλοποιεί αυστηρά την πράξη argument 1 argument 2, αν τα ορίσματα είναι σύνολα και όχι την πράξη argument 2 argument 1. Τέλος, αξίζει να αναφέρουμε ότι τα στοιχεία επιστρέφονται με αντίστροφη σειρά απ αυτή που εμφανίζονταν αρχικά στο πρώτο σύνολο, αλλά αφού μιλάμε για σύνολα δεν έχει καμία σημασία. Να αποτιμήσετε τους ακόλουθους τύπους: 1. (set-difference (d e f g ) ( )) 2. (set-difference (d e f g ) (d e f g)) 3. (set-difference (d e f g ) (a b c)) 4. (set-difference (unchanged members) ()) 5. (set-difference (everything removed) (everything removed)) SUBSETP Το κατηγόρημα SUBSETP επιστρέφει T, εάν το σύνολο που του δίνεται ως πρώτο όρισμα είναι υποσύνολο του συνόλου που του δίνεται ως δεύτερο όρισμα. Το αντίστροφο δεν ισχύει. Με πιο απλά λόγια, επιστρέφει T εάν και μόνον εάν όλα τα στοιχεία του πρώτου του ορίσματος περιέχονται στο δεύτερό του όρισμα. Να αποτιμήσετε τους ακόλουθους τύπους: 1. (subsetp (a b) (a b c d e)) 2. (subsetp (a b c d e) (a b)) 3. (subsetp (a b c) (a b d e f))) Ακολουθούν δύο γενικές ασκήσεις πάνω στα σύνολα: 1. Λέμε ότι δύο σύνολα A, B είναι ίσα εάν έχουν ακριβώς τα ίδια μέλη, δηλαδή κάθε μέλος του A να είναι μέλος του B και αντίστροφα. Να ορίσετε μία συνάρτηση, ονόματι set-equality, η οποία θα παίρνει ως ορίσματα δύο σύνολα και θα επιστρέφει T αν τα σύνολα αυτά είναι ίσα και NIL σε αντίθετη περίπτωση (Υποδείξεις: 1. Αν δύο σύνολα είναι ίσα, τότε το κάθε ένα είναι υποσύνολο του άλλου. 2. Θα χρειαστεί να χρησιμοποιήσετε τη λογική συνάρτηση and, π.χ. (and s expression 1 s expression 2 )). 2. Λέμε ότι ένα σύνολο A είναι ένα κανονικό υποσύνολο ενός συνόλου B (γράφουμε A B), εάν το A είναι υποσύνολο του B (γράφουμε A B), αλλά το A δεν είναι ίσο με το B, ή αλλιώς: A B, εάν A B και b B, τ.ω. b / A. Να ορίσετε μία συνάρτηση, ονόματι proper-subset, η οποία θα παίρνει ως ορίσματα δύο σύνολα και θα επιστρέφει T αν το πρώτο είναι γνήσιο υποσύνολο του δεύτερου, ενώ NIL εάν δεν είναι (Υπόδειξη: Εδώ θα χρειαστεί να χρησιμοποιήσετε και τη λογική συνάρτηση not).

11 3.4 Περισσότερα για τις μεταβλητές Perissìtera gia tic metablhtèc Ξεκινώντας, ας δούμε δύο ακόμα ορισμούς για τις μεταβλητές, οι οποίοι είναι πιο δόκιμοι ως προς την ορολογία που χρησιμοποιείται στη Lisp και έρχονται να συμπληρώσουν τη συζήτηση σχετικά με τις τοπικές και τις καθολικές μεταβλητές: Μία μεταβλητή είναι μία λεξικολογική μεταβλητή (lexical variable), εάν εμφανίζεται στο σώμα μίας συνάρτησης στην οποία είναι όρισμα/παράμετρος 7. Μία μεταβλητή είναι μία ειδική μεταβλητή (special variable), εάν εμφανίζεται στο σώμα μίας συνάρτησης στην οποία δεν είναι όρισμα. Εμείς, πάντως, θα συνεχίσουμε να χρησιμοποιούμε τους όρους τοπική και καθολική μεταβλητή, αναφερόμενοι σε λεξικολογικές και ειδικές μεταβλητές, αντίστοιχα H eidik sunˆrthsh LET Η ειδική συνάρτηση LET μπορεί να χρησιμοποιηθεί για τη δημιουργία τοπικών μεταβλητών. Ας δούμε πρώτα ένα παράδειγμα και εν συνεχεία θα πούμε περισσότερα για τον τυπικό τρόπο κλήσης της συνάρτησης αυτής. Εστω, ότι θέλουμε να χρησιμοποιούμε πολύ συχνά το μέσο όρο δύο αριθμών και για να μην είμαστε αναγκασμένοι να ορίζουμε ξανά και ξανά το μέσο όρο, αποφασίζουμε να δημιουργήσουμε μία συνάρτηση η οποία θα κάνει τη δουλειά για εμάς. Σκεφτόμαστε ότι αντί να υπολογίζουμε ένα τύπο της μορφής (x+y)/2, θα μπορούσαμε να αναθέτουμε το άθροισμα (αριθμητής) σε μία τοπική μεταβλητή, έστω sum και ακολούθως να υπολογίζουμε τον τύπο sum/2. Για να το κάνουμε αυτό μπορούμε να χρησιμοποιήσουμε την ειδική συνάρτηση let ως εξής: (defun average (x y) (let ((sum (+ x y))) (list The average of x and y is (/ sum 2.0)))) Να ορίσετε και να τρέξετε την παραπάνω συνάρτηση. Το σώμα της average περιέχει ένα let τύπο ο οποίος μπορεί να διαβαστεί ως εξής: Εστω ότι το sum είναι (+ x y), τότε επέστρεψε (list The average of x and y is (/ sum 2.0)). Η γενική σύνταξη της let είναι η εξής: (let ((variable 1 value 1 ) (variable 2 value 2 ). (variable n value n )) form 1. form m ) Αξίζει να παρατηρήσετε ότι το πλήθος των τύπων που ζητάμε να επιστραφούν, δηλαδή το m, είναι ανεξάρτητο απ το πλήθος των τοπικών μεταβλητών που ορίσαμε, δηλαδή το n. Επίσης, το σύνολο των m τύπων αποτελούν το σώμα της συνάρτησης. Κάθε τοπική μεταβλητή που ορίζουμε και αρχικοποιούμε με τη let έχει 7 EmeÐc ja suneqðsoume na qrhsimopoioôme ton ìro ìrisma, allˆ kalì eðnai na xèrete ìti sth bibliografða anafèretai suqnˆ kai wc parˆmetroc sunˆrthshc.

12 34 Εργαστηριακή Άσκηση 3 εμβέλεια μόνο μέχρι το τέλος της let 8. Αν αφαιρούσαμε τον τύπο του προηγούμενου παραδείγματος, (list The average of x and y is (/ sum 2.0)), απ το σώμα της let και τον τοποθετούσαμε στο σώμα της defun, τότε, όταν θα τρέχαμε τη συνάρτηση για κάποια ορίσματα, θα παίρναμε ένα μήνυμα σφάλματος, αφού η Lisp δε θα μπορούσε να εντοπίσει τιμή για τη μεταβλητή sum, μιας και θα είχε κληθεί έξω απ την εμβέλειά της. Στην πραγματικότητα, αυτό που έγινε είναι ότι, κατά τον ορισμό της συνάρτησης, η Lisp υπέθεσε ότι αναφερόμαστε σε μία ειδική μεταβλητή sum την οποία πιθανώς να έχουμε ορίσει κάπου έξω απ τον εικονικό φράχτη που δημιουργεί η defun. Ο λόγος που το υπέθεσε αυτό είναι ότι ούτε μπορεί να δει τη sum που ορίσαμε στη let γιατί είμαστε έξω απ την εμβέλειά της, ούτε βρίσκει τη sum μεταξύ των ορισμάτων της συνάτησης. Το πιο σημαντικό πράγμα που δε θα πρέπει ποτέ να ξεχνάμε όταν χρησιμοποιούμε τη let, είναι ότι αποτιμάει τους τύπους τιμών (value forms) των n μεταβλητών παράλληλα. Αυτό σημαίνει ότι πρώτα αποτιμάει όλους τους τύπους τιμών και μετά πηγαίνει να αναθέσει τις τιμές αυτές στις αντίστοιχες μεταβλητές. Εχοντας κατά νου τον τρόπο με τον οποίο αποτιμάει τους τύπους τιμών η let, προσπαθήστε να σκεφτείτε γιατί ο ακόλουθος τύπος προκαλεί ένα σφάλμα: (let ((x outside) (y x)) (list x y)) Να ορίσετε μία συνάρτηση first-last, η οποία θα παίρνει ως όρισμα μία λίστα, θα χρησιμοποιεί τη let για να ορίσει δύο τοπικές μεταβλητές και στο σώμα της θα επιστρέφει, χρησιμοποιώντας τις μεταβήτές που όρισε, μία νέα λίστα που θα περιέχει μόνο το πρώτο και το τελευταίο στοιχείο της λίστας που πήρε ως όρισμα H eidik sunˆrthsh LET Είδαμε ότι με τη let δε μπορούμε να ορίσουμε και να αρχικοποιήσουμε μία μεταβλητή και εν συνεχεία να χρησιμοποιήσουμε τη μεταβλητή αυτή ως τιμή για μία άλλη μεταβλητή που ορίζουμε με τη let. Αυτό συμβαίνει πολύ απλά διότι η let αποτιμάει πρώτα όλους τους τύπους τιμών, επομένως όταν προσπαθήσει να βρει τιμή για τη μεταβλητή αυτή, η μεταβλητή δε θα έχει ακόμα πάρει τιμή και θα προκύψει σφάλμα. Το πρόβλημα αυτό το λύνει η ειδική συνάρτηση LET η οποία αποτιμάει τους τύπους τιμών ακολουθιακά. Πιο συγκεκριμένα, αποτιμάει τον πρώτο τύπο τιμών και την τιμή που βρίσκει την αναθέτει στην πρώτη μεταβλητή, μετά αποτιμάει το δεύτερο τύπο τιμών και την τιμή που βρίσκει την αναθέτει στη δεύτερη μεταβλητή κ.ο.κ. Επομένως, παρατηρούμε ότι το παράδειγμα που δείξαμε προηγουμένως, δεν έχει κανένα λόγο να προκαλεί σφάλμα, αν αντικαταστήσουμε τη let με τη let, αφού τώρα η μεταβλητή μας θα έχει πάρει τιμή, όταν τη συναντήσει η Lisp σε έναν άλλο τύπο, και έτσι θα μπορεί να αναθέσει την τιμή της σε κάποια άλλη μεταβλητή. Να τρέξετε το παράδειγμα που οδηγούσε σε σφάλμα στην προηγούμενη υ- ποενότητα, αλλάζοντας τη let με τη let. Παρατηρείτε κάποια διαφορά; 8 Pio swstˆ ja lègame ìti h embèleiˆ thc eðnai o eikonikìc frˆqthc pou orðzetai apì th let.

13 3.4 Περισσότερα για τις μεταβλητές 35 Μπορείτε να εξηγήσετε γιατί παίρνουμε τα αντίστοιχα αποτελέσματα, τόσο στην προηγούμενη όσο και σε αυτή την περίπτωση; Ζητείστε από τη Lisp να αποτιμήσει τις μεταβλητές που ορίσατε μες στο σώμα μιας let, αλλά αφού έχετε καλέσει τη let, δηλαδή έξω απ τον εικονικό φράχτη που ορίζει. Καταλαβαίνετε γιατί τις καλούμε τοπικές μεταβλητές; Τώρα προσπαθήστε να κάνετε το αντίστροφο. Αναθέστε τιμή σε μία καθολική μεταβλητή με τη βοήθεια της setf και μετά ζητείστε από τη let να αναθέσει την τιμή της καθολικής μεταβλητής που ορίσατε σε μία άλλη τοπική μεταβλήτη (θα μπορούσατε, για παράδειγμα, να το κάνετε πάνω στο παράδειγμα που είδαμε προηγουμένως) επιτελώντας ταυτόχρονα και κάποιες άλλες λειτουργίες. Τί παρατηρείτε; Βρίσκει η Lisp τιμή για τη μεταβλητή αυτή, τη θεωρεί δηλαδή δεσμευμένη σε κάποια τιμή, ή επιστρέφει μήνυμα σφάλματος; Τί συμπέρασμα βγάζετε για τις καθολικές μεταβλητές;

Ergasthriak 'Askhsh 5

Ergasthriak 'Askhsh 5 Kefˆlaio 5 Ergasthriak 'Askhsh 5 Οπου θα εξηγήσουμε πώς μπορεί να γίνει εφικτή η επαναληπτική ε- κτέλεση μιας ενέργειας και πώς μια ενέργεια μπορεί να εφαρμοσθεί σε κάθε στοιχείο μιας λίστας στοιχείων.

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

Ergasthriak 'Askhsh 2

Ergasthriak 'Askhsh 2 Kefˆlaio 2 Ergasthriak 'Askhsh 2 Οπου θα δούμε πώς μπορούμε να ορίζουμε δικές μας διαδικασίες και θα παρουσιάσουμε τις primitive διαδικασίες χειρισμού λιστών, τις μεταβλητές και τα side effects. 2.1 P

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 1: Εισαγωγή στη Γλώσσα Lisp Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Εισαγωγή στη Lisp : 1. Εισαγωγή 2. Θεμελιώδεις

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Συναρτήσεις-Δομές Ελέγχου : 1. Συναρτήσεις Χρήστη 2. Έλεγχος Ροής Προγράμματος 3.

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 3: Ειδικές Παράμετροι-Είσοδος & Έξοδος Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Ειδικές Παράμετροι-Είσοδος & Έξοδος

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

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης Γ2.1 Στοιχεία Αρχιτεκτονικής Γ Λυκείου Κατεύθυνσης Ορισμός άλγεβρας Boole Η άλγεβρα Boole ορίζεται, ως μία αλγεβρική δομή A, όπου: (α) Το Α είναι ένα σύνολο στοιχείων που περιέχει δύο τουλάχιστον στοιχεία

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

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

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

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

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 ΑΠΛΟΠΟΙΗΣΗ και ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ Σκοπός: Η κατανόηση της σχέσης µιας λογικής συνάρτησης µε το αντίστοιχο κύκλωµα. Η απλοποίηση λογικών συναρτήσεων

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές 12 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1 GROUP I A Λ ΤΡΙΤΗ PC-Lab GROUP IΙ Μ Ω ΠΑΡΑΣΚΕΥΗ Central Κέντρο

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

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3 ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Κεφάλαιο 3 Δυαδική λογική Με τον όρο λογική πρόταση ή απλά πρόταση καλούμε κάθε φράση η οποία μπορεί να χαρακτηριστεί αληθής ή ψευδής με βάση το νόημα της. π.χ. Σήμερα

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

K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων

K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 4 Ένα ψηφιακό κύκλωμα με n εισόδους

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

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Λογικές πύλες Περιεχόμενα 1 Λογικές πύλες

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

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

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

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

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

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

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

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

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

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 4. ΑΛΓΕΒΡΑ BOOLE ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΜΕΡΟΣ Α 2 Άλγεβρα

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

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

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσμία: 17/1/14, 22:00 Περιεχόμενα Διαδικαστικά Οδηγίες Αποστολής Εκφώνηση άσκησης (Στάδιο 0, Στάδιο 1, Στάδιο 2, Στάδιο 3, Στάδιο

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Κεφάλαιο 4. Λογική Σχεδίαση

Κεφάλαιο 4. Λογική Σχεδίαση Κεφάλαιο 4 Λογική Σχεδίαση 4.1 Εισαγωγή Λογικές συναρτήσεις ονομάζουμε εκείνες για τις οποίες μπορούμε να αποφασίσουμε αν είναι αληθείς ή όχι. Χειριζόμαστε τις λογικές προτάσεις στην συγγραφή λογισμικού

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

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

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

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Σύνοψη Στο κεφάλαιο αυτό παρουσιάζεται η ιδέα του συμπτωτικού πολυωνύμου, του πολυωνύμου, δηλαδή, που είναι του μικρότερου δυνατού βαθμού και που, για συγκεκριμένες,

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

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

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

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

Υπερφόρτωση τελεστών

Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών 19 Νοεμβρίου 2012 1 Γενικά Στα προηγούμενα είδαμε ότι ορίζοντας μία κλάση, ορίζουμε ένα νέο τύπο τον οποίο μπορούμε να χρησιμοποιήσουμε για να δηλώσουμε αντικείμενα αυτής της νέας

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

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

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

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

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. ιδάσκων : ρ. Β. ΒΑΛΑΜΟΝΤΕΣ. Πύλες - Άλγεβρα Boole 1

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. ιδάσκων : ρ. Β. ΒΑΛΑΜΟΝΤΕΣ. Πύλες - Άλγεβρα Boole 1 ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ ιδάσκων : ρ. Β. ΒΑΛΑΜΟΝΤΕΣ Πύλες - Άλγεβρα Boole 1 ΕΙΣΑΓΩΓΗ Α)Ηλεκτρονικά κυκλώµατα Αναλογικά κυκλώµατα Ψηφιακά κυκλώµατα ( δίτιµα ) V V 2 1 V 1 0 t t Θετική λογική: Ο V 1 µε V 1 =

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

ΑΝΑΛΥΣΗ 1 ΕΙΚΟΣΤΟ ΕΚΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

ΑΝΑΛΥΣΗ 1 ΕΙΚΟΣΤΟ ΕΚΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης. ΑΝΑΛΥΣΗ ΕΙΚΟΣΤΟ ΕΚΤΟ ΜΑΘΗΜΑ, 5--3 Μ. Παπαδημητράκης. Είδαμε στο προηγούμενο μάθημα ότι για να έχει νόημα το όριο f(x) x ξ πρέπει το ξ να είναι σε κατάλληλη θέση σε σχέση με το πεδίο ορισμού A της συνάρτησης

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

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

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

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

x < y ή x = y ή y < x.

x < y ή x = y ή y < x. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Εαρινό Εξάμηνο 011-1 Τμήμα Μαθηματικών Διδάσκων: Χ.Κουρουνιώτης Μ8 ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΥΣΗΣ Φυλλάδιο 1 Ανισότητες Οι πραγματικοί αριθμοί είναι διατεταγμένοι. Ενισχύουμε αυτήν την ιδέα με

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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

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

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

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του

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

ΑΣΠΑΙΤΕ Εργαστήριο Ψηφιακών Συστημάτων & Μικροϋπολογιστών Εργαστηριακές Ασκήσεις για το μάθημα «Λογική Σχεδίαση» ΑΣΚΗΣΗ 3 ΠΙΝΑΚΕΣ KARNAUGH

ΑΣΠΑΙΤΕ Εργαστήριο Ψηφιακών Συστημάτων & Μικροϋπολογιστών Εργαστηριακές Ασκήσεις για το μάθημα «Λογική Σχεδίαση» ΑΣΚΗΣΗ 3 ΠΙΝΑΚΕΣ KARNAUGH ΑΣΚΗΣΗ 3 ΠΙΝΑΚΕΣ KARNAUGH 3.1 ΣΚΟΠΟΣ Η κατανόηση της απλοποίησης λογικών συναρτήσεων με χρήση της Άλγεβρας Boole και με χρήση των Πινάκων Karnaugh (Karnaugh maps). 3.2 ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ 3.2.1 ΑΠΛΟΠΟΙΗΣΗ

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή

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

Ergasthriak 'Askhsh Input/Output

Ergasthriak 'Askhsh Input/Output 6 Ergasthriak 'Askhsh 6 Οπου θα ασχοληθούμε, όπως γίνεται πάντα στις γλώσσες προγραμματισμού, με αυτό που συνηθίζουμε να ονομάζουμε Input/Output. 6.1 Input/Output Ως γνωστόν, το i/o είναι ο τρόπος με τον

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

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

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 1η εβδομάδα. Κοζάνη, 5 Οκτωβρίου 2007. Βασικά στοιχεία γραφής προγραμμάτων με τη C: α) Case Sensitive!!! β) Δυνατότητα εισαγωγής σχολίων με /*

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

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc Mˆjhma 7 0 11 OktwbrÐou 2012 Orismìc sunart sewn mèsw orismènwn oloklhrwmˆtwn To orismèno olokl rwma prosfèrei ènan nèo trìpo orismoô sunˆrthshc afoô to orismèno olokl rwma mia suneqoôc sunˆrthshc f (t),

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

f(t) = (1 t)a + tb. f(n) =

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

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

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS 1. Grammikèc diaforikèc exis seic deôterhc kai an terhc tˆxhc

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

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

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Βάση δεδομένων είναι συσχετισμένα μεταξύ τους δεδομένα, οργανωμένα σε μορφή πίνακα. Οι γραμμές του πίνακα αποτελούν τις εγγραφές και περιλαμβάνουν τις πληροφορίες για μια οντότητα. Οι

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

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες Ψηφιακά Συστήματα 3. Λογικές Πράξεις & Λογικές Πύλες Βιβλιογραφία 1. Φανουράκης Κ., Πάτσης Γ., Τσακιρίδης Ο., Θεωρία και Ασκήσεις Ψηφιακών Ηλεκτρονικών, ΜΑΡΙΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΕΠΕ, 2016. [59382199] 2. Floyd

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 13/1/13, 22:00 Περιεχόµενα Διαδικαστικά Εκφώνηση άσκησης (Στάδιο 0, Στάδιο 1, Στάδιο 2, Στάδιο 3, Στάδιο 4, Στάδιο 5) Οδηγίες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

My Binary Logic Ένας προσομοιωτής λογικών πυλών στο Scratch "My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch Καραγιάννη Ελένη 1, Καραγιαννάκη Μαρία-Ελένη 2, Βασιλειάδης Αθανάσιος 3, Κωστουλίδης Αναστάσιος-Συμεών 4, Μουτεβελίδης Ιωάννης-Παναγιώτης 5,

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

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

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

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

Αλγόριθμοι για αυτόματα

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

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

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών Αναπαράσταση Αριθμών Δεκαδικό και Δυαδικό Δεκαδικό σύστημα Δεκαδικό και Δυαδικό Μετατροπή Για τη μετατροπή ενός αριθμού από το δυαδικό σύστημα στο δεκαδικό, πολλαπλασιάζουμε κάθε δυαδικό ψηφίο του αριθμού

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

Κεφάλαιο Τρία: Ψηφιακά Ηλεκτρονικά

Κεφάλαιο Τρία: Ψηφιακά Ηλεκτρονικά Κεφάλαιο Τρία: 3.1 Τι είναι αναλογικό και τι ψηφιακό µέγεθος Αναλογικό ονοµάζεται το µέγεθος που µπορεί να πάρει οποιαδήποτε τιµή σε µια συγκεκριµένη περιοχή τιµών π.χ. η ταχύτητα ενός αυτοκινήτου. Ψηφιακό

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

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

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

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

, για κάθε n N. και P είναι αριθμήσιμα.

, για κάθε n N. και P είναι αριθμήσιμα. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΚΡΙΤA ΜΑΘΗΜΑΤΙΚΑ Διδάσκοντες: Δ.Φωτάκης Θ. Σούλιου η Γραπτή Εργασία Ημ/νια παράδοσης 5/4/8 Θέμα (Διαδικασίες Απαρίθμησης.

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 1: Μαθηματικό Υπόβαθρο

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 1: Μαθηματικό Υπόβαθρο ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 1: Μαθηματικό Υπόβαθρο Τι θα κάνουμε σήμερα Εισαγωγικά (0.1) Σύνολα (0.2.1, 0.2.2) Συναρτήσεις & Σχέσεις (;;) (0.2.3) 1 Περιοχές που θα μελετήσουμε

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

Εισαγωγικά Παραδείγματα: Παρατηρήσεις:

Εισαγωγικά Παραδείγματα: Παρατηρήσεις: 1 Εισαγωγικά Η έννοια του συνόλου είναι πρωταρχική στα Μαθηματικά, δεν μπορεί δηλ. να οριστεί από άλλες έννοιες. Γενικά, μπορούμε να πούμε ότι σύνολο είναι μια συλλογή αντικειμένων. υτά λέμε ότι περιέχονται

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

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

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

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

a = a a Z n. a = a mod n.

a = a a Z n. a = a mod n. Αλγεβρα Ι Χειμερινο Εξαμηνο 2017 18 Διάλεξη 1 Ενότητα 1. Πράξεις: Πράξεις στο σύνολο S, ο πίνακας της πράξης, αντιμεταθετικές πράξεις. Προσεταιριστικές πράξεις, το στοιχείο a 1 a 2 a n. Η πράξη «σύνθεση

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές Δρ. Γιώργος Λαμπρινίδης amprinidis@pharm.uoa.gr 1 Αριθμητικοί Τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Προσοχή! Διαίρεση

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

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

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou)

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) Diakritˆ Majhmatikˆ I Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) PlhroforÐec... Tetˆrth, 09.00-11.00, Paraskeu, 18.00-20.00 SÔggramma 1: Λ. Κυρούσης, Χ. Μπούρας, Π. Σπυράκης. Διακριτά Μαθηματικά: Τα Μαθηματικά

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

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος. Κεφάλαιο 10 Μαθηματική Λογική 10.1 Προτασιακή Λογική Η γλώσσα της μαθηματικής λογικής στηρίζεται βασικά στις εργασίες του Boole και του Frege. Ο Προτασιακός Λογισμός περιλαμβάνει στο αλφάβητό του, εκτός

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

Εντολές της LOGO (MicroWorlds Pro)

Εντολές της LOGO (MicroWorlds Pro) Εντολές της LOGO (MicroWorlds Pro) Εντολές εμφάνισης (εξόδου) και αριθμητικές πράξεις δείξε Εμφανίζει στην οθόνη έναν αριθμό, το αποτέλεσμα πράξεων, μια λέξη ή μια λίστα (ομάδα) λέξεων. δείξε 200 200 δείξε

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ 1 Πράξεις με μπιτ 2 Αριθμητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση Ο πολλαπλασιασμός

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