ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ

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

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ Άσκηση 5: Ομαδική Συγγραφή Βιβλιοθήκης (.a) και Πελάτη για Στεγανογραφία σε Αρχεία Εικόνων Διδάσκων: Δημήτρης Ζεϊναλιπούρ Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: Πέμπτη, 31/03/2016 Ημερομηνία Παράδοσης: Παρασκευή, 15/04/2016 Ι. Στόχος Άσκησης (να υποβληθεί σε ένα zip στο Moodle και εκτυπωμένος στο εργαστήριο) Στόχος αυτής της άσκησης είναι να σας επιτρέψει να βάλετε μαζί όλες τις γνώσεις και αρχές που αποκτήσατε μέσω του ΕΠΛ132. Το ειδικότερο θέμα της εργασίας αφορά τη συγγραφή μιας βιβλιοθήκης επεξεργασίας εικόνων τύπου BMP (Microsoft Bitmap) και η παρουσίαση των δυνατοτήτων της μέσω της υλοποίησης ενός πελάτη. Η υλοποίηση θα γίνει σε ομάδες των τριών (3) ατόμων, όπως αυτές έχουν ανακοινωθεί μέσω του Moodle. Για την υλοποίηση της άσκησης θα χρειαστεί να χρησιμοποιήσετε τα ακόλουθα στοιχεία: Νέα Στοιχεία: 1. Βιβλιοθήκη: Καλείστε να υλοποιήσετε κάθε μια από τις λειτουργίες της βιβλιοθήκης, οι οποίες περιγράφονται στην ενότητα V αυτής της εκφώνησης, ως ένα ξεχωριστό module (.c) παρέχοντας τα πρότυπα συναρτήσεων σε ένα ενιαίο αρχείο κεφαλίδας (π.χ., δείτε σχετικό παράδειγμα string.h στη διάλεξη 16). Νοείται ότι η βιβλιοθήκη σας δύναται να έχει όσα άλλα modules (ζεύγη.c/.h) κρίνεται σκόπιμα. Εφαρμόστε το κατάλληλο επίπεδο απόκρυψης πληροφοριών με χρήση PRIVATE ή PUBLIC. 2. Πελάτης: Καλείστε να υλοποιήσετε ένα πελάτη ο οποίος θα συνδέεται στατικά με τη βιβλιοθήκη για να παρουσιάζει τις λειτουργίες της. Ο πελάτης θα ήταν καλό να αποτελείται από ένα μονάχα.c αρχείο (όλες οι υπόλοιπες λειτουργίες να ενσωματωθούν στην βιβλιοθήκη). 3. Ανάπτυξη σε Ομάδες: Για την ανάπτυξη της ομαδικής αυτής εργασίας πρέπει να χρησιμοποιηθεί το σύστημα εκδόσεων Subversion (SVN) του τμήματος μας. Οι ομάδες έχουν ανακοινωθεί ήδη στο Moodle και τα μέλη των ομάδων αναμένεται να συμβάλουν ισομερώς σε χρόνο και ουσιαστική δουλειά. Συμβουλευτείτε τη διάλεξη 18 για σύνδεση και χρήση του SVN. Κάθε άτομο μέλος ομάδας πρέπει να υποβάλλει τις αλλαγές του στο SVN σε τακτή βάση (π.χ., ημερησίως ή πολλαπλές φορές τη εβδομάδα) 4. Σχεδίαση Προγράμματος: Προτρέπεται όπως η βιβλιοθήκη σας σχεδιαστεί από πάνω προς τα κάτω, αποφασίζοντας δηλαδή τα αρχεία κεφαλίδας συλλογικά και υλοποιώντας κάθε συνάρτηση ατομικά. Η ορθότητα κάθε συνάρτησης της βιβλιοθήκης (το οποίο ονομάζεται module στη περίπτωση μας), θα πρέπει να ελεχθεί και από τα δυο μέλη της ομάδας αλλά θα πρέπει να υλοποιείται από ένα μόνο μέλος της ομάδας (του οποίου το όνομα θα τοποθετηθεί και ως Author στο εν λόγω αρχείο). 5. Έλεγχος Προγράμματος: Το τελικό λογισμικό σας θα πρέπει να ελεγχθεί στατικά (κατά τη μεταγλώττιση και με τον debugger) αλλά και δυναμικά (με valgrind για διαρροή μνήμης, profiler gprof για εύρεση συναρτήσεων που πρέπει να βελτιστοποιηθούν). Νοείται ότι κάθε module του προγράμματος σας θα συνοδεύεται από τους σχετικούς οδηγούς χρήσης για να γίνει το σχετικό white-box testing. 6. GPL: Για σκοπούς εξοικείωσης σας με την ορολογία του λογισμικού ανοικτού πηγαίου κώδικα, η βιβλιοθήκη σας θα πρέπει να κάνει χρήση του GPL προοιμίου (preamble) σε κάθε αρχείο πηγαίου κώδικα της βιβλιοθήκης. Ο πελάτης θα πρέπει να ανταποκρίνεται με το προοίμιο εάν δε δοθούν ορίσματα (βλέπε διάλεξη 18). 1 από 16

2 7. Αξιολόγηση: Η αξιολόγηση της άσκησης θα στηριχτεί στα αναλυτικά κριτήρια που θα παρουσιαστούν στο τέλος αυτής της εκφώνησης. Μεταξύ άλλων, βασικός στόχος της άσκησης είναι να αξιολογηθεί η δομή και οργάνωση της βιβλιοθήκης σας αλλά και επίδοση του συνολικού προγράμματος σας (π.χ., πόση ώρα θα χρειαστεί να διεκπεραιώσει μια ακολουθία από εντολές;; Πόσο αποδοτικά χρησιμοποιείται η μνήμη, κτλ.) 8. Τελικός Διαγωνισμός: Η τελική αξιολόγηση της άσκησης, στο τελευταίο εργαστήριο, θα αναδείξει ένα μικρό αριθμό ομάδων οι οποίες ομάδες θα κληθούν να παρουσιάσουν το λογισμικό τους σε ένα τελικό διαγωνισμό (ημερομηνίες του τελικού διαγωνισμού θα ακολουθήσουν στη συνέχεια). Στοιχεία από Προηγούμενες Εργασίες: 1. Ανάπτυξη του προγράμματος σε eclipse CDT IDE. Το πρόγραμμα πρέπει να μεταγλωττίζεται τόσο μέσω του eclipse όσο και μέσω της γραμμής εντολής με το makefile. Κάθε αντικείμενο (module) πρέπει να συμπεριλαμβάνει τους σχετικό οδηγό χρήσης (driver functions, δείτε διάλεξη 12). Οι ομάδες μπορεί να χρησιμοποιήσουν τους οδηγούς χρήσης όπως επεξηγήθηκε στο μάθημα ή το CUnit. 2. Σχόλια και οδηγό σχολίων με χρήση του doxygen αλλά και διάγραμμα εξαρτήσεων αντικειμένων με χρήση του graphviz. Για χρήση των διαγραμμάτων στο eclipse του Η/Υ σας μπορείτε να χρησιμοποιήσετε το Eclox (βλέπε διάλεξη 16) Οι λειτουργίες της βιβλιοθήκης σας και το αναμενόμενο αποτέλεσμα του πελάτη περιγράφονται αναλυτικότερα στην συνέχεια, αφού επεξηγηθεί πρώτα το πρόβλημα. ΙΙ. Εισαγωγή Στεγανογραφία είναι η διαδικασία κατά την οποία αποκρύπτεται κάποια πληροφορία που πρέπει να αποσταλεί σε κάποιον παραλήπτη μέσα σε ένα μέσο. Ως μέσο μπορεί να οριστεί οποιοδήποτε υλικό αντικείμενο ή άυλο όπως είναι τα αρχεία ενός ηλεκτρονικού υπολογιστή. Ο σκοπός της στεγανογραφίας είναι η αποστολή της επιθυμητής πληροφορίας κρυμμένη μέσα στο μέσο, έτσι ώστε να μην γίνει αντιληπτή από ανεπιθύμητα άτομα, άλλα μόνο από τον παραλήπτη για τον οποίο προορίζεται. Σε αντίθεση με την στεγανογραφία, υπάρχει και η σχετική αλλά διαφορετική έννοια της κρυπτογραφίας, η οποία ασχολείται με τη μελέτη της ασφαλούς επικοινωνίας. Στην κρυπτογραφία ένα μήνυμα κωδικοποιείται με τέτοιο τρόπο ώστε να γίνεται υπολογιστικά ακριβό για οποιοδήποτε τρίτο άτομο, πλην τον καθορισμένο παραλήπτη ο οποίος διαθέτει το κλειδί αποκρυπτογράφησης, να καταλάβει το περιεχόμενο του μηνύματος. Στο παράδειγμα πιο κάτω βλέπουμε αριστερά ένα κείμενο και δεξιά τον τρόπο που μπορούμε να κρύψουμε ένα μυστικό μήνυμα μέσα σε αυτό. Κάθε λέξη του μυστικού μηνύματος εξάγεται παίρνοντας το πρώτο γράμμα κάθε λέξης της κάθε γραμμής του μηνύματος. Big rumble in New Guinea. The war on Celebrity acts should end soon. Over four Big ecstatic elephants replicated. Big rumble in New Guinea. The war on Celebrity acts should end soon. Over four Big ecstatic elephants replicated. Το μυστικό κείμενο είναι: Bring Two Cases Of Beer Τα αρχεία υπολογιστών (εικόνες, ήχοι, ακόμη και οι αποθηκευτικοί δίσκοι) περιέχουν αχρησιμοποίητους ή ασήμαντους τομείς δεδομένων. Η τέχνη της Στεγανογραφίας εκμεταλλεύεται αυτές τις περιοχές, αντικαθιστώντας τις με χρήσιμες πληροφορίες. Τα αρχεία αυτά μπορούν να ανταλλαχθούν χωρίς κανένας να ξέρει τι βρίσκεται πραγματικά μέσα τους. Έτσι, μια φωτογραφία μας μπορεί εύκολα να περιέχει μια προσωπική επιστολή σε έναν φίλο/φίλη και η πληροφορία αυτή να μην είναι ορατή στο γυμνό μάτι. Η Στεγανογραφία μπορεί επίσης να χρησιμοποιηθεί για να τοποθετήσει ένα κρυμμένο "εμπορικό σήμα", είναι αυτό που αποκαλείται Watermarking. Θα μπορούσε επίσης ένας εκτυπωτής να αλλάζει ελαφρώς κάποια pixels σε μια εκτυπωμένη σελίδα για να περιλάβει την ημερομηνία εκτύπωσης και τον αριθμό παραγωγής του εκτυπωτή (serial number). Για την εργασία αυτή, η μέθοδος της στεγανογράφησης θα εφαρμοστεί στις εικόνες τύπου bitmap. Στα επόμενα κεφάλαια της εκφώνησης, δίνεται η δομή των εικόνων bitmap, και ο τρόπος με τον οποίο γίνεται η Στεγανογραφία εικόνων. 2 από 16

