gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1...

39
3.1 ΔΕΔΟΜΈΝΑ Η πληροφορική θεωρείται η επιστήμη που μελετά τα δεδομένα από τις ακόλουθες σκοπιές: Υλικού: Τα δεδομένα ενός προγράμματος αποθηκεύονται στην μνήμη (Κεντρική ή Περιφερειακή) του υπολογιστή με τη μορφή δυαδικών ψηφίων. Τα δυαδικά ψηφία ομαδοποιούνται ώστε να μπορούν να αναπαραστήσουν αριθμούς, χαρακτήρες κ.α. Γλωσσών Προγραμματισμού: Κάθε γλώσσα προγραμματισμού φροντίζει για την αποθήκευση των δεδομένων στον υπολογιστή μέσω της χρήσης των μεταβλητών και των σταθερών. Ο προγραμματιστής ορίζει το όνομα και το είδος της μεταβλητής, και η γλώσσα προγραμματισμού αναλαμβάνει τις λεπτομέρειες της αποθήκευσής της στη μνήμη του υπολογιστή. Δομών Δεδομένων: Ομοειδή δεδομένα μπορούν να οργανωθούν με συγκεκριμένο τρόπο και να εκτελεστούν επάνω τους συγκεκριμένες λειτουργίες (π.χ. ονοματεπώνυμα και τηλέφωνα στον τηλεφωνικό κατάλογο, όπου μπορούμε να εκτελέσουμε τη λειτουργία της αναζήτησης) Ανάλυσης Δεδομένων: Ένα σύνολο δεδομένων μπορεί να τύχει επεξεργασίας ώστε να εξαχθούν πληροφορίες, π.χ. η ανάγνωση πολλών ιατρικών ιστορικών μπορεί να οδηγήσει σε χρήσιμα ιατρικά συμπεράσματα (πως επηρεάζουν οι τροφές την καρδιά κ.α.) 1

Transcript of gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1...

Page 1: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

3.1 ΔΕΔΟΜΈΝΑ

Η πληροφορική θεωρείται η επιστήμη που μελετά τα δεδομένα από τις ακόλουθες σκοπιές:

Υλικού: Τα δεδομένα ενός προγράμματος αποθηκεύονται στην μνήμη (Κεντρική ή Περιφερειακή) του υπολογιστή με τη μορφή δυαδικών ψηφίων. Τα δυαδικά ψηφία ομαδοποιούνται ώστε να μπορούν να αναπαραστήσουν αριθμούς, χαρακτήρες κ.α.

Γλωσσών Προγραμματισμού: Κάθε γλώσσα προγραμματισμού φροντίζει για την αποθήκευση των δεδομένων στον υπολογιστή μέσω της χρήσης των μεταβλητών και των σταθερών. Ο προγραμματιστής ορίζει το όνομα και το είδος της μεταβλητής, και η γλώσσα προγραμματισμού αναλαμβάνει τις λεπτομέρειες της αποθήκευσής της στη μνήμη του υπολογιστή.

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

Ανάλυσης Δεδομένων: Ένα σύνολο δεδομένων μπορεί να τύχει επεξεργασίας ώστε να εξαχθούν πληροφορίες, π.χ. η ανάγνωση πολλών ιατρικών ιστορικών μπορεί να οδηγήσει σε χρήσιμα ιατρικά συμπεράσματα (πως επηρεάζουν οι τροφές την καρδιά κ.α.)

1

Page 2: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

3.2 ΑΛΓΌΡΙΘΜΟΙ + ΔΟΜΈΣ ΔΕΔΟΜΈΝΩΝ = ΠΡΟΓΡΆΜΜΑΤΑ

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

Το πώς θα αποθηκευτούν τα δεδομένα στη μνήμη, εξαρτάται από τη μορφή των δεδομένων και τη σχέση που έχουν μεταξύ τους. Για παράδειγμα, ένα πίνακας mxn μπορεί να αποθηκευτεί ως εξής: να αποθηκεύσουμε διαδοχικά στη μνήμη τα στοιχεία της πρώτης γραμμής του πίνακα, μετά να συνεχίσουμε με τα στοιχεία της δεύτερης γραμμής του πίνακα, κ.ο.κ.

ΔΟΜΉ ΔΕΔΟΜΈΝΩΝΔομή Δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών.

Κάθε ξεχωριστό δεδομένο σε μία δομή δεδομένων ονομάζεται κόμβος (node), και σε κάθε δομή μπορούμε να εκτελέσουμε διάφορες λειτουργίες.

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

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

Προσπέλαση (access): πρόσβαση σε έναν κόμβο με σκοπό να εξεταστεί ή να τροποποιηθεί το περιεχόμενό του. Π.χ. για να εμφανίσουμε την τιμή ενός στοιχείου ενός πίνακα ο οποίος είναι αποθηκευμένος στην μνήμη, πρέπει να «φέρουμε» την τιμή που αντιστοιχεί στο στοιχείο του πίνακα από την αντίστοιχη θέση μνήμης.

Εισαγωγή (Insertion): η προσθήκη νέων κόμβων σε μία υπάρχουσα δομή. Π.χ. να «μεγαλώσουμε» έναν πίνακα 1xn κατά ένα στοιχείο, ώστε να γίνει 1x(n+1).

2

Page 3: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Διαγραφή (Deletion): η αφαίρεση ενός κόμβου από την δομή δεδομένων. Π.χ. να «μικρύνουμε» έναν πίνακα 1xn κατά ένα στοιχείο, ώστε να γίνει 1x(n-1).

Αναζήτηση (searching): η προσπέλαση των κόμβων μιας δομής προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μία δεδομένη ιδιότητα. Π.χ. η αναζήτηση σε έναν πίνακα 1xn ώστε να βρεθεί αριθμός που να διαιρείται ακριβώς με το 3.

Ταξινόμηση (Sorting): η διάταξη των κόμβων μιας δομής κατά αύξουσα ή φθίνουσα σειρά. Π.χ. η διάταξη των αριθμών ενός πίνακα 1xn σε αύξουσα σειρά.

Αντιγραφή (Copying): η αντιγραφή ενός ή περισσοτέρων κόμβων μίας δομής σε μία άλλη. Π.χ. το στοιχείο a(5,3) ενός πίνακα Α να γίνει ίσο με το στοιχείο b(7,2) ενός πίνακα Β.

Συγχώνευση (merging): δύο ή περισσότερες δομές συγχωνεύονται σε μία ενιαία δομή. Π.χ. η πρόσθεση δύο πινάκων mxn.

Διαχωρισμός (separation): διάσπαση μίας δομής δεδομένων σε δύο. Π.χ. η ανάλυση ενός πίνακα Α σε δύο πίνακες Β και Γ έτσι ώστε Α = Β + Γ.

Οι δομές δεδομένων διακρίνονται σε δύο μεγάλες κατηγορίες: Οι στατικές δομές δεδομένων αποθηκεύονται σε διαδοχικές θέσεις

μνήμης, και το μέγεθός τους καθορίζεται από την αρχή του προγράμματος. Οι δυναμικές δομές δεδομένων δεν αποθηκεύονται σε καθορισμένες

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

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

Ένας πίνακας μπορεί να είναι μονοδιάστατος, δισδιάστατος, τρισδιάστατος κ.ο.κ. Εμείς θα ασχοληθούμε κυρίως με μονοδιάστατους και δισδιάστατους πίνακες.

3

Page 4: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

3.3 ΠΊΝΑΚΕΣ

ΤΙ ΕΊΝΑΙ ΈΝΑΣ ΜΟΝΟΔΙΆΣΤΑΤΟΣ ΠΊΝΑΚΑΣ;

Ένας μονοδιάστατος πίνακας είναι ένα «πακέτο» μεταβλητών με κοινή ονομασία. Αντί να χρησιμοποιήσουμε π.χ. στον αλγόριθμό μας δέκα μεταβλητές με ονόματα τιμή_1, τιμή_2,…, τιμή_10, χρησιμοποιούμε έναν πίνακα δέκα θέσεων με το όνομα ΤΙΜΗ(10), και πλέον έχουμε ένα πακέτο δέκα μεταβλητών. Για να διακρίνουμε τις μεταβλητές αυτές, τις αριθμούμε, π.χ. ΤΙΜΗ[1], ΤΙΜΗ[2], …, ΤΙΜΗ[10].Οι μεταβλητέςαυτές, όπως και όλες οι μεταβλητές, μπορούν να περιέχουν μία τιμή η κάθε μία, αλλά όλες οι μεταβλητές του πίνακα πρέπει να περιέχουν το ίδιο είδος τιμών (αριθμητικές ή αλφαριθμητικές ή λογικές). Κάθε πίνακας έχει ένα όνομα, π.χ. ΜΑΘΗΤΕΣ, και αν το πλήθος των θέσεών του είναι Ν, λέμε ότι είναι μεγέθους Ν. Στις μεταβλητές του πίνακα, όπως και σε όλες τις μεταβλητές, μπορούμε να τους εκχωρήσουμε τιμή είτε με την εντολή εκχώρησης (←) είτε με την εντολή Διάβασε, π.χ. μπορούμε σε έναν αλγόριθμο να δώσουμε τις εντολές

