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

Σχετικά έγγραφα
3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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

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

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

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

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

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

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

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

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

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

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

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

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

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

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

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

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

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

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

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

Θέμα Β. ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4. ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4. Α[γ,δ] 17 - (γ-1)*4 - δ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗ

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3)

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

ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. 1. ΣΩΣΤΟ 2. ΛΑΘΟΣ 3. ΛΑΘΟΣ 4. ΣΩΣΤΟ 5. ΣΩΣΤΟ (2 μονάδες για κάθε ερώτημα)

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

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

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 EKΠΑΙΔΕΥΣΗ: Με Οράματα και Πράξεις για την Παιδεία -1-

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

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

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

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

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

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

ΦΡΟΝΤΙΣΤΗΡΙΟ Δ.Ε «ΘΕΜΕΛΙΟ» ΕΛΕΥΣΙΝΑΣ

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

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

ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Λύσεις Εργασίας 8: Αναζήτηση & Ταξινόµηση (Πίνακες 3)

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10

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

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

Γ ΛΥΚΕΙΟΥ ΘΕΤ. ΚΑΤΕΥΘ. ΑΕΠΠ

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

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

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

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

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

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

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

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

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

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΣΤΙΣ 01/03/2015 ΘΕΜΑ Α

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

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

Γ. ίνεται το παρακάτω πρόγραµµα και υποπρογράµµατα: ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ)

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

Θέµατα 2012 Λύσεις. Θέµα Α Α1. 1. λάθος 2. λάθος 3. σωστό 4. λάθος 5. σωστό

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

Α5. Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί σωστά. 1. χαρακτήρες α.

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ - ΕΣΠΕΡΙΝΩΝ

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

Να δοθεί Πρόγραμμα το οποίο να αντιστρέφει τα στοιχεία ενός πίνακα π.χ. το Α[1] να πηγαίνει στο Α[12] κ.ο.κ χρησιμοποιώντας αυτόν τον πίνακα

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

ΑΠΑΝΤΗΣΕΙΣ. Επιµέλεια: Οµάδα Πληροφορικής της Ώθησης

Ενδεικτικές απαντήσεις ΘΕΜΑ Α

ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΚΑΛΑΜΠΑΚΑΣ ΣΧΟΛ. ΕΤΟΣ

Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και τον αντίστοιχο χαρακτηρισμό ( Σ - σωστό, Λ - λάθος)

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

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

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

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2006

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


ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 08 / 02 / 2015 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ - Α. ΚΑΤΡΑΚΗ - Π. ΣΙΟΤΡΟΠΟΣ ΑΠΑΝΤΗΣΕΙΣ

Γ ΚΥΚΛΟΣ ΠΡΟΣΟΜΟΙΩΤΙΚΩΝ ΔΙΑΓΩΝΙΣΜΑΤΩΝ ΣΥΓΧΡΟΝΟ Προτεινόμενα Θέματα Γ ΓΕ.Λ. Ιανουάριος Ανάπτυξη Εφαρμογών ΘΕΜΑ Α

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

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

Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών 2014

ΘΕΜΑ Α: Μονάδες 12. Δ. Δίνεται ο πίνακας δύο διαστάσεων

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Transcript:

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

Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 2

Ορισμός δομής δεδομένων και βασικές λειτουργίες ΟΡΙΣΜΟΣ Σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑ ( W I R TH ) ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ 1. Προσπέλαση 2. Εισαγωγή 3. Διαγραφή 4. Αναζήτηση 5. Ταξινόμηση 6. Αντιγραφή 7. Συγχώνευση 8. Διαχωρισμός 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 3

ΕΙΔΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΑΤΙΚΕΣ Σταθερό μέγεθος ( η απαίτηση σε μνήμη καθορίζεται κατά τη στιγμή του προγραμματισμού μετάφρασης ) Δεν αλλάζει στην διάρκεια εκτέλεσης Αποθήκευση κόμβων σε συνεχόμενες θέσεις μνήμης ΔΥΝΑΜΙΚΕΣ Δεν έχουν σταθερό μέγεθος αλλά ο αριθμός των κόμβων μεγαλώνει ή μικραίνει ( εισαγωγή/ διαγραφή) Η παραχώρηση μνήμης γίνεται κατά την διάρκεια εκτέλεσης ( δυναμική παραχώρηση) Αποθήκευση σε μη συνεχόμενες θέσεις 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 4

ΠΙΝΑΚΕΣ Σύνολο αντικειμένων ΙΔΙΟΥ ΤΥΠΟΥ, τα οποία αναφέρονται με ένα κοινό ΟΝΟΜΑ ΚΆΘΕ ΈΝΑ ΑΝΤΙΚΕΙΜΕΝΟ λέγεται ΣΤΟΙΧΕΙΟ του πίνακα Η ΑΝΑΦΟΡΑ σε ένα στοιχείο γίνεται με το ΟΝΟΜΑ ακολουθούμενο από ένα ή περισσότερους δείκτες Βαθμοί, Ονόματα, Θερμοκρασίες, Βαθμός 1 ου μαθητή, όνομα 3 ου μαθητή, θερμοκρασία 25 ης του μήνα ΒΑΘΜΟΣ [κ] ΟΝΟΜΑ[m] 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 5

Βασικοί κανόνες Δεδομένα ίδιου τύπου Πλήθος = σταθερό Δήλωση στο τμήμα δηλώσεων Ακέραιες: Α[100], Β[10, 20] Πραγματικές: Μ[20], Μέσοι_όροι[100] Χαρακτήρες: ΜΑΘΗΤΕΣ[20], ΥΠΑΛΛΗΛΟΙ[25] Λογικοί: ΑΠΑΝΤΗΣΕΙΣ[10] Σαν όνομα οποιοδήποτε ΑΠΟΔΕΚΤΟ σύμφωνα με τους κανόνες της ΓΛΩΣΣΑΣ Ο [οι] δείκτες είναι ΑΚΕΡΑΙΑ [οι] μεταβλητή ή σταθερά ΜΕΣΑ ΣΕ ΑΓΚΥΛΕΣ. Συνηθίζεται η χρήση των I,J,K 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 6

Δημιουργία Μονοδιάστατου πίνακα με βαθμούς 30 μαθητών και υπολογισμό του Μέσου όρου Πρόγραμμα ΧωρίςΠίνακες1 Μεταβλητές Πραγματικές: Σ, Μ, Χ Ακέραιες : I Αρχή Σ 0 Για ι από 1 μέχρι 30 Διάβασε Χ Σ Σ+Χ Τέλος_επανάληψης Μ Σ/30 Γράψε Μ Τέλος_προγράμματος Πρόγραμμα ΜεΠίνακες1 Μεταβλητές Πραγματικές: Σ, Μ, Β[30] Ακέραιες : I Αρχή Σ 0 Για ι από 1 μέχρι 30 Διάβασε Β[ι] Σ Σ +Β[ι] Τέλος_επανάληψης Μ Σ/30 Γράψε Μ Τέλος_προγράμματος ΚΑΜΜΙΑ ΔΙΑΦΟΡΑ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 7

Παράδειγμα που δείχνει πότε πραγματικά χρειάζεται ο πίνακας (α) Διάβασμα βαθμών 30 μαθητών στον προγραμματισμό (β) Υπολογισμός του πλήθους των μαθητών που έχουν βαθμό πάνω από τον μέσο όρο κατά 2 μονάδες (γ) Υπολογισμός της απόκλισης του βαθμού κάθε μαθητή από τον μέσο όρο Το (α) ΔΕΝ ΑΠΑΙΤΕΙ ΠΙΝΑΚΕΣ Τα ( β) και (γ) χρειάζονται τον κάθε βαθμό για να μπορεί να γίνει η σύγκριση με τον μέσο όρο. Αν χρησιμοποιήσουμε ΜΙΑ μόνο μεταβλητή οι 29 βαθμοί θα χαθούν ( μετά από κάθε διάβασμα χάνεται η προηγούμενη τιμή). ΕΔΏ ΛΟΙΠΟΝ χρειάζεται να ΚΡΑΤΑΜΕ ΣΤΗ ΜΝΗΜΗ και τις 30 τιμές. ΔΗΛΑΔΗ χρειαζόμαστε πίνακα 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 8