3 ΙΙΙ. Εικόνες Bitmap Γνωρίζουμε ότι τα αρχεία εικόνων σε ένα υπολογιστή (π.χ., jpeg, tiff, gif, bmp, png, κτλ.) αποθηκεύουν την πληροφορία σε δυαδική μορφή (παρά σε αρχεία χαρακτήρων ASCII που είδατε μέχρι στιγμής). Τα αρχεία με κατάληξη.bmp (ή.dib Device Independent Bitmap), είναι μια ειδική κατηγόρια εικόνων που αναπτύχθηκε από την Microsoft. Η απλή εσωτερική δομή των αρχείων αυτών τα καθιστούν κατάλληλα για την διδασκαλία βασικών αρχών που έχετε διδαχθεί στα πλαίσια του μαθήματος μας. Γνωρίζουμε ότι κάθε εικόνα αποτελείται από ένα αριθμό εικονοστοιχείων (pixels). Θεωρήστε για παράδειγμα τον 3x4 πίνακα από pixels της εικόνας 1. Αν δώσουμε κάποιο χρώμα σε κάθε τετράγωνο τότε θα δημιουργηθεί κάποια εικόνα. Αν είχαμε ένα μεγαλύτερο πίνακα και μια μεγάλη παλέτα χρωμάτων, τότε θα μπορούσαμε να φτιάξουμε μια εικόνα όπως αυτή που παρουσιάζεται στην Εικόνα Εικόνα 1 Εικόνα 2 Βασικό χαρακτηριστικό μιας εικόνας είναι το βάθος χρώματος (color depth). Με τον όρο αυτό αναφερόμαστε στο πλήθος των διαφορετικών χρωμάτων από τα οποία μπορούν να επιλεγούν τα χρώματα ενός pixel. Οι τυπικές περιπτώσεις είναι οι εξής: Βάθος χρώματος Πλήθος χρωμάτων 1 bit 2 διαθέσιμα χρώματα (2 1 ) 4 bits 16 διαθέσιμα χρώματα (2 4 ) 8 bits ή 1 byte 256 διαθέσιμα χρώματα (2 8 ) 16 bits ή 2 bytes χρώματα (2 16 ) 24 bits ή 3 bytes χρώματα (2 24 ) 32 bits ή 4 bytes χρώματα (2 32 ) Το μέγεθος ενός αρχείου λοιπόν εξαρτάται τόσο από το πλήθος των pixels όσο και από τα bytes τα οποία απαιτούνται για να περιγραφεί το χρώμα του κάθε pixel. Έτσι μια εικόνα 800x600 με βάθος χρώματος 24bit, έχει 800x600 pixels και κάθε pixel χρησιμοποιεί 3 bytes για να καθορίσει το χρώμα του, επομένως η εικόνα αυτή στη μνήμη (και στο δίσκο) θα χρησιμοποιεί τουλάχιστον 800 * 600 * 3 bytes = 1.37MB. Η λέξη τουλάχιστον δηλώνει ότι πέραν από τα χρήσιμα δεδομένα (data) της εικόνας, μαζί με την εικόνα αποθηκεύεται επίσης η επιπλέον πληροφορία της κεφαλίδας (header). Η κεφαλίδα αποθηκεύει διάφορες μέτα-πληροφορίες οι οποίες χαρακτηρίζουν τα pixels τα οποία ακολουθούν. Για παράδειγμα το αρχείο της εικόνας 1 θα αποθηκευτεί στη δευτερεύουσα μνήμη στη μορφή που υποδεικνύεται στην Εικόνα 3 (το DATA είναι ο Πίνακας της εικόνας 1, από κάτω-αριστερά προς πάνωδεξιά, γραμμή-γραμμή), ενώ τα σκιασμένα τετράγωνα υποδηλώνουν την κεφαλίδα της εικόνας. 3 από 16

