Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Επιµέλεια Θοδωρής Πιερράτος

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

Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα

Οι δομές δεδομένων στοίβα και ουρά

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

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

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

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

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

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

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

Επανάληψη Θεωρίας. Καστούμης Γιώργος

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενδεικτικές Ερωτήσεις Θεωρίας

ΚΕΦΑΛΑΙΟ ΙΙΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Φίλη μαθήτρια, φίλε μαθητή,

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

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

Παράδειγμα 1. Υπολογισμός μέγιστου ποσού

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

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

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

επιµέλεια Θοδωρής Πιερράτος

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

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

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

7. Στις στατικές δοµές δεδοµένων, το ακριβές µέγεθος της απαιτούµενης µνήµης καθορίζεται

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

Επιµέλεια : ΜΙΧΑΛΗΣ ΑΡΤΑΒΑΝΗΣ κλάδου Πληροφορικής ΠΕ19 1

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

ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

ΚΕΦΑΛΑΙΟ 3θ Λ ΟΜΕΣ ΔΕ A OMEN ΩΝ Προσδοκώμενα αποτελέσματα Επιπλέον παραδείγματα

Βασικές οµές εδοµένων

Περιεχόμενα. Τεχνικές σχεδίασης αλγορίθμων 57. Τεχνικές σχεδίασης αλγορίθμων...217

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

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

Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Κεφάλαιο 2.2: Αλγόριθμοι. Επιστήμη ΗΥ Κεφ. 2.2 Καραμαούνας Πολύκαρπος

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Δομές Δεδομένων (Data Structures)

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

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

ΘΕΜΑ 1 ο. β) 1. δυαδική 2. κατανόηση 3. τυπικοί 4. τεχνητής νοημοσύνης 5. ακέραιου

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

ΘΕΜΑ 1 Ο Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος:

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

ΑΕΠΠ Ερωτήσεις θεωρίας

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ ÈÅÌÅËÉÏ

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

Βασικές Δομές Δεδομένων

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

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

ΠΕΡΙΕΧΟΜΕΝΑ Δεδομένα Αλγόριθμοι + Δομές δεδομένων = Προγράμματα Πίνακες Στοίβα και ουρά Αναζήτηση και Ταξινόμηση Αναδρομή Αλλες δομές δεδομένων

ΘΕΜΑ 1 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ 3 ΩΡΕΣ

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΑΠΑΝΤΗΣΕΙΣ Α1. 1-ΛΑΘΟΣ 2-ΣΩΣΤ0 3-ΣΩΣΤΟ 4-ΣΩΣΤ0 5-ΛΑΘΟΣ. Στήλη Β (κώδικας)

Transcript:

Ορισµοί κεφαλαίου Τα δεδοµένα είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µια απλοποιηµένη όψη της οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. (δοµή δεδοµένων = δεδοµένα + λειτουργίες στα δεδοµένα) Αλγόριθµοι + οµές δεδοµένων = Προγράµµατα Ένας διδιάστατος πίνακας Ν*Ν ονοµάζεται τετραγωνικός. Ορισµός: οθέντων στοιχείων α1, α2,..., αn η ταξινόµηση συνίσταται στη µετάθεση (permutation) της θέσης των στοιχείων, ώστε να τοποθετηθούν σε µία σειρά ακ1, ακ2,..., ακn, έτσι ώστε, δοθείσης µίας συνάρτησης (ordering function) f, να ισχύει: f(ακ1) f(ακ2)... f(ακn). Σηµαντικά σηµεία κεφαλαίου Σκοπιές που µελετά η πληροφορική τα δεδοµένα: Υλικού Γλωσσών Προγραµµατισµού οµών δεδοµένων Ανάλυσης εδοµένων Κάθε δοµή δεδοµένων αποτελείται από ένα σύνολο κόµβων. Οι βασικές λειτουργίες επί των δοµών δεδοµένων είναι οι εξής : 1. Προσπέλαση: Πρόσβαση σε ένα κόµβο µε σκοπό να εξεταστεί ή να τροποποιηθεί το περιεχόµενό του 2. Εισαγωγή: Προσθήκη νέων κόµβων σε µια υπάρχουσα δοµή 3. ιαγραφή: Το αντίστροφο της εισαγωγής, αφαίρεση ενός κόµβου από τη δοµή 4. Αναζήτηση: Προσπέλαση των κόµβων µιας δοµής, προκειµένου να εντοπιστούν ένας ή περισσότεροι που έχουν µια συγκεκριµένη ιδιότητα 5. Ταξινόµηση: Οι κόµβοι µιας δοµής διατάσσονται κατ' αύξουσα ή φθίνουσα σειρά 6. Αντιγραφή: Όλοι ή κάποιοι κόµβοι µιας δοµής αντιγράφονται σε µια άλλη δοµή 7. Συγχώνευση: ύο ή περισσότερες δοµές συνενώνονται σε µια ενιαία δοµή 8. ιαχωρισµός: Αντίστροφη πράξη της συγχώνευσης Κατηγορίες δοµών δεδοµένων: 1. Στατικές 1. Το ακριβές µέγεθος της απαιτούµενης κύριας µνήµης καθορίζεται κατά τη στιγµή του προγραµµατισµού ( ηλαδή πρέπει να δηλώσω στο πρόγραµµα που φτιάχνω ότι θα αποθηκεύσω πχ 500 µαθητές). 2. Τα στοιχεία αποθηκεύονται σε συνεχόµενες θέσεις µνήµης. 3. Οι στατικές δοµές υλοποιούνται µε πίνακες. 2. υναµικές 1. Το µέγεθος της κύριας µνήµης που χρησιµοποιείται καθορίζεται κατά την εκτέλεση του προγράµµατος. ( ηλαδή απλά δηλώνω ότι θα αποθηκεύω µαθητές στο Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 1