Διάβασε ΜΑΘΗΤΕΣ[3]ΜΑΘΗΤΕΣ[4] ← “Παπαγεωργίου”ΜΑΘΗΤΕΣ[1] ← ΜΑΘΗΤΕΣ[2]

12345

Μονοδιάστατος πίνακας μεγέθους 5

4

Page 5: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΩΣ ΧΕΙΡΙΖΌΜΑΣΤΕ ΤΟ ΠΕΡΙΕΧΌΜΕΝΟ ΤΩΝ ΘΈΣΕΩΝ ΤΟΥ ΜΟΝΟΔΙΆΣΤΑΤΟΥ ΠΊΝΑΚΑ;

Κάθε πίνακας έχει ένα όνομα. Αν ένας μονοδιάστατος πίνακας έχει το όνομα Π, τότε αναφερόμαστε στην πρώτη θέση του πίνακα γράφοντας Π[1], στην δεύτερη γράφοντας Π[2], κ.ο.κ. Κάθε θέση συμπεριφέρεται σαν μεταβλητή, οπότε μπορούμε να καταχωρήσουμε μία τιμή σε μία θέση του πίνακα, π.χ. στην 3η, γράφοντας

Π[3] ← 5 * x + 2ή

Διάβασε Π[3]

Επίσης η τιμή που περιέχει μία θέση του πίνακα μπορεί να συμμετέχει σε υπολογισμούς, όπως ακριβώς και οι μεταβλητές, π.χ.

y ← 5 * Π[4] + 8

Κάθε θέση του πίνακα αποτελεί μία μεταβλητή, στην οποία μπορούμε να κάνουμε εκχώρηση, Διάβασμα, και η οποία μπορεί να συμμετέχει σε υπολογισμούς.

ΠΟΥ ΧΡΗΣΙΜΕΎΕΙ Ο ΜΟΝΟΔΙΆΣΤΑΤΟΣ ΠΊΝΑΚΑΣ;

Ένας μονοδιάστατος πίνακας είναι στην ουσία πολλές μεταβλητές μαζεμένες σε μία «συσκευασία». Ας θεωρήσουμε το παρακάτω παράδειγμα αλγορίθμου:

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει το βαθμό 7 μαθητών και να εμφανίζει τον μέσο όρο τους.

Αλγόριθμος ΠαράδειγμαΔιάβασε β1,β2,β3,β4,β5,β6,β7ΜΟ ← (β1+β2+β3+β4+β5+β6+β7)/7Εμφάνισε ΜΟΤέλος Παράδειγμα

Ο ίδιος αλγόριθμος με τη χρήση μονοδιάστατου πίνακα μπορεί να γραφεί ως εξής:

Αλγόριθμος ΠαράδειγμαΓια i από 1 μέχρι 7

Διάβασε Β[i]Τέλος_επανάληψηςάθροισμα ← 0Για i από 1 μέχρι 7

άθροισμα ← άθροισμα + Β[i]Τέλος_επανάληψηςΜΟ ← άθροισμα/7Εμφάνισε ΜΟΤέλος Παράδειγμα

5

Page 6: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Σε αυτό το παράδειγμα, φαίνεται πως η χρήση πίνακα μας αναγκάζει να γράψουμε περισσότερες εντολές από τη χρήση απλών μεταβλητών. Αυτό όμως ισχύει μόνο στην περίπτωση όπου οι βαθμοί μας είναι 7. Αν αλλάξουμε την εκφώνηση του παραδείγματος και ζητήσουμε το μέσο όρο 3.000 βαθμών, βλέπουμε ότι ο μεν πρώτος αλγόριθμος δεν μπορεί καν να γραφτεί λόγω του πλήθους των μεταβλητών που χρειάζονται, ενώ ο δεύτερος αλγόριθμος παραμένει όπως έχει με μία απλή αλλαγή στο μέγεθος του πίνακα.

Οι πίνακες χρησιμοποιούνται όταν θέλουμε να επεξεργαστούμε μεγάλο πλήθος δεδομένων της ίδιας μορφής (π.χ. 2.000 ακέραιους, 3.000 ονοματεπώνυμα κ.α.)

Ο ΠΊΝΑΚΑΣ ΣΑΝ ΕΊΣΟΔΟΣ – ΈΞΟΔΟΣ ΑΛΓΟΡΊΘΜΟΥ

Σε μία εκφώνηση, όταν μας δίδεται ένας αριθμός σαν δεδομένο, π.χ. το πλήθος των μαθητών μίας τάξης, τότε είτε τον δηλώνουμε με την εντολή Δεδομένα (μόνο στην ψευδογλώσσα), είτε τον διαβάζουμε στην αρχή του αλγορίθμου:

Δεδομένα //πλήθος_μαθητών//ή

Διάβασε πλήθος_μαθητών

Στην περίπτωση των πινάκων, όταν μας δίδεται ένας πίνακας σαν δεδομένο, μπορούμε να τον δηλώσουμε με παρόμοιο τρόπο, είτε με την εντολή Δεδομένα, είτε με διάβασμα, π.χ. αν μας δίδεται στην εκφώνηση ένας πίνακας ΒΑΘΜΟΙ(30) με τους βαθμούς των μαθητών μιας τάξης, τότε μπορούμε στην αρχή του αλγορίθμου να γράψουμε

Δεδομένα //ΒΑΘΜΟΙ(30)//

ή

Για i από 1 μέχρι 30Διάβασε ΒΑΘΜΟΙ[i]

Τέλος_επανάληψης

Η χρήση της εντολής Δεδομένα είναι δυνατή μόνο στην ψευδογλώσσα, και όχι στην γλώσσα προγραμματισμού ΓΛΩΣΣΑ. Έτσι, θα προτιμούμε τη χρήση του βρόχου επανάληψης ώστε να διαβάζουμε κάθε θέση του πίνακα, και θα αναφέρουμε σε σχόλιο (με τη χρήση του θαυμαστικού) ότι γίνεται διάβασμα του πίνακα.

6

Page 7: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Ομοίως με παραπάνω, όταν μας ζητάνε σαν έξοδο έναν πίνακα, μπορούμε να τον δώσουμε είτε με την εντολή Αποτελέσματα, είτε εμφανίζοντας κάθε θέση του πίνακα, π.χ.

Αποτελέσματα //ΒΑΘΜΟΙ(30)//ή

Για i από 1 μέχρι 30Εμφάνισε ΒΑΘΜΟΙ[i]

Τέλος_επανάληψης

Η χρήση της εντολής Αποτελέσματα είναι δυνατή μόνο στην ψευδογλώσσα, και όχι στην γλώσσα προγραμματισμού ΓΛΩΣΣΑ. Έτσι, θα προτιμούμε τη χρήση του βρόχου επανάληψης ώστε να εμφανίζουμε κάθε θέση του πίνακα και θα αναφέρουμε σε σχόλιο (με τη χρήση του θαυμαστικού) ότι εμφανίζουμε τον πίνακα.

Όταν μας δίνεται άσκηση με πίνακες, στο 99% των περιπτώσεων πρέπει στην αρχή να διαβάσουμε όλες τις θέσεις του πίνακα. Είναι θέμα του χρήστη τι τιμές θα δώσει κατά το διάβασμα, εκτός και αν τον περιορίσουμε κάνοντας έλεγχο δεδομένων.

ΠΌΤΕ ΧΡΗΣΙΜΟΠΟΙΟΎΜΕ ΠΊΝΑΚΑ ΣΤΟΥΣ ΑΛΓΟΡΊΘΜΟΥΣ ΜΑΣ;

Χρησιμοποιούμε πίνακα στους αλγορίθμους μας είτε όταν μας δίδεται κάποιος πίνακας σαν δεδομένο από την εκφώνηση του προβλήματος (οπότε είναι και προφανής η χρήση του), είτε όταν μας ζητείται να επεξεργαστούμε πολλά ομοειδή στοιχεία (π.χ. βαθμούς μαθητών) κατά ένα μαζικό τρόπο (π.χ. αθροίσματα, μέσους όρους, ελάχιστο, μέγιστο κ.α.).

