Ergasthriak 'Askhsh Input/Output

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

Download "Ergasthriak 'Askhsh Input/Output"

Transcript

1 6 Ergasthriak 'Askhsh 6 Οπου θα ασχοληθούμε, όπως γίνεται πάντα στις γλώσσες προγραμματισμού, με αυτό που συνηθίζουμε να ονομάζουμε Input/Output. 6.1 Input/Output Ως γνωστόν, το i/o είναι ο τρόπος με τον οποίο ο υπολογιστής και πιο συγκεκριμένα ένα πρόγραμμα, επικοινωνεί με τον έξω κόσμο. Η Lisp από μόνη της παρέχει μία πολύ απλή μορφή i/o, καθώς όπως έχουμε ήδη δει εκτελεί συνεχώς ένα read-eval-print loop, το οποίο εκτυπώνει στην οθόνη τα αποτελέσματα των εκφράσεων που αποτιμά. Παρ όλα αυτά, συνήθως, ως απαιτητικοί προγραμματιστές που είμαστε, ζητάμε αρκετά περισσότερα απ αυτό και θα θεωρούσαμε, χωρίς δεύτερη σκέψη, άχρηστη μια γλώσσα που δε θα μπορούσε να μας τα παρέχει. Ακόμα χειρότερα, κάποιοι από εμάς θα αναγκάζονταν να δημιουργήσουν βιβλιοθήκες με τις απαραίτητες i/o συναρτήσεις για να μπορούμε να κάνουμε σωστά τη δουλειά μας. Επειδή σε κάποιους αυτά θα ακούγονται ως τρομακτικά σενάρια, αρκεί να πούμε ότι κάποιοι προνόησαν για τα προφανή και ως εκ τούτου οι απαραίτητες i/o συναρτήσεις είναι ήδη υλοποιημένες και εσείς το μόνο που έχετε να κάνετε είναι να μάθετε να τις χειρίζεστε και να τις καλείτε όταν τις χρειάζεστε. Ετσι, με τη βοήθειά τους, μπορείτε να εκτυπώσετε οποιοδήποτε μήνυμα επιθυμείτε στην οθόνη, ακόμα και να παρέχετε μία ερώτηση και να περιμένετε για απάντηση απ το χρήστη δημιουργώντας έτσι αλληλεπιδραστικά προγράμματα. Μία ακόμα χρήση των i/o συναρτήσεων είναι η ανάγνωση και εγγραφή δεδομένων από και προς αρχεία του δίσκου κάνοντας έτσι δυνατή την προσωρινή αλλά και μακροπρόθεσμη αποθήκευση δεδομένων. Ιστορικά, το i/o έχει αποτελέσει θέμα ευρείας διαφωνίας μεταξύ των διαφόρων συστημάτων Lisp. Για παράδειγμα, μέχρι και σήμερα δεν έχει αποφασιστεί κάποιο στάνταρ window system interface, όπως επίσης και κάποιος στάνταρ τρόπος χειρισμού του mouse ή ανάπτυξης γραφικών. Για τις λειτουργίες αυτές, συνηθίζεται ο κάθε κατασκευαστής περιβάλλοντος ανάπτυξης εφαρμογών Lisp να παρέχει τα δικά του εργαλεία. Το θετικό της υπόθεσης είναι ότι οι βασικότερες και πιο συχνά χρησιμοποιούμενες συναρτήσεις για i/o έχουν προτυποποιηθεί και αυτές είναι που θα παρουσιάσουμε στην παρούσα εργαστηριακή άσκηση.