ΠΡΟΓΡΑΜΜΑ ΠΙΝΑΚΕΣ2 ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΙ [30], ΜΕΣΗ_ΤΙΜΗ, Σ ΑΚΕΡΑΙΕΣ : Κ, πλήθος ΑΡΧΗ ΓΙΑ Κ ΑΠΌ 1 ΜΕΧΡΙ 30 ΔΙΑΒΑΣΕ ΒΑΘΜΟΙ[Κ] Σ Σ+ΒΑΘΜΟΙ[Κ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΌΤΑΝ ΘΕΛΟΥΜΕ ΝΑ ΜΕΣΗ_ΤΙΜΗ Σ/30 ΣΥΓΚΡΙΝΟΥΜΕ Πλήθος 0 ΚΆΘΕ ΒΑΘΜΟ ΜΕ ΤΗΝ ΜΕΣΗ ΤΙΜΗ ΓΙΑ Κ ΑΠΌ 1 ΜΕΧΡΙ 30 ΑΝ ΒΑΘΜΟΙ[Κ] >ΜΕΣΗ_ΤΙΜΗ +2 ΤΟΤΕ Πλήθος Πλήθος+1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ΔΥΟ ΜΟΝΑΔΕΣ ΠΑΝΩ ΑΠΌ ΤΟΝ Μ.Ο:, πλήθος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 9

ΠΟΤΕ ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΠΙΝΑΚΕΣ Αν τα δεδομένα είναι ΟΜΟΕΙΔΗ και πρέπει να διατηρούνται όλα στη μνήμη μέχρι το τέλος της επεξεργασίας ΤΟΤΕ Η ΧΡΗΣΗ ΕΊΝΑΙ ΑΠΑΡΑΙΤΗΤΗ ΠΕΡΙΤΤΗ ΧΡΗΣΗ Απαιτείται μνήμη: Η άσκοπη χρήση πινάκων με μεγάλο αριθμό στοιχείων περιορίζει τους υπολογιστικούς πόρους του συστήματος και μπορεί να οδηγήσει σε αδυναμία εκτέλεσης του προγράμματος Περιορισμός ελευθερίας προγραμματιστή: Λόγω της δομής τους ( στατικές) πρέπει ο προγραμματιστής να προσδιορίζει με ακρίβεια στη φάση των δηλώσεων το μέγεθος, που σε μερικές περιπτώσεις είναι αδύνατο με αποτέλεσμα να δηλώνει ή πολύ περισσότερες θέσεις ( σπατάλη μνήμης) ή λιγότερες ( συνεχείς αλλαγές στην σχεδίαση κάθε φορά που απαιτούνται περισσότερες θέσεις ) 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 10

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Πρόγραμμα Πιν1 Μεταβλητές Ακέραιες: Α[100],κ Αρχή Για κ από 1 μέχρι 100 Γράψε «δώσε:» Διάβασε Α[κ] Τέλος Επανάληψης Τέλος Προγράμματος Η εισαγωγή μπορεί να γίνει και με χρήση μιας μεταβλητής εισόδου Χ και μετά εκχώρηση στην αντίστοιχη θέση του πίνακα Για κ από 1 μέχρι 100 Διάβασε Χ Α[κ] χ Τέλος Επανάληψης Πρόγραμμα Πιν1Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ Αρχή Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε «δώσε:» Διάβασε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 11

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΕΜΦΑΝΙΣΗ ΔΕΔΟΜΕΝΩΝ Πρόγραμμα Πιν2 Μεταβλητές Ακέραιες: Α[100],κ Αρχή Για κ από 1 μέχρι 100 Γράψε «δώσε:» Διάβασε Α[κ] Τέλος Επανάληψης Για κ από 1 μέχρι 100 Γράψε Α[κ] Τέλος Επανάληψης Τέλος Προγράμματος Πρόγραμμα Πιν2Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ Αρχή Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε «δώσε:» Διάβασε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 12

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΜΕΓΙΣΤΟΣ Πρόγραμμα Πιν3 Μεταβλητές Ακέραιες: Α[100],κ, θέση, Μαχ Αρχή! Γέμισμα Μαχ Α[1] Θέση 1 Για κ από 2 μέχρι 100 Αν Α[κ]>Μαχ τότε Μαχ Α[κ] Θέση κ Τέλος_αν Τέλος_επανάληψης Εμφάνισε θέση, μαχ Τέλος Προγράμματος Πρόγραμμα 3Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ,χ,y Αρχή! Γέμισμα Μαχ Β[1,1] Χ 1, Υ 1 Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Αν Β[κ,ρ]>Μαχ τότε Μαχ Β[κ,ρ] Χ κ Υ ρ Τέλος_αν Τέλος Επανάληψης Τέλος Επανάληψης Εμφάνισε Μαχ, Χ, Υ Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 13

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΑΝΑΖΗΤΗΣΗ1 Αλγόριθμος Αναζήτηση1 Δεδομένα // Ν, Α[Ν], Χ //! Όταν βρεθεί τερματίζει η επανάληψη Βρέθηκε Ψευδής Θέση 0 Ι 1 ΟΣΟ ( Βρέθηκε = ψευδής ) και ( Ι<= Ν) επανάλαβε Αν Α[Ι] =Χ τότε Βρέθηκε Αληθής Θέση Ι Αλλιώς Ι Ι +1 Τέλος_αν Τέλος Επανάληψης Αποτελέσματα // Βρέθηκε, Θέση // Τέλος Αναζήτηση1 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 14

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΑΝΑΖΗΤΗΣΗ2 Αλγόριθμος Αναζήτηση2! Αναζητεί όλες τις θέσεις Δεδομένα // Ν, Α[Ν], Χ // Μ 0 Βρέθηκε Ψευδής Για Ι από 1 μέχρι Ν Αν Α[Ι] =Χ τότε Βρέθηκε Αληθής Γράψε «βρέθηκε στη θέση :», Ι Μ Μ +1 Τέλος_αν Τέλος Επανάληψης Αν Βρέθηκε = ψευδής τότε Εμφάνισε «ΔΕΝ ΒΡΕΘΗΚΕ» Αλλιώς Εμφάνισε «ΒΡΕΘΗΚΕ..», Μ, «ΦΟΡΕΣ» Τέλος_αν Τέλος Αναζήτηση2 Μπορούμε να χρησιμοποιήσουμε και δομή ΟΣΟ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 15

Πότε δικαιολογείται σειριακή αναζήτηση Πίνακας δεν είναι ταξινομημένος Πίνακας έχει μικρό μέγεθος ( Ν<=20) Η αναζήτηση στον πίνακα γίνεται σπάνια 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 16

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΤΑΞΙΝΟΜΗΣΗ Αλγόριθμος Ταξινόμηση Δεδομένα // Ν, Α[Ν] // Για Ι από 2 μέχρι Ν Για J από Ν μέχρι Ι με βήμα -1 Αν Α[J-1]> A[J] τότε Temp A[J-1] A[J-1] A[J] A[J] Temp Τέλος_αν Τέλος Επανάληψης Αποτελέσματα // Α[Ν] // Τέλος Ταξινόμηση 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 17

Παράδειγμα ταξινόμησης φυσαλίδας 52 12 71 56 5 10 19 90 45 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 18

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 12 52 71 12 56 71 5 56 10 10 19 19 90 45 45 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 19

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 12 52 10 71 12 52 56 71 12 5 56 71 10 10 56 19 19 19 90 45 45 45 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 20

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 12 52 10 10 71 12 52 12 56 71 12 52 5 56 71 19 10 10 56 71 19 19 19 56 90 45 45 45 45 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 21

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 12 52 10 10 10 71 12 52 12 12 56 71 12 52 19 5 56 71 19 52 10 10 56 71 45 19 19 19 56 71 90 45 45 45 56 45 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 22

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 12 52 10 10 10 10 71 12 52 12 12 12 56 71 12 52 19 19 5 56 71 19 52 45 10 10 56 71 45 52 19 19 19 56 71 56 90 45 45 45 56 71 45 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 23

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 12 52 10 10 10 10 10 71 12 52 12 12 12 12 56 71 12 52 19 19 19 5 56 71 19 52 45 45 10 10 56 71 45 52 52 19 19 19 56 71 56 56 90 45 45 45 56 71 71 45 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 24

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 5 12 52 10 10 10 10 10 10 71 12 52 12 12 12 12 12 56 71 12 52 19 19 19 19 5 56 71 19 52 45 45 45 10 10 56 71 45 52 52 52 19 19 19 56 71 56 56 56 90 45 45 45 56 71 71 71 45 90 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 25

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 5 5 12 52 10 10 10 10 10 10 10 71 12 52 12 12 12 12 12 12 56 71 12 52 19 19 19 19 19 5 56 71 19 52 45 45 45 45 10 10 56 71 45 52 52 52 52 19 19 19 56 71 56 56 56 56 90 45 45 45 56 71 71 71 71 45 90 90 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 26

Επεξεργασίες πινάκων/ παράλληλη ταξινόμηση Ταξινόμηση 100 Μαθητών με βάση τον βαθμό. Χρειαζόμαστε δύο πίνακες. Μ [100] για τα ονόματα και Β [100] για τους βαθμούς 1. Εισαγωγή δεδομένων Για Ι από 1 μέχρι 100 Διάβασε Μ [ι], Β [ι] Τέλος_επανάληψης 2. Ταξινόμηση Για Ι από 2 μέχρι 100 Για J από Ν μέχρι I με βήμα -1 Αν Β[j -1] >Β[j] τότε Αντιμετάθεσε Β[j-1], B[j] Αντιμετάθεσε M[j-1], M[j] Τέλος_αν Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 27

ΥΠΟΛΟΓΙΣΜΟΙ ΑΘΡΟΙΣΜΑΤΩΝ ΠΙΝΑΚΑ Α[ Μ, Ν ] ΓΡΑΜΜΩΝ Για Ι από 1 μέχρι Μ X 0 Για J από 1 μέχρι Ν X X + Α[ I,J] Τέλος_επανάληψης Σ[Ι] X Τέλος_επανάληψης ΣΤΗΛΩΝ Για J από 1 μέχρι Ν X 0 Για I από 1 μέχρι M X X + Α[ I,J] Τέλος_επανάληψης Σ[J] X Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 28

ΤΕΤΡΑΓΩΝΙΚΟΙ ΠΙΝΑΚΕΣ ΑΘΡΟΙΣΜΑ ΣΤΟΙΧΕΙΩΝ ΠΑΝΩ ΚΑΤΩ ΑΠΌ ΤΗΝ ΚΥΡΙΑ ΔΙΑΓΩΝΙΟ Σ1 0 Σ2 0 Για Ι από 1 μέχρι Ν Για J από 1 μέχρι Ν Αν Ι <J τότε Σ1 Σ1 + Α [ Ι, J] Τέλος_αν Αν I>J τότε Σ2 Σ2 + Α [ Ι, J] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 I >J I < J I= J 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 29

ΤΕΤΡΑΓΩΝΙΚΟΙ ΠΙΝΑΚΕΣ ΑΘΡΟΙΣΜΑ ΣΤΟΙΧΕΙΩΝ ΚΥΡΙΑΣ ΔΕΥΤΕΡΕΥΟΥΣΑΣ ΔΙΑΓΩΝΙΟΥ 1 ος ΤΡΟΠΟΣ Σ1 0! Κύρια Σ2 0 0! Δευτερεύουσα Για Ι από 1 μέχρι Ν Για J από 1 μέχρι Ν Αν Ι = J τότε Σ1 Σ1 + Α [ Ι, J] Τέλος_αν Αν J = Ν+1-Ι τότε Σ2 Σ2 + Α [ Ι, J] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 2ος τρόπος Σ1 0 Σ2 0 Για Ι από 1 μέχρι Ν Σ1 Σ1 + Α [ Ι, Ι] Σ2 Σ2 + Α [ Ι, Ν+1 Ι] Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 30

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΣΥΓΧΩΝΕΥΣΗ ΔΥΟ ΤΑΞΙΝΟΜΗΜΕΝΩΝ ΠΙΝΑΚΩΝ Αλγόριθμος Merging Δεδομένα // Α[Ν], Β[Μ] // κ 1,Ι 1, J 1 Όσο ( ι<=ν) και ( j <= M) επανάλαβε Αν Α[ι]<Β[j] τότε Γ [ κ] Α[ι] Κ Κ+1 I I+1 Αλλιώς Γ[κ] Β[ j ] Κ Κ+1 J J+1 Tέλος_αν Τέλος_επανάληψης! Μεταφορά υπολοίπων Αν Ι>Ν τότε Για ρ από k μέχρι Μ+Ν Γ[ρ] Β[ j] J J +1 Τέλος_επανάληψης Αλλιώς Για ρ από k μέχρι Μ+Ν Γ[ρ] Α[ ι] Ι Ι +1 Τέλος_επανάληψης Τέλος_αν Αποτελέσματα // Γ [ Μ+Ν] // 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 31

ΑΣΚΗΣΗ 4 : Υπολογισμοί και επεξεργασίες ανά γραμμή Να διαβάζει απ το πληκτρολόγιο τα ονόματα 25 μαθητών και να τα καταχωρεί σε πίνα Να διαβάζει απ το πληκτρολόγιο τα ονόματα 14 μαθημάτων και να τα καταχωρεί σε π Να διαβάζει απ το πληκτρολόγιο τους βαθμούς του κάθε μαθητή σε όλα τα μαθήματα Να υπολογίζει τους μέσους όρους για όλους τους μαθητές και να τους καταχωρεί σε π Να υπολογίζει τον μεγαλύτερο βαθμό του κάθε μαθητή και να τον καταχωρεί στην αντί Να υπολογίζει το πλήθος των μαθητών που έχουν ΜΟ >= 15 και <= 18 Να εμφανίζει κατάσταση με τα ονόματα των μαθητών και δίπλα τους αντίστοιχους μέσ Να βρίσκει το πλήθος των μαθητών και να τυπώνει τα αντίστοιχα ονόματα όσων έχουν Να τυπώνει τους πέντε καλύτερους μαθητές και τους 3 χειρότερους Να βρίσκει τα ονόματα των μαθητών που είχαν τον δεύτερο καλύτερο ΜΟ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 32

ΑΣΚΗΣΗ 4 / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Για Ι από 1 μέχρι 25 Διάβασε ΟΝΟΜΑ ΜΑΘΗΤΕΣ [Ι] ΟΝΟΜΑ Τέλος_ επανάληψης Για J από 1 μέχρι 14 ΔΙΑΒΑΣΕ Χ ΜΑΘΗΜΑΤΑ [J] X Τέλος_επανάληψης Για I από 1 μέχρι 25 Για J από 1 μέχρι 14 Αρχή επανάληψης Διάβασε Χ Μέχρις_ότου Χ>=0 και Χ<=20 Β[ I, J] X Tέλος Επανάληψης Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 33

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΟ Θα βρούμε το άθροισμα των βαθμών για κάθε μαθητή και θα διαιρέσουμε με το πλήθος των μαθημάτων Οι βαθμοί κάθε μαθητή βρίσκονται σε μια γραμμή, άρα θα υπολογίσουμε τα αθροίσματα των γραμμών Μόλις τελειώνει ο υπολογισμός για κάθε μαθητή καταχωρούμε στην αντίστοιχη θέση του πίνακα ΜΟ το πηλίκο Σ/14 ΜΟ[Ι] Σ/14 Για I από 1 μέχρι 25 Σ 0 Για J από 1 μέχρι 14 Σ Σ +Β[ I, J] Tέλος Επανάληψης ΜΟ [Ι ] < Σ /14 Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 34

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΑΧ Θα βρούμε το μέγιστο βαθμό κάθε μαθητή Οι βαθμοί κάθε μαθητή βρίσκονται σε μια γραμμή, άρα θα υπολογίσουμε τον μέγιστο κάθε γραμμής Για I από 1 μέχρι 25 Μ Β[Ι,1] Για J από 2 μέχρι 14 Αν Β [Ι, J] > M τότε Μ Β [Ι, J] Tέλος Επανάληψης ΜAX[Ι ] M Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 35

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ ΜΕΤΑΞΥ 15 και 18 Όταν μας ζητάνε πλήθος ακολουθούμε τρία βήματα 1 ο βήμα : Μηδενισμός μετρητή πριν από την επανάληψη 2 ο βήμα : ενημέρωση μετρητή μέσα στην επανάληψη ανάλογα με την συνθήκη που ζητείται 3 ο βήμα: εκτύπωση του μετρητή μετά το τέλος της επανάληψης ( έξω) Πλήθος 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] >=15 και ΜΟ[Ι]<= 18 τότε Πλήθος Πλήθος +1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε Πλήθος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 36