Είδαμε σε προηγούμενες ασκήσεις ότι το άθροισμα, μέσος όρος κ.α. πολλών αριθμών μπορεί να γίνει και χωρίς τη χρήση πίνακα, διαβάζοντας κάθε φορά την ίδια μεταβλητή, και αυξάνοντας κάποιους μετρητές (άθροισμα, πλήθος κ.α.) Τι γίνεται όμως αν πρέπει τους αριθμούς αυτούς να τους επεξεργαστούμε ξανά και ξανά; Δεν επιτρέπεται να ξαναζητήσει ο αλγόριθμος από το χρήστη να εισάγει τον ίδιο αριθμό, οπότε η μόνη λύση είναι ο πίνακας, στον οποίο αποθηκεύεται ο κάθε αριθμός και μπορεί να χρησιμοποιηθεί σε υπολογισμούς όσες φορές θέλουμε χωρίς να ξαναδιαβαστεί.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να βρίσκει το μέσο όρο των βαθμών μίας τάξης με 50 μαθητές, και να εμφανίζει ποιοι βαθμοί από αυτούς ήταν πάνω από το μέσο όρο.

Ο αλγόριθμος αυτός δεν μπορεί να γίνει χωρίς τη χρήση πίνακα (προσπαθήστε). Πρέπει πρώτα να βρεθεί ο μέσος όρος, και μετά να συγκριθούν όλοι οι βαθμοί με το μέσο όρο που βρέθηκε ώστε να εμφανιστούν οι ζητούμενοι βαθμοί.

Αλγόριθμος Παράδειγμαάθροισμα ← 0! Διάβασμα πίνακαΓια i από 1 μέχρι 50

Διάβασε ΒΑΘΜΟΙ[i]άθροισμα ← άθροισμα + ΒΑΘΜΟΙ[i]

Τέλος_επανάληψηςΜΟ ← άθροισμα/50Εμφάνισε ΜΟ

7

Page 8: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Για i από 1 μέχρι 50Αν ΒΑΘΜΟΙ[i] > ΜΟ τότε

Εμφάνισε ΒΑΘΜΟΙ[i]Τέλος_αν

Τέλος_επανάληψηςΤέλος Παράδειγμα

ΠΊΝΑΚΕΣ ΚΑΙ ΔΟΜΈΣ ΕΠΑΝΆΛΗΨΗΣ

Μέχρι τώρα επιλέγαμε την Για…από…μέχρι όταν ξέραμε πόσες φορές θα διαβάζαμε αριθμό, και την Όσο…επανέλαβε όταν δεν ξέραμε πόσους αριθμούς θα διαβάσουμε.

Ομοίως και τώρα, θα χρησιμοποιούμε την Για…από…μέχρι όταν ξέρουμε σε πόσες θέσεις του πίνακα θα αναφερθούμε, και την Όσο…επανέλαβε όταν δεν ξέρουμε σε πόσες θέσεις του πίνακα θα αναφερθούμε.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να εμφανίζει πόσες φορές βρίσκεται ο αριθμός 0 σε έναν πίνακα Α(40).

Εδώ βλέπουμε ότι πρέπει να «σαρώσουμε» και τις 40 θέσεις του πίνακα ώστε να μετρήσουμε τις φορές που εμφανίζεται ο αριθμός 0, άρα χρησιμοποιούμε την Για…από…μέχρι.

Αλγόριθμος Παράδειγμα! Διάβασμα πίνακαΓια i από 1 μέχρι 40

Διάβασε Α[i]Τέλος_επανάληψηςπλήθος ← 0Για i από 1 μέχρι 40

Αν Α[i] = 0 τότεπλήθος ← πλήθος + 1

Τέλος_ανΤέλος_επανάληψηςΕμφάνισε πλήθοςΤέλος Παράδειγμα

8

Page 9: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να εμφανίζει σε ποια θέση του πίνακα εμφανίζεται πρώτη φορά ο αριθμός 0, σε έναν πίνακα Α(40).

Εδώ βλέπουμε ότι πρέπει να «σαρώνουμε» τις θέσεις του πίνακα μέχρι να βρούμε τον αριθμό 0, οπότε αφού δεν ξέρουμε πόσες θέσεις θα σαρώσουμε χρησιμοποιούμε την όσο…επανέλαβε.

Αλγόριθμος Παράδειγμα! Διάβασμα πίνακαΓια i από 1 μέχρι 40Διάβασε Α[i]

Τέλος_επανάληψης

θέση ← 1Όσο (βρέθηκε = ψευδής) και (θέση <=40) επανέλαβε

Αν Α[θέση]=0 τότε βρέθηκε ← Αληθής

αλλιώςθέση ← θέση + 1

Τέλος_ανΤέλος_επανάληψηςΑν βρέθηκε = Ψευδής τότε

Εμφάνισε “Δεν υπάρχει ο αριθμός 0 στον πίνακα”αλλιώς

Εμφάνισε θέσηΤέλος_ανΤέλος Παράδειγμα

ΤΙ ΕΊΝΑΙ ΈΝΑΣ ΔΙΣΔΙΆΣΤΑΤΟΣ ΠΊΝΑΚΑΣ;

Όπως ένας μονοδιάστατος πίνακας είναι ένα πλήθος μεταβλητών σε μία «συσκευασία», έτσι και ο δισδιάστατος πίνακας είναι ένα πλήθος μονοδιάστατων πινάκων σε μία «συσκευασία». Αν για παράδειγμα έχουμε πέντε μονοδιάστατους πίνακες μεγέθους 10 και τους βάλουμε τον ένα κάτω από τον άλλον, παίρνουμε τον παρακάτω δισδιάστατο πίνακα:

2η γραμμή3η στήληΑ(2,3)

Οι οριζόντιες γραμμές που σχηματίζονται ονομάζονται γραμμές, ενώ οι κάθετες γραμμές ονομάζονται στήλες. Για να αναφερθούμε στη θέση του πίνακα Α που βρίσκεται στην γ-οστή γραμμή και στην σ-οστή στήλη, την γράφουμε σαν Α[γ,σ]. Ένας πίνακας Α ο οποίος έχει 30 γραμμές και 40 στήλες συμβολίζεται με Α(30,40), δηλαδή πρώτα αριθμούνται οι γραμμές, και μετά οι στήλες. Οι θέσεις αυτές, όπως και στον μονοδιάστατο πίνακα, συμπεριφέρονται όπως και οι

9

Page 10: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

μεταβλητές, δηλαδή μπορούμε να τους εκχωρήσουμε τιμή είτε με την εντολή εκχώρησης (←) είτε με την εντολή Διάβασε, π.χ. μπορούμε σε έναν αλγόριθμο να δώσουμε τις εντολές

Διάβασε ΜΑΘΗΤΕΣ[3,5]ΜΑΘΗΤΕΣ[4,2] ← “Παπαγεωργίου”ΜΑΘΗΤΕΣ[1,5] ← ΜΑΘΗΤΕΣ[2,7]

ΠΩΣ ΧΕΙΡΙΖΌΜΑΣΤΕ ΤΟ ΠΕΡΙΕΧΌΜΕΝΟ ΤΩΝ ΘΈΣΕΩΝ ΤΟΥ ΔΙΣΔΙΆΣΤΑΤΟΥ ΠΊΝΑΚΑ;

Αν ένας δισδιάστατος πίνακας έχει το όνομα Π, τότε αναφερόμαστε στην θέση της 1ης γραμμής και 2ης στήλης του πίνακα γράφοντας Π[1,2]. Κάθε θέση συμπεριφέρεται σαν μεταβλητή, οπότε μπορούμε να καταχωρήσουμε μία τιμή σε μία θέση του πίνακα, π.χ. στην 2η γραμμή, 3η στήλη γράφοντας

Π[2,3] ← 5 * x + 2ή

Διάβασε Π[2,3]

Επίσης η τιμή που περιέχει μία θέση του πίνακα μπορεί να συμμετέχει σε υπολογισμούς, όπως ακριβώς και οι μεταβλητές, π.χ.

y ← 5 * Π[7,4] + 8

ΠΟΥ ΧΡΗΣΙΜΕΎΕΙ Ο ΔΙΣΔΙΆΣΤΑΤΟΣ ΠΊΝΑΚΑΣ;