2 54 Εργαστηριακή Άσκηση Sumboloseirèc Οπως θα γνωρίζετε ήδη, μία συμβολοσειρά είναι μια μορφή ακολουθίας (παράθεση συμβόλων ενός αλφαβήτου με τη διάταξη να έχει σημασία). Μοιάζουν κατά κάποιο τρόπο με τις λίστες, αλλά έχουν ένα διαφορετικό σύνολο primitive συναρτήσεων για το χειρισμό τους. Οι συμβολοσειρές αποτιμούν στον εαυτό τους ακριβώς όπως και οι αριθμοί. Παρατηρήστε στα ακόλουθα παραδείγματα ότι οι χαρακτήρες που αποτελούν μια συμβολοσειρά δε μετατρέπονται στους αντίστοιχους κεφαλαίους όταν αποτιμούνται, αντίθετα με το τί ίσχυε για τα σύμβολα. Είναι ένας κομψός τρόπος για να κατανοήσουμε ότι οι συμβολοσειρές δεν είναι σύμβολα. Το κατηγόρημα STRINGP επιστρέφει T αν η είσοδός του είναι μία συμβολοσειρά. Να εκτελέσετε στο Listener τα ακόλουθα: > strings are strings > (setf a This object is a string. ) > (stringp a) > a > (setf b this-object-is-a-symbol) > (stringp b) Προσέξτε ότι οι συμβολοσειρές πρέπει να περικλείονται από τα διπλά εισαγωγικά του λατινικού αλφαβήτου ("), χαρακτήρας ο οποίος είναι διαφορετικός από το χαρακτήρα ( ) που χρησιμοποιούσαμε για τα σύμβολα. Δύο φορές ο αντί για του " (με Shift+") δεν πρόκειται να δουλέψει στη Lisp H sunˆrthsh FORMAT Η συνάρτηση FORMAT υπό φυσιολογικές συνθήκες επιστρέφει NIL, αλλά ως side effect προκαλεί την εγγραφή πραγμάτων στην οθόνη ή σε κάποιο αρχείο. Εάν επιθυμούμε την εκτύπωση στην οθόνη, αρκεί να δώσουμε ως πρώτο όρισμα στη format το σύμβολο T. Το δεύτερο όρισμα πρέπει να είναι μία συμβολοσειρά, που καλείται format control string. Πληκτρολογήστε τον ακόλουθο τύπο: (format t "Hello World!") Παρατηρήστε ότι η format εκτυπώνει τη συμβολοσειρά χωρίς τα quotes και εν συνεχεία επιστρέφει NIL. Το format control string μπορεί επίσης να περιέχει ειδικούς χαρακτήρες διαμόρφωσης οι οποίοι ξεκινούν με τον χαρακτήρα tilde ( ). Παραδείγματος χάριν, το % κάνει τη format να αρχίσει να γράφει σε μία νέα γραμμή. Δοκιμάστε τα ακόλουθα: 1. (format t "After this~%a new line will start.") 2. (format t "Now we leave an~%~%empty line!")

3 6.1 Input/Output 55 Το & κάνει τη format να αλλάξει γραμμή, εκτός κι αν γνωρίζει ότι βρίσκεται ήδη στην αρχή μίας νέας γραμμής. Δοκιμάστε να προσθέσετε σε ένα από τα προηγούμενα παραδείγματα δύο ή και περισσότερες συνεχόμενες φορές το & και προσπαθήστε να ερμηνεύσετε το αποτέλεσμα. Προσθέστε το επίσης μία φορά μετά απ το % directive 1. Μπορείτε να σκεφτείτε ότι το το & directive υλοποιεί κατά κάποιο τρόπο την προτροπή: Εάν δεν έχεις αλλάξει, για κάποιο λόγο που δε γνωρίζω, γραμμή, άλλαξέ τη, αλλιώς μην κάνεις τίποτα. Σε προγράμματα που παράγουν αρκετές γραμμές εξόδου στην οθόνη, είναι συνήθης πρακτική κάθε format να ξεκινάει με το & directive, έτσι ώστε να είμαστε βέβαιοι ότι θα αλλάζει πάντα γραμμή πριν την εκτύπωση του τρέχοντος μηνύματος (εάν φυσικά θέλουμε να αλλάζει γραμμή). Η ακόλουθη συνάρτηση είναι ένα τέτοιο παράδειγμα: (defun print_fun () (format t "~&First line to screen.") (format t "~&Second line to screen.") (format t "~&Third line to screen.") (format t "~&Fourth line to screen.") (format t "~&Fifth line to screen.")) Ενα ακόμα πολύ σημαντικό formatting directive είναι το S, το οποίο εισάγει την εκτυπώσιμη αναπαράσταση ενός αντικειμένου Lisp στο μήνυμα που τυπώνει η format 2. Οπως περίπου συμβαίνει και με την printf στην C, έτσι και εδώ, για κάθε εμφάνιση του S στο format control string απαιτείται και ένα ακόμα όρισμα στο τέλος της format. Εκτελέστε για παράδειγμα τον ακόλουθο διάλογο με τη Lisp: > (format t "A ~S is a connected, acyclic graph" tree) > (setf forest forest tree tree) > (format t "A ~S is an acyclic graph.~%a ~S is a conne cted ~S." forest tree forest) > (defun my-gcd (x y) ;;Euclidean Algorithm for greatest common divisor ;;gcd in common lisp but we redefine it here (let ((temp nil) (num2 y)) (do ((result x)) ((zerop num2) result) (setf result (mod result num2));modulo function (setf temp num2 num2 result result temp)))) > (format t "The greatest common divisor of ~S and ~S is: ~S" 5 6 (my-gcd 5 6)) Δύο αριθμοί είναι σχετικά πρώτοι (relatively prime), εάν το 1 είναι ο μέγιστος ακέραιος που διαιρεί ακριβώς και τους δύο. Να ορίσετε μία συνάρτηση, ονόματι rel-prime, η οποία θα παίρνει ως ορίσματα δύο αριθμούς και με χρήση της format θα ενημερώνει το χρήστη για το εάν είναι σχετικά πρώτοι ή όχι. 1 Oi eidikoð autoð qarakt rec kaloôntai kai special formatting directives. 2 To S proèrqetai ap to gnwstì mac s-expression, pou shmaðnei symbolic expression.

4 56 Εργαστηριακή Άσκηση 6 Το A directive εκτυπώνει ένα αντικείμενο χωρίς να χρησιμοποιεί χαρακτήρες διαφυγής, όπως π.χ. τα quotes. Δοκιμάστε την ακόλουθη συνάρτηση με είσοδο "Hello World": (defun test (x) (format t "~&With escape characters: ~S" x) (format t "~&Without escape characters: ~A" x)) Οι ακόλουθες ασκήσεις θα σας βοηθήσουν να εξοικειωθείτε περαιτέρω με τη χρήση της format: 1. Γράψτε μία αναδρομική συνάρτηση draw-line, η οποία θα εκτυπώνει μία γραμμή με βάση το ζητούμενο μήκος, χρησιμοποιώντας την (format t "*") τον κατάλληλο αριθμό φορών. Για παράδειγμα, η κλήση (draw-line 10) θα πρέπει να εκτυπώσει: ********** 2. Γράψτε μία αναδρομική συνάρτηση draw-box, η οποία θα καλεί τη draw-line n φορές με είσοδο m, έτσι ώστε να κατασκευάσει ορθογώνιο παραλληλόγραμμο διαστάσεων (m, n), όπου m το μήκος και n το πλάτος. 3. Να ορίσετε μία συνάρτηση combinations, η οποία θα παίρνει δύο ορίσματα, n και r, και θα επιστρέφει το C(n, r) (δηλαδή, το ( n r) ), το οποίο είναι όλοι οι δυνατοί τρόποι με τους οποίους μπορούμε να επιλέξουμε r αντικείμενα από μία συλλογή n αντικειμένων χωρίς να μας ενδιαφέρει η διάταξη. Το αποτέλεσμα θα πρέπει να εκτυπώνεται σε ψηφιακή μορφή, π.χ. το C(6, 2) = 15 θα πρέπει να εκτυπώνεται ως: _ (Υπόδειξη: C(n, r) = n! r!(n r)! ο αριθμός των συνδυασμών r αντικειμένων από n αντικείμενα 3 ) H sunˆrthsh READ Η READ είναι μία συνάρτηση που μπορεί να χρησιμοποιηθεί για την ανάγνωση δεδομένων εισόδου που δίνονται απ το πληκτρολόγιο. Οποτεδήποτε χρησιμοποιήσουμε τη read σε μία συνάρτηση, ο έλεγχος σταματάει στη read και περιμένει για δεδομένα εισόδου απ τον χρήστη. Μόλις ο χρήστης εισάγει τα δεδομένα και πατήσει 3 O arijmìc twn trìpwn na diatˆxw r antikeðmena apì n eðnai P (n, r) = n!/(n r)!, ìmwc to na diatˆxw r antikeðmena apì n eðnai to Ðdio me to na epilèxw pr ta r antikeðmena apì n kai en suneqeða na diatˆxw ta r antikeðmena pou epèlexa me ìlouc touc dunatoôc trìpouc (antimetajèseic r antikeimènwn); epomènwc, P (n, r) = C(n, r)p (r, r) kai ètsi prokôptei eôkola to C(n, r), afoô P (r, r) = r!.

5 6.1 Input/Output 57 το carriage return, η read τα διαβάζει και τα επιστρέφει. Εφόσον επιστρέφει τα δεδομένα, μπορούμε είτε να τα χρησιμοποιήσουμε απ ευθείας, εάν είχαμε τοποθετήσει τη read ως όρισμα μιας άλλης συνάρτησης, είτε να τα αποθηκεύσουμε σε κάποια μεταβλητή με χρήση της setf ή της let. Δοκιμάστε για παράδειγμα την ακόλουθη συνάρτηση στο Listener: > (setf read-data (read)) Καλέστε εν συνεχεία τη μεταβλητή read-data και θα σας επιστραφεί η τιμή που της δώσατε μέσω του πληκτρολογίου. Να μετατρέψετε τη συνάρτηση combinations που ορίσατε στην προηγούμενη υποενότητα, έτσι ώστε να παίρνει ένα μόνο όρισμα έστω max val. Η συνάρτηση θα παράγει μία τυχαία τιμή w, όπου 0 < w < max val και θα ζητάει από το χρήστη να δώσει μία τιμή από 1 έως w για το n (πλήθος αντικειμένων συλλογής) και μία τιμή από 1 έως n για το r (ο χρήστης θα πρέπει να μπορεί να δει στην οθόνη τα πεδιά ορισμού απ τα οποία μπορεί να επιλέξει). Επιπρόσθετα θα πρέπει να ελέγχονται τα δεδομένα που εισάγει ο χρήστης για την περίπτωση που είναι εκτός πεδίου ορισμού, περίπτωση κατά την οποία ο χρήστης θα ενημερώνεται με κατάλληλο μήνυμα και θα μπορεί να προσπαθήσει και πάλι. Οταν τα n και r εισαχθούν επιτυχώς, τα υπόλοιπα θα γίνονται όπως και πριν. Σε περιπτώσεις που επιθυμείτε να πάρετε μία απάντηση της μορφής ναι ή όχι, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις yes-or-no-p ή y-or-n-p στη θέση της read. Εάν η yes-or-no-p πάρει yes επιστρέφει T, ενώ αν πάρει no επιστρέφει NIL. Αντίστοιχα, η y-or-n-p περιμένει y ή n. Αν τις δοκιμάσετε στο Lispworks, θα παρατηρήσετε ότι στο περιβάλλον αυτό δεν έχουν καμία ουσιαστική διαφορά. Βλέπετε γιατί; H sunˆrthsh WITH-OPEN-FILE Η WITH-OPEN-FILE μας παρέχει έναν εύκολο τρόπο για να διαχειριζόμαστε αρχεία. Η γενική της σύνταξη έχει ως εξής: (with-open-file (var pathname ) body ) Η with-open-file, όπως και η let, δημιουργεί την τοπική μεταβλητή var και της αναθέτει ένα stream object που αναπαριστά τη σύνδεση με το αρχείο που δείχνει το pathname. Μόλις ανοίξουμε το αρχείο με τη with-open-file, μπορούμε είτε να διαβάσουμε απ αυτό είτε να γράψουμε σε αυτό. Το τί θα κάνουμε βέβαια οφείλουμε να το έχουμε ξεκαθαρίσει στη Lisp με κάποια ειδικά ορίσματα που πρέπει να προηγούνται όλων των συναρτήσεων στο σώμα της with-open-file. Πάντως, στην περίπτωση που θέλουμε να διαβάσουμε από αρχείο δεν χρειάζεται τίποτα απ αυτά καθώς η ανάγνωση είναι default. Ας δούμε ένα απλό παράδειγμα ανάγνωσης από αρχείο για να γίνουν κατανοητά τα προαναφερθέντα. Να δημιουργήσετε το αρχείο timber.dat σε κάποιο directory του δίσκου (εμείς εδώ υποθέτουμε ότι έχει δημιουργηθεί κάτω απ το δίσκο C:) και να του εισάγετε τα ακόλουθα:

6 58 Εργαστηριακή Άσκηση 6 "The North Slope" ((45 redwood) (12 oak) (43 maple)) 100 Αφού το αποθηκεύσετε, να ορίσετε στο Lispworks την ακόλουθη συνάρτηση: (defun get-tree-data () (with-open-file (stream "C:/timber.dat") (let* ((tree-loc (read stream)) (tree-table (read stream)) (num-trees (read stream))) (format t "~&There are ~S trees on ~S." num-trees tree-loc) (format t "~&They are: ~S" tree-table)))) και αφού τη μελετήσετε προσεκτικά, να την τρέξετε για να δείτε πως λειτουργεί. Υπάρχουν αρκετά πράγματα τα οποία αξίζει να συζητήσουμε σχετικά με την παραπάνω συνάρτηση. Το πρώτο πράγμα που βλέπουμε είναι ότι το σώμα της with-open-file αποτελείται από όλες τις συναρτήσεις που θέλουμε να εκτελέσουμε σχετικά με το αρχείο. Στην πραγματικότητα εδώ αποτελείται μόνο απ τη let, η οποία και καλεί όλες τις άλλες συναρτήσεις. Φυσικά, δε θα μπορούσαμε να έχουμε κλείσει τη with-open-file πριν εκτελέσουμε όλες τις ενέργειες που σχετίζονται με το αρχείο, διότι πολύ απλά θα βγαίναμε εκτός της εμβέλειας της μεταβλητής stream και επομένως δεν θα μπορούσαμε να επικοινωνήσουμε με το αρχείο. Αυτό μας λέει το εξής πολύ σημαντικό: Μετά το πέρας του τύπου της with-open-file, το αρχείο που είχαμε ανοίξει κλείνει αυτόματα. Αν η with-open-file δε βρει το αρχείο το οποίο προσπαθεί να ανοίξει για ανάγνωση, επιστρέφει ένα μήνυμα σφάλματος. Αν το αρχείο βρεθεί και η σύνδεση γίνει επιτυχώς, μπορούμε να καλέσουμε τη read τόσες φορές, όσους τύπους δεδομένων θέλουμε να διαβάσουμε απ την αρχή του αρχείου. Κάθε φορά που καλείται η read με όρισμα τη μεταβλητή που περιέχει το stream object (εδώ είναι η μεταβλητή stream), διαβάζεται ο επόμενος τύπος δεδομένων του αρχείου. Ας δούμε τώρα πώς μπορούμε να γράψουμε σε ένα αρχείο χρησιμοποιώντας τη with-open-file για να το ανοίξουμε. Το πρώτο καινούριο πράγμα που πρέπει να κάνουμε είναι να πούμε με κάποιο τρόπο στη with-open-file ότι ανοίγουμε το αρχείο για εγγραφή. Αυτό μπορεί να γίνει με τη χρήση του ορίσματος λέξεωνκλειδιών :DIRECTION :OUTPUT. Η λέξη-κλειδί :OUTPUT μπορεί να θεωρηθεί ως όρισμα της :DIRECTION. Άλλα πιθανά ορίσματα μπορεί να είναι τα :INPUT και :IO με το τελευταίο να δηλώνει ταυτόχρονη εγγραφή και ανάγνωση. Να πληκτρολογήστε την ακόλουθη συνάρτηση: (defun save-tree-data (tree-loc tree-table num-trees) (with-open-file (stream "C:/timber.newdat" :direction :output) (format stream "~S~%" tree-loc) (format stream "~S~%" tree-table) (format stream "~S~%" num-trees)))

7 6.1 Input/Output 59 Τώρα να την καλέσετε ως εξής: (save-tree-data "The West Ridge" ((45 redwood) (22 oak) (43 maple)) 110) Να εντοπίσετε το αρχείο timber.newdat και να το ανοίξετε για να επαληθεύσετε ότι όλα έχουν εγγραφεί σωστά. Καλέστε τώρα και πάλι τη συνάρτηση με παρόμοια ορίσματα. Τί παρατηρείτε; Το μήνυμα σφάλματος που προέκυψε όταν προσπαθήσατε να τρέξετε και πάλι τη save-tree-data οφείλεται στο γεγονός ότι το αρχείο υπήρχε ήδη από το προηγούμενο τρέξιμο. Υπάρχουν κάποιες λέξεις κλειδιά, οι οποίες μας επιτρέπουν να χειριστούμε τέτοιες καταστάσεις. Για παράδειγμα, προσθέστε μετά το :direction :output στη save-tree-data το :if-exists :append και τρέξτε αρκετές φορές τη συνάρτηση. Με τον τρόπο αυτό, λέμε στη with-open-file τί να κάνει εάν το αρχείο υπάρχει ήδη. Το default είναι :error γι αυτό και σας επεστράφη μήνυμα σφάλματος προηγουμένως. Αντίθετα, όταν αλλάξαμε το :error με το :append, δηλώσαμε ότι αν το αρχείο υπάρχει ήδη, θέλουμε τα νέα δεδομένα να προστεθούν στο τέλος του. Άλλα πιθανά ορίσματα για την :if-exists είναι τα :overwrite και NIL. Η :overwrite αντικαθιστά τα περιεχόμενα του αρχείου με τις νέες εγγραφές, ενώ η NIL δεν κάνει τίποτα και επιστρέφει NIL ως ένδειξη σφάλματος. Αντίστοιχα, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί :if-does-not-exist σε συνδυασμό με ένα απ τα ορίσματα :error, :create και NIL, για να δηλώσουμε τί επιθυμούμε να γίνει αν το αρχείο δεν υπάρχει. Οι ακόλουθες ανακεφαλαιωτικές ασκήσεις θα σας βοηθήσουν να εξοικειωθείτε περαιτέρω με όσα είδαμε στην παρούσα εργαστηριακή άσκηση: 1. Να ορίσετε μία συνάρτηση arb-num, η οποία θα παίρνει ως ορίσματα δύο αριθμούς n, x και ένα filename και θα δημιουργεί ένα νέο αρχείο σύμφωνα με το filename στο οποίο θα τυπώνει n τυχαίους αριθμούς από το διάστημα [0, x]. 2. Να ορίσετε μία συνάρτηση my-sort, η οποία θα διατάσει με αποδοτικό τρόπο και κατά αύξουσα σειρά μία λίστα με αριθμούς. 3. Να ορίσετε μία συνάρτηση find-num, η οποία θα δημιουργεί ένα αρχείο με n τυχαίους αριθμούς από το διάστημα [0, x] (με χρήση της 1) και αφού τους διατάξει (με χρήση της 2), θα μπαίνει σε ένα loop όπου θα γίνονται τα εξής: Ο χρήστης θα δίνει είτε έναν αριθμό είτε ένα filename απ το οποίο το πρόγραμμα θα πρέπει να πάρει τον αριθμό και εν συνεχεία θα ελέγχει εάν ο αριθμός υπάρχει στο αρχείο με τους διατεταγμένους αριθμούς. Εάν υπάρχει, θα ενημερώνει το χρήστη με κατάλληλο μήνυμα, ενώ αν δεν υπάρχει θα τον προσθέτει στην κατάλληλη θέση του αρχείου έτσι ώστε να διατηρείται η διάταξη. Η συνάρτηση θα πρέπει να είναι σε θέση να ενημερώσει τον χρήστη ότι όλοι οι αριθμοί από [0, x] έχουν εισαχθεί, αν κάποια στιγμή γίνει αυτό, έτσι ώστε να σταματήσει το παιχνίδι. Επιπρόσθετα, ο χρήστης θα πρέπει να μπορεί να τερματίσει το loop, όποτε το θελήσει, εισάγοντας αντί για αριθμό τη συμβολοσειρά exit. Τέλος, θα πρέπει να κοινοποιείται στο χρήστη σε ποιά θέση εισήχθη ο αριθμός, εάν δεν υπήρχε, ενώ εάν υπήρχε,

8 60 Εργαστηριακή Άσκηση 6 σε ποιά θέση υπήρχε. Περαιτέρω λεπτομέρειες της υλοποίησης επαφίενται στην κρίση σας. 4. Σε μία συνέντευξη πρόσληψης μηχανικών υπολογιστών, γνωστής πολυεθνικής εταιρίας, οι υποψήφιοι καλούνταν να δώσουν λύση στο ακόλουθο πρόβλημα: Εστω ότι διαθέτετε δύο αυγά και βρίσκεστε σε μία πολυκατοικία με 100 ορόφους. Θέλετε με αποδοτικό τρόπο να διαπιστώσετε από ποιόν όροφο και πάνω θα σπάσει ένα αυγό, εάν το αφήσετε να πέσει στο έδαφος. Εάν πετάξετε ένα αυγό από κάποιο όροφο και δε σπάσει, μπορείτε να επαναχρησιμοποιήσετε το αυγό. Να σχεδιάσετε ένα πρόγραμμα Lisp, το οποίο θα εξομοιώνει το φυσικό περιβάλλον μέσα στο οποίο θα μπορεί κάποιος να δοκιμάσει μια λύση που σκέφτηκε. Το πρόγραμμα θα πρέπει να διαλέγει τυχαία το πλήθος των ορόφων της πολυκατοικίας, καθώς και τον όροφο απ τον οποίο και πάνω τα αυγά θα σπάνε. Θα πρέπει, επίσης, να αφήνει το χρήστη να κάνει ρίψεις από τους διάφορους ορόφους, αφού τον ενημερώσει για το ύψος της πολυκατοικίας. Εάν κάποια στιγμή σπάσουν και τα δύο αυγά, το πρόγραμμα θα ζητάει απ το χρήστη να απαντήσει ποιός είναι ο όροφος απ τον οποίο και πάνω τα αυγά σπάνε. Φυσικά, ο χρήστης θα πρέπει να μπορεί να απαντήσει και πιο νωρίς, εάν το επιθυμεί. Εάν η απάντησή του είναι λανθασμένη, το πρόγραμμα θα τον ενημερώνει ότι έχασε και θα του δίνει τη δυνατότητα να προσπαθήσει και πάλι. Εάν η απάντησή του είναι σωστή, το πρόγραμμα θα τον ενημερώνει για αυτό, θα του εμφανίζει το πλήθος των προσπαθειών που έκανε και θα του αντιπαραβάλει το πλήθος των βημάτων με τα οποία θα έλυνε το πρόβλημα ένας αποδοτικός αλγόριθμος. Τον αλγόριθμο αυτό θα πρέπει να τον υλοποιήσετε με μία ή περισσότερες συναρτήσεις Lisp και το ποιός θα μπορούσε να είναι αυτός ο αλγόριθμος επαφίεται στην κρίση σας. Ολη η αλληλεπίδραση με το χρήστη θα μπορεί να γίνει και μέσω αρχείων. Δηλαδή, ο χρήστης μπορεί να έχει εισαγάγει όλες τις προσπάθειές του σε ένα αρχείο απ όπου και θα πρέπει να τις διαβάζει το πρόγραμμα ή να τις δίνει σε κάθε βήμα απ το πληκτρολόγιο. Επίσης, θα πρέπει να μπορεί να πάρει την απάντηση του προγράμματος είτε στην οθόνη είτε σε κάποιο αρχείο είτε και στα δύο, ανάλογα με το τί επιθυμεί κάθε φορά.

Ergasthriak 'Askhsh 5

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

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

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

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

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

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

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

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

Μεταβλητές τύπου χαρακτήρα

Μεταβλητές τύπου χαρακτήρα Μεταβλητές τύπου χαρακτήρα 31 Μαρτίου 014 1 Μεταβλητές τύπου char Για χειρισμό χαρακτήρων η C διαθέτει τον τύπο char. Ο τύπος είναι βαθμωτός δηλαδή ακέραιης αναπαράστασης. Τυπικά έχει μέγεθος ενός byte

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες

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

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα) Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα) Επικοινωνία Το υποπρόγραμμα δέχεται τιμές από το πρόγραμμα Επιστρέφει,

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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

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

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

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

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create Inspiration 8 IE Β ήμα προς Βήμα Για μαθητές Έναρξη Προγράμματος Inspiration 1. Κάνουμε κλικ στο κουμπί Start, επιλέγουμε Programs και κάνουμε κλικ στο Inspiration 8 IE. 2. Στην αρχική οθόνη του προγράμματος

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