4 3x4.bmp Εικόνα Header Data Όπως βλέπουμε, τα pixels (δηλ., το DATA) ακολουθούν τις πληροφορίες του HEADER. Όλοι οι τύποι δυαδικών αρχείων (.doc,.jpg,.) έχουν κάποιο είδος header. Συνεπώς με την ολοκλήρωση αυτής της εργασίας θα έχετε εκτιμήσει πολύ καλά τι χρειάζεται για να επεξεργαστείτε πραγματικά αρχεία δεδομένων σε ένα πρόγραμμα. Α. Δομή του Header σε Αρχεία ΒΜP Ας δούμε τώρα αναλυτικότερα το Header μέρος ενός BMP αρχείου. Όπως φαίνεται στο σχήμα της Εικόνας 4, το Header διαιρείται σε 3 μέρη, κάθε ένα εκ των οποίων περιέχει κάποια συνοδευτική πληροφορία για τη συγκεκριμένη εικόνα (μέτα-πληροφορία). Τα τρία μέρη BITMAPFILEHEADER, BITMAPINFOHEADER και BITMAPPALETTE παρουσιάζονται αναλυτικότερα στη συνέχεια. Το BITMAPFILEHEADER περιέχει πληροφορίες για το αρχείο (π.χ., το μέγεθος τους αρχείου σε bytes), το BITMAPINFOHEADER πληροφορίες για την εικόνα (π.χ., χρώμα, μέγεθος, κτλ) και το BITMAPPALETTE περιέχει ένα πίνακα χρωμάτων. Σε αυτή την εργασία θα μας απασχολήσουν μόνο τα πρώτα δυο κομμάτια του Header ενώ το BITMAPPALETTE θα το αγνοήσουμε. Αυτό διότι το BITMAPPALETTE υπάρχει μόνο στις εικόνες με βάθος χρώματος μέχρι 8-bits. Οι εικόνες με βάθος χρώματος 16 bits και μεγαλύτερο δεν έχουν BITMAPPALETTE. Στις εικόνες λοιπόν με λίγα χρώματα, το BITMAPPALETTE περιγράφει ποια χρώματα χρησιμοποιεί η εικόνα (π.χ., σε μια εικόνα με 256 χρώματα, θα πρέπει να δηλώσουμε ποια είναι αυτά τα 256 χρώματα από το σύνολο των χρωμάτων που μπορεί να απεικονίσει ο υπολογιστής, π.χ., το byte έχει τα ακόλουθα bits R,R,R,G,G,G,B,B, όπου R=Red, G=Green και B=Blue). Στην παρούσα εργασία θα ασχοληθούμε μόνο με εικόνες βάθους χρώματος 24 bits στις οποίες η κατανομή χρωμάτων είναι πάντα η ίδια για το R, G, B, δηλαδή 3 bytes συνολικά. Τα BITMAPFILEHEADER και BITMAPINFOHEADER έχουν συνολικό μέγεθος 54 bytes, όπως φαίνεται και στο παρακάτω σχήμα. Header Εικόνα 4 BITMAPFILEHEADER BITMAPINFOHEADER BITMAPPALETTE 14 bytes 40 bytes 54 bytes Δεν υπάρχει σε αυτή την εργασία Οι επόμενοι πίνακες περιγράφουν αναλυτικά τα πεδία των headers. Εσείς θα κληθείτε να επεξεργαστείτε τα πεδία αυτά για να υλοποιήσετε τα ζητούμενα της άσκησης αυτής. Ειδικότερα θα πρέπει να ορίσετε τις κατάλληλες δομές (struct) λαμβάνοντας υπόψη θέματα ευθυγράμμισης μνήμης. Για ευκολία αναφοράς καλείστε να χρησιμοποιήσετε τις ακόλουθες δηλώσεις: typedef unsigned char byte; typedef unsigned short int word; typedef unsigned int dword; Τα σκιασμένα πεδία δηλώνουν τα πεδία τα οποία μάλλον δεν θα χρειαστείτε να επεξεργαστείτε (εάν και πρέπει να είναι μέρος των δομών σας). 4 από 16