ΑΣΚΗΣΗ 4/ ΤΑΞΙΝΟΜΗΣΗ Για Ι από 2 μέχρι 25 Για J από 25 μέχρι Ι με βήμα -1 Αν ΜΟ[J-1]< ΜΟ[J] τότε Temp ΜΟ[J-1] ΜΟ[J-1] ΜΟ[J] ΜΟ[J] Temp Τemp1 ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J] ΜΑΘΗΤΕΣ[J] Temp1 Αλλιώς_αν ΜΟ[J-1] = MO[J] και ΜΑΘΗΤΕΣ[J-1]>ΜΑΘΗΤΕΣ[J] τότε Τemp1 ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J] ΜΑΘΗΤΕΣ[J] Temp1 Τέλος_αν Τέλος Επανάληψης Τέλος_επανάληψης Για ι από 1 μέχρι 25 εμφάνισε Μαθητές [ι], ΜΟ[ι] Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 37

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ με ΜΟ = ΜΑΧ 1 ος τρόπος: Αν έχετε ταξινομήσει τον πίνακα Μέσων όρων ό μεγαλύτερος θα βρίσκεται στην πρώτη θέση Άρα ΜΑΧ ΜΟ[1] Σαρώνουμε τον πίνακα και ελέγχουμε ποιοι είναι ίσοι με τον ΜΑΧ όποτε ενημερώνουμε τον μετρητή Ταυτόχρονα τυπώνουμε το αντίστοιχο όνομα MAX MO[1] Counter 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] = MAX τότε Counter Coumter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 38

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ με ΜΟ = ΜΑΧ 2 ος τρόπος: Αν η άσκηση δεν έχει ζητήσει ταξινόμηση τότε μπορείτε να υπολογίσετε τον μέγιστο του πίνακα των μέσων όρων ( έστω ΜΑΧ) Σαρώνουμε τον πίνακα και ελέγχουμε ποιοι είναι ίσοι με τον ΜΑΧ όποτε ενημερώνουμε τον μετρητή Ταυτόχρονα τυπώνουμε το αντίστοιχο όνομα ΑΚΟΜΑ ΚΑΙ ΝΑ ΜΗΝ ΕΧΕΤΕ ΚΑΤΑΦΕΡΕΙ ΝΑ ΥΠΟΛΟΓΙΣΕΤΕ ΤΟΝ ΜΑΧ ΜΠΟΡΕΙΤΕ ΝΑ ΑΠΑΝΤΗΣΕΤΕ Σ ΑΥΤΉ ΤΗΝ ΕΡΩΤΗΣΗ ΜΕ ΤΟΝ ΙΔΙΟ ΤΡΟΠΟ Counter 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] = MAX τότε Counter Coumter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 39

