Δομημένος Προγραμματισμός

Σχετικά έγγραφα
Διοικητική Λογιστική

Δομημένος Προγραμματισμός

Διδακτική Πληροφορικής

Βάσεις Περιβαλλοντικών Δεδομένων

Διδακτική Πληροφορικής

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Διοικητική Λογιστική

Τεχνικό Σχέδιο - CAD

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

Ασφάλεια Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής

Δομημένος Προγραμματισμός

Βάσεις Περιβαλλοντικών Δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Τεχνικό Σχέδιο - CAD

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

Δομή διαδικτυακών Πολυμέσων

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

Διδακτική Πληροφορικής

Τεχνικό Σχέδιο - CAD

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Βάσεις Περιβαλλοντικών Δεδομένων

Διοικητική Λογιστική

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

Διδακτική Πληροφορικής

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

Τεχνικό Σχέδιο - CAD

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διοικητική Λογιστική

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Διοικητική Λογιστική

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διδακτική Πληροφορικής

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Διαχείριση Πολιτισμικών Δεδομένων

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

Δομημένος Προγραμματισμός

Τεχνολογία Πολιτισμικού Λογισμικού

Διδακτική Πληροφορικής

Τεχνικό Σχέδιο - CAD

Βάσεις Περιβαλλοντικών Δεδομένων

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

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

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διοικητική Λογιστική

Διοικητική Λογιστική

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

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

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

ΔΙΟΙΚΗΣΗ ΔΙΕΘΝΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Δομημένος Προγραμματισμός

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Εισαγωγή στους Αλγορίθμους

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Βάσεις Περιβαλλοντικών Δεδομένων

Διδακτική Πληροφορικής

Ασφάλεια Πληροφοριακών Συστημάτων

Τεχνικό Σχέδιο - CAD. Εισαγωγή στα Προγράμματα CAD. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ασφάλεια Πληροφοριακών Συστημάτων

Τεχνολογία Πολιτισμικού Λογισμικού

ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΠΟΛΙΤΙΚΗ & ΝΟΜΟΘΕΣΙΑ ΜΑΘΗΜΑ 1

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Δομημένος Προγραμματισμός

Τεχνικό Σχέδιο - CAD

Εισαγωγή στους Αλγορίθμους

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

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

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

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Διαχείριση Πολιτισμικών Δεδομένων

Τεχνικό Σχέδιο - CAD

Transcript:

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 11: Δομές Δεδομένων και Αλγόριθμοι Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ

Περιεχόμενα Έννοια δομής Ορισμός δομής Δήλωση μεταβλητών Απόδοση Αρχικών τιμών Αναφορά στα μέλη μιας δομής Ένθεση Δομής Πίνακες Δομών

Η έννοια της δομής Χρησιμοποιήσαμε τους τύπους δεδομένων για να προσδιορίσουμε τις μεταβλητές με τις οποίες αναπαριστούμε τα δεδομένα του προβλήματος μας. Έτσι, προσδιορίσαμε σαν ακέραιου τύπου τη μεταβλητή του απαριθμητή, και σαν τύπου κινητής υποδιαστολής απλής ακρίβειας τη μεταβλητή που αναπαριστά τη θερμοκρασία. Τι γίνεται όμως με την αναπαράσταση δεδομένων όπως «διεύθυνση», «συντεταγμένες τετραγώνου» κ.λπ. Προφανώς, είναι αδύνατο να έχουμε έναν τύπο για την αναπαράσταση κάθε έννοιας του φυσικού προβλήματος. Οι σύγχρονες γλώσσες προγραμματισμού για να επιτρέψουν το χειρισμό ομάδων δεδομένων διαφορετικού τύπου, τα οποία έχουν σχέση μεταξύ τους, παρέχουν ένα μηχανισμό που επιτρέπει τον ορισμό νέων τύπων.

Η έννοια της δομής Ο τύπος της δομής (struct) (ή της εγγραφής (record) της Pascal), σε αντίθεση με αυτόν του πίνακα, μας επιτρέπει να χειριζόμαστε ομάδες δεδομένων, τα οποία έχουν κάποια σχέση μεταξύ τους και είναι διαφορετικού τύπου. Τον μηχανισμό struct χρησιμοποιούμε για να ορίσουμε ένα νέο τύπο, είτε όταν θέλουμε να αναπαραστήσουμε μια έννοια ή ένα αντικείμενο του φυσικού προβλήματος που χαρακτηρίζεται από ένα σύνολο ιδιοτήτων διαφορετικού πιθανόν τύπου ή όταν για οποιοδήποτε λόγο θέλουμε να ομαδοποιήσουμε κάτω από ένα όνομα μεταβλητές του προγράμματος οι οποίες είναι πιθανόν διαφορετικού τύπου. Επιπλέον, σε αντίθεση με τον πίνακα, όπου το κάθε διαφορετικό δεδομένο προσδιορίζεται από την τάξη του μέσα σε αυτόν, το κάθε δεδομένο μέλος της δομής, που ονομάζεται και πεδίο (field), μπορεί να έχει το δικό του όνομα. Τα μέλη μιας δομής μπορεί να ανήκουν στους βασικούς τύπους int, char, float και double, μπορεί να είναι πίνακες αλλά ακόμη και άλλες δομές.

