ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ º½ Απλές δομές Ηδομήχρησ ιμοποιείταισ ανσ υλλογήμεταβλητώνδιαφορετικούτύπουπροκειμένου ναπεριγράψεισ υνολικάμιαοντότηταº ΓιαπαράδειγμαηοντότηταΑΝΘΡΩΠΟΣ αποτελείταιαπόταπεδία ½º Ονομα αλφαριθμητικόµ ¾ºΕπίθετο αλφαριθμητικόµ ºΗλικία ακέραιος αριθμόςµ º Υψος δεκαδικόςαριθμόςµ Γιατηνδήλωσ ητωνδομώνχρησ ιμοποιείταιοπροσ διορισ τής ØÖÙØ όπωςσ την σ υνέχεια ØÖÙØ È Ö ÓÒ ß Ö Ò Ñ ½ ¼ ¼ Ö Ð ØÒ Ñ ½ ¼ ¼ ÒØ ÓÙ Ð Ø Ð Ηδήλωσ ημιαςδομήςμοιάζειαρκετάμετηνδήλωσ ησ υναρτήσ εων χωρίςόμωςτον εκτελέσ ιμοκώδικαºηδήλωσ ηδομήςδενσ ημαίνειόμωςκαιδήλωσ ημεταβλητήςº Αυτόπρέπειναγίνειμέσ ασ εκάποιασ υνάρτησ η όπωςπχσ την ÑÒ µόπως ØÖÙØ È Ö ÓÒ ÑÝÈ Ö ÓÒ Αυτήηδήλωσ ηδημιουργείμιαμεταβλητήτύπου È Ö ÓÒμετοόνομα ÑÝÈ Ö ÓÒº Εναπλήρεςπαράδειγμαχρήσ ηςδομήςπαρουσ ιάζεταισ τοναλγόριθμο º½ºΓιατην αναφοράσ ταπεδίατηςδομήςχρησ ιμοποιείταιοτελεσ τήςσ υμμετοχής ºµ Κάθε πεδίοτηςμεταβλητής ÑÝÈ Ö ÓÒμπορείναχρησ ιμοποιηθείκαισ ανδιαφορετική
μεταβλητή δηλαδήγιαπαράδειγμαημεταβλητή ÑÝÈ Ö ÓÒº αντιμετωπίζεται σ ανμιαξεχωρισ τήακέραιαμεταβλητήπουσ τηνπερίπτωσ ητουσ υγκεκριμένου προβλήματοςαναπαρισ τάηλικίεςº º¾ Χρήσ ητου ØÝÔ Η εντολή ØÝÔ χρησ ιμοποιείταιγια να ορίσ ει νέουςτύπουςδεδομένων σ αν ψευδώνυμαάλλωντύπων προκειμένουγιαπαράδειγμαναορίσ ουνονόματαπου απομνημονεύονταιευκολότεραºγιαπαράδειγμαηδήλωσ η Ø Ý Ô ÓÙ Ð ÆÙÑÖ ορίζειπωςτοόνομα ÆÙÑÖμπορείναχρησ ιμοποιηθείκαισ ανψευδώνυμα τουενσ ωματωμένουτύπουδεδομένων ÓÙ Ð ºΣυνεπώςηδήλωσ η ÓÙ Ð Üκαιη δήλωσ η ÆÙÑÖ ÜείναιακριβώςοιίδιεςºΕπιπλέονηεντολή ØÝÔμπορείνα χρησ ιμοποιηθείγιανααντικατασ τήσ ειπίνακεςμετύπουςδεδομένωνπουορίζονται απότονχρήσ τη όπωςσ τοπαράδειγμα º¾ όπουδηλώνεταιέναςνέοςτύποςγια αλφαριθμητικάσ ανψευδώνυμοσ επίνακαγραμμάτωνº Σεπολλέςπεριπτώσ ειςδενείναιβολικόοχρήσ τηςναπρέπειναδηλώσ ειμια μεταβλητήδομήςμετηνχρήσ ητου ØÖÙØ È Ö ÓÒ ÑÝÈ Ö ÓÒ Θαήτανπροτιμότεροηπαραπάνωδήλωσ ηνααντικατασ ταθείμε È Ö ÓÒ ÑÝÈ Ö ÓÒ Γιαναγίνειαυτόηδήλωσ ητηςδομήςμπορείναγίνειμετηνβοήθειατηςεντολής ØÝÔπουπαρουσ ιάσ τηκεπρινº Εναενδεικτικόπαράδεγμαχρήσ ηςπαρουσ ιάζεταισ τοναλγόριθμο º º º Αρχικοποίησ ηδομής Μιαμεταβλητήδομήςμπορείνααρχικοποιηθείμεαναθέσ ειςκαιανάγνωσ ητιμών αλλάμπορείνααρχικοποιηθείκαικατατηνδήλωσ η όπωςκαισ τηνπερίπτωσ ητων πινάκωνº Ενααπλόπαράδειγμααρχικοποίησ ηςτηςδομήςπροσ ώπουπαρουσ ιάζεται σ τοναλγόριθμο º º º Συναρτήσ ειςκαιδομές Οιδομέςμπορούνναχρησ ιμοποιηθούνσ ανορίσ ματασ εσ υναρτήσ ειςαλλάκαι σ αντιμέςεπισ τροφήςº Στοπαράδειγματουαλγορίθμου º παρουσ ιάζεταιμια εφαρμογήπουδιαβάζειτηνώρασ εμορφήδομήςκαιτηνεμφανίζεισ ε ½¾ωρηήσ ε ωρημορφήº
Αλγόριθμος3.1Εισ αγωγήκαιεμφάνισ ησ τοιχείωνπροσ ώπουº ½ ÒÐÙ Ø Ö Ò º ¾ ÒÐÙ Ó Ø Ö Ñ Ù Ò Ò Ñ Ô Ø ØÖÙØ È Ö ÓÒ Ö Ò Ñ ½ ¼ ¼ Ö Ð ØÒ Ñ ½ ¼ ¼ ÒØ ÓÙ Ð Ø ½¼ Ð ½½ ÒØ ÑÒ µ ½¾ ß ½ ØÖÙØ È Ö ÓÒ ÑÝÈ Ö ÓÒ ÓÙØ Ó Ø Ø Ø Ó Ü ØÓÙ ÔÖÓ ÓÔÓÙ Ò ÓÙØ Ó Ø ÓÒÓÑÒ Ò ÑÝÈ Ö ÓÒ º Ò Ñ ÓÙØ Ó Ø Ô Ø Ø Ó Ò Ò ÑÝÈ Ö ÓÒ º Ð ØÒ Ñ ÓÙØ Ó Ø Ð Ò ¾¼ Ò ÑÝÈ Ö ÓÒ º ¾½ ÓÙØ Ó Ø Ý Ô Ó Ò ¾¾ Ò ÑÝÈ Ö ÓÒ º Ø ¾ ÓÙØ Ñ Ò Ø Ó Ü Ó Ò Ò ÓÙØÑÝÈ Ö ÓÒ º Ò ÑÑÝÈ Ö ÓÒ º Ð ØÒ Ñ Ò Ð ÓÙØÑÝÈ Ö ÓÒ º ÑÝÈ Ö ÓÒ º Ø Ò Ð ÑÝÈ Ö ÓÒ º µ ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð Ð ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð ¼ Ö ØÙÖÒ ¼ ½ Ð
Αλγόριθμος3.2Δήλωσ ητύπουαλφαριθμητικούº ½ ÒÐÙ Ø Ö Ò º ¾ ÒÐÙ Ó Ø Ö Ñ Ù Ò Ò Ñ Ô Ø ØÝÔ Ö Ë Ø Ö Ò ½ ¼ ¼ ÒØ ÑÒ µ Ë Ø Ö Ò ÑÝÒ Ñ ½¼ ÓÙØ ÈÓ Ó Ò Ø Ó ÓÒÓÑ Ò ½½ Ò ÑÝÒ Ñ ½¾ ÓÙØ ÌÓ ÓÒÓÑ Ò ÑÝÒ Ñ Ò Ð ½ Ö ØÙÖÒ ¼ Ð º Σύγκρισ ηδομών Οιδομέςείναισ ύνθετοιτύποιδεδομένωνκαισ αντέτοιοιδενμπορούννασ υγκριθούνάμεσ αºτοπαράδειγμα Ì Ñ Ø½ Ø ¾ Ø Ø ¾ µ ß Ð δενείναισ ωσ τόκαιθαπρέπειναγίνεισ ύγκρισ ητωνπεδίωντωνδύοδομώνένα προςέναπροκειμένουναγίνειέλεγχος όπωςπαρουσ ιάζεταικαισ τοναλγόριθμο º όπουδύοχρονικέςσ τιγμέςσ υγκρίνονταιαπότηνσ υνάρτησ η ÓÑÔ Ö Ì Ñ µº Ησ υνάρτησ ηεπισ τρέφει ½ανηπρώτηχρονικήσ τιγμήείναιπιομετάσ τονχρόνο ¼γιαισ ότητακαι ¹½ανηδεύτερηχρονικήσ τιγμήείναιπιομετάº º Δομέςπουέχουνδομέςσ ανπεδία Οιδομέςμπορούνναβρίσ κονταικαισ ανπεδίαάλλωνδομώνόταναυτόαπαιτείταιº Για παράδειγμα η δομή ΑΝΘΡΩΠΟΣ μπορεί να περιλαμβάνει την δομή ΗΜΕΡΟΜΗ- ΝΙΑσ ανπεδίοτου πχσ αντοπεδίοημερομηνιαγεννησησºτοθέμααυτό παρουσ ιάζεταισ τοναλγόριθμο º º º Πίνακεςδομών Οπωςέναςπίνακαςμπορείναπεριέχειαπλάσ τοιχείαέτσ ιμπορείναπεριέχεικαι δομέςºγιαπαράδειγμαοιμαθητέςμιαςτάξηςθαμπορούσ αννααποτελέσ ουνέναν
Αλγόριθμος3.3Οτύποςδομής È Ö ÓÒμεχρήσ η ØÝÔº ½ ÒÐÙ Ø Ö Ò º ¾ ÒÐÙ Ó Ø Ö Ñ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ Ö Ò Ñ ½ ¼ ¼ Ö Ð ØÒ Ñ ½ ¼ ¼ ÒØ ÓÙ Ð Ø ½¼ Ð È Ö ÓÒ ½½ ½¾ ÒØ ÑÒ µ ½ ß È Ö ÓÒ ÑÝÈ Ö ÓÒ ÓÙØ Ó Ø Ø Ø Ó Ü ØÓÙ ÔÖÓ ÓÔÓÙ Ò ÓÙØ Ó Ø ÓÒÓÑÒ Ò ÑÝÈ Ö ÓÒ º Ò Ñ ÓÙØ Ó Ø Ô Ø Ø Ó Ò Ò ÑÝÈ Ö ÓÒ º Ð ØÒ Ñ ¾¼ ÓÙØ Ó Ø Ð Ò ¾½ Ò ÑÝÈ Ö ÓÒ º ¾¾ ÓÙØ Ó Ø Ý Ô Ó Ò ¾ Ò ÑÝÈ Ö ÓÒ º Ø ÓÙØ Ñ Ò Ø Ó Ü Ó Ò Ò ÓÙØÑÝÈ Ö ÓÒ º Ò ÑÑÝÈ Ö ÓÒ º Ð ØÒ Ñ Ò Ð ÓÙØÑÝÈ Ö ÓÒ º ÑÝÈ Ö ÓÒ º Ø Ò Ð ÑÝÈ Ö ÓÒ º µ ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð Ð ¼ ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð ½ Ö ØÙÖÒ ¼ ¾ Ð
¼ Αλγόριθμος3.4Αρχικοποίησ ηδομήςκατάτηνδήλωσ ηº ½ ÒÐÙ Ø Ö Ò º ¾ ÒÐÙ Ó Ø Ö Ñ Ù Ò Ò Ñ Ô Ø ØÖÙØ È Ö ÓÒ Ö Ò Ñ ½ ¼ ¼ Ö Ð ØÒ Ñ ½ ¼ ¼ ÒØ ÓÙ Ð Ø ½¼ Ð ½½ ÒØ ÑÒ µ ½¾ ß ½ ØÖÙØ È Ö ÓÒ ÑÝÈ Ö ÓÒ ß Ò Ò È ÔÔ ½ ½ Ð ÓÙØ Ñ Ò Ø Ó Ü Ó Ò Ò ÓÙØÑÝÈ Ö ÓÒ º Ò ÑÑÝÈ Ö ÓÒ º Ð ØÒ Ñ Ò Ð ÓÙØÑÝÈ Ö ÓÒ º ÑÝÈ Ö ÓÒ º Ø Ò Ð ÑÝÈ Ö ÓÒ º µ ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð Ð ¾¼ ÓÙØ ÌÓ ÔÖÓ ÓÔÓ Ò Ò Ð Ó Ò Ð ¾½ Ö ØÙÖÒ ¼ ¾¾ Ð
½ Αλγόριθμος3.5Εφαρμογήανάγνωσ ηςκαιεμφάνισ ηςτηςώραςº ½ ÒÐÙ Ó Ø Ö Ñ ¾ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ ÒØ ÓÙÖ ÒØ Ñ ÒÙØ ÒØ ÓÒ ÐÌ Ñ ½¼ ½½ Ì Ñ Ö Ì Ñ µ ½¾ ß ½ Ì Ñ Ø ÓÙØ Ó Ø ÓÖ Ò Ø º ÓÙÖ ÓÙØ Ó Ø Ð Ô Ø Ò Ø º Ñ ÒÙØ ÓÙØ Ó Ø Ý Ø Ö Ó Ð Ô Ø Ò Ø º ÓÒ ¾¼ Ö ØÙÖÒ Ø ¾½ Ð ¾¾ ¾ ÚÓ ÔÖ ÒØÌ Ñ Ì Ñ Ø ÒØ Ð ¾ µ ß Ð ¾ ½µ ÓÙØØ º ÓÙÖ Ø º Ñ ÒÙØ Ø º ÓÒ Ò Ð Ð ÓÙØØ º ÓÙÖ ½ Ø º Ñ ÒÙØ Ø º ÓÒ Ò Ð Ð ¼ ½ ÒØ ÑÒ µ ¾ ß Ì Ñ ÑÝØ Ñ ÑÝØ ÑÖ Ì Ñ µ ÔÖ ÒØÌ Ñ ÑÝØ Ñ ¼ µ ÔÖ ÒØÌ Ñ ÑÝØ Ñ ½ µ Ö ØÙÖÒ ¼ Ð
¾ Αλγόριθμος3.6Σύγκρισ ηχρονικώνσ τιγμώνº ½ ÒÐÙ Ó Ø Ö Ñ ¾ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ ÒØ ÓÙÖ ÒØ Ñ ÒÙØ ÒØ ÓÒ ÐÌ Ñ ½¼ ½½ Ì Ñ Ö Ì Ñ µ ½¾ ß ½ Ì Ñ Ø ÓÙØ Ó Ø ÓÖ Ò Ø º ÓÙÖ ÓÙØ Ó Ø Ð Ô Ø Ò Ø º Ñ ÒÙØ ÓÙØ Ó Ø Ý Ø Ö Ó Ð Ô Ø Ò Ø º ÓÒ ¾¼ Ö ØÙÖÒ Ø ¾½ Ð ¾¾ ¾ ÒØ Ì Ñ ¾Ë ÓÒ Ì Ñ Ø µ ß Ö ØÙÖÒ Ø º ÓÙÖ ¼ ¼ Ø º Ñ ÒÙØ ¼ Ø º ÓÒ Ð ÒØ ÓÑÔ Ö Ì Ñ Ì Ñ Ø½ Ì Ñ Ø ¾ µ ¼ ß ½ ÒØ Ø ½ Ó Ò Ì Ñ ¾Ë ÓÒ Ø ½ µ ¾ ÒØ Ø ¾ Ó Ò Ì Ñ ¾Ë ÓÒ Ø ¾ µ Ø ½ Ó Ò Ø ¾ Ó Ò µ Ö ØÙÖÒ ½ Ð Ø ½ Ó Ò Ø ¾ Ó Ò µ Ö ØÙÖÒ Ð Ö ØÙÖÒ ¼ Ð ÒØ ÑÒ µ ¼ ß ½ Ì Ñ Ø Ñ ½ Ø Ñ ¾ ¾ ÒØ Ø Ø Ñ Ö Ì Ñ µ Ø Ñ Ö Ì Ñ µ Ø ÓÑÔ Ö Ì Ñ Ø Ñ ½ Ø Ñ ¾ µ Ø ½µ ÓÙØ Á Ô Ö Ó Ø ÓÖ Ò Ñ Ð Ý Ø Ö Ò Ð Ð Ø ½µ ÓÙØ Á Ý Ø Ö ÓÖ Ò Ñ Ð Ý Ø Ö Ò Ð Ð ÓÙØ Ò Ó Ò Ð ¼ Ö ØÙÖÒ ¼ ½ Ð
Αλγόριθμος3.7Δομήσ ανπεδίοάλληςδομήςº ½ ÒÐÙ Ó Ø Ö Ñ ¾ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ ÒØ Ý Ö ÒØ ÑÓÒØ ÒØ Ý Ð Ø ½¼ ½½ ØÝÔ ØÖÙØ ½¾ ß ½ Ö Ò Ñ ½ ¼ ¼ Ö Ð ØÒ Ñ ½ ¼ ¼ Ø Ö Ø Ø Ð È Ö ÓÒ Ø Ö Ø µ ß Ø ¾¼ ÓÙØ Ó Ø Ñ ÖÓÑ Ò ¾½ Ò º Ý º ÑÓÒØ º Ý Ö ¾¾ Ö ØÙÖÒ ¾ Ð ÚÓ Ô Ö Ò Ø Ø Ø µ ß ÓÙØ º Ý» º ÑÓÒØ» º ÝÖ Ò Ð Ð È Ö ÓÒ Ö È Ö Ó Ò µ ß ¼ È Ö ÓÒ Ô ½ ÓÙØ Ó Ø Ø Ø Ó Ü Ò ¾ Ò Ô º Ò Ñ Ò Ô º Ð ØÒ Ñ Ô º Ö Ø Ø Ö Ø µ Ö ØÙÖÒ Ô Ð ÚÓ Ô Ö Ò Ø È Ö Ó Ò È Ö ÓÒ Ô µ ÓÙØ Ì Ø Ó Ü Ò ¼ ÓÙØÔ º Ò Ñ Ô º Ð ØÒ Ñ Ò Ð ½ Ô Ö Ò Ø Ø Ô º Ö Ø Ø µ ¾ Ð ÒØ ÑÒ µ ß È Ö ÓÒ ÑÝÈ Ö ÓÒ ÑÝÈ Ö ÓÒ Ö È Ö Ó Ò µ Ô Ö Ò Ø È Ö Ó Ò ÑÝÈ Ö ÓÒ µ Ö ØÙÖÒ ¼ Ð
πίνακααπόδομέςόπωςκαιοιυπάλληλοιμιαςεπιχείρησ ηςº Στοπαράδειγματου αλγορίθμου º δημιουργείταιέναςπίνακαςαπόυπαλλήλουςμεπεδία Επίθετο ΑριθμότμήματοςκαιΜισ θόº Στηνσ υνέχειαεμφανίζεταισ τηνοθόνητοπλήθος των υπαλλήλων που λαμβάνουν λιγότερα από ½¼¼¼ ευρώ τον μήναº º Δομέςμεπίνακεςσ ανπεδία Εναακόμαπαράδειγμαχρήσ ηςδομώνείναιηχρήσ ηπινάκωνσ ανπεδίαδομώνº Για παράδειγμα ένας μαθητής μπορεί να έχει τον αριθμό μητρώου του και έναν πίνακαμετιςβαθμολογίεςσ ταμαθήματατουεξαμήνουτουºστοπαράδειγματου αλγορίθμου º δημιουργείταιέναςπίνακαςμαθητώνμε μαθήματαοκαθέναςσ το εξάμηνοºηεφαρμογήεμφανίζειγιακάθεμαθητήτονμέσ οόροσ τοεξάμηνότουº
Αλγόριθμος 3.8 Πίνακας υπαλλήλωνº ½ ÒÐÙ Ó Ø Ö Ñ ¾ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ Ö Ð ØÒ Ñ ½ ¼ ¼ ÒØ Ô ÓÙ Ð Ð Ö Ý Ð ÑÔÐÓÝ ½¼ ½½ ÑÔÐÓÝ ÖÑÔÐÓÝ µ ½¾ ß ½ ÑÔÐÓÝ Ô ÓÙØ Ó Ø Ø Ø Ó Ü ØÓÝ Ý Ô Ð Ð Ð Ó Ù Ò Ò Ô º Ð ØÒ Ñ Ò Ô º Ô Ò Ô º Ð Ö Ý Ö ØÙÖÒ Ô Ð ¾¼ ¾½ ÒØ ÑÒ µ ¾¾ ß ¾ ÑÔÐÓÝ Ø Ð ÒØ ÒØ Ø Ó Ø Ð ¼ ÓÖ ¼ µ ß Ø Ð ÖÑÔÐÓÝ µ Ø Ð º Ð Ö Ý ½¼¼¼µ Ø Ó Ø Ð ¼ Ð ½ ÓÙØ Ë Ý Ò Ó Ð ÝÔ ÖÜÓÙÒ Ø Ó Ø Ð ¾ Ý Ô Ð Ð Ð Ó Ñ ØÓ ÔÓ ½¼¼¼ ÙÖÓ ÑÓ Ò Ð Ö ØÙÖÒ ¼ Ð
Αλγόριθμος 3.9 Πίνακας μαθητώνº ½ ÒÐÙ Ó Ø Ö Ñ ¾ Ù Ò Ò Ñ Ô Ø ØÝÔ ØÖÙØ ÒØ Ø Ù Ò Ø ÓÙ Ð Ð Ó Ò Ð ËØÙÒØ ½¼ ËØÙÒØ Ö Ë Ø Ù Ò Ø µ ½½ ß ½¾ ËØÙÒØ ½ ÒØ ÓÙØ Ó Ø ØÓÒ Ó Ó ØÓÙ Ñ Ø Ø Ò º Ø Ù Ò Ø ÓÖ ¼ µ ß ÓÙØ Ó Ø Ñ ØÑ Ò Ð Ò º Ð Ó Ò ¾¼ Ð ¾½ Ö ØÙÖÒ ¾¾ Ð ¾ ÓÙ Ð Ú Ö ËØÙÒØ µ ß ÓÙ Ð ÙÑ ¼ º ¼ ÒØ ÓÖ ¼ µ ÙÑ ÙÑ º Ð Ó Ò ¼ Ö ØÙÖÒ ÙÑ» º ¼ ½ Ð ¾ ÒØ ÑÒ µ ËØÙÒØ Ñ Ý Ð ÒØ ÓÙ Ð ÓÖ ¼ µ ¼ Ñ Ý Ð Ö Ë Ø Ù Ò Ø µ ½ Ú Ö Ñ Ý Ð µ ¾ ÓÙØ Ç Ñ Ó Ó Ö Ó Ò Ò Ð Ð Ö ØÙÖÒ ¼ Ð