πρόγραµµά µου, χωρίς να ορίσω πόσους ακριβώς. Αυτό θα εξαρτηθεί κατά την εκτέλεση). 2. Τα στοιχεία δεν αποθηκεύονται σε συνεχόµενες θέσεις µνήµης. 3. Υλοποιούνται κυρίως µε λίστες, δένδρα και γράφους. Ο πίνακας ακολουθεί τους κανόνες ονοµατολογίας των µεταβλητών. Μπορεί να είναι µονοδιάστατος, διδιάστατος, τρισδιάστατος κλπ. Όµως εσείς ασχολείστε µόνο µε µονοδιάστατους και διδιάστατους πίνακες. Μονοδιάστατοι πίνακες: Για να αναφερθώ σε ένα στοιχείο του πίνακα, γράφω την θέση του µέσα σε αγκύλες ακριβώς µετά το όνοµα του πίνακα. Έτσι για παράδειγµα αν θέλω να αναφερθώ στο 7ο στοιχείο του πίνακα ΜΑΘΗΤΕΣ πρέπει να γράψω ΜΑΘΗΤΕΣ[7]. Για να προσπελάσω τα στοιχεία ενός πίνακα χρησιµοποιώ τις δοµές επανάληψης και κυρίως την δοµή επανάληψης Για. Κλασσικές λειτουργίες σε µονοδιάστατους πίνακες: Εκτύπωση όλων των στοιχείων ενός πίνακα µε ν στοιχεία. Αλγόριθµος ΜονΠιν1 εδοµένα//ν, ΜΑΘΗΤΕΣ// Για i από 1 µέχρι ν Εκτύπωσε ΜΑΘΗΤΕΣ[i]!Θα εκτυπώσει µε την σειρά ΜΑΘΗΤΕΣ[1],ΜΑΘΗΤΕΣ[2]...ΜΑΘΗΤΕΣ[ν] Τέλος ΜονΠιν1 Άθροισµα και µέσος όρος ενός πίνακα µε ν στοιχεία Αλγόριθµος ΜονΠιν2 εδοµένα // ν, ΒΑΘΜΟΙ //!ν είναι το πλήθος των βαθµών άθροισµα 0!Μηδενισµός του αθροιστή Για i από 1 µέχρι ν!η επανάληψη θα εκτελεστεί ν φορές άθροισµα άθροισµα + ΒΑΘΜΟΙ[i]!Αθροίζω όλους τους βαθµούς µέσος_όρος άθροισµα / ν!βρίσκω τον µέσο όρο Εκτύπωσε άθροισµα, µέσος_όρος Τέλος ΜονΠιν2 Εύρεση µεγίστου ή ελαχίστου ενός µονοδιάστατου πίνακα Η µεθοδολογία έχει ως εξής: Αρχικά υποθέτω πως το πρώτο στοιχείο του πίνακα είναι το µέγιστο/ελάχιστο και µετά συγκρίνω ένα ένα τα υπόλοιπα στοιχεία του πίνακα µε το µέγιστο/ελάχιστο. Αλγόριθµος ΜονΠιν3 εδοµένα // ν, ΒΑΘΜΟΙ //!Οι βαθµοί ν µαθητών µέγιστος ΒΑΘΜΟΙ[1]!Υποθέτω ότι ο µεγαλύτερος βαθµός είναι ο πρώτος στον πίνακα Για i από 2 µέχρι ν! Θα συγκρίνω τους υπόλοιπους Αν µέγιστος < ΒΑΘΜΟΙ[i] τότε! Αν ο βαθµός που εξετάζω είναι µεγαλύτερος από τον µέγιστο µέγιστος ΒΑΘΜΟΙ[i]!Βάζω ως µέγιστο τον συγκεκριµένο βαθµό Τέλος_Αν Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 2