Ορισμός Δομής Ο ορισμός μιας δομής έχει την παρακάτω μορφή: struct[<όνομα δομής >] { }; <τύπος 1 ου μέλους> <όνομα 1 ου μέλους>; <τύπος 2 ου μέλους> <όνομα 2 ου μέλους>; <τύπος 3 ου μέλους> <όνομα 3 ου μέλους>; <τύπος n ου μέλους> <όνομα n ου μέλους>;

Ορισμός Δομής Ο ορισμός της δομής ορίζει στην πράξη ένα «καλούπι», σύμφωνα με το οποίο θα δεσμεύεται μνήμη για τις δηλούμενες μεταβλητές της νέας δομής ή αλλιώς, του νέου τύπου. Σαν παράδειγμα, δίνεται ο ορισμός της δομής ορθογώνιο (rectangle): struct rectangle { int x1, y1; int x2, y2; int line_color; int fill_color; };

Δήλωση Μεταβλητών Η δήλωση μεταβλητών ακoλουθεί το γενικό κανόνα δηλώσεων της C και γίνεται με πρόταση δήλωσης της μορφής: struct <όνομα δομής > <όνομα μεταβλητής >; ή struct<όνομα δομής > <ονόματα μεταβλητών >; Παράδειγμα: struct rectangle rect1, rect2; με την προϋπόθεση ότι έχει προηγηθεί ο ορισμός της δομής rectangle

Απόδοση Αρχικών Τιμών Μπορούμε να αποδώσουμε αρχικές τιμές στις μεταβλητές τη στιγμή της δήλωσης τους. Παράδειγμα: struct rectangle rect1= {10,10,40,40,RED,GREEN}, rect2 = {5,5,50,50,RED,BLUE};

Αναφορά στα μέλη της δομής Η αναφορά στα μέλη δομής γίνεται με κατάλληλο συνδυασμό του ονόματος της μεταβλητής και του ονόματος του μέλους. Χρησιμοποιείται ο τελεστής τελεία (.) για να σχηματισθεί η έκφραση της παρακάτω μορφής: <όνομα μεταβλητής >.< όνομα μέλους> Έτσι, η έκφραση rect1.x1αναφέρεται στο μέλος x1 της μεταβλητής rect1, ενώ η rect2.line_colorαναφέρεται στο μέλος line_color της μεταβλητής rect2

Ένθεση δομής Μια δομή μπορεί να περιλαμβάνει μέλη τα οποία είναι τύπου άλλης δομής. Παράδειγμα: struct person { struct address addr; struct day birthday; };

Πέρασμα δομής σε συνάρτηση Η C υποστηρίζει την κατ αναφορά αλλά και την κατά τιμή μεταβίβαση των δομών στις συναρτήσεις. Έτσι, είναι επιλογή του προγραμματιστή, αν θα περάσει επιλεκτικά ορισμένα μέλη της δομής, κα περάσει όλη τη δομή ή θα περάσει μόνο ένα δείκτη σε αυτή.

Πίνακες Δομών H δήλωση πίνακα δομών έχει ως κατωτέρω: struct address addr[10]; Η απόδοση αρχικής τιμής στη δομή είναι ανάλογη με το γενικό κανόνα αρχικοποίησης πινάκων. Έτσι, για την αρχικοποίηση των τριών πρώτων στοιχείων του πίνακα addr έχουμε την παρακάτω δήλωση αρχικοποίησης: struct address addr[10] = { { Kleanthis, Telou Agra, 10, 24662, Patras }, { Nikos, Marathona,12,12345, Athens }, { kostas, Korinthou,340, 24561, Aigio } }; Τα υπόλοιπα στοιχεία του πίνακα addr κα έχουν μηδενικές τιμές.

Πίνακες Δομών Για την αναφορά στα μέλη των στοιχείων του πίνακα, ακολουθείται η προφανής σύνταξη. H έκφραση addr[0].name αναφέρεται στο όνομα της πρώτης διεύθυνσης του πίνακα, ενώ η addr[1].name αναφέρεται στο όνομα της δεύτερης διεύθυνσης του πίνακα. Προσέξτε την έκφραση addr[1].name[0]αναφέρεται στον πρώτο χαρακτήρα του ονόματος του πρώτου στοιχείου του πίνακα addr.

Παραδείγματα Εισαγωγή Εμφάνιση Αναφορά στα μέλη μιας δομής Πέρασμα δομής σε συνάρτηση

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

Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.