ΑΣΚΗΣΗ 4 / ΕΜΦΑΝΙΣΗ ΤΩΝ 5 ΚΑΛΥΤΕΡΩΝ ΚΑΙ 3 ΧΕΙΡΟΤΕΡΩΝ Αφού ο πίνακας των μαθητών και των μέσων όρων είναι ταξινομημένος κατά φθίνουσα σειρά μέσων όρων σημαίνει Οι 5 καλύτεροι καταλαμβάνουν τις πέντε πρώτες θέσεις Οι τρεις χειρότεροι καταλαμβάνουν τις 3 τελευταίες θέσεις Εμφάνισε «πέντε καλύτεροι» Για I από 1 μέχρι 5 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ], ΜΟ[Ι] Τέλος_επανάληψης Εμφάνισε «Τρεις χειρότεροι» Για Ι από 23 μέχρι 25 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ], ΜΟ[Ι] Τέλος_επανάληψης! Στην περίπτωση των χειρότερων αν ζητηθεί κατά αύξουσα σειρά θα πρέπει το για να αρχίζει από 25 μέχρι 23 με βήμα -1 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 40

ΑΣΚΗΣΗ 4 / ΕΜΦΑΝΙΣΗ ΤΩΝ μαθητών με δεύτερο καλύτερο Αφού ο πίνακας των μαθητών και των μέσων όρων είναι ταξινομημένος κατά φθίνουσα σειρά μέσων όρων σημαίνει ότι όσοι έχουν μέσο όρο = ΜΑΧ βρίσκονται στις πρώτες θέσεις Τους μετράμε p 0 Για ι από 1 μέχρι 25 Αν ΜΟ[ι] = ΜΟ[1 ] τότε p p+1 Tέλος_αν Τέλος_επανάληψης Εμφάνισε «οι ΔΕΎΤΕΡΟΙ» Δεύτερος ΜΟ[ρ+1] Για I από 1 μέχρι 25 Αν ΜΟ[ι] =Δεύτερος τότε Εμφάνισε ΜΑΘΗΤΕΣ[ι] Τέλος_αν Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 41