Αποτελέσµατα // µέγιστος // Τέλος ΜονΠιν3 Εύρεση της θέσης µεγίστου/ελαχίστου σε ένα πίνακα. Στην συγκεκριµένη περίπτωση χρειάζεται να βρούµε εκτός από τον µέγιστο ή τον ελάχιστο σε έναν πίνακα και την θέση στην οποία βρίσκεται. Το µόνο που χρειάζεται να προσθέσουµε είναι µια µεταβλητή Θέση, η οποία θα αποθηκεύει την θέση του µέγιστου/ελάχιστου κάθε φορά που αυτός αλλάζει. Αλγόριθµος ΜονΠιν4 εδοµένα // ν, ΒΑΘΜΟΙ //!Οι βαθµοί ν µαθητών µέγιστος ΒΑΘΜΟΙ[1]!Υποθέτω ότι ο µεγαλύτερος βαθµός είναι ο πρώτος στον πίνακα θέση 1!Άρα και η θέση του µέγιστου είναι προς το παρών η 1 Για i από 2 µέχρι ν! Θα συγκρίνω τους υπόλοιπους Αν µέγιστος < ΒΑΘΜΟΙ[i] τότε! Αν ο βαθµός που εξετάζω είναι µεγαλύτερος από τον µέγιστο µέγιστος ΒΑΘΜΟΙ[i]!Βάζω ως µέγιστο τον συγκεκριµένο βαθµό θέση i!και τροποποιώ την θέση του µέγιστου Τέλος_Αν Αποτελέσµατα // µέγιστος, θέση // Τέλος ΜονΠιν4 ισδιάστατοι πίνακες: Οι διδιάστατοι πίνακες εκτός από στήλες περιλαµβάνουν και γραµµές. Για να αναφερθώ σε ένα στοιχείο του πίνακα, γράφω την θέση του µέσα σε αγκύλες ακριβώς µετά το όνοµα του πίνακα. Έτσι για παράδειγµα αν θέλω να αναφερθώ στο στοιχείο του πίνακα ΒΑΘΜΟΙ που βρίσκεται στην 2η γραµµή και την 4η στήλη πρέπει να γράψω ΒΑΘΜΟΙ[2,4]. Για να προσπελάσω τα στοιχεία ενός πίνακα χρησιµοποιώ τις δοµές επανάληψης και κυρίως την δοµή επανάληψης Για σε εµφωλευµένη δοµή. Κλασσικές λειτουργίες σε δισδιάστατους πίνακες: Εκτύπωση όλων των στοιχείων ενός πίνακα νxµ Αλγόριθµος ισπιν1 εδοµένα//ν,µ,βαθμοι// Για i από 1 µέχρι ν!ξεκινάω και σαρώνω όλες τις γραµµές Για j από 1 µέχρι µ!για κάθε γραµµή ξεκινάω και σαρώνω όλες τις στήλες Εκτύπωσε ΒΑΘΜΟΙ[i,j]!Εκτυπώνω το τρέχω στοιχείο του πίνακα Τέλος ισπιν1 Εύρεση µέσου όρου κάθε γραµµής ή στήλης ενός πίνακα: Στην προκειµένη περίπτωση χρειάζεται για κάθε γραµµή ενός πίνακα νxµ να βρούµε τον µέσο όρο της και να τον αποθηκεύουµε σε νέο πίνακα Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 3