Ένας δισδιάστατος πίνακας είναι στην ουσία πολλοί μονοδιάστατοι πίνακες μαζεμένοι σε μία «συσκευασία». Ας θεωρήσουμε το παρακάτω παράδειγμα αλγορίθμου:

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει το βαθμό 140 μαθητών για 4 εξάμηνα και να εμφανίζει τον μέσο όρο τους.

Ο αλγόριθμος αυτός με τη χρήση μονοδιάστατου πίνακα μπορεί να γραφεί ως εξής:

Αλγόριθμος ΠαράδειγμαΓια i από 1 μέχρι 140

Διάβασε Α[i], Β[i], Γ[i], Δ[i]Τέλος_επανάληψηςάθροισμα ← 0Για i από 1 μέχρι 140

άθροισμα ← άθροισμα + Α[i] + Β[i] + Γ[i] + Δ[i]Τέλος_επανάληψηςΜΟ ← άθροισμα/(4*140)Εμφάνισε ΜΟΤέλος Παράδειγμα

10

Page 11: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Αν σε αυτό το παράδειγμα δεν είχαμε μόνο 4 εξάμηνα, αλλά 10 εξάμηνα, τότε με τη χρήση μονοδιάστατων πινάκων τα πράγματα είναι δύσκολα. Με τη χρήση όμωε δισδιάστατου πίνακα, δεν μας ενοχλεί το πλήθος των εξαμήνων:

Αλγόριθμος ΠαράδειγμαΓια μαθητής από 1 μέχρι 140

Για εξάμηνο από 1 μέχρι 10Διάβασε ΒΑΘΜΟΙ[μαθητής,εξάμηνο]

Τέλος_επανάληψηςΤέλος_επανάληψηςάθροισμα ← 0Για μαθητής από 1 μέχρι 140

Για εξάμηνο από 1 μέχρι 10άθροισμα ← άθροισμα + ΒΑΘΜΟΙ[μαθητής,εξάμηνο]

Τέλος_επανάληψηςΤέλος_επανάληψηςΜΟ ← άθροισμα/(10*140)Εμφάνισε ΜΟΤέλος Παράδειγμα

Οι δισδιάστατοι πίνακες χρησιμοποιούνται όταν θέλουμε να επεξεργαστούμε μεγάλο πλήθος δεδομένων το οποίο είναι κατανεμημένο σε κατηγορίες (π.χ. οι τιμές προϊόντων όταν έχουμε 50 προϊόντα σε κάθε μία από 100 αποθήκες - 50x100 τιμές, ο πληθωρισμός

κάθε μήνα για τα τελευταία 20 χρόνια -12x20 πληθωρισμούςκ.α.)

Ο ΔΙΣΔΙΆΣΤΑΤΟΣ ΠΊΝΑΚΑΣ ΣΑΝ ΕΊΣΟΔΟΣ – ΈΞΟΔΟΣ ΑΛΓΟΡΊΘΜΟΥ

Στην περίπτωση δισδιάστατων πινάκων, όταν μας δίδεται ένας πίνακας σαν δεδομένο, θα τον διαβάζουμε χρησιμοποιώντας εμφωλευμένο βρόχο ώστε να σαρώσουμε όλες τις θέσεις του

Για γραμμή από 1 μέχρι 30Για στήλη από 1 μέχρι 15

Διάβασε ΒΑΘΜΟΙ[γραμμή,στήλη]Τέλος_επανάληψης

Τέλος_επανάληψης

Ομοίως με παραπάνω, όταν μας ζητάνε σαν έξοδο έναν δισδιάστατο πίνακα, θα τον δίνουμε εμφανίζοντας κάθε θέση του πίνακα, π.χ.

Για γραμμή από 1 μέχρι 30Για στήλη από 1 μέχρι 15

Εμφάνισε ΒΑΘΜΟΙ[γραμμή,στήλη]Τέλος_επανάληψης

Τέλος_επανάληψης

11

Page 12: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΌΤΕ ΧΡΗΣΙΜΟΠΟΙΟΎΜΕ ΔΙΣΔΙΆΣΤΑΤΟ ΠΊΝΑΚΑ ΣΤΟΥΣ ΑΛΓΟΡΊΘΜΟΥΣ ΜΑΣ;

Χρησιμοποιούμε δισδιάστατο πίνακα στους αλγορίθμους μας είτε όταν μας δίδεται κάποιος τέτοιος πίνακας σαν δεδομένο από την εκφώνηση του προβλήματος (οπότε είναι και προφανής η χρήση του), είτε όταν μας ζητείται να επεξεργαστούμε πολλά ομοειδή στοιχεία (π.χ. βαθμούς μαθητών) τα οποία είναι χωρισμένα σε ομάδες (π.χ. βαθμούς 25 μαθητών κάθε τάξης σε ένα σχολείο με 15 τάξεις).

ΤΙ ΜΠΟΡΕΊ ΝΑ ΠΕΡΙΈΧΕΙ ΈΝΑΣ ΠΊΝΑΚΑΣ;

Όπως και μία μεταβλητή, ένας πίνακας μπορεί να περιέχει αριθμητικές, αλφαριθμητικές ή λογικές τιμές. Το τι θα περιέχει και το πώς θα ερμηνεύονται αυτές οι τιμές έγκειται στην φαντασία της εκφώνησης.

Ανεξαρτήτως του είδους των τιμών που θα περιέχει ένας πίνακας (ακέραιους, λογικές τιμές, αλφαριθμητικά, περιττούς αριθμούς), ο αλγόριθμός μας θα πρέπει στην αρχή να διαβάζει μία τιμή για κάθε θέση του πίνακα. Μόνο ο χρήστης γνωρίζει τι τιμές πρέπει να δώσει κατά το

διάβασμα, και το μόνο που μπορούμε να κάνουμε εμείς είναι να τον περιορίσουμε στις επιτρεπτές τιμές κάνοντας έλεγχο δεδομένων.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος θα καταχωρεί σε έναν πίνακα Α(20,30) την πληροφορία για το μέγεθος 20 ειδών ρούχων που πωλούνται σε 30 καταστήματα (“XS”, “S”, “L”, “XL”).

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

Αλγόριθμος ΠαράδειγμαΓια γραμμή από 1 μέχρι 20

Για στήλη από 1 μέχρι 30Εμφάνισε “Δώστε μέγεθος”Αρχή_επανάληψης

Διάβασε ΜΕΓΕΘΗ[γραμμή,στήλη]Μέχρις_ότου ΜΕΓΕΘΗ[γραμμή,στήλη]=”XS” ή

ΜΕΓΕΘΗ[γραμμή,στήλη]=”S” ή ΜΕΓΕΘΗ[γραμμή,στήλη]=”L” ή ΜΕΓΕΘΗ[γραμμή,στήλη]=”XL”

Τέλος_επανάληψηςΤέλος_επανάληψηςΤέλος Παράδειγμα

12

Page 13: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

3.4 ΣΤΟΊΒΑ

Η μνήμη του υπολογιστή αποτελείται από διαδοχικές θέσεις μνήμης, όπου και καταχωρούνται τα δεδομένα. Οι θέσεις αυτές μπορούν να οργανωθούν ώστε η είσοδος και η έξοδος των δεδομένων να γίνεται με πολύ συγκεκριμένο τρόπο. Μία τέτοια περίπτωση είναι η στοίβα, στην οποία τα δεδομένα εισέρχονται και εξέρχονται όπως τα αυτοκίνητα στα φέρρυ-μπόουτ. Το δεδομένο που μπήκε πρώτο, θα βγει τελευταίο. Η μέθοδος αυτή ονομάζεται Τελευταίο μέσα, πρώτο έξω (LIFO – Last In First Out). Σε μία τέτοια οργάνωση της μνήμης, δύο κύριες λειτουργίες μπορούν να εκτελεστούν:

η ώθηση (push) ενός στοιχείου στην κορυφή της στοίβας η απώθηση (pop) ενός στοιχείου από την κορυφή της στοίβας

Η μνήμη έχει συγκεκριμένο αριθμό θέσεων, πράγμα που σημαίνει ότι αν ωθούμε συνεχώς στοιχεία στη στοίβα, κάποια στιγμή θα γεμίσουν όλες οι θέσεις, οπότε και έχουμε υπερχείλιση (overflow). Ομοίως αν επιχειρηθεί να γίνει απώθηση στοιχείου τη στιγμή που δεν υπάρχει κανένα στοιχείο μέσα στη στοίβα, τότε έχουμε υποχείλιση (underflow).

3.5 ΟΥΡΆ