ΑΣΚΗΣΗ 4 : Υπολογισμοί και επεξεργασίες ανά στήλη Στις πανελλαδικές εξετάσεις στον τεχνολογικό τομέα εξετάζονται 25000 μαθητές σε έξι μαθήματα. Η βαθμολογία σε κάθε μάθημα γίνεται στην κλίμακα 0-100. Να γράψετε πρόγραμμα που: Να διαβάζει τα ονόματα των 25000 μαθητών και να τα καταχωρεί σε πίνακα ΟΝ[2 Να διαβάζει τα ονόματα των έξι μαθημάτων και να τα καταχωρεί σε πίνακα ΜΑΘΗ Να διαβάζει την βαθμολογία κάνοντας έλεγχο ορθότητας και να την καταχωρεί σε Να υπολογίζει για κάθε μάθημα τον μέσο όρο και να τον καταχωρεί σε πίνακα ΜΟ Να βρίσκει το όνομα του μαθήματος που ήταν πιο δύσκολο ( δεχθείτε ότι είναι ένα Να βρίσκει το πλήθος των μαθητών ανά μάθημα που δεν κατάφεραν να γράψουν Αν στο μάθημα 1 οι μαθητές έπρεπε να γράψουν τουλάχιστον 50 ( στην κλίμακα 0 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 42

ΑΣΚΗΣΗ 4 / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Για Ι από 1 μέχρι 25000 Διάβασε ΟΝ[ι] Τέλος_ επανάληψης Για J από 1 μέχρι 6 ΔΙΑΒΑΣΕ ΜΑΘΗΜΑΤΑ [J] Τέλος_επανάληψης Για I από 1 μέχρι 25000 Για J από 1 μέχρι 6 Αρχή επανάληψης Διάβασε Χ Μέχρις_ότου Χ>=0 και Χ<=20 Β[ I, J] X Tέλος Επανάληψης Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 43

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΟ Θα βρούμε το άθροισμα των βαθμών για κάθε μάθημα και θα διαιρέσουμε με το πλήθος των μαθητών Οι βαθμοί κάθε μαθήματος βρίσκονται σε μια στήλη, άρα θα υπολογίσουμε τα αθροίσματα των στηλών Μόλις τελειώνει ο υπολογισμός για κάθε μάθημα καταχωρούμε στην αντίστοιχη θέση του πίνακα ΜΟ το πηλίκο Σ/25000 Για j από 1 μέχρι 6 Σ 0 Για i από 1 μέχρι 25000 Σ Σ +Β[ I, J] Tέλος Επανάληψης ΜΟ [j ] < Σ /25000 Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 44

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ MIN Δυσκολότερο είναι το μάθημα που έχει τον μικρότερο ΜΟ. Άρα θα βρούμε το μικρότερο ΜΟ Μin MO[1] P 1 Για κ από 2 μέχρι 6 Αν ΜΟ[κ}<Μin τότε Min MO[k] P k Τέλος_αν Τέλος_επανάληψης Γράψε ΜΑΘΗΜΑΤΑ[ρ], min 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 45

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ ανά μάθημα με βαθμό <25 Όταν μας ζητάνε πλήθος ανά μάθημα ακολουθούμε 4 βήματα 1 ο βήμα : έναρξη επανάληψης για κάθε μάθημα 2 ο βήμα : Μηδενισμός μετρητή πριν από την δεύτερη επανάληψη 3 ο βήμα : ενημέρωση μετρητή μέσα στην επανάληψη ανάλογα με την συνθήκη που ζητείται 4 ο βήμα: εκτύπωση του μετρητή μετά το τέλος της εσωτερικής επανάληψης Για J από 1 μέχρι 6 Πλήθος 0 Για I από 1 μέχρι 25000 Αν Β[ I, j] <25 τότε Πλήθος Πλήθος +1 Τέλος_αν Τέλος_επανάληψης Γράψε ΜΑΘΗΜΑΤΑ[j], πλήθος Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 46

ΑΣΚΗΣΗ 4 / ΠΟΙΟΙ ΑΠΟΚΛΕΙΟΝΤΑΙ Αποκλείονται οι μαθητές που στο μάθημα 1 πήραν βαθμό <50 Άρα η συνθήκη ελέγχου είναι Β[ι, 1] <50 Counter 0 Για I από 1 μέχρι 25000 Αν Β[Ι,1] <50 τότε Counter Counter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 47

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 48

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 49

Λύση Ο αλγόριθμος διατρέχει τον πίνακα και κάνει δύο επεξεργασίες: 1. Αν βρει στοιχείο της κύριας διαγωνίου ( Ι = J) αθροίζει ( Sum Sum +A[I,j] 2. Αν βρει στοιχείο έξω απ την κύρια διαγώνιο το μηδενίζει Τελικά το Sum παίρνει την τιμή 1+2+3+2+1 = 9 Ο πίνακας μένει με τα στοιχεία της κύριας διαγώνιου 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 50

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 51

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 52

Στοίβες και ουρές Στοίβα: LIFO Λειτουργίες Ώθηση (Push) Απώθηση ( Pop) Δείκτες Κορυφής ( Top) δείχνει το στοιχείο που τοποθετήθηκε τελευταίο στην στοίβα ΩΘΗΣΗ : Ελέγχεται ο δείκτης top και αν είναι < Ν αυξάνεται κατά 1 και εισάγεται στην νέα θέση το στοιχείο. Αν έχουμε overflow δεν μπορεί να γίνει εισαγωγή στοιχείου ΑΠΩΘΗΣΗ : Ελέγχεται αν υπάρχει στοιχείο στη στοίβα ( top >=1) και τότε εκχωρείται το στοιχείο και ο δείκτης ελαττώνεται κατά 1. Αν έχουμε under flow δεν μπορεί να εξαχθεί στοιχείο. Ουρά : FIFO Λειτουργίες Εισαγωγή (enqueue) Εξαγωγή (Dequeue) Δείκτες Εμπρός (front) δείχνει το στοιχείο που πρόκειται να εξαχθεί Πίσω (rear) δείχνει το στοιχείο που εισάχθηκε τελευταίο ΕΙΣΑΓΩΓΗ: Ελέγχεται αν υπάρχει χώρος για εισαγωγή. Αν υπάρχει αυξάνεται ο rear κατά ένα και εισάγεται στην νέα θέση το στοιχείο ΕΞΑΓΩΓΗ: Ελέγχεται αν υπάρχει στοιχείο για εξαγωγή και στη συνέχεια ο δείκτης front αυξάνεται κατά 1, για να δείξει τη θέση του νέου στοιχείου προς εξαγωγή 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 53

ΩΘΗΣΗ ΑΠΩΘΗΣΗ ΣΕ ΣΤΟΙΒΑ Αλγόριθμος Push Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν top < N τότε Top Top +1 Στοίβα[Top] X Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, στοίβα // Τέλος Push Αλγόριθμος Pop Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν top >=1 τότε X Στοίβα [top] Top Top -1 Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, στοίβα // Τέλος Pop 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 54

ΕΙΣΑΓΩΓΗ ΕΞΑΓΩΓΗ ΣΕ ΟΥΡΑ Αλγόριθμος ENQUEUE Δεδομένα // Ν, Ουρά[Ν], Χ// Αν rear < N τότε rear rear +1 Ουρά[rear] X Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, ουρά// Τέλος Enqueue Αλγόριθμος DEQUEUE Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν front >=1 τότε X Ουρά [top] front front+1 Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, ουρά // Τέλος DEQUEUE 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 55

Δομές δεδομένων δευτερεύουσας μνήμης Αρχείο : χώρος αποθήκευσης δεδομένων στην περιφερειακή μνήμη Εγγραφή: τα στοιχεία ενός αρχείου Πεδία : χαρακτηριστικά κάθε εγγραφής Πρωτεύον κλειδί: πεδίο που ταυτοποιεί την εγγραφή Μαθητές Τα στοιχεία κάθε μαθητή αποτελεί μια εγγραφή. Υπάρχουν τόσες εγγραφές όσοι και οι μαθητές Επώνυμο, όνομα, αριθμός μητρώου, βαθμοί αποτελούν τα πεδία κάθε εγγραφής Αριθμός μητρώου είναι το πρωτεύον κλειδί 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 56

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 1

Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 2

Ορισμός δομής δεδομένων και βασικές λειτουργίες ΟΡΙΣΜΟΣ Σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑ ( W I R TH ) ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ 1. Προσπέλαση 2. Εισαγωγή 3. Διαγραφή 4. Αναζήτηση 5. Ταξινόμηση 6. Αντιγραφή 7. Συγχώνευση 8. Διαχωρισμός 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 3

ΕΙΔΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΑΤΙΚΕΣ Σταθερό μέγεθος ( η απαίτηση σε μνήμη καθορίζεται κατά τη στιγμή του προγραμματισμού μετάφρασης ) Δεν αλλάζει στην διάρκεια εκτέλεσης Αποθήκευση κόμβων σε συνεχόμενες θέσεις μνήμης ΔΥΝΑΜΙΚΕΣ Δεν έχουν σταθερό μέγεθος αλλά ο αριθμός των κόμβων μεγαλώνει ή μικραίνει ( εισαγωγή/ διαγραφή) Η παραχώρηση μνήμης γίνεται κατά την διάρκεια εκτέλεσης ( δυναμική παραχώρηση) Αποθήκευση σε μη συνεχόμενες θέσεις 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 4

ΠΙΝΑΚΕΣ Σύνολο αντικειμένων ΙΔΙΟΥ ΤΥΠΟΥ, τα οποία αναφέρονται με ένα κοινό ΟΝΟΜΑ ΚΆΘΕ ΈΝΑ ΑΝΤΙΚΕΙΜΕΝΟ λέγεται ΣΤΟΙΧΕΙΟ του πίνακα Η ΑΝΑΦΟΡΑ σε ένα στοιχείο γίνεται με το ΟΝΟΜΑ ακολουθούμενο από ένα ή περισσότερους δείκτες Βαθμοί, Ονόματα, Θερμοκρασίες, Βαθμός 1 ου μαθητή, όνομα 3 ου μαθητή, θερμοκρασία 25 ης του μήνα ΒΑΘΜΟΣ [κ] ΟΝΟΜΑ[m] 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 5

Βασικοί κανόνες Δεδομένα ίδιου τύπου Πλήθος = σταθερό Δήλωση στο τμήμα δηλώσεων Ακέραιες: Α[100], Β[10, 20] Πραγματικές: Μ[20], Μέσοι_όροι[100] Χαρακτήρες: ΜΑΘΗΤΕΣ[20], ΥΠΑΛΛΗΛΟΙ[25] Λογικοί: ΑΠΑΝΤΗΣΕΙΣ[10] Σαν όνομα οποιοδήποτε ΑΠΟΔΕΚΤΟ σύμφωνα με τους κανόνες της ΓΛΩΣΣΑΣ Ο [οι] δείκτες είναι ΑΚΕΡΑΙΑ [οι] μεταβλητή ή σταθερά ΜΕΣΑ ΣΕ ΑΓΚΥΛΕΣ. Συνηθίζεται η χρήση των I,J,K 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 6

Δημιουργία Μονοδιάστατου πίνακα με βαθμούς 30 μαθητών και υπολογισμό του Μέσου όρου Πρόγραμμα ΧωρίςΠίνακες1 Μεταβλητές Πραγματικές: Σ, Μ, Χ Ακέραιες : I Αρχή Σ 0 Για ι από 1 μέχρι 30 Διάβασε Χ Σ Σ+Χ Τέλος_επανάληψης Μ Σ/30 Γράψε Μ Τέλος_προγράμματος Πρόγραμμα ΜεΠίνακες1 Μεταβλητές Πραγματικές: Σ, Μ, Β[30] Ακέραιες : I Αρχή Σ 0 Για ι από 1 μέχρι 30 Διάβασε Β[ι] Σ Σ +Β[ι] Τέλος_επανάληψης Μ Σ/30 Γράψε Μ Τέλος_προγράμματος ΚΑΜΜΙΑ ΔΙΑΦΟΡΑ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 7

Παράδειγμα που δείχνει πότε πραγματικά χρειάζεται ο πίνακας (α) Διάβασμα βαθμών 30 μαθητών στον προγραμματισμό (β) Υπολογισμός του πλήθους των μαθητών που έχουν βαθμό πάνω από τον μέσο όρο κατά 2 μονάδες (γ) Υπολογισμός της απόκλισης του βαθμού κάθε μαθητή από τον μέσο όρο Το (α) ΔΕΝ ΑΠΑΙΤΕΙ ΠΙΝΑΚΕΣ Τα ( β) και (γ) χρειάζονται τον κάθε βαθμό για να μπορεί να γίνει η σύγκριση με τον μέσο όρο. Αν χρησιμοποιήσουμε ΜΙΑ μόνο μεταβλητή οι 29 βαθμοί θα χαθούν ( μετά από κάθε διάβασμα χάνεται η προηγούμενη τιμή). ΕΔΏ ΛΟΙΠΟΝ χρειάζεται να ΚΡΑΤΑΜΕ ΣΤΗ ΜΝΗΜΗ και τις 30 τιμές. ΔΗΛΑΔΗ χρειαζόμαστε πίνακα 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 8

ΠΡΟΓΡΑΜΜΑ ΠΙΝΑΚΕΣ2 ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΙ [30], ΜΕΣΗ_ΤΙΜΗ, Σ ΑΚΕΡΑΙΕΣ : Κ, πλήθος ΑΡΧΗ ΓΙΑ Κ ΑΠΌ 1 ΜΕΧΡΙ 30 ΔΙΑΒΑΣΕ ΒΑΘΜΟΙ[Κ] Σ Σ+ΒΑΘΜΟΙ[Κ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΌΤΑΝ ΘΕΛΟΥΜΕ ΝΑ ΜΕΣΗ_ΤΙΜΗ Σ/30 ΣΥΓΚΡΙΝΟΥΜΕ Πλήθος 0 ΚΆΘΕ ΒΑΘΜΟ ΜΕ ΤΗΝ ΜΕΣΗ ΤΙΜΗ ΓΙΑ Κ ΑΠΌ 1 ΜΕΧΡΙ 30 ΑΝ ΒΑΘΜΟΙ[Κ] >ΜΕΣΗ_ΤΙΜΗ +2 ΤΟΤΕ Πλήθος Πλήθος+1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ΔΥΟ ΜΟΝΑΔΕΣ ΠΑΝΩ ΑΠΌ ΤΟΝ Μ.Ο:, πλήθος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 9

ΠΟΤΕ ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΠΙΝΑΚΕΣ Αν τα δεδομένα είναι ΟΜΟΕΙΔΗ και πρέπει να διατηρούνται όλα στη μνήμη μέχρι το τέλος της επεξεργασίας ΤΟΤΕ Η ΧΡΗΣΗ ΕΊΝΑΙ ΑΠΑΡΑΙΤΗΤΗ ΠΕΡΙΤΤΗ ΧΡΗΣΗ Απαιτείται μνήμη: Η άσκοπη χρήση πινάκων με μεγάλο αριθμό στοιχείων περιορίζει τους υπολογιστικούς πόρους του συστήματος και μπορεί να οδηγήσει σε αδυναμία εκτέλεσης του προγράμματος Περιορισμός ελευθερίας προγραμματιστή: Λόγω της δομής τους ( στατικές) πρέπει ο προγραμματιστής να προσδιορίζει με ακρίβεια στη φάση των δηλώσεων το μέγεθος, που σε μερικές περιπτώσεις είναι αδύνατο με αποτέλεσμα να δηλώνει ή πολύ περισσότερες θέσεις ( σπατάλη μνήμης) ή λιγότερες ( συνεχείς αλλαγές στην σχεδίαση κάθε φορά που απαιτούνται περισσότερες θέσεις ) 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 10

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Πρόγραμμα Πιν1 Μεταβλητές Ακέραιες: Α[100],κ Αρχή Για κ από 1 μέχρι 100 Γράψε «δώσε:» Διάβασε Α[κ] Τέλος Επανάληψης Τέλος Προγράμματος Η εισαγωγή μπορεί να γίνει και με χρήση μιας μεταβλητής εισόδου Χ και μετά εκχώρηση στην αντίστοιχη θέση του πίνακα Για κ από 1 μέχρι 100 Διάβασε Χ Α[κ] χ Τέλος Επανάληψης Πρόγραμμα Πιν1Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ Αρχή Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε «δώσε:» Διάβασε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 11

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΕΜΦΑΝΙΣΗ ΔΕΔΟΜΕΝΩΝ Πρόγραμμα Πιν2 Μεταβλητές Ακέραιες: Α[100],κ Αρχή Για κ από 1 μέχρι 100 Γράψε «δώσε:» Διάβασε Α[κ] Τέλος Επανάληψης Για κ από 1 μέχρι 100 Γράψε Α[κ] Τέλος Επανάληψης Τέλος Προγράμματος Πρόγραμμα Πιν2Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ Αρχή Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε «δώσε:» Διάβασε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Γράψε Β[κ,ρ] Τέλος Επανάληψης Τέλος Επανάληψης Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 12

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ / ΜΕΓΙΣΤΟΣ Πρόγραμμα Πιν3 Μεταβλητές Ακέραιες: Α[100],κ, θέση, Μαχ Αρχή! Γέμισμα Μαχ Α[1] Θέση 1 Για κ από 2 μέχρι 100 Αν Α[κ]>Μαχ τότε Μαχ Α[κ] Θέση κ Τέλος_αν Τέλος_επανάληψης Εμφάνισε θέση, μαχ Τέλος Προγράμματος Πρόγραμμα 3Α Μεταβλητές Ακέραιες: Β[10,20],κ,ρ,χ,y Αρχή! Γέμισμα Μαχ Β[1,1] Χ 1, Υ 1 Για κ από 1 μέχρι 10 Για ρ από 1 μέχρι 20 Αν Β[κ,ρ]>Μαχ τότε Μαχ Β[κ,ρ] Χ κ Υ ρ Τέλος_αν Τέλος Επανάληψης Τέλος Επανάληψης Εμφάνισε Μαχ, Χ, Υ Τέλος Προγράμματος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 13

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΑΝΑΖΗΤΗΣΗ1 Αλγόριθμος Αναζήτηση1 Δεδομένα // Ν, Α[Ν], Χ //! Όταν βρεθεί τερματίζει η επανάληψη Βρέθηκε Ψευδής Θέση 0 Ι 1 ΟΣΟ ( Βρέθηκε = ψευδής ) και ( Ι<= Ν) επανάλαβε Αν Α[Ι] =Χ τότε Βρέθηκε Αληθής Θέση Ι Αλλιώς Ι Ι +1 Τέλος_αν Τέλος Επανάληψης Αποτελέσματα // Βρέθηκε, Θέση // Τέλος Αναζήτηση1 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 14

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΑΝΑΖΗΤΗΣΗ2 Αλγόριθμος Αναζήτηση2! Αναζητεί όλες τις θέσεις Δεδομένα // Ν, Α[Ν], Χ // Μ 0 Βρέθηκε Ψευδής Για Ι από 1 μέχρι Ν Αν Α[Ι] =Χ τότε Βρέθηκε Αληθής Γράψε «βρέθηκε στη θέση :», Ι Μ Μ +1 Τέλος_αν Τέλος Επανάληψης Αν Βρέθηκε = ψευδής τότε Εμφάνισε «ΔΕΝ ΒΡΕΘΗΚΕ» Αλλιώς Εμφάνισε «ΒΡΕΘΗΚΕ..», Μ, «ΦΟΡΕΣ» Τέλος_αν Τέλος Αναζήτηση2 Μπορούμε να χρησιμοποιήσουμε και δομή ΟΣΟ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 15

Πότε δικαιολογείται σειριακή αναζήτηση Πίνακας δεν είναι ταξινομημένος Πίνακας έχει μικρό μέγεθος ( Ν<=20) Η αναζήτηση στον πίνακα γίνεται σπάνια 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 16

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΤΑΞΙΝΟΜΗΣΗ Αλγόριθμος Ταξινόμηση Δεδομένα // Ν, Α[Ν] // Για Ι από 2 μέχρι Ν Για J από Ν μέχρι Ι με βήμα -1 Αν Α[J-1]> A[J] τότε Temp A[J-1] A[J-1] A[J] A[J] Temp Τέλος_αν Τέλος Επανάληψης Αποτελέσματα // Α[Ν] // Τέλος Ταξινόμηση 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 17

Παράδειγμα ταξινόμησης φυσαλίδας 52 12 71 56 5 10 19 90 45 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 18

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 12 52 71 12 56 71 5 56 10 10 19 19 90 45 45 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 19

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 12 52 10 71 12 52 56 71 12 5 56 71 10 10 56 19 19 19 90 45 45 45 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 20

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 12 52 10 10 71 12 52 12 56 71 12 52 5 56 71 19 10 10 56 71 19 19 19 56 90 45 45 45 45 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 21

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 12 52 10 10 10 71 12 52 12 12 56 71 12 52 19 5 56 71 19 52 10 10 56 71 45 19 19 19 56 71 90 45 45 45 56 45 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 22

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 12 52 10 10 10 10 71 12 52 12 12 12 56 71 12 52 19 19 5 56 71 19 52 45 10 10 56 71 45 52 19 19 19 56 71 56 90 45 45 45 56 71 45 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 23

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 12 52 10 10 10 10 10 71 12 52 12 12 12 12 56 71 12 52 19 19 19 5 56 71 19 52 45 45 10 10 56 71 45 52 52 19 19 19 56 71 56 56 90 45 45 45 56 71 71 45 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 24

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 5 12 52 10 10 10 10 10 10 71 12 52 12 12 12 12 12 56 71 12 52 19 19 19 19 5 56 71 19 52 45 45 45 10 10 56 71 45 52 52 52 19 19 19 56 71 56 56 56 90 45 45 45 56 71 71 71 45 90 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 25

Παράδειγμα ταξινόμησης φυσαλίδας 52 5 5 5 5 5 5 5 5 12 52 10 10 10 10 10 10 10 71 12 52 12 12 12 12 12 12 56 71 12 52 19 19 19 19 19 5 56 71 19 52 45 45 45 45 10 10 56 71 45 52 52 52 52 19 19 19 56 71 56 56 56 56 90 45 45 45 56 71 71 71 71 45 90 90 90 90 90 90 90 90 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 26

Επεξεργασίες πινάκων/ παράλληλη ταξινόμηση Ταξινόμηση 100 Μαθητών με βάση τον βαθμό. Χρειαζόμαστε δύο πίνακες. Μ [100] για τα ονόματα και Β [100] για τους βαθμούς 1. Εισαγωγή δεδομένων Για Ι από 1 μέχρι 100 Διάβασε Μ [ι], Β [ι] Τέλος_επανάληψης 2. Ταξινόμηση Για Ι από 2 μέχρι 100 Για J από Ν μέχρι I με βήμα -1 Αν Β[j -1] >Β[j] τότε Αντιμετάθεσε Β[j-1], B[j] Αντιμετάθεσε M[j-1], M[j] Τέλος_αν Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 27

ΥΠΟΛΟΓΙΣΜΟΙ ΑΘΡΟΙΣΜΑΤΩΝ ΠΙΝΑΚΑ Α[ Μ, Ν ] ΓΡΑΜΜΩΝ Για Ι από 1 μέχρι Μ X 0 Για J από 1 μέχρι Ν X X + Α[ I,J] Τέλος_επανάληψης Σ[Ι] X Τέλος_επανάληψης ΣΤΗΛΩΝ Για J από 1 μέχρι Ν X 0 Για I από 1 μέχρι M X X + Α[ I,J] Τέλος_επανάληψης Σ[J] X Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 28

ΤΕΤΡΑΓΩΝΙΚΟΙ ΠΙΝΑΚΕΣ ΑΘΡΟΙΣΜΑ ΣΤΟΙΧΕΙΩΝ ΠΑΝΩ ΚΑΤΩ ΑΠΌ ΤΗΝ ΚΥΡΙΑ ΔΙΑΓΩΝΙΟ Σ1 0 Σ2 0 Για Ι από 1 μέχρι Ν Για J από 1 μέχρι Ν Αν Ι <J τότε Σ1 Σ1 + Α [ Ι, J] Τέλος_αν Αν I>J τότε Σ2 Σ2 + Α [ Ι, J] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 I >J I < J I= J 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 29

ΤΕΤΡΑΓΩΝΙΚΟΙ ΠΙΝΑΚΕΣ ΑΘΡΟΙΣΜΑ ΣΤΟΙΧΕΙΩΝ ΚΥΡΙΑΣ ΔΕΥΤΕΡΕΥΟΥΣΑΣ ΔΙΑΓΩΝΙΟΥ 1 ος ΤΡΟΠΟΣ Σ1 0! Κύρια Σ2 0 0! Δευτερεύουσα Για Ι από 1 μέχρι Ν Για J από 1 μέχρι Ν Αν Ι = J τότε Σ1 Σ1 + Α [ Ι, J] Τέλος_αν Αν J = Ν+1-Ι τότε Σ2 Σ2 + Α [ Ι, J] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 2ος τρόπος Σ1 0 Σ2 0 Για Ι από 1 μέχρι Ν Σ1 Σ1 + Α [ Ι, Ι] Σ2 Σ2 + Α [ Ι, Ν+1 Ι] Τέλος_επανάληψης Εμφάνισε Σ1, Σ2 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 30

ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ/ ΣΥΓΧΩΝΕΥΣΗ ΔΥΟ ΤΑΞΙΝΟΜΗΜΕΝΩΝ ΠΙΝΑΚΩΝ Αλγόριθμος Merging Δεδομένα // Α[Ν], Β[Μ] // κ 1,Ι 1, J 1 Όσο ( ι<=ν) και ( j <= M) επανάλαβε Αν Α[ι]<Β[j] τότε Γ [ κ] Α[ι] Κ Κ+1 I I+1 Αλλιώς Γ[κ] Β[ j ] Κ Κ+1 J J+1 Tέλος_αν Τέλος_επανάληψης! Μεταφορά υπολοίπων Αν Ι>Ν τότε Για ρ από k μέχρι Μ+Ν Γ[ρ] Β[ j] J J +1 Τέλος_επανάληψης Αλλιώς Για ρ από k μέχρι Μ+Ν Γ[ρ] Α[ ι] Ι Ι +1 Τέλος_επανάληψης Τέλος_αν Αποτελέσματα // Γ [ Μ+Ν] // 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 31

ΑΣΚΗΣΗ 4 : Υπολογισμοί και επεξεργασίες ανά γραμμή Να διαβάζει απ το πληκτρολόγιο τα ονόματα 25 μαθητών και να τα καταχωρεί σε πίνα Να διαβάζει απ το πληκτρολόγιο τα ονόματα 14 μαθημάτων και να τα καταχωρεί σε π Να διαβάζει απ το πληκτρολόγιο τους βαθμούς του κάθε μαθητή σε όλα τα μαθήματα Να υπολογίζει τους μέσους όρους για όλους τους μαθητές και να τους καταχωρεί σε π Να υπολογίζει τον μεγαλύτερο βαθμό του κάθε μαθητή και να τον καταχωρεί στην αντί Να υπολογίζει το πλήθος των μαθητών που έχουν ΜΟ >= 15 και <= 18 Να εμφανίζει κατάσταση με τα ονόματα των μαθητών και δίπλα τους αντίστοιχους μέσ Να βρίσκει το πλήθος των μαθητών και να τυπώνει τα αντίστοιχα ονόματα όσων έχουν Να τυπώνει τους πέντε καλύτερους μαθητές και τους 3 χειρότερους Να βρίσκει τα ονόματα των μαθητών που είχαν τον δεύτερο καλύτερο ΜΟ 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 32

ΑΣΚΗΣΗ 4 / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Για Ι από 1 μέχρι 25 Διάβασε ΟΝΟΜΑ ΜΑΘΗΤΕΣ [Ι] ΟΝΟΜΑ Τέλος_ επανάληψης Για J από 1 μέχρι 14 ΔΙΑΒΑΣΕ Χ ΜΑΘΗΜΑΤΑ [J] X Τέλος_επανάληψης Για I από 1 μέχρι 25 Για J από 1 μέχρι 14 Αρχή επανάληψης Διάβασε Χ Μέχρις_ότου Χ>=0 και Χ<=20 Β[ I, J] X Tέλος Επανάληψης Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 33

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΟ Θα βρούμε το άθροισμα των βαθμών για κάθε μαθητή και θα διαιρέσουμε με το πλήθος των μαθημάτων Οι βαθμοί κάθε μαθητή βρίσκονται σε μια γραμμή, άρα θα υπολογίσουμε τα αθροίσματα των γραμμών Μόλις τελειώνει ο υπολογισμός για κάθε μαθητή καταχωρούμε στην αντίστοιχη θέση του πίνακα ΜΟ το πηλίκο Σ/14 ΜΟ[Ι] Σ/14 Για I από 1 μέχρι 25 Σ 0 Για J από 1 μέχρι 14 Σ Σ +Β[ I, J] Tέλος Επανάληψης ΜΟ [Ι ] < Σ /14 Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 34

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΑΧ Θα βρούμε το μέγιστο βαθμό κάθε μαθητή Οι βαθμοί κάθε μαθητή βρίσκονται σε μια γραμμή, άρα θα υπολογίσουμε τον μέγιστο κάθε γραμμής Για I από 1 μέχρι 25 Μ Β[Ι,1] Για J από 2 μέχρι 14 Αν Β [Ι, J] > M τότε Μ Β [Ι, J] Tέλος Επανάληψης ΜAX[Ι ] M Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 35

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ ΜΕΤΑΞΥ 15 και 18 Όταν μας ζητάνε πλήθος ακολουθούμε τρία βήματα 1 ο βήμα : Μηδενισμός μετρητή πριν από την επανάληψη 2 ο βήμα : ενημέρωση μετρητή μέσα στην επανάληψη ανάλογα με την συνθήκη που ζητείται 3 ο βήμα: εκτύπωση του μετρητή μετά το τέλος της επανάληψης ( έξω) Πλήθος 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] >=15 και ΜΟ[Ι]<= 18 τότε Πλήθος Πλήθος +1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε Πλήθος 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 36

ΑΣΚΗΣΗ 4/ ΤΑΞΙΝΟΜΗΣΗ Για Ι από 2 μέχρι 25 Για J από 25 μέχρι Ι με βήμα -1 Αν ΜΟ[J-1]< ΜΟ[J] τότε Temp ΜΟ[J-1] ΜΟ[J-1] ΜΟ[J] ΜΟ[J] Temp Τemp1 ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J] ΜΑΘΗΤΕΣ[J] Temp1 Αλλιώς_αν ΜΟ[J-1] = MO[J] και ΜΑΘΗΤΕΣ[J-1]>ΜΑΘΗΤΕΣ[J] τότε Τemp1 ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J-1] ΜΑΘΗΤΕΣ[J] ΜΑΘΗΤΕΣ[J] Temp1 Τέλος_αν Τέλος Επανάληψης Τέλος_επανάληψης Για ι από 1 μέχρι 25 εμφάνισε Μαθητές [ι], ΜΟ[ι] Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 37

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ με ΜΟ = ΜΑΧ 1 ος τρόπος: Αν έχετε ταξινομήσει τον πίνακα Μέσων όρων ό μεγαλύτερος θα βρίσκεται στην πρώτη θέση Άρα ΜΑΧ ΜΟ[1] Σαρώνουμε τον πίνακα και ελέγχουμε ποιοι είναι ίσοι με τον ΜΑΧ όποτε ενημερώνουμε τον μετρητή Ταυτόχρονα τυπώνουμε το αντίστοιχο όνομα MAX MO[1] Counter 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] = MAX τότε Counter Coumter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 38

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ με ΜΟ = ΜΑΧ 2 ος τρόπος: Αν η άσκηση δεν έχει ζητήσει ταξινόμηση τότε μπορείτε να υπολογίσετε τον μέγιστο του πίνακα των μέσων όρων ( έστω ΜΑΧ) Σαρώνουμε τον πίνακα και ελέγχουμε ποιοι είναι ίσοι με τον ΜΑΧ όποτε ενημερώνουμε τον μετρητή Ταυτόχρονα τυπώνουμε το αντίστοιχο όνομα ΑΚΟΜΑ ΚΑΙ ΝΑ ΜΗΝ ΕΧΕΤΕ ΚΑΤΑΦΕΡΕΙ ΝΑ ΥΠΟΛΟΓΙΣΕΤΕ ΤΟΝ ΜΑΧ ΜΠΟΡΕΙΤΕ ΝΑ ΑΠΑΝΤΗΣΕΤΕ Σ ΑΥΤΉ ΤΗΝ ΕΡΩΤΗΣΗ ΜΕ ΤΟΝ ΙΔΙΟ ΤΡΟΠΟ Counter 0 Για I από 1 μέχρι 25 Αν ΜΟ [Ι] = MAX τότε Counter Coumter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 39

ΑΣΚΗΣΗ 4 / ΕΜΦΑΝΙΣΗ ΤΩΝ 5 ΚΑΛΥΤΕΡΩΝ ΚΑΙ 3 ΧΕΙΡΟΤΕΡΩΝ Αφού ο πίνακας των μαθητών και των μέσων όρων είναι ταξινομημένος κατά φθίνουσα σειρά μέσων όρων σημαίνει Οι 5 καλύτεροι καταλαμβάνουν τις πέντε πρώτες θέσεις Οι τρεις χειρότεροι καταλαμβάνουν τις 3 τελευταίες θέσεις Εμφάνισε «πέντε καλύτεροι» Για I από 1 μέχρι 5 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ], ΜΟ[Ι] Τέλος_επανάληψης Εμφάνισε «Τρεις χειρότεροι» Για Ι από 23 μέχρι 25 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ], ΜΟ[Ι] Τέλος_επανάληψης! Στην περίπτωση των χειρότερων αν ζητηθεί κατά αύξουσα σειρά θα πρέπει το για να αρχίζει από 25 μέχρι 23 με βήμα -1 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 40