Αλγόριθµος ισπιν2 εδοµένα // ν, µ, ΒΑΘΜΟΙ //!Έστω ότι ο πίνακας ΒΑΘΜΟΙ περιλαµβάνει τους βαθµούς ν µαθητών σε µ µαθήµατα Για i από 1 µέχρι ν!σαρώνω µία µία τις γραµµές δηλαδή έναν έναν τους µαθητές άθροισµα 0!Για κάθε µαθητή µηδενίζω τον αθροιστή Για j από 1 µέχρι µ!για κάθε µαθητή Σαρώνω µία µία τις στήλες δηλαδή τους βαθµούς του στα µ µαθήµατα άθροισµα άθροισµα + ΒΑΘΜΟΙ[i,j]!Αθροίζω τους βαθµούς ΜΕΣΟΣ_ΟΡΟΣ[i] άθροισµα / µ!βρίσκω τον µέσο όρο του κάθε µαθητή Αποτελέσµατα //ΜΕΣΟΣ_ΟΡΟΣ // Τέλος ισπιν2 Στοίβα: Η στοίβα αποτελεί δυναµική δοµή δεδοµένων και µπορούµε να την προσοµοιώσουµε µε µια στοίβα πιάτων: τα εισερχόµενα στοιχεία µπαίνουν από την κορυφή (top) και εξέρχονται επίσης από την κορυφή. Η λειτουργία αυτή ονοµάζεται και LIFO (Last In First Out) ή στα ελληνικά το πρώτο που βγαίνει έξω είναι αυτό που µπήκε τελευταίο. Οι δυο κύριες λειτουργίες µιας στοίβας είναι: ώθηση (push) στην κορυφή της στοίβας απώθηση (pop) από την στοίβα Πρέπει να λαµβάνεται ειδική µέριµνα κατά τις παραπάνω λειτουργίες: Κατά την ώθηση δεν πρέπει η στοίβα να είναι γεµάτη. Το φαινόµενο ονοµάζεται υπερχείλιση (overflow) Κατά την απώθηση προσοχή χρειάζεται όταν διαγράφεται το τελευταίο στοιχείο της στοίβας. Το φαινόµενο αυτό ονοµάζεται υποχείλιση (underflow) Η στοίβα υλοποιείται µε τη βοήθεια ενός πίνακα και µιας µεταβλητής µε το όνοµα top Παράδειγµα προσθήκης νέου στοιχείο στην στοίβα Αλγόριθµος Προσθήκη_σε_στοίβα εδοµένα//πινακασ, ν, Top// Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 4

ιάβασε νέο_στοιχείο Αν Top<ν τότε Top Top+1 ΠΙΝΑΚΑΣ[Top] νέο_στοιχείο Εκτύπωσε Υπερχείλιση στοίβας Τέλος Προσθήκη_σε_στοίβα Παράδειγµα αφαίρεσης στοιχείου από την στοίβα Αλγόριθµος Αφαίρεση_από_στοίβα εδοµένα//πινακασ, ν, Top// Αν Top>=1 τότε Top Top-1 Εκτύπωσε Υποχείλιση στοίβας Τέλος Αφαίρεση_από_στοίβα Ουρά: Η ουρά αποτελεί επίσης δυναµική δοµή δεδοµένων και θα µπορούσαµε να την προσοµοιώσουµε µε µια ουρά αναµονής π.χ. στο ταµείο µιας τράπεζας: τα νέα µέλη της ουράς µπαίνουν στο τέλος της ουράς (rear) και εξέρχονται από την αρχή (front). Η λειτουργία αυτή ονοµάζεται και FIFO (First In First Out) ή στα ελληνικά το πρώτο που βγαίνει έξω είναι το πρώτο που µπήκε µέσα. Οι δυο κύριες λειτουργίες µιας στοίβας είναι: εισαγωγή (enqueue) στο πίσω άκρο της ουράς εξαγωγή (dequeue) από το εµπρός µέρος της ουράς Πρέπει να ελέγχονται κατά την εισαγωγή/εξαγωγή στοιχείων περιπτώσεις υπερχείλισης/υποχείλισης Η στοίβα υλοποιείται µε τη βοήθεια ενός πίνακα και δυο µεταβλητών δεικτών rear και front Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 5