5 BITMAPFILEHEADER: Bytes Όνομα Χρήση 1 bftype1 Must always be set to 'BM' to declare that this is a.bmp file (i.e., 1 bftype2 bftype1= B and bftype2= M. Based on these two fields you can identify if this is Bitmap file or not. 4 bfsize Specifies the size of the file (including padding) in bytes 2 bfreserved1 Usually set to zero. 2 bfreserved2 Usually set to zero. 4 bfoffbits Specifies the offset from the beginning of the file to the bitmap data. BITMAPINFOHEADER: Bytes Όνομα Χρήση 4 bisize Specifies the size of the BITMAPINFOHEADER structure, in bytes. 4 biwidth Specifies the width of the image, in pixels. 4 biheight Specifies the height of the image, in pixels. 2 biplanes Specifies the number of planes of the target device, usually set to zero. 2 bibitcount Specifies the number of bits per pixel. 4 bicompression 4 bisizeimage 4 bixpelspermeter 4 biypelspermeter 4 biclrused 4 biclrimportant Specifies the type of compression, usually set to zero (no compression). Need to provide an error if image is compressed. Specifies the size of the image data, in bytes. If there is no compression, it is valid to set this member to zero. Specifies the horizontal pixels per meter on the designated target device, usually set to zero. Specifies the vertical pixels per meter on the designated target device, usually set to zero. Specifies the number of colors used in the bitmap, if set to zero the number of colors is calculated using the bibitcount member. Specifies the number of color that are 'important' for the bitmap, if set to zero, all colors are important. Β. Δομή του DATA σε Αρχεία ΒΜP Τώρα θα δούμε πώς αποθηκεύονται τα DATA (δηλαδή τα πραγματικά pixels μιας εικόνας) μέσα στο αρχείο (σε μη-συμπιεσμενη μορφή, ενώ η συμπιεσμένη μορφή δεδομένων θα αγνοηθεί για την εργασία). Η περιοχή DATA, αποθηκεύει σειριακά τις γραμμές της εικόνας, από το κάτω-αριστερά άκρο της εικόνας προς το άνω-δεξιά άκρο. Σχηματικά, η αποθήκευση φαίνεται στο πιο κάτω σχήμα: Εικόνα 5 biheight picture.bmp Header Data biwidth bioffbits Σημειώστε ότι το biwidth (μέσα στο BITMAPINFOHEADER) δίδει το πλάτος μιας εικόνας ενώ το biheight (μέσα στο BITMAPINFOHEADER) το ύψος της εικόνας. Επίσης το bibitcount (μέσα στο BITMAPINFOHEADER) δίδει το βάθος χρώματος (σε αυτή την άσκηση όλες οι εικόνες είναι 24 bits 5 από 16

6 δηλαδή κάθε pixel θα καταλαμβάνει 3 bytes). Σημειώστε επίσης ότι το πεδίο bfoffbits (μέσα στο BITMAPFILEHEADER) σας δίνει την ακριβή θέση (σε σχέση με την αρχή του αρχείου) απ όπου ξεκινούν τα Data, εάν και δεν χρειάζεται μάλλον να χρησιμοποιηθεί. Περιπλοκές Όπως αναφέραμε, μια εικόνα έχει biwidth αριθμό pixels σε κάθε γραμμή. Εάν το (biwidth*3)%4 αφήνει υπόλοιπο μηδέν, τότε κάθε γραμμή της εικόνας δεν έχει τίποτα άλλο στο τέλος της. Εναλλακτικά, εάν (biwidth*3)%4 αφήνει υπόλοιπο διάφορο του μηδέν, τότε περιέχει επιπλέον 4-((3*biWidth)%4) κενά pixels στο τέλος κάθε γραμμής, τα οποία ονομάζονται padding. Κάθε padding pixel αποτελείται από 3 κενά bytes (δηλ., έχει τη τιμή NUL 0x00). Σημειώστε ότι τα padding pixels δεν είναι μέρος του περιεχομένου της εικόνας αλλά παρουσιάζονται στο αρχείο της εικόνας για λόγους ευθυγράμμισης που δεν θα μας απασχολήσουν. Για να κατανοήσετε την πιο πάνω περιπλοκή θεωρήστε τις ακόλουθες δυο περιπτώσεις: H πιο κάτω εικόνα 3x4.bmp (αριστερά) έχει 4 pixels σε κάθε γραμμή. Εφόσον το (biwidth*3)%4 αφήνει υπόλοιπο μηδέν, αυτό σημαίνει ότι το αρχείο ΔΕΝ θα έχει οποιοδήποτε padding pixel σε κάθε γραμμή. Η πιο κάτω εικόνα 4x3.bmp (δεξιά) από την άλλη έχει 3 pixels σε κάθε γραμμή. Εφόσον το (biwidth*3)%4 αφήνει υπόλοιπο ίσο με 1, αυτό σημαίνει ότι η κάθε γραμμή θα έχει 4- ((biwidth*3)%4), δηλαδή 1 padding pixel (δηλαδή 3 επιπλέον bytes). 3x4.bmp (ΔΕΝ έχει padding) 4x3.bmp (έχει padding, το οποίο δεν φαίνεται) Κατανόηση Δομής Δυαδικών Αρχείων με Hexdump Η πιο κάτω εκτέλεση της εντολής hexdump δείχνει το περιεχόμενο του 4x3.bmp αρχείου σε bytes: η πρώτη στήλη δείχνει τη διεύθυνση της γραμμής σε δεκαεξαδική αναπαράσταση (π.χ., σε δεκαεξαδική αναπαράσταση είναι το 32 σε δεκαδική αναπαράσταση), η δεύτερη στήλη δείχνει ένα-ένα τα bytes του αρχείου (για χάρη παρουσίασης κάθε γραμμή περιέχει 16 bytes) και η τρίτη στήλη δείχνει κάθε ένα από τα 16 bytes της γραμμής ως να ήταν ASCII χαρακτήρες (στη περίπτωση μας μόνο οι πρώτοι 2 χαρακτήρες, BM είναι πραγματικά ASCII χαρακτήρες, τα υπόλοιπα είναι ακολουθίες δυάδων byte, word, dword). $hexdump -C 4x3.bmp ΣΤΗΛΗ 1 ΣΤΗΛΗ 2 ΣΤΗΛΗ d BMh ( b b ff 00 ff 28 ff 00...( d ff ff f 68...=.B..._h ac b9 cb 85 ff ff 8f cb 9f ff 9f ff ff ff από 16

7 Από την πιο πάνω έξοδο της hexdump παρατηρούμε τα ακόλουθα: α) τα πρώτα 54 bytes, τα οποία είναι σκιασμένα με γκρίζο, για χάρη παρουσίασης, αναφέρονται στο header της εικόνας. β) Το header ακολουθείται από 4 γραμμές pixels, η κάθε μια εκ των οποίων γραμμές έχει 3 pixel (υπογραμμισμένα) και 1 pixel padding (3 bytes σκιασμένο και κόκκινο). Συνολικά δηλαδή, σε κάθε γραμμή υπάρχουν 16 pixels, εκ των οποίων τα χρήσιμα είναι μόνο τα 12 υπογραμμισμένα. γ) Το πρώτο pixel (από κάτω αριστερά προς κάτω δεξιά) της εικόνας 4x3 είναι αυτό που μοιάζει με "μαύρο" (001100), το δεύτερο αυτό που μοιάζει με "πράσινο ανοικτό" (00ff00) και το τρίτο αυτό που μοιάζει με "ροζ" (ff28ff). Παρατηρήστε ότι κάθε pixel αποτελείται από 24 bits (8bits κόκκινο, 8 bits πράσινο και 8 bits μπλέ), δηλαδή προκύπτει η πιο κάτω ακολουθία 24 bits: RRRRRRRRGGGGGGGGBBBBBBBB. Συμβουλή: Χρησιμοποιήστε το εργαλείο GIMP (είναι δωρεάν εάν το θέλετε για τον Η/Υ σας!), για να δείτε τις εικόνες που βρίσκονται μαζί με την εκφώνηση (για τις εικόνες 3x4 και 4x3 κάνετε zoom έτσι ώστε να μπορείτε να επιλέξετε ένα pixel και να δείτε τι ακριβώς χρώμα έχει, κάνοντας χρήση του color picker, π.χ., δείτε Το αρχεία εισόδου που βρίσκονται στην ιστοσελίδα περιέχουν τόσο εικόνες με padding όσο και εικόνες χωρίς padding. Βεβαιωθείτε ότι το πρόγραμμα σας εκτελείται ορθά για όλες τις εικόνες που δίνονται. Τέλος σημειώστε ότι τα padding δεν είναι ορατά με το συμβατικό gimp viewer αλλά μόνο με το hexdump. ΙV. Στεγανογραφία Για να κρύψουμε εικόνα ή κείμενο μέσα σε μια άλλη εικόνα bmp, θα χρησιμοποιήσουμε το γεγονός ότι το ανθρώπινο μάτι δυσκολεύεται να διακρίνει τις αποχρώσεις των χρωμάτων που είναι πολύ κοντά το ένα στον άλλο. Αν λάβουμε υπόψη δύο γειτονικά pixel σε μια εικόνα, των οποίων οι αναπαραστάσεις σε δυαδική μορφή είναι οι εξής: Pixel1 = ( (2), (2), (2)) Pixel2 = ( (2), (2), (2)) Είναι λοιπόν σχεδόν αδύνατο να ανιχνευθεί μια διαφορά χρώματος με γυμνό μάτι μεταξύ των δύο χρωμάτων. Ωστόσο, διαφέρουν το ένα από το άλλο, αφού τα bytes του πράσινου χρώματος (δεύτερο byte) είναι διαφορετικά. Ως εκ τούτου, μπορούμε να συμπεράνουμε ότι η αλλαγή των λιγότερο σημαντικών bits στη συνιστώσα ενός pixel, δεν έχει σχεδόν καμία επίπτωση στην οπτική αντίληψη μας για την εικόνα. Για την εργασία αυτή, θα πρέπει να επεξεργαστείτε μέσο στενογραφίας εικόνες τύπου bitmap. Συγκεκριμένα, πρέπει να υλοποιήσετε ένα στενογραφικό σύστημα υλοποιώντας 6 λειτουργίες μετασχηματισμού δεδομένων. Οι δυο πρώτες λειτουργίες (Encrypting/Decrypting) θα παρέχουν τη δυνατότητα να κρύψουν/αποκρύψουν μια μυστική εικόνα εντός των pixels μιας άλλης εικόνας την οποία θα την αποκαλούμε εικόνα κάλυμμα. Οι άλλες δυο λειτουργίες, θα παρέχουν τη δυνατότητα να κρύψουν/αποκρύψουν ένα κείμενο μέσα σε μια εικόνα. Οι τελευταίες δυο λειτουργίες αφορούν την δημιουργία εικόνας από κείμενο και μετά από αυτό μπορείτε να χρησιμοποιήσετε τις δυο πρώτες λειτουργίες για να κρύψετε την εικόνα κείμενο. Α. Κρυπτογράφηση/Αποκρυπτογράφηση εικόνας μέσα σε μια άλλη εικόνα Αυτή η λειτουργία κρύβει μια μυστική εικόνα μέσα σε μια εικόνα κάλυμμα. Το αποτέλεσμα είναι μια κρυπτογραφημένη εικόνα. Για να γίνει αυτό, θα χρησιμοποιήσουμε την τεχνική της αλλαγής των bits μικρότερου βάρους (lowest bits). Σε ένα byte το bit μικρότερου βάρους είναι αυτό που βρίσκεται στην πρώτη θέση από τα δεξιά (το μπλε bit στην εικόνα 6). Εικόνα 6 Ένα byte 7 από 16

8 Όπως εξηγήσαμε στο Κεφάλαιο ΙΙΙ, ένα pixel εικόνας bmp χρησιμοποιεί 3 bytes, ένα για το κόκκινο χρώμα, ένα για το πράσινο και ένα για το μπλε χρώμα. Το καθένα από αυτά, έχει μια τιμή μεταξύ από την οποία εξαρτάται η ένταση του ανάλογου χρώματος (Red, Green, Blue). Η τεχνική της αλλαγής των μικρότερου βάρους bits, είναι η ακόλουθη: Η εικόνα κάλυμμα και η μυστική εικόνα πρέπει να έχουν τις ίδιες διαστάσεις. Για κάθε byte του κάθε χρώματος, αν αλλάξουμε τα δυο δεξιότερα bits αυτό δεν θα επηρεάσει και πολύ την ένταση του χρώματος. Η ιδέα της τεχνικής είναι να αντικαταστήσουμε αυτά τα δυο bits της εικόνας κάλυμμα με τα bits μεγαλύτερου βάρους (τα δυο πρώτα από τα αριστερά) από την μυστική εικόνα. Η τεχνική αντί για δυο, μπορεί να αντικαταστήσει 1, 3 ή και 4 bits. Το πλήθος των αλλαγών, θα επηρεάσει την ποιότητα της μυστικής εικόνας όταν θελήσουμε να την επανακτήσουμε. Παράδειγμα: Έστω η πρωτότυπη εικόνα κάλυμμα «ο λαγός στο χιόνι» (αριστερά) και η πρωτότυπη μυστική εικόνα «το F15» (δεξιά) : Εάν αντικαταστήσουμε το bit μικρότερου βάρους της εικόνας κάλυμμα με το bit μεγαλύτερου βάρους της μυστικής εικόνας, και μετά επανακτήσουμε την μυστική εικόνα, το αποτέλεσμα θα είναι η εικόνα 7 (δεξιά) (αριστερά η εικόνα κάλυμμα μετά την εμφύτευση σε αυτή της μυστικής εικόνας): Εικόνα 7 Αλλαγή ενός bit Εάν αντικαταστήσουμε 2 bit μικρότερου βάρους της εικόνας κάλυμμα με τα 2 bit μεγαλύτερου βάρους της μυστικής εικόνας, και μετά επανακτήσουμε την μυστική εικόνα, το αποτέλεσμα θα είναι η εικόνα 8 (δεξιά) (αριστερά η εικόνα κάλυμμα μετά την εμφύτευση σε αυτή της μυστικής εικόνας): 8 από 16

9 Εικόνα 8 Αλλαγή δυο bits Εάν αντικαταστήσουμε τα 4 bit μικρότερου βάρους της εικόνας κάλυμμα με τα 4 bit μεγαλύτερου βάρους της μυστικής εικόνας, και μετά επανακτήσουμε την μυστική εικόνα, το αποτέλεσμα θα είναι η εικόνα 9 (δεξιά) (αριστερά η εικόνα κάλυμμα μετά την εμφύτευση σε αυτή της μυστικής εικόνας): Εικόνα 9 Αλλαγή τεσσάρων bits Στα παραπάνω παραδείγματα μπορείτε να διακρίνετε ότι η εικόνα κάλυμμα μετά την εμφύτευση σε αυτή της μυστικής εικόνας δεν διαφέρει και πολύ από το πρωτότυπο της εικόνας κάλυμμα. Όμως, η ένταση των χρωμάτων της, αλλάζει προς το χειρότερο εάν αλλάξουμε περισσότερα bits της, με bits από την μυστική εικόνα. Το αντίθετο συμβαίνει με την μυστική εικόνα, η ποιότητα της οποίας είναι καλύτερη στην επανάκτηση εάν η αλλαγή αφορά περισσότερα bits. Αυτό συμβαίνει καθώς κατά την επανάκτηση μπορούμε να επανακτήσουμε περισσότερα bits που ανήκουν στην πρωτότυπη μυστική εικόνα. Επειδή αυτά είναι τα μεγαλύτερου βάρους bits η τιμή του χρώματος είναι μεγαλύτερη (προς το 255), τότε η ένταση των χρωμάτων της είναι καλύτερη. Κατά την επανάκτηση της μυστικής εικόνας, επανακτούμε μόνο τα bits της πρωτότυπης μυστικής εικόνας που εμφυτέψαμε στην πρωτότυπη εικόνα κάλυμμα. Τα άλλα bits είναι 0, γι αυτό και η αλλαγή στην ένταση των χρωμάτων. Β. Κρυπτογράφηση/Αποκρυπτογράφηση κειμένου μέσα σε μια εικόνα Για αυτήν την ενότητα της εργασίας, θα υλοποιήσετε δυο λειτουργίες οι οποίες κρύβουν και εξάγουν κείμενο μέσα/από σε μια εικόνα bmp, Η διαδικασία κωδικοποίησης είναι η εξής: Έστω ένα μήνυμα m το οποίο θέλουμε να κρύψουμε σε μια εικόνα και m i το i-οστό byte αυτού του μηνύματος, και [m i ] j το j-οστό bit αυτού του i-οστού byte (τα bytes είναι αριθμημένα ξεκινώντας από το 0, και τα bits αριθμούνται από το 7 για το πιο σημαντικό bit, στο 0 για το λιγότερο σημαντικό bit). Είναι εύκολο τότε να ορίσουμε μια σειρά u n η οποία περιέχει τα ακόλουθα bits του μηνύματος m: 9 από 16

10 u n m = 0 n 8 ( 7 ( n%8) ) εαν n εαν n [ 0! 8 strlen( m) ] [ 0! 8 strlen( m) ] Προσθέστε μια συνάρτηση int getbit(char *m, int n); στο πρόγραμμα η οποία υπολογίζει το u n. Για την κωδικοποίηση πρέπει να κρύψουμε την σειρά των bits u n μέσα στα bytes των χρωμάτων της εικόνας. Πίνακας μετάθεσης Για να μην τοποθετήσουμε το μήνυμα m σε συνεχόμενα bytes της εικόνας bmp, θα καθορίσουμε μια συνάρτηση ικανή για να κατασκευάσει μεταθέσεις (permutation) βασιζόμενα σε μια παράμετρο που θα ονομάζεται κλειδί του συστήματος (system-key-integer). Η μετάθεση θα μας επιτρέψει να γνωρίζουμε ποια είναι τα bytes της εικόνας που θα αλλάξουμε, και με ποια σειρά. Αυτή η συνάρτηση f χρησιμοποιεί ένα πίνακα Ν ακέραιων το i-οστό στοιχείο του οποίου έχει την τιμή f(n). Ορισμός συνάρτησης μετάθεσης: Έστω Κ = [0 N-1] σύνολο ακέραιων τότε: Για να επιτύχουμε το στόχο μας, ορίζουμε την συνάρτηση f ως την πιο απλή μετάθεση που είναι, δηλαδή: Δηλαδή, στην i-οστή θέση του πίνακα θα δώσουμε την τιμή i. Μετά θα αλλάξουμε τυχαία τα στοιχεία του πίνακα χρησιμοποιώντας τον παρακάτω αλγόριθμο: Κάνε N φορές Διάλεξε τυχαία δυο ακέραιους i και j Μετάτρεψε τους στο διάστηµα [0..N 1] Άλλαξε τα στοιχεία στις θέσεις i και j του πίνακα Το πρόβλημα είναι ότι πρέπει να δημιουργήσουμε ξανά τον ίδιο πίνακα της συνάρτησης μετάθεσης ανά πάσα στιγμή εάν το χρειαστούμε. Για να κάνετε αυτό αρκεί να χρησιμοποιήσετε την συνάρτηση srand(<system-key-integer>) και μετά να καλέσετε την συνάρτηση rand() η οποία επιστρέφει ψευδότυχαίους αριθμούς. Το πρότυπο της συνάρτησης θα είναι: int * createpermutationfunction(int N, unsigned int systemkey); Εισαγωγή μηνύματος στην εικόνα Η εισαγωγή των bits του μηνύματος στην εικόνα bmp μπορεί να γίνει με την ακόλουθη διαδικασία: Για κάθε i από 0 στο (1 + strlen(m)) 8 - υπολόγισε b = getbit(m, i) - υπολόγισε o = permutation[i] - διέγραψε το bit µικρότερου βάρους του o-οστού byte του πίνακα των pixels - αντικατέστησε αυτό το bit που διαγράφτηκε µε την τιµή b 10 από 16

11 H τοποθέτηση (1+strlen(m)) 8 bits στην εικόνα, επιτρέπει την απόκρυψη όλων των bits του μηνύματος m (δηλαδή strlen(m) 8 bits) συν το μηδέν (NUL character) για το τέλος της συμβολοσειράς. Εάν ακολουθηθεί η αντιστροφή διαδικασία που περιγράφτηκε πιο πάνω, με προηγούμενη γνώση το <system-key-integer>, τοτε θα οδηγηθούμε από μια κρυπτογραφημένη εικόνα στο κείμενο m. Γ. Δημιουργία εικόνας από κείμενο Μια άλλη μέθοδος για την εισαγωγή κειμένου σε μια εικόνα είναι η χρησιμοποίηση της διαδικασίας που περιγράφεται στην ενότητα Α αυτού του κεφαλαίου, δηλαδή να κρύψουμε μια εικόνα μέσα σε μια άλλη εικόνα κάλυμμα. Δημιουργία εικόνας από κείμενο Για να γίνει αυτό, πρέπει πρώτα να δημιουργήσουμε μια εικόνα από το κείμενο που θέλουμε να κρύψουμε. Αυτό μπορεί να γίνει δημιουργώντας μια ασπρόμαυρη εικόνα χρησιμοποιώντας τα bits του κειμένου. Η διαδικασία είναι η ακόλουθη: Κάθε pixel της παραγόμενης εικόνας θα αντιστοιχεί σε ένα bit από την ASCII αναπαράσταση του κειμένου. Εάν το bit είναι 0, τότε το pixel θα είναι μαύρο εάν το bit είναι 1, τότε το pixel θα είναι φωτεινό (bright). Το πρώτο bit του πρώτου χαρακτήρα του κειμένου, θα καθορίσει το χρώμα του pixel στην πάνω αριστερή γωνία της εικόνας. Το δεύτερο bit του ιδίου χαρακτήρα θα καθορίσει το χρώμα του επόμενου pixel στην πρώτη στήλη. Τα εναπομείναντα bits του πρώτου χαρακτήρα και των επόμενων χαρακτήρων θα τοποθετηθούν στα pixels προς τα κάτω στην αριστερή στήλη της εικόνας μέχρι το τέλος της στήλης. Μετά, συνεχίζει η διαδικασία ξεκινώντας από το pixel στην κορυφή της δεύτερης στήλης και ούτω καθεξής. Για την διαδικασία αυτή, εκτός από τα bits της συμβολοσειράς του κειμένου, χρειάζεται να λάβετε υπόψη και τις διαστάσεις της εικόνας. Η παραγόμενη εικόνα, θα είναι μια γκρίζα εικόνα τέτοια ώστε η φωτεινότητα του pixel στη θέση (i,j) να ισούται με 128 x getbit(m, height*i + j) όπου height είναι το ύψος της εικόνας. Παράδειγμα: Έστω ο πίνακας των bits [ ] από τον οποίο θέλουμε να παράγουμε μια εικόνα 4x4. Τότε, τα pixels της εικόνας θα έχουν τιμές: Εάν τελειώσουν τα bits και παραμένουν pixels προς συμπλήρωση, τότε θέτουμε τις τιμές των εναπομεινάντων pixels σε 0. Για παράδειγμα, εάν από τον πίνακα των bits array [ ] θέλουμε να παράγουμε μια εικόνα 5x4, τότε τα pixels της εικόνας θα έχουν τις τιμές: από 16

12 Εάν δεν υπάρχουν πια pixels και υπάρχουν ακόμα διαθέσιμα bits του κειμένου, τότε σταματάμε την κωδικοποίηση του πίνακα των bits. Αυτό σημαίνει ότι η αποκωδικοποίηση θα μας δώσει μόνο ένα μέρος του αρχικού κειμένου. Για να έχετε μια ολοκληρωμένη εικόνα bmp, πρέπει να δώσετε τιμές και στα άλλα πεδία της εικόνας (header κλπ). Για την αποκρυπτογράφηση/επανάκτηση του κείμενου πρέπει να ακολουθηθούν τα ίδια βήματα σε αντίστροφη σειρά. Πρώτα θα δημιουργηθεί μια σειρά από bits, μετά πρέπει να γίνει η αποκωδικοποίηση παίρνοντας τα bits ανά οκτάδες για να υπολογιστούν οι χαρακτήρες ASCII του κειμένου. V. Ζητούμενα Άσκησης Έστω ότι bmplib.a είναι η βιβλιοθήκη που θα δημιουργήσετε και bmpsteganography.c ο πελάτης, τότε bmpsteganography είναι το εκτελέσιμο αρχείο που παράγεται συνδέοντας το bmplib.a με το bmpsteganography.c κατά την μεταγλώττιση (υποδειγματικές εικόνες έχουν αναρτηθεί στο as5- supplementary.zip). Πιο κάτω περιγράφεται η αναμενόμενη λειτουργία της βιβλιοθήκης κάνοντας αναφορά στις λειτουργίες της μέσω υποδειγματικών εκτελέσεων του πελάτη. Α. Πελάτης H γενική μορφή εκτέλεσης του πελάτη είναι η ακόλουθη: $./bmpsteganography <-option> image1.bmp [image2.bmp image3.bmp...] όπου option σχετίζεται με μια επί μέρους λειτουργία της βιβλιοθήκης (π.χ., -list εκτυπώνει το header, που θα δούμε σε λίγο) και στη συνέχεια ακολουθεί ένας απροσδιόριστος αριθμός από ονόματα αρχείων. Ενδεχόμενα Λάθη: Δεν ορίζεται option ή δεν δίνεται το όνομα τουλάχιστο μιας εικόνας: Πρέπει να εκτυπώνεται το GPL προοίμιο και στη συνέχεια να δίνεται το σχετικό μήνυμα λάθους. Μια εικόνα δεν είναι.bmp ή δεν είναι 24-bit ή είναι συμπιεσμένη: H εικόνα πρέπει να αγνοείται (η αναγνώριση να γίνει από το bftype και όχι από το extension του αρχείου). Β. Βιβλιοθήκη Λειτουργία 1: Εξαγωγή Μέτα-Πληροφοριών Το όρισμα list αφορά τη εκτύπωση των στοιχείων του header μιας προσδιορισμένης εικόνας σε μορφή που ακολουθεί. $./bmpsteganography list 4x3.bmp image2.bmp BITMAP_FILE_HEADER ================== bftype: BM bfsize: 104 bfreserved1: 0 bfreserved2: 0 bfoffbits: 54 BITMAP_INFO_HEADER ================== bisize: 40 biwidth: 3 biheight: 4 biplanes: 1 bibitcount: 24 bicompression: 0 12 από 16

13 bisizeimage: 50 bixpelspermeter: 2834 biypelspermeter: 2834 biclrused: 0 biclrimportant: 0 *************************************************************************** BITMAP_FILE_HEADER ================== bftype: BM bfsize: bfreserved1: 0 bfreserved2: 0 bfoffbits: 54 BITMAP_INFO_HEADER ================== bisize: 40 biwidth: 400 biheight: 269 biplanes: 1 bibitcount: 24 bicompression: 0 bisizeimage: bixpelspermeter: 0 biypelspermeter: 0 biclrused: 0 biclrimportant: 0 Λειτουργία 2: Φίλτρο Grayscale $./bmpsteganography grayscale image1.bmp [ image2.bmp image3.bmp...] Το όρισμα grayscale εφαρμόζει το φίλτρο grayscale το οποίο μετατρέπει το χρώμα του κάθε pixel σε αποχρώσεις του γκρίζου. Για να γίνει αυτό κατορθωτό θα πρέπει κάθε pixel να μετατρέπεται με την ακόλουθη λογική: Κάθε pixel καταλαμβάνει 3 bytes (εφόσον χρησιμοποιείται 24bit βάθος χρώματος). Ειδικότερα, τα bytes αυτά κατανέμονται ως ακολούθως: red=1 byte, green=1 byte, blue=1 byte. Τα bytes αυτά πολλαπλασιάζονται χρησιμοποιώντας την NTSC (National Television System Committee) εξίσωση: 0.299*red *green *blue. Το στρογγυλοποιημένο αποτέλεσμα της NTSC εξίσωσης πάνω σε κάθε επί μέρους 3-byte RGB ακολουθία του αρχείου θα ονομάζεται απόλυτη φωτεινότητα (luminance). Για παράδειγμα για ένα pixel RGB=(9,90,160), το luminance είναι 0.299* * *160 = 73,761. Συνεπώς, η γκρίζα έκδοση του pixel πρέπει να είναι (74,74,74). Εάν επαναλάβουμε την πιο πάνω εξίσωση για όλα τα pixel μιας εικόνας θα έχουμε το ακόλουθο αποτέλεσμα. Λειτουργία 3: Κωδικοποίηση μιας μυστικής εικόνας μέσα σε μια άλλη εικόνα $./bmpsteganography encodestegano nbbits coverimage.bmp secretimage.bmp 13 από 16

14 Το αποτέλεσμα της εκτέλεσης αυτής της λειτουργίας είναι η δημιουργία μιας εικόνας με το όνομα newcoverimage.bmp η οποία είναι η εικόνα κάλυμμα με την μυστική εικόνα μέσα της. Το όνομα της δημιουργείται από το όνομα της εικόνας κάλυμμα προσθέτοντας το πρόθεμα new-. Η παράμετρος nbbits δείχνει τον αριθμό των bits της εικόνας κάλυμμα που αλλάζουν εισάγοντας άλλα τόσα bits από την μυστική εικόνα. Παρακάτω φαίνεται ένα παράδειγμα στεγανογραφίας μιας εικόνας: $./bmpsteganography -encodestegano 2 IMG_6865.bmp IMG_6875.bmp IMG_6865.bmp IMG_6875.bmp new-img_6865.bmp Λειτουργία 4: Αποκωδικοποίηση/Επανάκτηση μιας μυστικής εικόνας από μια άλλη εικόνα $./bmpsteganography decodestegano nbbits encryptedimage.bmp Το αποτέλεσμα της εκτέλεσης αυτής της λειτουργίας είναι η δημιουργία μιας εικόνας με το όνομα newencryptedimage.bmp η οποία είναι η μυστική εικόνα. Το όνομα της δημιουργείται από το όνομα της εικόνας κάλυμμα προσθέτοντας το πρόθεμα new-. Η παράμετρος nbbits δείχνει τον αριθμό των bits της εικόνας κάλυμμα που αλλάζουν εισάγοντας άλλα τόσα bits από την μυστική εικόνα. Παρακάτω φαίνεται ένα παράδειγμα ανάκτησης μιας μυστικής εικόνας από μια άλλη εικόνα: $./bmpsteganography -decodestegano 2 new-img_6865.bmp new-img_6865.bmp new-new-img_6865.bmp 14 από 16

15 Λειτουργία 5: Κωδικοποίηση ενός κειμένου μέσα σε μια εικόνα $./bmpsteganography encodetext coverimage.bmp inputtext.txt Το αποτέλεσμα της εκτέλεσης αυτής της λειτουργίας είναι η δημιουργία μιας εικόνας με το όνομα newcoverimage.bmp η οποία είναι μια εικόνα bmp με ενσωματωμένο μέσα της το κείμενο του αρχείου inputtext.txt. Το όνομα της δημιουργείται από το όνομα της εικόνας κάλυμμα προσθέτοντας το πρόθεμα new-. Παρακάτω φαίνεται ένα παράδειγμα στεγανογραφίας ενός κειμένου μέσα σε μια εικόνα: $./bmpsteganography -encodetext tux-bonaparte.bmp poem.txt tux-bonaparte.bmp poem.txt PARIS DE NUIT Jacques Prévert Trois allumettes une à une allumées dans la nuit La première pour voir ton visage tout entier La seconde pour voir tes yeux La dernière pour voir ta bouche Et l obscurité tout entière pour me rappeler tout cela En te serrant dans mes bras. new-tux-bonaparte.bmp Λειτουργία 6: Αποκωδικοποίηση/Επανάκτηση μυστικού κειμένου από μια εικόνα $./bmpsteganography decodetext encryptedimage.bmp msglength output.txt Το αποτέλεσμα της εκτέλεσης αυτής της λειτουργίας είναι η δημιουργία ενός αρχείου κειμένου με το μήνυμα που έχει ανακτηθεί από την κωδικοποιημένη εικόνα encryptedimage.bmp. Για να υλοποιηθεί αυτή η λειτουργία, πρέπει να κάνετε την αντίθετη διαδικασία που κάνατε για την λειτουργία 6. Για να πάρετε το τελικό κείμενο, πρέπει να γνωρίζετε το μήκος του σε χαρακτήρες, το οποίο δίνεται στη γραμμή εντολής από την παράμετρο msglength. Το μήνυμα πρέπει να είναι το ίδιο ως προς τη μορφή του (ίδιες γραμμές) με το μήνυμα που κωδικοποιήθηκε στην λειτουργία 6. Παρακάτω φαίνεται ένα παράδειγμα ανάκτησης ενός κειμένου από μια εικόνα: $./bmpsteganography -decodetext new-tux-bonaparte.bmp 280 new-poem.txt new-tux-bonaparte.bmp new-poem.txt PARIS DE NUIT Jacques Prévert Trois allumettes une à une allumées dans la nuit La première pour voir ton visage tout entier La seconde pour voir tes yeux La dernière pour voir ta bouche Et l obscurité tout entière pour me rappeler tout cela En te serrant dans mes bras. Λειτουργία 7: Δημιουργία εικόνας bmp από ένα κείμενο $./bmpsteganography stringtoimage sampleimage.bmp inputtext.txt 15 από 16

16 Αυτή η λειτουργία υλοποιεί όσα περιγράφονται στην ενότητα Γ. του κεφαλαίου IV. Το κείμενο του αρχείου inputtext.txt «μετατρέπεται» σε μια εικόνα bmp η οποία θα είναι μια γκρίζα εικόνα. Σημειώστε ότι το μήκος του κειμένου πρέπει να είναι αρκετό ώστε να γεμίζει τις διαστάσεις της εικόνας και να γίνει ορατό ένα αποτέλεσμα και με γυμνό μάτι. Η εικόνα sampleimage.bmp χρησιμοποιείται μόνο για να αναθέσουμε στην εικόνα που δημιουργείται, τις ίδιες τιμές για τα BITMAP_FILE_HEADER και BITMAP_INFO_HEADER. Εναλλακτικά θα μπορούσαμε να αγνοήσουμε το sampleimage.bmp και να φτιάξουμε μόνοι μας τα BITMAP_FILE_HEADER και BITMAP_INFO_HEADER. Παρακάτω φαίνεται ένα παράδειγμα: $./bmpsteganography -stringtoimage tux-pirate.bmp strfile.txt tux-pirate.bmp new-tux-pirate.bmp Λειτουργία 8: Αποκωδικοποίηση/Επανάκτηση μυστικού κειμένου από μια εικόνα bmp $./bmpsteganography imagetostring encryptedtextimage.bmp Δημιουργείται ένα αρχείο κειμένου με το όνομα outputtext.txt VI. Εξέταση Εργασίας Κατά την διάρκεια του τελευταίου εργαστηρίου θα γίνει η εξέταση της εργασίας κατά το οποίο θα πρέπει να γίνει η επίδειξη της σχεδίασης και υλοποίησης της βιβλιοθήκης και του πελάτη σας απ όλα τα μέλη της ομάδας. Τυχούσα παράληψη παρουσίασης της εργασίας ενδέχεται να συνεπάγεται τον μηδενισμό της εργασίας. Στοιχεία τα οποία ληφθούν υπόψη στην αξιολόγηση της εργασίας σας περιλαμβάνουν: ορθότητα λειτουργίας, στοιχεία επίδοσης: π.χ., ελαχιστοποίηση του χρόνου απόκρισης σε αιτήσεις, το οποίο ορίζεται ως το διάστημα μεταξύ της χρονικής στιγμής που γίνεται η αίτηση και της στιγμής που διεκπεραιώνεται μια λειτουργία, σχεδίαση μονάδων λογισμικού και της βιβλιοθήκης ευρύτερα. Κριτήρια αξιολόγησης: Υλοποίηση Πελάτη 5 Λειτουργία 1: Εκτύπωση list 5 Λειτουργία 2: Φίλτρο grayscale 10 Λειτουργία 3: encodestegano 15 Λειτουργία 4: decodestegano 10 Λειτουργία 5: encodetext 15 Λειτουργία 6: decodetext 10 Λειτουργία 7: stringtoimage 10 Λειτουργία 8: imagetostring 10 Γενική εικόνα (στοιχισμένος και ευανάγνωστος κώδικας, εύστοχα 5 ονόματα μεταβλητών, σταθερών και συναρτήσεων, σχολιασμός) GPL Προοίμια, Σχεδίαση Προγράμματος, Χρήση SVN, gprof 5 report, valgrind report ΣΥΝΟΛΟ 100 (Προαιρετικό) Επιπλέον λειτουργίες οι οποίες τυγχάνουν να έχουν ενδιαφέρον, πολυπλοκότητα και σκοπό (π.χ.,, κτλ.) 10 Καλή Επιτυχία! 16 από 16

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ Άσκηση 5: Οµαδική Ανάπτυξη Σπονδυλωτού Προγράµµατος για Χαµηλού Επιπέδου Αλληλεπίδραση µε Εξοµοιωτή Παιχνιδιών Atari Διδάσκων: Δηµήτρης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία Άσκηση 4: Ομαδική Ανάπτυξη Σπονδυλωτού Προγράμματος για Χαμηλού Επιπέδου Αλληλεπίδραση με Εξομοιωτή Παιχνιδιών Atari

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

ΕΠΛ132 Άσκηση 3 - Αρχές Προγραμματισμού ΙΙ Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

ΕΠΛ132 Άσκηση 3 - Αρχές Προγραμματισμού ΙΙ Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ ΑΣΚΗΣΗ 3: Επεξεργασία Χημικών Τύπων με Δυναμικές Δομές Δεδομένων Διδάσκων: Δημήτρης Ζεϊναλιπούρ Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2 ΕΡΓΑΣΙΑ Διδάσκων: Γιώργος Χρυσάνθου Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: 3/10/015 Ημερομηνία Παράδοσης: 09/11/015 09:00 π.μ. I.Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση

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

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης DIP_06 Συμπίεση εικόνας - JPEG ΤΕΙ Κρήτης Συμπίεση εικόνας Το μέγεθος μιας εικόνας είναι πολύ μεγάλο π.χ. Εικόνα μεγέθους Α4 δημιουργημένη από ένα σαρωτή με 300 pixels ανά ίντσα και με χρήση του RGB μοντέλου

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία Άσκηση 4: Ομαδική Συγγραφή Βιβλιοθήκης (.a) και Πελάτη για Επεξεργασία Αρχείων Ήχου WAV Διδάσκων: Δημήτρης Ζεϊναλιπούρ

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: Δομές Δεδομένων και Αλγόριθμοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Χειμερινό Εξάμηνο 2012 ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2 Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής: 05/03/2013 Ημερομηνία

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ132 Άσκηση 4 - Αρχές Προγραμματισμού ΙΙ Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου Ι. Στόχοι ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ Άσκηση 4 Αυτόματη Επίλυση του Παιχνιδιού

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

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

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

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

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα 1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα 1. Σύστημα Συντεταγμένων Το σύστημα συντεταγμένων που έχουμε συνηθίσει από το σχολείο τοποθετούσε το σημείο (0,0) στο σημείο τομής των δυο αξόνων Χ και Υ.

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

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

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

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή 1 1. Αριθμοί: Το Δυαδικό Σύστημα Οι ηλεκτρονικοί υπολογιστές

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

2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ

2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ 2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ Η σάρωση ενός εγγράφου εισάγει στον υπολογιστή μια εικόνα, ενώ η εκτύπωση μεταφέρει στο χαρτί μια εικόνα από αυτόν. Για να αντιληφθούμε επομένως τα χαρακτηριστικά των σαρωτών

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

Εφαρμογές Πληροφορικής

Εφαρμογές Πληροφορικής Εφαρμογές Πληροφορικής Κεφάλαιο 11 Πολυμέσα ΜΕΡΟΣ Α 1. Υπερκείμενο Ποιός είναι ο κόμβος, ποιός ο σύνδεσμος και ποιά η θερμή λέξη; 1 2. Υπερμέσα Χαρακτηριστικά Κόμβος (Node) Αποτελεί τη βάση πληροφοριών

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

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table.

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table. DreamWeaver - Άσκηση 4η Πίνακες Παρακάτω θα δούμε πως μπορούμε να δημιουργούμε και να επεξεργαζόμαστε πίνακες, μια πολύ βασική δομή. Θα δούμε πως γίνεται εισαγωγή πίνακα, ένωση κελιών του πίνακα, προσθήκη

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 ΒΑΣΙΚΟΙ ΧΕΙΡΙΣΜΟΙ ΕΙΚΟΝΑΣ Αντικείμενο: Εισαγωγή στις βασικές αρχές της ψηφιακής επεξεργασίας εικόνας χρησιμοποιώντας το MATLAB και το πακέτο Επεξεργασίας Εικόνας. Περιγραφή και αναπαράσταση

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων 1 2.1 Τύποι Δεδομένων Τα δεδομένα σήμερα συναντώνται σε διάφορες μορφές, στις οποίες περιλαμβάνονται αριθμοί,

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

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

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

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

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016 2017 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

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

ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ

ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ Αντικείμενο: Κατανόηση και αναπαράσταση των βασικών σημάτων δύο διαστάσεων και απεικόνισης αυτών σε εικόνα. Δημιουργία και επεξεργασία των διαφόρων

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

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

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

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

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Χ. Βέργος Καθηγητής

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Χ. Βέργος Καθηγητής ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013 2014 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία ΑΣΚΗΣΗ 1 The Kenken Puzzle Διδάσκων: Δημήτρης Ζεϊναλιπούρ Υπεύθυνοι Εργαστήριων: Πύρρος Μπράτσκας & Παύλος Αντωνίου

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας ΕΡΓΑΣΙΑ 2 Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας Εισαγωγή Ημερομηνία Ανάρτησης: 16/02/2017 Ημερομηνία Παράδοσης: 06/03/2017,

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

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

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

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

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ Τετάρτη 5-12/11/2014 ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ ΕΚΠΑΙΔΕΥΤΗΣ: ΤΡΟΧΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ 1. Παράσταση και οργάνωση δεδομένων

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

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

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

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

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

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

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Σχεδίαση με Ηλεκτρονικούς Υπολογιστές Ενότητα # 10: Χρωματικά μοντέλα στον ΗΥ Καθηγητής Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων & Τοπογράφων

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ. Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής. Αναπαράσταση Δεδομένων

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ. Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής. Αναπαράσταση Δεδομένων ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Αναπαράσταση Δεδομένων Υπολογιστικά συστήματα: Στρώματα 1 Επικοινωνία Εφαρμογές

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΕΞΑΜΗΝΟ: 1 ο /2015-16 ΤΜΗΜΑ: ΑΓΡΟΤΙΚΗΣ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΑΝΑΠΤΥΞΗΣ Καθηγητής: Θ. Τσιλιγκιρίδης Άσκηση 1η Περιεχόμενα μνήμης Λύσεις

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

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

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

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

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ 3 η Εργασία Ακαδημαϊκό Έτος 206-7 Ημερομηνία Παράδοσης Εργασίας: 5 Ιανουαρίου 207. Εκφώνηση Να χρησιμοποιηθεί ο κώδικας που αναπτύξατε στις 2 προηγούμενες εργασίες για

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 1 Χειμερινό Εξάμηνο 2016-2017 Στόχοι του εργαστηρίου Εντολές

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

Group (JPEG) το 1992.

Group (JPEG) το 1992. Μέθοδοι Συμπίεσης Εικόνας Πρωτόκολλο JPEG Συμπίεση Εικόνας: Μείωση αποθηκευτικού χώρου Ευκολία στη μεταφορά αρχείων Δημιουργήθηκε από την ομάδα Joint Photographic Experts Group (JPEG) το 1992. Ονομάστηκε

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

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Εντοπισμός ενός σήματος STOP σε μια εικόνα. Περιγράψτε τη διαδικασία με την οποία μπορώ να εντοπίσω απλά σε μια εικόνα την ύπαρξη του παρακάτω

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

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

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

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

Ενότητα 1. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα

Ενότητα 1. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα Ενότητα 1 Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα 1.1 Ψηφιακό Αναλογικό (βιβλίο μαθητή σελ. 104) στη διπλανή φωτογραφία τα χρώματα διαδέχονται το ένα το άλλο χωρίς να μπορούμε να διακρίνουμε τις ενδιάμεσες

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

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

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

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

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

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

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

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

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

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

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

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Αναπαράσταση δεδομένων 2 Τύποι δεδομένων Τα δεδομένα

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ

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

Συστήματα Αναμονής (Queuing Systems)

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

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

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κύκλος ζωής λογισμικού source: Forouzan, Mosharraf Τροποποιήσεις διόρθωση σφαλμάτων, αλλαγή απαιτήσεων χρήστη,...

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

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

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

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

Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I

Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I (Κεφάλαιo 25.1, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ.

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ. Παραδείγματα Απαρίθμησης Γνωστό: P (M 2 M τρόποι επιλογής υποσυνόλου του M Τεχνικές Απαρίθμησης Πχ M {A, B, C} P (M 2 3 8 #(Υποσυνόλων με 2 στοιχεία ( 3 2 3 #(Διατεταγμένων υποσυνόλων με 2 στοιχεία 3 2

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια. Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 4 Εαρινό Εξάμηνο 2012-2013 Στόχοι του εργαστηρίου Χρήση στοίβας Συναρτήσεις ΠΡΟΣΟΧΗ: Αρχίστε νωρίς

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

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε

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

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

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

ΠΛΗΡΟΦΟΡΙΚΗ I. 7 η ΔΙΑΛΕΞΗ Γραφικά με Υπολογιστή

ΠΛΗΡΟΦΟΡΙΚΗ I. 7 η ΔΙΑΛΕΞΗ Γραφικά με Υπολογιστή ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗ I 7 η ΔΙΑΛΕΞΗ Γραφικά με Υπολογιστή ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Αναπαράσταση δεδομένων

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

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό Έτος 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Κωδικοποίηση και Δυαδική Αναπαράσταση 2. Κωδικοποίηση ASCII Κωδικοποίηση Unicode Εισαγωγή

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 132 Αρχές Προγραμματισμού ΙΙ ΑΣΚΗΣΗ 1 Το παιχνίδι «Οι Τρεις Σωματοφύλακες» Διδάσκων: Δημήτρης Ζεϊναλιπούρ Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης:

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

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

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

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

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

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

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

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ 1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 «Μαθαίνω στη γάτα να σχεδιάζει» Δραστηριότητα 1 Παρατηρήστε τις εντολές στους παρακάτω πίνακες,

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init() Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2008 Αν. Καθηγητής Δημήτρης Γουνόπουλος Καθηγητής Γιάννης Ιωαννίδης 'Ασκηση 1: Στατικός Κατακερματισμός (Ημερομηνία

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1 Εικόνα Εισαγωγή Ψηφιακή αναπαράσταση Κωδικοποίηση των χρωμάτων Συσκευές εισόδου και εξόδου Βάθος χρώματος και ανάλυση Συμβολική αναπαράσταση Μετάδοση εικόνας Σύνθεση εικόνας Ανάλυση εικόνας Τεχνολογία

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

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

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