ΑΣΚΗΣΗ 4 / ΕΜΦΑΝΙΣΗ ΤΩΝ μαθητών με δεύτερο καλύτερο Αφού ο πίνακας των μαθητών και των μέσων όρων είναι ταξινομημένος κατά φθίνουσα σειρά μέσων όρων σημαίνει ότι όσοι έχουν μέσο όρο = ΜΑΧ βρίσκονται στις πρώτες θέσεις Τους μετράμε p 0 Για ι από 1 μέχρι 25 Αν ΜΟ[ι] = ΜΟ[1 ] τότε p p+1 Tέλος_αν Τέλος_επανάληψης Εμφάνισε «οι ΔΕΎΤΕΡΟΙ» Δεύτερος ΜΟ[ρ+1] Για I από 1 μέχρι 25 Αν ΜΟ[ι] =Δεύτερος τότε Εμφάνισε ΜΑΘΗΤΕΣ[ι] Τέλος_αν Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 41

ΑΣΚΗΣΗ 4 : Υπολογισμοί και επεξεργασίες ανά στήλη Στις πανελλαδικές εξετάσεις στον τεχνολογικό τομέα εξετάζονται 25000 μαθητές σε έξι μαθήματα. Η βαθμολογία σε κάθε μάθημα γίνεται στην κλίμακα 0-100. Να γράψετε πρόγραμμα που: Να διαβάζει τα ονόματα των 25000 μαθητών και να τα καταχωρεί σε πίνακα ΟΝ[2 Να διαβάζει τα ονόματα των έξι μαθημάτων και να τα καταχωρεί σε πίνακα ΜΑΘΗ Να διαβάζει την βαθμολογία κάνοντας έλεγχο ορθότητας και να την καταχωρεί σε Να υπολογίζει για κάθε μάθημα τον μέσο όρο και να τον καταχωρεί σε πίνακα ΜΟ Να βρίσκει το όνομα του μαθήματος που ήταν πιο δύσκολο ( δεχθείτε ότι είναι ένα Να βρίσκει το πλήθος των μαθητών ανά μάθημα που δεν κατάφεραν να γράψουν Αν στο μάθημα 1 οι μαθητές έπρεπε να γράψουν τουλάχιστον 50 ( στην κλίμακα 0 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 42

ΑΣΚΗΣΗ 4 / ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Για Ι από 1 μέχρι 25000 Διάβασε ΟΝ[ι] Τέλος_ επανάληψης Για J από 1 μέχρι 6 ΔΙΑΒΑΣΕ ΜΑΘΗΜΑΤΑ [J] Τέλος_επανάληψης Για I από 1 μέχρι 25000 Για J από 1 μέχρι 6 Αρχή επανάληψης Διάβασε Χ Μέχρις_ότου Χ>=0 και Χ<=20 Β[ I, J] X Tέλος Επανάληψης Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 43

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΜΟ Θα βρούμε το άθροισμα των βαθμών για κάθε μάθημα και θα διαιρέσουμε με το πλήθος των μαθητών Οι βαθμοί κάθε μαθήματος βρίσκονται σε μια στήλη, άρα θα υπολογίσουμε τα αθροίσματα των στηλών Μόλις τελειώνει ο υπολογισμός για κάθε μάθημα καταχωρούμε στην αντίστοιχη θέση του πίνακα ΜΟ το πηλίκο Σ/25000 Για j από 1 μέχρι 6 Σ 0 Για i από 1 μέχρι 25000 Σ Σ +Β[ I, J] Tέλος Επανάληψης ΜΟ [j ] < Σ /25000 Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 44

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ MIN Δυσκολότερο είναι το μάθημα που έχει τον μικρότερο ΜΟ. Άρα θα βρούμε το μικρότερο ΜΟ Μin MO[1] P 1 Για κ από 2 μέχρι 6 Αν ΜΟ[κ}<Μin τότε Min MO[k] P k Τέλος_αν Τέλος_επανάληψης Γράψε ΜΑΘΗΜΑΤΑ[ρ], min 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 45

ΑΣΚΗΣΗ 4 / ΥΠΟΛΟΓΙΣΜΟΣ ΠΛΗΘΟΥΣ ανά μάθημα με βαθμό <25 Όταν μας ζητάνε πλήθος ανά μάθημα ακολουθούμε 4 βήματα 1 ο βήμα : έναρξη επανάληψης για κάθε μάθημα 2 ο βήμα : Μηδενισμός μετρητή πριν από την δεύτερη επανάληψη 3 ο βήμα : ενημέρωση μετρητή μέσα στην επανάληψη ανάλογα με την συνθήκη που ζητείται 4 ο βήμα: εκτύπωση του μετρητή μετά το τέλος της εσωτερικής επανάληψης Για J από 1 μέχρι 6 Πλήθος 0 Για I από 1 μέχρι 25000 Αν Β[ I, j] <25 τότε Πλήθος Πλήθος +1 Τέλος_αν Τέλος_επανάληψης Γράψε ΜΑΘΗΜΑΤΑ[j], πλήθος Τέλος_επανάληψης 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 46

ΑΣΚΗΣΗ 4 / ΠΟΙΟΙ ΑΠΟΚΛΕΙΟΝΤΑΙ Αποκλείονται οι μαθητές που στο μάθημα 1 πήραν βαθμό <50 Άρα η συνθήκη ελέγχου είναι Β[ι, 1] <50 Counter 0 Για I από 1 μέχρι 25000 Αν Β[Ι,1] <50 τότε Counter Counter +1 Εμφάνισε ΜΑΘΗΤΕΣ[ Ι ] Τέλος_αν Τέλος_επανάληψης Εμφάνισε Coumter 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 47

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 48

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 49

Λύση Ο αλγόριθμος διατρέχει τον πίνακα και κάνει δύο επεξεργασίες: 1. Αν βρει στοιχείο της κύριας διαγωνίου ( Ι = J) αθροίζει ( Sum Sum +A[I,j] 2. Αν βρει στοιχείο έξω απ την κύρια διαγώνιο το μηδενίζει Τελικά το Sum παίρνει την τιμή 1+2+3+2+1 = 9 Ο πίνακας μένει με τα στοιχεία της κύριας διαγώνιου 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 50

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 51

22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 52

Στοίβα: LIFO Λειτουργίες Ώθηση (Push) Απώθηση ( Pop) Δείκτες Κορυφής ( Top) δείχνει το στοιχείο που τοποθετήθηκε τελευταίο στην στοίβα ΩΘΗΣΗ : Ελέγχεται ο δείκτης top και αν είναι < Ν αυξάνεται κατά 1 και εισάγεται στην νέα θέση το στοιχείο. Αν έχουμε overflow δεν μπορεί να γίνει εισαγωγή στοιχείου ΑΠΩΘΗΣΗ : Ελέγχεται αν υπάρχει στοιχείο στη στοίβα ( top >=1) και τότε εκχωρείται το στοιχείο και ο δείκτης ελαττώνεται κατά 1. Αν έχουμε under flow δεν μπορεί να εξαχθεί στοιχείο. Στοίβες και ουρές Ουρά : FIFO Λειτουργίες Εισαγωγή (enqueue) Εξαγωγή (Dequeue) Δείκτες Εμπρός (front) δείχνει το στοιχείο που πρόκειται να εξαχθεί Πίσω (rear) δείχνει το στοιχείο που εισάχθηκε τελευταίο ΕΙΣΑΓΩΓΗ: Ελέγχεται αν υπάρχει χώρος για εισαγωγή. Αν υπάρχει αυξάνεται ο rear κατά ένα και εισάγεται στην νέα θέση το στοιχείο ΕΞΑΓΩΓΗ: Ελέγχεται αν υπάρχει στοιχείο για εξαγωγή και στη συνέχεια ο δείκτης front αυξάνεται κατά 1, για να δείξει τη θέση του νέου στοιχείου προς εξαγωγή 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 53

ΩΘΗΣΗ ΑΠΩΘΗΣΗ ΣΕ ΣΤΟΙΒΑ Αλγόριθμος Push Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν top < N τότε Top Top +1 Στοίβα[Top] X Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, στοίβα // Τέλος Push Αλγόριθμος Pop Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν top >=1 τότε X Στοίβα [top] Top Top -1 Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, στοίβα // Τέλος Pop 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 54

ΕΙΣΑΓΩΓΗ ΕΞΑΓΩΓΗ ΣΕ ΟΥΡΑ Αλγόριθμος ENQUEUE Δεδομένα // Ν, Ουρά[Ν], Χ// Αν rear < N τότε rear rear +1 Ουρά[rear] X Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, ουρά// Τέλος Enqueue Αλγόριθμος DEQUEUE Δεδομένα // Ν, Στοίβα[Ν], Χ// Αν front >=1 τότε X Ουρά [top] front front+1 Έγινε Αληθής Αλλιώς Έγινε Ψευδής Τέλος_αν Αποτελέσματα // έγινε, ουρά // Τέλος DEQUEUE 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 55

Δομές δεδομένων δευτερεύουσας μνήμης Αρχείο : χώρος αποθήκευσης δεδομένων στην περιφερειακή μνήμη Εγγραφή: τα στοιχεία ενός αρχείου Πεδία : χαρακτηριστικά κάθε εγγραφής Πρωτεύον κλειδί: πεδίο που ταυτοποιεί την εγγραφή Μαθητές Τα στοιχεία κάθε μαθητή αποτελεί μια εγγραφή. Υπάρχουν τόσες εγγραφές όσοι και οι μαθητές Επώνυμο, όνομα, αριθμός μητρώου, βαθμοί αποτελούν τα πεδία κάθε εγγραφής Αριθμός μητρώου είναι το πρωτεύον κλειδί 22/11/08 Παρουσιάσεις Ανάπτυξης Εφαρμογ 56