Μία άλλη οργάνωση της μνήμης είναι η μέθοδος της ουράς. Όποιο στοιχείο μπει πρώτο στην ουρά, αυτό θα βγει και πρώτο. Κάθε στοιχείο βγαίνει με τη σειρά που μπαίνει, όπως ακριβώς γίνεται και στην ουρά σε ένα ταμείο. Ο καθένας εξυπηρετείται με τη σειρά που μπήκε στην ουρά. Η μέθοδος αυτή λέγεται Πρώτο μέσα, πρώτο έξω (FIFO – First In First Out). Στην ουρά, οι κύριες λειτουργίες που μπορούν να εκτελεστούν είναι:

η εισαγωγή (enqueue) ενός στοιχείου στο πίσω άκρο της ουράς η εξαγωγή (dequeue) ενός στοιχείου από το εμπρός άκρο της ουράς

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

13

Page 14: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

3.6 ΑΝΑΖΉΤΗΣΗ

Αναζήτηση ονομάζουμε τη λειτουργία ενός αλγορίθμου κατά την οποία αναζητείται η παρουσία ή όχι ενός συγκεκριμένου στοιχείου μέσα σε μία δομή δεδομένων, το οποίο ονομάζουμε κλειδί (key).

Εκτός από το ερώτημα του «αν υπάρχει ένα στοιχείο σε έναν πίνακα», μπορεί να τεθεί επίσης το ερώτημα «πόσες φορές υπάρχει ένα στοιχείο» ή «σε ποιες θέσεις υπάρχει ένα στοιχείο».

Ο απλούστερος τρόπος αναζήτησης είναι η σειριακή ή γραμμική μέθοδος. Σε αυτήν, σαρώνουμε διαδοχικά μία – μία τις θέσεις του πίνακα μέχρι να βρούμε το στοιχείο που μας ενδιαφέρει. Αν το στοιχείο υπάρχει παραπάνω από μία φορές, τότε σαρώνουμε όλες τις θέσεις του πίνακα. Η χρήση της μεθόδου αυτής ενδείκνυται μόνο όταν:

1. ο πίνακας είναι μη ταξινομημένος2. ο πίνακας είναι μικρού μεγέθους (π.χ. n<20)3. η αναζήτηση σε ένα συγκεκριμένο πίνακα γίνεται σπάνια

3.7 ΤΑΞΙΝΌΜΗΣΗ

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

Έτσι και στους αλγορίθμους, η ταξινόμηση των πινάκων κάνει την αναζήτηση πιο γρήγορη. Συνήθως τα δεδομένα ταξινομούνται σε αύξουσα ή φθίνουσα σειρά..

ΤΑΞΙΝΌΜΗΣΗΔοθέντων των στοιχείων a1,a2,…,an η ταξινόμηση συνίσταται στην μετάθεση (permutation) της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μία σειρά ak1,ak2,…,akn έτσι ώστε, δοθείσης μίας συνάρτησης διάταξης f, να ισχύει:

f(ak1)<f(ak2)<…<f(akn)

Για την ταξινόμηση πινάκων έχουν επινοηθεί πολλοί αλγόριθμοι, από απλούς μέχρι τρομερά δυσνόητους. Μία κατηγορία αλγορίθμων ταξινόμησης εφαρμόζει συνεχείς ανταλλαγές γειτονικών στοιχείων του πίνακα, με τέτοιο τρόπο ώστε μετά από πεπερασμένο αριθμό ανταλλαγών ο πίνακας να έχει ταξινομηθεί. Η μέθοδος αυτή ονομάζεται ταξινόμηση ευθείας ανταλλαγής. Η μέθοδος αυτή ονομάζεται και ταξινόμηση φυσαλίδας, γιατί ο πίνακας εμφανίζεται σαν δεξαμενή όπου τα ελαφρύτερα (μικρότερα) στοιχεία μετακινούνται προς την κορυφή της δεξαμενής (αρχή του πίνακα).

14

Page 15: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΜΕΘΟΔΟΛΟΓΊΑ ΑΣΚΉΣΕΩΝ

ΓΕΝΙΚΆ

Οι πίνακες μπορούν να χρησιμοποιηθούν για να περιέχουν οποιοδήποτε είδος πληροφορίας (πόσα προϊόντα περιέχει μία αποθήκη, τι χρώμα έχουν κάποια υλικά, αν έχουν εγκριθεί ή όχι κάποια δάνεια). Ο μαθητής δεν θα πρέπει να περιμένει από τον πίνακα να περιέχει συνηθισμένο είδος δεδομένων, και δεν θα πρέπει να αιφνιδιάζεται.

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

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

υποχρέωση είναι να διαβάσει την τιμή της κάθε θέσης (και ίσως να ελέγξει αν είναι μέσα στο εύρος των αποδεκτών τιμών), και ο χρήστης γνωρίζει τι τιμή πρέπει να δώσει.

Οι συνηθέστερες λειτουργίες που μπορούν να εφαρμοστούν σε έναν πίνακα είναι οι παρακάτω:

Εύρεση ελάχιστου – μέγιστου στοιχείου του πίνακα Άθροισμα – Μέσος όρος στοιχείων του πίνακα Αναζήτηση στοιχείου

o σε πίνακα όπου τα στοιχεία εμφανίζονται το πολύ μία φοράo σε πίνακα όπου τα στοιχεία μπορεί να εμφανίζονται πολλές φορές

Ταξινόμηση στοιχείων πίνακα Συγχώνευση δύο πινάκων

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

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

15

Page 16: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

(βάζοντας το σε ανάλογη εντολή επανάληψης) ώστε να δουλεύει για όλον τον πίνακα.

ΜΈΓΙΣΤΟΣ - ΕΛΆΧΙΣΤΟΣ

Όταν μας ζητάνε να βρούμε ποια είναι η μέγιστη και η ελάχιστη τιμή σε έναν πίνακα, θέτουμε σαν αρχική τιμή σε μεταβλητές με όνομα μέγιστος και ελάχιστος την τιμή της πρώτης θέσης του πίνακα (είτε μονοδιάστατου είτε δισδιάστατου), και στη συνέχεια ελέγχουμε κάθε θέση του πίνακα αν είναι μικρότερη ή μεγαλύτερη από τις μεταβλητές αυτές. Αν μία θέση του πίνακα έχει μεγαλύτερη τιμή από την τιμή της μεταβλητής μέγιστος, τότε αυτή είναι και η νέα τιμή που θα πάρει η μέγιστος. Αντίστοιχα και για την μεταβλητή ελάχιστος.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να βρίσκει τον ελάχιστο και τον μέγιστο αριθμό σε έναν πίνακα Α(400)

Αλγόριθμος Μέγ_Ελ_Α! Διάβασμα πίνακαΓια i από 1 μέχρι 400

Διάβασε Α[i]Τέλος_επανάληψης! Εύρεση ελαχίστου, μεγίστουμέγιστος ← Α[1]ελάχιστος ← Α[1]Για i από 1 μέχρι 400

Αν Α[i] > μέγιστος τότε μέγιστος ← Α[i]Αν Α[i] < ελάχιστος τότε ελάχιστος ← Α[i]

Τέλος_επανάληψηςΕμφάνισε μέγιστος,ελάχιστοςΤέλος Μέγ_Ελ_Α

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να βρίσκει τον ελάχιστο και τον μέγιστο αριθμό σε έναν πίνακα Α(20,15)

Αλγόριθμος Μέγ_Ελ_Α! Διάβασμα πίνακαΓια γραμμή από 1 μέχρι 20

Για στήλη από 1 μέχρι 15Διάβασε Α[i]

Τέλος_επανάληψηςΤέλος_επανάληψης! Εύρεση ελαχίστου, μεγίστουμέγιστος ← Α[1,1]ελάχιστος ← Α[1,1]Για γραμμή από 1 μέχρι 20

Για στήλη από 1 μέχρι 15Αν Α[γραμμή,στήλη] > μέγιστος τότε μέγιστος ← Α[γραμμή,στήλη]Αν Α[γραμμή,στήλη] < ελάχιστος τότε ελάχιστος ← Α[γραμμή,στήλη]

Τέλος_επανάληψηςΕμφάνισε μέγιστος,ελάχιστοςΤέλος Μέγ_Ελ_Α

16

Page 17: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