Εφαρμογές Σειριακής Επικοινωνίας

Εφαρμογές Σειριακής Επικοινωνίας Εφαρμογές Σειριακής Επικοινωνίας Εισαγωγή Στο μάθημα αυτό θα μάθουμε πώς να χρησιμοποιούμε την βιβλιοθήκη serial για την επικοινωνία από την πλατφόρμα Arduino πίσω στον υπολογιστή μέσω της θύρας usb. Τι

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

Προγραμματιστικό Περιβάλλον

Προγραμματιστικό Περιβάλλον Προγραμματιστικό Περιβάλλον Προγραμματίζοντας τις βασικές αριθμητικές πράξεις 2 ο Γυμνάσιο Παλλήνης Καθηγήτρια: Ευφροσύνη Σκιαδά Πρόσθεση Αφαίρεση Πολλαπλασιασμός Σύμβολα αριθμητικών πράξεων Διαίρεση Τι

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΙΑ 1 Ημερομηνία Ανάρτησης: 05/10/2015 Ημερομηνία Παράδοσης: 19/10/2015, 09:00 π.μ. Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση δομών ελέγχου και βρόγχων. ιαβάστε προσεχτικά το πρόβλημα

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

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

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

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

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

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

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

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

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

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2 Παιχνίδι Κρεμάλα Στη δραστηριότητα αυτή θα δημιουργήσεις το γνωστό παιχνίδι της κρεμάλας στο οποίο ο παίκτης προσπαθεί να μαντέψει τα γράμματα από τα οποία αποτελείται μια άγνωστη λέξη. Το πρόγραμμα που

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics )

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics ) Ενότητα 3: Τα δεδομένα στο Web (και η σημασιολογία τους semantics ) Σημασιολογία semantics Τι σημαίνουν τα δεδομένα; Ποια η έννοιά τους; Μετάδοση έννοιας και ενσωμάτωση στη γνώση....έχοντας ως αποτέλεσμα

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 4 Είσοδος/Έξοδος εδομένων Θέματα ιάλεξης Συνάρτηση εξόδου

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

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

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

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» Ενισχυτική διδασκαλία διδακτικές ενότητες αλγοριθμικής και εισαγωγής στον προγραμματισμό Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» διδάσκων: χρήστος

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

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

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

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

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 4 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Δείκτες Δομές Το τέταρτο σύνολο

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

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

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

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

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

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

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

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

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

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Τυχαίοι αριθμοί ρίξε μια «ζαριά»