Παράδειγµα προσθήκης νέου στοιχείο στην ουρά Αλγόριθµος Προσθήκη_σε_ουρά εδοµένα//πινακασ, ν, front, rear// ιάβασε νέο_στοιχείο Αν rear<ν τότε rear rear+1 ΠΙΝΑΚΑΣ[rear] νέο_στοιχείο Εκτύπωσε Υπερχείλιση ουράς Τέλος Προσθήκη_σε_ουρά Παράδειγµα αφαίρεσης στοιχείου από την ουρά Αλγόριθµος Αφαίρεση_από_ουρά εδοµένα//πινακασ, ν, front, rear// Αν front<rear τότε front front+1 Εκτύπωσε Υποχείλιση ουράς Τέλος Αφαίρεση_από_ουρά Σειριακή αναζήτηση σε πίνακα: Η σειριακή αναζήτηση σε έναν πίνακα προσπελάζει µε την σειρά, ένα ένα τα στοιχεία του και ελέγχει αν το ζητούµενο στοιχείο είναι ίσο µε τα στοιχεία που βρίσκονται µέσα σε έναν πίνακα. Έτσι αν έχουµε τον πίνακα: και αναζητούµε τον αριθµό 8, θα ξεκινήσουµε να ελέγχουµε ένα ένα τα στοιχεία του πίνακα, αρχίζοντας από το πρώτο και τελικά θα βρούµε τον αριθµό στην 15η προσπέλασή µας. Αλγόριθµος Σειριακή_αναζήτηση1 εδοµένα//ν, ΠΙΝΑΚΑΣ, ζητούµενο// βρέθηκε ψευδής!αρχικοποίηση µεταβλητών θέση_ζητούµενου 0!Αρχικοποίηση µεταβλητών i 1!Αρχικοποίηση µεταβλητών Όσο i<=ν και βρέθηκε=ψευδής επανέλαβε!θα συνεχίζω να ψάχνω στο πίνακα όσο δεν βρίσκω το!ζητούµενο και µέχρι να τελειώσουν τα στοιχεία του πίνακα Αν ΠΙΝΑΚΑΣ[i]=ζητούµενο τότε Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 6

βρέθηκε αληθής θέση_ζητούµενου i αλλιώς i i+1 Αποτελέσµατα//βρέθηκε, θέση_ζητούµενου// Τέλος Σειριακή_αναζήτηση1 Μια παραλλαγή της σειριακής αναζήτησης είναι να ψάχνω σε έναν πίνακα πόσες φορές εµφανίζεται ένα στοιχείο. Έτσι αν έχω τον πίνακα: Θα πρέπει να ψάξω όλα τα στοιχεία του πίνακα (από την αρχή ως το τέλος) και κάθε φορά που βρίσκω το ζητούµενο να αυξάνω έναν αθροιστή. Αλγόριθµος Σειριακή_αναζήτηση2 εδοµένα//ν, ΠΙΝΑΚΑΣ, ζητούµενο// Φορές_βρέθηκε 0!Αρχικοποίηση µεταβλητών Για i από 1 µέχρι ν!τώρα αναγκαστικά πρέπει να ψάξω σε όλο το πίνακα Αν ΠΙΝΑΚΑΣ[i]=ζητούµενο τότε Φορές_βρέθηκε Φορές_βρέθηκε+1 Αποτελέσµατα//Φορές_βρέθηκε// Τέλος Σειριακή_αναζήτηση2 Η σειριακή αναζήτηση ενός πίνακα είναι η πιο απλή και παράλληλα πιο αργή µέθοδος αναζήτησης. Χρησιµοποιείται όταν: ο πίνακας δεν είναι ταξινοµηµένος ο πίνακας είναι µικρού µεγέθους η αναζήτηση στον συγκεκριµένο πίνακα γίνεται σπάνια Ταξινόµηση φυσσαλίδας (bubble sort) Για να ταξινοµήσω έναν πίνακα Ν θέσεων κατά αύξουσα σειρά ο αλγόριθµος είναι: Για i από 2 µέχρι Ν Για j από Ν µέχρι i µε βήµα -1 Αν ΠΙΝΑΚΑΣ[j-1] > ΠΙΝΑΚΑΣ[j] τότε Αντιµετάθεσε ΠΙΝΑΚΑΣ[j], ΠΙΝΑΚΑΣ[j-1] Για ταξινόµηση σε φθίνουσα σειρά το µόνο που αλλάζε στον παραπάνω αλγόριθµο είναι στη συνθήκη της Αν και συγκεκριµένα ο συγκριτικός τελεστής γίνεται < από >. Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19 7