Όταν μας ζητάνε να βρούμε και τη θέση του πίνακα στην οποία βρίσκεται ο μέγιστος ή ο ελάχιστος, τότε χρησιμοποιούμε και άλλες δύο μεταβλητές, τις θέση_μέγιστου και θέση_ελάχιστου (για τους δισδιάστατους χρειαζόμαστε από δύο μεταβλητές, μία για τη γραμμή και μία για τη στήλη) στις οποίες θα καταχωρούμε τη θέση στην οποία βρίσκονται. Σαν αρχική τιμή θα τους δώσουμε την τιμή 1, αφού δίνουμε και σαν αρχική τιμή στις μέγιστος και ελάχιστος την τιμή της πρώτης θέσης του πίνακα.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος θα βρίσκει σε ποια γραμμή και στήλη βρίσκονται ο ελάχιστος και ο μέγιστος αριθμός σε έναν πίνακα Α(40,30)

Αλγόριθμος Μέγ_Ελ_Α! Διάβασμα πίνακαΓια γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Διάβασε Α[γραμμή,στήλη]

Τέλος_επανάληψηςΤέλος_επανάληψης! Εύρεση ελαχίστου, μεγίστουμέγιστος ← Α[1,1]γραμμή_μέγιστου ← 1στήλη_μέγιστου ← 1ελάχιστος ← Α[1,1]γραμμή_ελαχίστου ← 1στήλη_ελαχίστου ← 1Για γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Αν Α[γραμμή,στήλη] > μέγιστος τότε

γραμμή_μέγιστου ← γραμμήστήλη_μέγιστου ← στήλη

Τέλος_ανΑν Α[γραμμή,στήλη] < ελάχιστος τότε

γραμμή_ελαχίστου ← γραμμήστήλη_ελαχίστου ← στήλη

Τέλος_ανΤέλος_επανάληψης

Τέλος_επανάληψηςΕμφάνισε Α[γραμμή_μέγιστου,στήλη_μέγιστου], γραμμή_μέγιστου,στήλη_μέγιστουΕμφάνισε Α[γραμμή_ελαχίστου,στήλη_ελαχίστου], γραμμή_ελαχίστου,στήλη_ελαχίστουΤέλος Μέγ_Ελ_Α

17

Page 18: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΆΘΡΟΊΣΜΑ – ΜΈΣΟΣ ΌΡΟΣ

Όταν μας ζητείται το άθροισμα των στοιχείων ενός πίνακα, χρησιμοποιούμε μία μεταβλητή άθροισμα, στην οποία αθροίζουμε τα στοιχεία του πίνακα.

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να βρίσκει το άθροισμα των άρτιων στοιχείων ενός πίνακα Α(40,30)

Αλγόριθμος Άθροισμα_Α! Διάβασμα πίνακαΓια γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Διάβασε Α[i]

Τέλος_επανάληψηςΤέλος_επανάληψης! Εύρεση αθροίσματοςάθροισμα ← 0Για γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Αν Α[γραμμή,στήλη] mod 2 = 0 τότε άθροισμα ← άθροισμα + Α[γραμμή,στήλη]

Τέλος_επανάληψηςΤέλος_επανάληψηςΕμφάνισε άθροισμαΤέλος Άθροισμα_Α

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να βρίσκει τον μέσο όρο των στοιχείων που είναι μεγαλύτερα από το 100 σε ένα πίνακα Α(40,30)

Αλγόριθμος Άθροισμα_Α! Διάβασμα πίνακαΓια γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Διάβασε Α[i]

Τέλος_επανάληψηςΤέλος_επανάληψης! Εύρεση αθροίσματοςάθροισμα ← 0πλήθος ← 0Για γραμμή από 1 μέχρι 40

Για στήλη από 1 μέχρι 30Αν Α[γραμμή,στήλη] > 100 τότε

άθροισμα ← άθροισμα + Α[γραμμή,στήλη]πλήθος ← πλήθος + 1

Τέλος_ανΤέλος_επανάληψης

Τέλος_επανάληψηςΑν πλήθος <> 0 τότε

ΜΟ ← άθροισμα/πλήθοςΕμφάνισε ΜΟ

αλλιώςΕμφάνισε “Δεν υπάρχει στοιχείο μεγαλύτερο του 100”

Τέλος_ανΤέλος Άθροισμα_Α

18

Page 19: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΑΝΑΖΉΤΗΣΗ

Όταν μας ζητείται να αναζητήσουμε ένα στοιχείο σε έναν πίνακα, το πρώτο ερώτημα που θα πρέπει να απαντήσουμε στον εαυτό μας πριν ξεκινήσουμε να γράφουμε τον αλγόριθμο είναι «χρειάζεται να ελέγξω όλες τις θέσεις του πίνακα μέχρι το τέλος, ή πρέπει να ελέγχω μέχρι να βρω το στοιχείο, οπότε και σταματάω;». Αν μία τιμή μπορεί να εμφανίζεται παραπάνω από μία φορές στον πίνακα, τότε πρέπει να ελέγξουμε όλες τις θέσεις του πίνακα, οπότε χρησιμοποιούμε την Για…από…μέχρι. Αν κάθε στοιχείο του πίνακα είναι μοναδικό (δεν μπορεί να έχουμε παραπάνω από μία φορά την ίδια τιμή μέσα στον πίνακα), τότε μπορούμε να σταματήσουμε τον έλεγχο όταν βρούμε το αναζητούμενο στοιχείο, δηλαδή δεν ξέρουμε πόσες θέσεις θα χρειαστούμε να ελέγξουμε, οπότε χρησιμοποιούμε την Όσο…επανάλαβε.

Οι πιθανές ερωτήσεις που έχουν να κάνουν με αναζήτηση σε πίνακα είναι οι εξής;

«Υπάρχει το στοιχείο Α στον πίνακα;» (Όσο…επανάλαβε)«Πόσες φορές υπάρχει το στοιχείο Α στον πίνακα;» (Για…από…μέχρι)«Σε ποια (μοναδική εμφάνιση) θέση του πίνακα υπάρχει το στοιχείο Α;» (Όσο…επανέλαβε)«Σε ποιες (πολλαπλές εμφανίσεις) θέσεις υπάρχει το στοιχείο Α στον πίνακα;» (Για…από…μέχρι)

1. ΠΊΝΑΚΕΣ ΌΠΟΥ ΤΑ ΣΤΟΙΧΕΊΑ ΜΠΟΡΟΎΝ ΝΑ ΕΜΦΑΝΊΖΟΝΤΑΙ ΠΑΡΑΠΆΝΩ ΑΠΌ ΜΊΑ ΦΟΡΆ

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει έναν αριθμό Κ και να εμφανίζει πόσες φορές βρίσκεται αυτός ο αριθμός σε έναν πίνακα Α(400) όπου κάθε στοιχείο μπορεί να εμφανίζεται παραπάνω από μία φορά

Εδώ χρησιμοποιούμε μία μεταβλητή με την οποία θα μετράμε τις φορές που βρέθηκε ο αριθμός Κ.

Αλγόριθμος Αναζήτηση_Α! Διάβασμα πίνακαΓια i από 1 μέχρι 400

Διάβασε Α[i]Τέλος_επανάληψης! Εύρεση στοιχείου ΚΔιάβασε Κφορές ← 0Για i από 1 μέχρι 400

Αν Α[i] = Κ τότε φορές ← φορές + 1Τέλος_επανάληψηςΕμφάνισε “Ο αριθμός “,K,” βρέθηκε “,φορές, “ φορές μέσα στον πίνακα.”Τέλος Ανάζητηση_Α

19

Page 20: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει έναν αριθμό Κ και να εμφανίζει σε ποιες θέσεις βρίσκεται αυτός ο αριθμός σε έναν πίνακα Α(400) όπου κάθε στοιχείο μπορεί να εμφανίζεται παραπάνω από μία φορά

Εδώ κάθε φορά που βρίσκουμε θέση του πίνακα που περιέχει τον αριθμό Κ, εμφανίζουμε τη θέση του πίνακα.

Αλγόριθμος Αναζήτηση_Α! Διάβασμα πίνακαΓια i από 1 μέχρι 400

Διάβασε Α[i]Τέλος_επανάληψης! Εύρεση στοιχείου ΚΔιάβασε ΚΓια i από 1 μέχρι 400

Αν Α[i] = Κ τότε Εμφάνισε iΤέλος_επανάληψηςΤέλος Ανάζητηση_Α

2. ΠΊΝΑΚΕΣ ΌΠΟΥ ΤΑ ΣΤΟΙΧΕΊΑ ΕΜΦΑΝΊΖΟΝΤΑΙ ΤΟ ΠΟΛΎ ΜΊΑ ΦΟΡΆ

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει έναν αριθμό Κ και να εμφανίζει αν υπάρχει αυτός ο αριθμός σε έναν πίνακα Α(400) όπου κάθε στοιχείο μπορεί να εμφανίζεται το πολύ μία φορά