Τυχαίοι αριθμοί ρίξε μια «ζαριά» Τυχαίοι αριθμοί ρίξε μια «ζαριά» Έννοιες: βιβλιοθήκη random, δομή επιλογής, δομή επανάληψης, υποπρογράμματα 1. Ας υποθέσουμε τι θα κάνουν οι παρακάτω εντολές: import random choose1 = random.randint(1,6)

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες Σκοπός της 3ης άσκησης είναι να μάθουμε να φτιάχνουμε και να προσπελαύνουμε λίστες, να δούμε τι διαφορά έχουν από τα tuples και επίσης πώς μπορούμε

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4» 1. Τι φαντάζεστε ότι θα κάνει η παρακάτω εντολή: print("καλημέρα.") εκτελέστε την στο περιβάλλον Python Shell 2. γράψτε μια παρόμοια π.χ. print("το όνομα μου είναι Μποντ.") 3. Γράψτε μία εντολή που να

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( ) ΣΥΜΒΟΛΟΣΕΙΡΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Ο τύπος string Μετατροπή από και προς τον τύπο string Βασικές μέθοδοι Χρήση Ελληνικών Συναρτήσεις C εκτύπωσης και ανάγνωσης Τελευταία

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

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

ΗΥ101: Εισαγωγή στην Πληροφορική

ΗΥ101: Εισαγωγή στην Πληροφορική Δρ. Χρήστος Ηλιούδης Τι είναι η ; Η διαδικασία του προγραμματισμού είναι μία πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη (πραγματοποιείται από ανθρώπους!!!). Τα προγραμματιστικά λάθη λέγονται bugs και

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

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

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

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

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch Τι θα μάθουμε σήμερα: Να ενεργοποιούμε το λογισμικό Scratch Να αναγνωρίζουμε τα κύρια μέρη του περιβάλλοντος του Scratch Να δημιουργούμε/εισάγουμε/τροποποιούμε

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

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

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

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

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

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

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

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

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

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

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

1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο;

1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο; 1ο Φύλλο Εργασίας της παλέτας Ήχος Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο; Για να εισάγουμε ένα ή περισσότερα μουσικά κλιπ σε ένα αντικείμενο, επιλέγουμε από το μεσαίο παράθυρο του Scratch

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

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos Ακρότατα πίνακα, χωρίς min, max, μόνο με pos Θέμα εξετάσεων / 2010 Θέμα εξετάσεων / 2011 Θέμα εξετάσεων / 2013 Θέμα εξετάσεων / 2014 Θέμα εξετάσεων / 2014 ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.)

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