Εδώ χρησιμοποιούμε μία λογική μεταβλητή η οποία δηλώνει αν έχει βρεθεί ο αριθμός (βρέθηκε ← Ψευδής). Όσο ο αριθμός δεν έχει βρεθεί (βρέθηκε = Ψευδής), ελέγχουμε ένα ένα τα στοιχεία του πίνακα. Αν βρούμε στοιχείο το οποίο είναι ίσο με το Κ τότε αλλάζουμε την τιμή της μεταβλητής (βρέθηκε ← Αληθής), δηλώνοντας ότι ο αριθμός βρέθηκε (οπότε και θα σταματήσει να εκτελείται ο βρόχος). Αν ένα στοιχείο δεν είναι ίσο με το Κ, τότε προχωράμε στην επόμενη θέση του πίνακα(i←i+1)

Αλγόριθμος Αναζήτηση_Α! Διάβασμα πίνακαΓια i από 1 μέχρι 400

Διάβασε Α[i]Τέλος_επανάληψης! Εύρεση στοιχείου ΚΔιάβασε Κβρέθηκε ← Ψευδήςi ← 1Όσο i <= 400 και βρέθηκε = Ψευδής επανάλαβε

Αν Α[i] = Κ τότε βρέθηκε ← Αληθής

αλλιώςi ← i + 1

Τέλος_ανΤέλος_επανάληψηςΑν βρέθηκε = Αληθής τότε

Εμφάνισε “Βρέθηκε”αλλιώς

Εμφάνισε “Δεν βρέθηκε”Τέλος_ανΤέλος Ανάζητηση_Α

20

Page 21: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΑΡΆΔΕΙΓΜΑΝα γραφεί αλγόριθμος ο οποίος να διαβάζει έναν αριθμό Κ και να εμφανίζει σε ποια θέση υπάρχει αυτός ο αριθμός σε έναν πίνακα Α(400) όπου κάθε στοιχείο μπορεί να εμφανίζεται το πολύ μία φορά.

Εδώ χρησιμοποιούμε μία μεταβλητή η οποία δηλώνει σε ποια θέση έχει βρεθεί ο αριθμός. Αρχικά της δίνουμε την τιμή μηδέν (θέση ← 0) (η θέση μηδέν δεν υφίσταται σε έναν πίνακα). Όσο η τιμή της παραμένει μηδέν, η αναζήτηση συνεχίζεται μέχρι να βρεθεί αριθμός ίσος με Κ. Αν βρεθεί, τότε η μεταβλητή αυτή γίνεται ίση με τη θέση όπου βρέθηκε ο αριθμός αυτός ( οπότε και σταματάει να εκτελείται ο βρόχος). Αν δεν βρεθεί ο αριθμός, τότε η μεταβλητή i θα ξεπεράσει το μήκος του πίνακα Α (i <= 400), οπότε θα σταματήσει να εκτελείται ο βρόχος, και η μεταβλητή θέση θα έχει παραμείνει μηδέν. Ελέγχοντας στο τέλος την τιμή της μεταβλητής θέση, ξέρουμε αν ο αριθμός βρέθηκε, και σε ποια θέση βρέθηκε.

Αλγόριθμος Αναζήτηση_Α! Διάβασμα πίνακαΓια i από 1 μέχρι 400

Διάβασε Α[i]Τέλος_επανάληψης! Εύρεση στοιχείου ΚΔιάβασε Κθέση ← 0i ← 1Όσο i <= 400 και θέση = 0 επανάλαβε

Αν Α[i] = Κ τότε θέση ← i

αλλιώςi ← i + 1

Τέλος_ανΤέλος_επανάληψηςΑν θέση <> 0 τότε

Εμφάνισε “Βρέθηκε στη θέση”, θέσηαλλιώς

Εμφάνισε “Δεν βρέθηκε”Τέλος_ανΤέλος Ανάζητηση_Α

21

Page 22: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΤΑΞΙΝΌΜΗΣΗ ΣΤΟΙΧΕΊΩΝ ΠΊΝΑΚΑ

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

Ο πιο απλός τρόπος να ταξινομήσουμε έναν μονοδιάστατο πίνακα είναι ο εξής:

ΠΑΡΆΔΕΙΓΜΑΝα ταξινομηθεί ένας πίνακας ακεραίων Α(40) ως εξής: Να βρεθεί ο ελάχιστος μεταξύ των θέσεων 1-40 και να αντιμετατεθεί με τη θέση 1. Ύστερα να βρεθεί ο ελάχιστος μεταξύ των θέσεων 2-40 και να αντιμετατεθεί με τη θέση 2, κ.ο.κ. μέχρι να βρεθεί ο ελάχιστος μεταξύ των θέσεων 39-40 και να αντιμετατεθεί με τη θέση 39.

Αλγόριθμος Ταξινόμηση! Διάβασμα πίνακαΓια γραμμή από 1 μέχρι 40

Διάβασε Α[i]Τέλος_επανάληψης

! ΤαξινόμησηΓια i από 1 μέχρι 39

! εύρεση ελαχίστου μεταξύ των θέσεων i - 40ελάχιστος ← Α[i]θέση ← iΓια k από i μέχρι 40

Αν Α[k] < ελάχιστος τότεελάχιστος ← Α[k]θέση ← k

Τέλος_ανΤέλος_επανάληψης! Αντιμετάθεση του ελαχίστου που βρέθηκε με τη θέση iΑντιμετάθεσε Α[i],Α[θέση]

Τέλος_επανάληψηςΤέλος Άθροισμα_Α

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

22

Page 23: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΣΥΓΧΏΝΕΥΣΗ ΠΙΝΆΚΩΝ

Με τον όρο συγχώνευση πινάκων εννοούμε το εξής: με δεδομένους δύο ταξινομημένους πίνακες Α(m) και Β(n), να καταχωρήσουμε τα στοιχεία τους σε έναν πίνακα Γ(m+n) με τέτοιο τρόπο ώστε ο Γ να προκύψει και αυτός ταξινομημένος.

Η συγχώνευση γίνεται ως εξής: χρησιμοποιούμε τρεις μεταβλητές, τις δ_Α, δ_Β, και δ_Γ οι οποίες

χρησιμοποιούνται σαν «δείκτες» των πινάκων Α, Β και Γ αντίστοιχα. Όταν λέμε δείκτες, εννοούμε ότι δείχνουν ποια θέση του πίνακα είναι η επόμενη προς «επεξεργασία» (έλεγχο, αντιγραφή κ.α.). Και οι τρεις μεταβλητές αρχικά δείχνουν στην πρώτη θέση των πινάκων.

Ελέγχουμε τα στοιχεία Α[δ_Α] και Β[δ_Β]. Όποιο είναι μικρότερο, τοποθετείται στον πίνακα Γ στην θέση δ_Γ, π.χ. αν Α[δ_Α] < Β[δ_Β] τότε Γ[δ_Γ] ← Α[δ_Α]. Αν είναι μικρότερο το Α[δ_Α], αυξάνουμε τον δείκτη δ_Α κατά ένα, αλλιώς αυξάνουμε τον δ_Β κατά ένα (προκειμένου να είμαστε έτοιμοι να ελέγξουμε την επόμενη θέση του πίνακα). Επίσης, ανεξαρτήτως του ποιο ήταν το μικρότερο αυξάνουμε τον δ_Γ κατά ένα (προκειμένου να είμαστε έτοιμοι να τοποθετήσουμε το επόμενο στοιχείο στον Γ).

Η παραπάνω διαδικασία επαναλαμβάνεται μέχρι κάποιος δείκτης να ξεπεράσει το μήκος του πίνακα στον οποίο «δείχνει» (Όσο δ_Α<=m και δ_Β<=n). Εφόσον κάποιος δείκτης ξεπέρασε το μήκος του πίνακά του, αυτό σημαίνει ότι το μόνο που απομένει είναι να αντιγράψουμε στον Γ και τα στοιχεία του άλλου πίνακα με τη σειρά που εμφανίζονται. Αν π.χ. ο δ_Α ξεπεράσει το m, τότε όλα τα στοιχεία του Β από τη θέση δ_Β μέχρι τη θέση n θα τοποθετηθούν στον Γ με τη σειρά που εμφανίζονται στον Β.

Αλγόριθμος Συγχώνευσηδείκτης_Α 1δείκτης_Β 1δείκτης_Γ 1Όσο δείκτης_Α<=m και δείκτης_Β<=n επανάλαβε

Αν Α[δείκτης_Α] < Β[δείκτης_Β] τότεΓ[δείκτης_Γ] Α[δείκτης_Α]δείκτης_Α δείκτης_Α + 1

αλλιώςΓ[δείκτης_Γ] Β[δείκτης_Β]δείκτης_Β δείκτης_Β + 1

Τέλος_ανδείκτης_Γ δείκτης_Γ + 1

Τέλος_επανάληψηςΑν δείτκης_Α > m τότε

Για i από δείκτης_Β μέχρι nΓ[δείκτης_Γ] Β[i]δείκτης_Γ δείκτης_Γ + 1

Τέλος_επανάληψηςαλλιώς

Για i από δείκτης_Α μέχρι mΓ[δείκτης_Γ] Α[i]δείκτης_Γ δείκτης_Γ + 1

Τέλος_επανάληψηςΤέλος_ανΤέλος Συγχώνευση

Ο αλγόριθμος της συγχώνευσης είναι δυσνόητος για τον μαθητή, και χρειάζεται πολύ μελέτη για την κατανόησή του. Δεν αποτελεί θέμα το οποίο αναλύεται στο σχολικό βιβλίο, αλλά αναφέρεται σαν λειτουργία η οποία πρέπει να

23

Page 24: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

είναι γνωστή. Είναι ένα θέμα που ο μαθητής πρέπει να μελετήσει αφού έχει εξαντλήσει τα άλλα θέματα.

ΟΛΟΚΛΗΡΩΜΈΝΕΣ ΑΣΚΉΣΕΙΣ

Στις ασκήσεις που δίνονται και αφορούν πίνακες μας δίνονται καταστάσεις του πραγματικού κόσμου, όπου κάποια δεδομένα πρέπει να αποθηκευτούν σε μονοδιάστατους ή δισδιάστατους πίνακες, και στη συνέχεια να εφαρμοστούν κάποιες επεξεργασίες πάνω στους πίνακες.

Ενώ όλες οι ασκήσεις σε πρώτη θέα φαίνονται άγνωστες, ζητάνε να εφαρμοστούν οι γνωστές λειτουργίες

άθροισμα Μ.Όρος

ελάχιστος μέγιστος αναζήτηση ταξινόμηση

Πρώτη δουλειά του μαθητή είναι να εντοπίσει ποιες λειτουργίες του ζητούνται να εφαρμόσει στους πίνακες που του δίνονται από την εκφώνηση.

24

Page 25: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΑΡΆΔΕΙΓΜΑΓια στατιστικούς σκοπούς της εταιρίας UNICEF, ζητάμε να γραφεί

αλγόριθμος ο οποίος:α. Θα καταγράφει σε έναν πίνακα Υ(20) τα ονόματα των υπευθύνων 20 περιπτέρων της εταιρίας που βρίσκονται σε όλη την Ελλάδα και τις αντίστοιχες εισπράξεις τους για κάθε μήνα σε έναν πίνακα Ε(20,12).β. Θα υπολογίζει και θα εκτυπώνει το άθροισμα των εισπράξεων κάθε περιπτέρου, καθώς και το περίπτερο με τη μέγιστη συνολική είσπραξη.γ. Θα υπολογίζει και θα εκτυπώνει το άθροισμα των εισπράξεων κάθε μήνα, καθώς και το μήνα με τη μέγιστη συνολική είσπραξη.δ. Θα τυπώνει τις εισπράξεις του περιπτέρου που είναι υπεύθυνος ο Βασιλείου, για το μήνα Μάιο.

Οι λειτουργίες που μας ζητούνται είναι:α. ΚΑΤΑΧΩΡΗΣΗβ. ΑΘΡΟΙΣΜΑ – Εύρεση μέγιστουγ. ΑΘΡΟΙΣΜΑ – Εύρεση μέγιστουδ. ΑΝΑΖΗΤΗΣΗ (σε πίνακα με μοναδικές εμφανίσεις)

Αλγόριθμος ΠαράδειγμαΓια γραμμή από 1 μέχρι 20

Διάβασε Υ[γραμμή]Για στήλη από 1 μέχρι 12

Διάβασε Ε[γραμμή,στήλη]Τέλος_επανάληψης

Τέλος_επανάληψηςμέγιστη -1θέση 0Για γραμμή από 1 μέχρι 20

άθροισμα 0Για στήλη από 1 μέχρι 12

άθροισμα άθροισμα + Ε[γραμμή,στήλη]Τέλος_επανάληψηςΑν άθροισμα > μέγιστος τότε

μέγιστος άθροισμαθέση γραμμή

Τέλος_ανΕμφάνισε άθροισμα

Τέλος_επανάληψηςΕμφάνισε “Περίπτερο με μέγιστη είσπραξη “, Y[θέση]μέγιστη -1θέση 0Για στήλη από 1 μέχρι 12

άθροισμα 0Για γραμμή από 1 μέχρι 20

άθροισμα άθροισμα + Ε[γραμμή,στήλη]Τέλος_επανάληψηςΑν άθροισμα > μέγιστος τότε

μέγιστος άθροισμαθέση στήλη

Τέλος_ανΕμφάνισε άθροισμα

Τέλος_επανάληψηςΕμφάνισε “Μήνας με μέγιστη είσπραξη “, Y[θέση]Τέλος_επανάληψηςΓια i από 1 μέχρι 20

Αν Υ[i] = “Βασιλείου” τότε γραμμή = iΤέλος_επανάληψηςΕμφάνισε Ε[γραμμή,5]Τέλος Παράδειγμα

25

Page 26: gym-panorm.reth.sch.grgym-panorm.reth.sch.gr/wordpress/wp-content/uploads… · Web view3.1 Δεδομένα Η πληροφορική θεωρείται η επιστήμη που

ΠΑΡΆΔΕΙΓΜΑΜία εταιρία έχει 15 τμήματα πωλήσεων, με 30 υπαλλήλους το καθένα. Να

γραφεί αλγόριθμος ο οποίος θα διαβάζει τα επώνυμα κάθε υπαλλήλου και θα τα καταχωρεί σε έναν πίνακα ΥΠΑΛΛΗΛΟΙ(15,30). Στη συνέχεια θα ταξινομεί τους υπαλλήλους ανά τμήμα. Τέλος, θα δέχεται ένα επώνυμο από το πληκτρολόγιο, και θα εμφανίζει σε ποιο τμήμα βρίσκεται αυτός ο υπάλληλος, ή μήνυμα αν δεν υπάρχει αυτός ο υπάλληλος στην εταιρία.

Οι λειτουργίες που μας ζητούνται είναι: ΚΑΤΑΧΩΡΗΣΗ ΤΑΞΙΝΟΜΗΣΗΑΝΑΖΗΤΗΣΗ (σε πίνακα με μοναδικές εμφανίσεις)

Αλγόριθμος ΠαράδειγμαΓια γραμμή από 1 μέχρι 15

Για στήλη από 1 μέχρι 30Διάβασε ΥΠΑΛΛΗΛΟΙ[γραμμή,στήλη]

Τέλος_επανάληψηςΤέλος_επανάληψης

Για γραμμή από 1 μέχρι 15Για στήλη από 2 μέχρι 30

Για i από 30 μέχρι στήλη με_βήμα -1Αν ΥΠΑΛΛΗΛΟΙ[γραμμή,i] < ΥΠΑΛΛΗΛΟΙ[γραμμή,i-1] τότε

z ← ΥΠΑΛΛΗΛΟΙ[γραμμή,i]ΥΠΑΛΛΗΛΟΙ[γραμμή,i] ← ΥΠΑΛΛΗΛΟΙ[γραμμή,i-1]ΥΠΑΛΛΗΛΟΙ[γραμμή,i-1] ← z

Τέλος_ανΤέλος_επανάληψης

Τέλος_επανάληψηςΤέλος_επανάληψης

Διάβασε επώνυμοτμήμα ← 0Για γραμμή από 1 μέχρι 15

Για στήλη από 1 μέχρι 30Αν ΥΠΑΛΛΗΛΟΙ[γραμμή,στήλη]=επώνυμο τότε τμήμα ← γραμμή

Τέλος_επανάληψηςΤέλος_επανάληψηςΑν τμήμα = 0 τότε

Εμφάνισε “Δεν υπάρχει στην εταιρία!”αλλιώς

Εμφάνισε “Υπάρχει στο τμήμα:”,τμήμαΤέλος_ανΤέλος Παράδειγμα

Αλέξης ΧριστοδούλουΜηχανικός Η/Υ & Πληροφορικής, 2002

26