294

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ
Τι είναι o τµηµατικός προγραµµατισµός;
Η τεχνική του τµηµατικού προγραµµατισµού αποτελεί κύριο
χαρακτηριστικό του
δοµηµένου προγραµµατισµού.
ΑΠΑΝΤΗΣΗ
Είναι η τεχνική σχεδίασης σύµφωνα µε την οποία η ανάπτυξη ενός προγράµµατος επιτυγχάνεται αναπτύσσοντας απλούστερα
τµήµατα προγραµµάτων. Αυτά τα προγράµµατα αν αναπτυχθούν
και συνδεθούν µεταξύ τους οδηγούν και στην ανάπτυξη του κύριου προγράµµατος
Τι ονοµάζεται υποπρόγραµµα (subprogram);
ΑΠΑΝΤΗΣΗ
Κάθε ένα από αυτά τα προγράµµατα, στα οποία αναφερθήκαµε
πριν, τα οποία επιτελούν αυτόνοµο έργο και που αποτελούν τµήµα
του προγράµµατος (κι έχουν γραφεί χωριστά από το υπόλοιπο
πρόγραµµα), ονοµάζονται υποπρογράµµατα (subprograms).
Ποια είναι τα χαρακτηριστικά των υποπρογραµµάτων;
ΑΠΑΝΤΗΣΗ
Όταν λέµε ότι τα
υποπρογράµµατα έχουν
µια µόνο είσοδο και
έξοδο εννοούµε ότι ένα
υποπρόγραµµα κάθε
φορά που χρησιµοποιείται, δέχεται τιµές
από ένα µόνο πρόγραµµα και επιστρέφει τιµές σε ένα µόνο πρόγραµµα.
Τα βασικότερα χαρακτηριστικά των υποπρογραµµάτων είναι τα
εξής:
] Έχουν µόνο µια είσοδο και µια έξοδο.
] ∆εν είναι πολύ µεγάλα. ∆ηλαδή είναι απλά (ελέγχονται εύκολα), είναι κατανοητά και εκτελούν µια µόνο λειτουργία.
] Είναι µεταξύ τους ανεξάρτητα. ∆ηλαδή µπορούν να
σχεδιασθούν, αναπτυχθούν και συντηρηθούν αυτόνοµα χωρίς το
ένα να επηρεάζει το άλλο.
Ποια είναι τα πλεονεκτήµατα του τµηµατικού προγραµµατισµού;
ΑΠΑΝΤΗΣΗ
Η χρήση των υποπρογραµµάτων σ΄ ένα πρόγραµµα παρουσιάζει
πολλά πλεονεκτήµατα. Τα βασικότερα είναι τα εξής:
291
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1. ∆ΙΕΥΚΟΛΥΝΕΙ ΤΗΝ ΑΝΑΠΤΥΞΗ ΤΟΥ
ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΥΝΕΠΩΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ.
ΠΑΡΑΤΗΡΗΣΕΙΣ
1. Η χρήση των υποπρογραµµάτων βοηθούν την ανάπτυξη
ενός προγράµµατος,
διότι το αρχικό πρό- ΠΛΕΟΝΕΚΤΗΜΑΤΑ
βληµα αναλύεται σε
επιµέρους προβλήµατα
και για το κάθε επιµέρους πρόβληµα δηµιουργούµε ένα υποπρόγραµµα.
2. Η χρήση των υποπρογραµµάτων βοηθάει
στην διόρθωση ενός
προγράµµατος. Αυτό
συµβαίνει διότι ο χωρισµός του προγράµµατος σε επιµέρους αυτόνοµα µέρη επιτρέπει
την διόρθωση συγκεκριµένου µέρους, χωρίς
αυτή η διόρθωση να
επηρεάσει και τα άλλα
µέρη. Επίσης αυτός ο
τρόπος ανάπτυξης του
προγράµµατος το καθιστά κατανοητό µε αποτέλεσµα να µπορεί να
συντηρηθεί και από
άλλους προγραµµατιστές, πέρα από αυτούς
που το κατασκεύασαν.
2. ∆ΙΕΥΚΟΛΥΝΕΙ ΣΤΗΝ ΚΑΤΑΝΟΗΣΗ
ΚΑΙ ΣΤΗ ∆ΙΟΡΘΩΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ.
3. ΑΠΑΙΤΕΙ ΛΙΓΟΤΕΡΟ ΧΡΟΝΟ ΣΤΗΝ
ΑΝΑΠΤΥΞΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ.
4. ΕΠΕΚΤΕΙΝΕΙ ΤΙΣ ∆ΥΝΑΤΟΤΗΤΕΣ ΤΩΝ
ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ, ΑΦΟΥ
ΤΙΣ ΕΜΠΛΟΥΤΙΖΕΙ ΜΕ ΠΕΡΙΣΣΟΤΕΡΕΣ
ΣΥΝΑΡΤΗΣΕΙΣ.
Τι είναι το κύριο πρόγραµµα;
ΑΠΑΝΤΗΣΗ
Το αρχικό πρόγραµµα ή κάθε υποπρόγραµµα που περιέχει υποπρόγραµµα ή υποπρογράµµατα, λέγεται κύριο πρόγραµµα.
Πως ενεργοποιείται ένα υποπρόγραµµα;
ΑΠΑΝΤΗΣΗ
Κάθε υποπρόγραµµα για να ενεργοποιηθεί καλείται από το κύριο
πρόγραµµα. Κάθε υποπρόγραµµα µπορεί να καλείται όσες φορές
θέλουµε από το κύριο πρόγραµµα. Η δεσµευµένη λέξη κάλεσε χρησιµοποιείται για να ενεργοποιηθεί µια διαδικασία.
Πως επικοινωνεί το υποπρόγραµµα µε το κύριο πρόγραµµα;
ΑΠΑΝΤΗΣΗ
Όπως αναφέρθηκε πριν, το υποπρόγραµµα είναι αυτόνοµο και
ανεξάρτητο τµήµα προγράµµατος. Όµως επικοινωνεί µε το κύριο
πρόγραµµα, αφού δέχεται συνήθως τιµές απ΄αυτό και µετά την
εκτέλεσή του επιστρέφει πάντα σε αυτό νέες τιµές.
292
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Ποιες µεταβλητές ονοµάζονται παράµετροι;
3. Με την χρήση των
υποπρογραµµάτων
απαιτείται λιγότερος
χρόνος για την ανάπτυξη ενός προγράµµατος, διότι συχνά στο
ίδιο πρόγραµµα µια
λειτουργία είναι αναγκαία σε πολλά σηµεία
του προγράµµατος.
Αντί λοιπόν να επαναλαµβάνουµε τις ίδιες
εντολές καλούµε κάθε
φορά που χρειάζεται το
υποπρόγραµµα που
εκτελεί την συγκεκριµένη λειτουργία.
ΑΠΑΝΤΗΣΗ
Οι τιµές (µεταβλητές) οι οποίες χρησιµεύουν, όπως αναφέραµε
πριν, στο να επικοινωνεί το κύριο πρόγραµµα µε το υποπρόγραµµα ή τα υποπρογράµµατα λέγονται παράµετροι. Λειτουργούν
λοιπόν, σαν κοινές µεταβλητές µε τη διαφορά ότι χρησιµοποιούνται για να περνούν τιµές στα υποπρογράµµατα.
Πόσων ειδών υποπρογράµµατα υπάρχουν;
ΑΠΑΝΤΗΣΗ
Υπάρχουν δυο ειδών υποπρογράµµατα:
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
∆ΙΑ∆ΙΚΑΣΙΕΣ
ΣΥΝΑΡΤΗΣΕΙΣ
Ποια είναι τα χαρακτηριστικά των διαδικασιών;
ΑΠΑΝΤΗΣΗ
Το βασικότερο χαρακτηριστικό των διαδικασιών είναι ότι µπορούν να εκτελέσουν οποιαδήποτε λειτουργία από αυτές που
Οι διαδικασίες µπο- µπορεί να εκτελέσει ένα πρόγραµµα.
ρούν για παράδειγµα
να χρησιµεύσουν στην
εισαγωγή δεδοµένων, Να δοθεί παράδειγµα διαδικασίας.
στην εκτέλεση υπολογισµών, στην εµφάνιση ΑΠΑΝΤΗΣΗ
Το παρακάτω παράδειγµα διαδικασίας έχει ως στόχο την εισαγωαποτελεσµάτων κτλ.
γή βαθµού κάποιου µαθητή καθώς και τον έλεγχο ορθότητάς του
(στην εικοσαβάθµια κλίµακα).
ΠΑΡΑΤΗΡΗΣΗ
293
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΑΠΑΝΤΗΣΗ
∆ιαδικασία Είσοδος (βαθµός)
Μεταβλητές
ακέραιος : βαθµός
Αρχή
εµφάνισε ‘∆ώσε βαθµό’
διάβασε βαθµός
όσο βαθµός>20 ή βαθµός<0 επανάλαβε
εµφάνισε ‘Λάθος πληκτρολόγηση-Ξαναδώσε βαθµό’
διάβασε βαθµός
τέλος_επανάληψης
Tέλος_∆ιαδικασίας
ΠΑΡΑΤΗΡΗΣΗ
1. Τις διαδικασίες και
τις συναρτήσεις θα
τις παραθέτουµε µετά το τέλος του κύριου προγράµµατος
(σύµφωνα µε το
σχολικό βιβλίο).
2. Οι διαδικασίες καλούνται από το κύριο πρόγραµµα µε
την εντολή κάλεσε
τίτλο_διαδικασίας
(λίστα_παραµέτρων)
Πως καλείται η παραπάνω διαδικασία από το κύριο πρόγραµµα;
ΑΠΑΝΤΗΣΗ
Έστω ότι θέλουµε να δώσουµε αλγόριθµο (ή πρόγραµµα), ο οποίος να υπολογίζει κι εµφανίζει το µέσο όρο 20 µαθητών. Χρησιµοποιώντας και το παραπάνω υποπρόγραµµα (διαδικασία εισόδου), θα έχουµε το εξής πρόγραµµα:
Πρόγραµµα Μέσος_όρος
Μεταβλητές
ακέραιος : α, I, SUM
πραγµατικός: ΜΟ
Αρχή
SUM ← 0
για i από 1 µέχρι 20
κάλεσε Είσοδος (α)
SUM ← SUM+α
τέλος_επανάληψης
ΜΟ ← SUM/20
γράψε MO
Τέλος_Προγράµµατος
294
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Ποια είναι η γενική µορφή (δοµή) µιας διαδικασίας;
ΑΠΑΝΤΗΣΗ
∆ιαδικασία Όνοµα (λίστα παραµέτρων)
Τµήµα δηλώσεων
Αρχή
εντολές
Tέλος_∆ιαδικασίας
Ποια η χρησιµότητα των διαδικασιών;
ΑΠΑΝΤΗΣΗ
Σε ένα πρόγραµµα πολύ συχνά παρατηρείται η ίδια λειτουργία.
Χρησιµοποιώντας λοιπόν ένα υποπρόγραµµα και συγκεκριµένα
µια διαδικασία που έχει ήδη γραφεί, µπορεί αυτή να καλείται σε
πολλά σηµεία του προγράµµατος. Συνέπειες αυτού είναι η µείωση
του µεγέθους του, καθώς και του χρόνου που απαιτείται για την
υλοποίησή του.
Ας δούµε ένα παράδειγµα:
Να δοθεί πρόγραµµα που να υπολογίζει κι εµφανίζει τους µέσους
όρους σε 5 µαθήµατα, 20 µαθητών ενός τµήµατος.
ΠΑΡΑΤΗΡΗΣΗ
Στο συγκεκριµένο πρόγραµµα παρατηρούµε
ότι πρέπει να ζητήσουµε 5 βαθµούς για κάθε
µαθητή και να κάνουµε
για κάθε περίπτωση
έλεγχο ορθότητας.
Χρησιµοποιώντας λοιπόν την διαδικασία
Είσοδος (λίστα παραµέτρων) αποφεύγουµε
την επανάληψη όλης
της διαδικασίας.
Πρόγραµµα Μέσος_όρος
Μεταβλητές
ακέραιος : α, b, c, d, e,i, SUM1, SUM2, SUM3, SUM4, SUM5
πραγµατικός: ΜΟ1, ΜΟ2, ΜΟ3, ΜΟ4, ΜΟ5
Αρχή
SUM1←0, SUM2←0, SUM3←0, SUM4←0, SUM5←0
για i από 1 µέχρι 20
κάλεσε Είσοδος (α)
κάλεσε Είσοδος (b)
κάλεσε Είσοδος (c)
κάλεσε Είσοδος (d)
κάλεσε Είσοδος (e)
295
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
SUM1 ← SUM1+α
SUM2 ← SUM2+b
SUM3 ← SUM3+c
SUM4 ← SUM4+d
SUM5 ← SUM5+e
τέλος_επανάληψης
ΜΟ1 ← SUM1/20
ΜΟ2 ← SUM2/20
ΜΟ3 ← SUM3/20
ΜΟ4 ← SUM4/20
ΜΟ5 ← SUM5/20
γράψε MO1, MO2, MO3, MO4, MO5
Τέλος_Προγράµµατος
Ποια είναι τα χαρακτηριστικά των συναρτήσεων;
ΑΠΑΝΤΗΣΗ
Το βασικότερο χαρακτηριστικό των συναρτήσεων είναι ότι υπολογίζουν και επιστρέφουν µόνο ένα αποτέλεσµα όχι µε µια µεταβλητή, αλλά µε το ίδιο το όνοµα της συνάρτησης.
Να δοθεί παράδειγµα συνάρτησης.
ΠΑΡΑΤΗΡΗΣΗ
Έχοντας δηµιουργήσει
την συνάρτηση max,
µπορούµε σε κάθε πρόγραµµα να την καλούµε µε το όνοµά της και
να µας επιστρέφει ως
αποτέλεσµα τον µέγιστο µεταξύ τριών
ακεραίων.
ΑΠΑΝΤΗΣΗ
Το παρακάτω παράδειγµα συνάρτησης έχει ως στόχο την εύρεση
του µέγιστου µεταξύ τριών ακεραίων.
Συνάρτηση max (α,β,γ): ακέραιος
Μεταβλητές
ακέραιος : α, β, γ
Αρχή
max α
αv β > max τότε
max β
τέλος_αν
αv γ > max τότε
max γ
τέλος_αν
Τέλος_Συνάρτησης
296
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Πως καλείται η παραπάνω συνάρτηση από το κύριο πρόγραµµα;
ΑΠΑΝΤΗΣΗ
Έστω ότι θέλουµε να δώσουµε πρόγραµµα, το οποίο να υπολογίζει και εµφανίζει τη µεγαλύτερη ηλικία τριών ατόµων. Τα δεδοµένα µας είναι τα έτη γέννησης των τριών αυτών ατόµων. Το πρόγραµµα θα είναι το εξής:
ΠΑΡΑΤΗΡΗΣΗ
Έχοντας δηµιουργήσει
την συνάρτηση max,
την χρησιµοποιούµε
έτοιµη ΧΩΡΙΣ να
χρειάζεται να κάνουµε
πάλι όλη τη διαδικασία
για την εύρεση του
µέγιστου.
Πρόγραµµα ηλικίες
Μεταβλητές
ακέραιος :α, έτος1, έτος2, έτος3, ηλικία1, ηλικία2, ηλικία3, Μ
Αρχή
γράψε ‘Σε ποιο έτος βρισκόµαστε;’
διάβασε α
γράψε ‘∆ώσε έτη γέννησης’
διάβασε έτος1, έτος2, έτος3
ηλικία1 ← α-έτος1
ηλικία2 ← α-έτος2
ηλικία3 ← α-έτος3
Μ ← max (ηλικία1, ηλικία2, ηλικία3)
γράψε Μ
Τέλος_Προγράµµατος
Ποια είναι η γενική µορφή (δοµή) µιας συνάρτησης;
ΠΑΡΑΤΗΡΗΣΗ
ΑΠΑΝΤΗΣΗ
Παρατηρούµε ότι η τι- Συνάρτηση Όνοµα (λίστα παραµέτρων): τύπος συνάρτησης
Τµήµα δηλώσεων
µή του αποτελέσµατος
ΠΡΕΠΕΙ να εκχωρεί- Αρχή
ται µέσα στο όνοµα
εντολές1
της συνάρτησης
Όνοµα ← έκφραση
εντολές2
Tέλος_Συνάρτησης
297
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Πως συνδυάζονται διαδικασίες και συναρτήσεις σ’ ένα πρόγραµµα;
ΑΠΑΝΤΗΣΗ
Έστω ότι θέλουµε να δώσουµε πρόγραµµα, το οποίο να υπολογίζει κι εµφανίζει τους µέσους όρους σε 3 µαθήµατα, 20 µαθητών
ενός τµήµατος, καθώς και να εµφανίζει τον µεγαλύτερο Μ.Ο. µεταξύ των τριών Μ.Ο.
ΛΥΣΗ
Θα χρησιµοποιήσουµε την διαδικασία Είσοδος για την εισαγωγή
των δεδοµένων, καθώς και την συνάρτηση max (µε τη διαφορά
ότι η συνάρτηση max θα λειτουργεί για πραγµατικούς αριθµούς). Έτσι θα γίνει ως εξής:
Συνάρτηση max (α,β,γ): πραγµατικός
Μεταβλητές
πραγµατικός : α, β, γ
Αρχή
………………..
Τέλος_Συνάρτησης
ΠΑΡΑΤΗΡΗΣΗ
Παρατηρούµε (στο
συγκεκριµένο παράδειγµα) ότι οι διαδικασίες και οι συναρτήσεις συνεργάζονται
αφού οι τιµές που επιστρέφουν οι διαδικασίες τροφοδοτούν το
κύριο πρόγραµµα και
µετά την επεξεργασία
τους, οι νέες τιµές που
προκύπτουν δίνονται
ως είσοδος στις συναρτήσεις.
Το πρόγραµµα που ζητάµε θα είναι το παρακάτω:
Πρόγραµµα Μέγιστος_ΜΟ
Μεταβλητές
ακέραιος : α, b, c, i, SUM1, SUM2, SUM3, Μ
πραγµατικός: ΜΟ1, ΜΟ2, ΜΟ3
Αρχή
SUM1←0, SUM2←0, SUM3←0
για i από 1 µέχρι 20
κάλεσε Είσοδος (α)
κάλεσε Είσοδος (b)
κάλεσε Είσοδος (c)
SUM1 ← SUM1+α
SUM2 ← SUM2+b
SUM3 ← SUM3+c
τέλος_επανάληψης
298
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΠΑΡΑΤΗΡΗΣΗ
Παρατηρούµε ότι δηµιουργώντας µια συνάρτηση, αυτή µπορεί να
χρησιµοποιηθεί σε οποιοδήποτε πρόγραµµα
ακριβώς όπως οι
έτοιµες συναρτήσεις.
Επεκτείνουµε και εµπλουτίζουµε λοιπόν,
την βιβλιοθήκη των
συ ναρτήσε ων της
γλώσσας προγραµµατισµού.
ΜΟ1 ← SUM1/20
ΜΟ2 ← SUM2/20
ΜΟ3 ← SUM3/20
γράψε MO1, MO2, MO3
M ← max (MO1, MO2, MO3)
γράψε M
Τέλος_Προγράµµατος
299
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ
ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟΥ– ΛΑΘΟΥΣ
1. Σηµειώστε το γράµµα Σ αν η πρόταση είναι σωστή και το γράµµα Λ αν είναι λάθος.
1. Υποπρόγραµµα ονοµάζουµε ένα τµήµα προγράµµατος που εκτεΣ
λεί µια λειτουργία αυτόνοµα.
Λ
2. Τα υποπρογράµµατα έχουν µία µόνο έξοδο.
Σ
Λ
3. Τα υποπρογράµµατα µπορεί να έχουν (ανάλογα την περίπτωση)
Σ
πολλές εισόδους.
Λ
4. Σε µια συνάρτηση µπορεί να µεταβιβασθεί µόνο µια τιµή µεταΣ
βλητής από το πρόγραµµα που την καλεί.
Λ
5. Μια συνάρτηση µπορεί να επιστρέφει µόνο µία τιµή στο πρόΣ
γραµµα που την καλεί.
Λ
6. Ο τύπος µιας συνάρτησης καθορίζεται από τον τύπο του αποτεΣ
λέσµατος που παράγει.
Λ
7. Ο τύπος µιας συνάρτησης καθορίζεται από τον τύπο των τιµών
που µεταβιβάζονται σε αυτήν από το πρόγραµµα που την καλεί. Σ
Λ
8. Ο τύπος µιας συνάρτησης καθορίζεται και από τον τύπο του αποτελέσµατος και από τις τιµές που µεταβιβάζονται σε αυτήν Σ
από το πρόγραµµα που την καλεί.
Λ
9. Για να εισάγουµε δεδοµένα σε ένα πρόγραµµα χρησιµοποιούµε
Σ
µια διαδικασία.
Λ
10. Για την εκτύπωση ενός µόνο αποτελέσµατος σε ένα πρόγραµµα
Σ
χρησιµοποιούµε συνάρτηση.
Λ
11. Για τον υπολογισµό του αθροίσµατος 500 αριθµών χρησιµοποιΣ
ούµε συνάρτηση.
Λ
300
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
12. Η ενεργοποίηση µιας συνάρτησης γίνεται µε την δεσµευµένη
Σ
λέξη ΚΑΛΕΣΕ
Λ
13. Οι συναρτήσεις µπορούν να εκτελέσουν τις περισσότερες λειΣ
τουργίες από αυτές που µπορεί να εκτελέσει ένα πρόγραµµα.
Λ
14. Οι παράµετροι και οι µεταβλητές σε ένα πρόγραµµα επιτελούν
Σ
την ίδια ακριβώς λειτουργία.
Λ
15. Ένα από τα µειονεκτήµατα του τµηµατικού προγραµµατισµού
είναι ότι το πρόγραµµα που έχει αναπτυχθεί µε αυτήν την τεχνιΣ
κή είναι δύσκολο στην συντήρηση του από προγραµµατιστές
που δεν εµπλέκονται στην αρχική κατασκευή του.
Λ
ΕΡΩΤΗΣΕΙΣ ΠΛΗΡΟΥΣ ΑΝΑΠΤΥΞΗΣ
1. Τι είναι o τµηµατικός προγραµµατισµός;
2. Ποια είναι τα πλεονεκτήµατα του τµηµατικού προγραµµατισµού;
3. Τι είναι υποπρόγραµµα;
4. Ποιες µεταβλητές ονοµάζονται παράµετροι;
5. Ποια είναι τα χαρακτηριστικά των διαδικασιών;
6. Ποια είναι τα χαρακτηριστικά των συναρτήσεων;
7. Ποια η χρησιµότητα των διαδικασιών και των συναρτήσεων;
8. Ποιες οι διαφορές διαδικασιών και συναρτήσεων;
301
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΜΕΘΟ∆ΟΛΟΓΙΑ ΑΣΚΗΣΕΩΝ
ΚΑΤΗΓΟΡΙΑ : ΑΣΚΗΣΕΙΣ ΠΟΥ ΜΑΣ ΖΗΤΟΥΝ :
ΝΑ ∆ΗΜΙΟΥΡΓΗΣΟΥΜΕ ΠΡΟΓΡΑΜΜΑΤΑ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ (∆ΙΑ∆ΙΚΑΣΙΕΣ).
Ν’ αναπτύξετε πρόγραµµα που να διαβάζει το πλήθος των
τερµάτων που σηµείωσαν τέσσερις ποδοσφαιριστές της Α΄
εθνικής κατηγορίας στην διάρκεια του πρώτου γύρου.
Έπειτα να εµφανίζει το µήνυµα ‘καλή απόδοση’ σε όποιον
έχει πέτυχει πάνω από δέκα τέρµατα. (Να κάνετε χρήση διαδικασιών όπου αυτό είναι εφικτό)
ΑΠΑΝΤΗΣΗ
Πρόγραµµα Τέρµατα
Μεταβλητές
ακέραιος : τ1 , τ2 , τ3 , τ4
Αρχή
κάλεσε Τέρµατα1(τ1)
κάλεσε Τέρµατα1(τ2)
κάλεσε Τέρµατα1(τ3)
κάλεσε Τέρµατα1(τ4)
Τέλος_Προγράµµατος
∆ιαδικασία Τέρµατα1(γκολ)
Μεταβλητές
ακέραιος : γκολ
Αρχή
γράψε ‘δώσε αριθµό τερµάτων’
διάβασε γκολ
αν γκολ>10 τότε
γράψε ‘καλή απόδοση’
τέλος_αν
Τέλος_∆ιαδικασίας
302
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Να δοθεί πρόγραµµα που να βρίσκει κι εµφανίζει τις ρίζες
της εξίσωσης 5x2-4x+5=0 (αν αυτές υπάρχουν. Σε αντίθετη
περίπτωση να εµφανίζεται αντίστοιχο µήνυµα).
ΑΠΑΝΤΗΣΗ
ΠΑΡΑΤΗΡΗΣΗ
Παρατηρούµε ότι χρησιµοποιώντας την διαδικασία της δευτεροβάθµιας, το πρόγραµµα
απλοποιείται κατά πολύ. Επίσης όποτε χρειασθούµε να επιλύσουµε δευτεροβάθµια το
µόνο που θα κάνουµε
είναι να καλούµε αυτή
την διαδικασία.
Αν έχουµε δηµιουργήσει διαδικασία η οποία υπολογίζει τις ρίζες
δευτεροβάθµιας εξίσωσης, τότε για την δηµιουργία του παραπάνω
προγράµµατος το µόνο που θα κάνουµε είναι να καλέσουµε αυτή
την διαδικασία. Έτσι:
Πρόγραµµα Λύση
Αρχή
κάλεσε ∆ευτεροβάθµια(5, -4, 5)
Τέλος_Προγράµµατος
∆ιαδικασία ∆ευτεροβάθµια(α, β, γ )
Μεταβλητές
πραγµατικός: α , β , γ , χ1 , χ2
Αρχή
αν α = 0 τότε
αν β = 0 τότε
αν γ = 0 τότε
γράψε ‘Αόριστη’
αλλιώς
γράψε ‘Αδύνατη’
τέλος_αν
αλλιώς
χ1 -γ/β
γράψε ‘Μία ρίζα’, χ1
τέλος_αν
303
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
αλλιώς
∆ β2 – 4*α*γ
αν ∆ < 0 τότε
γράψε ‘Μόνο µιγαδικές ρίζες’
αλλιώς
αν ∆ > 0 τότε
x1 (-β + Τ_Ρ(∆) ) / (2*α)
x2 (-β - Τ_Ρ(∆) ) / (2*α)
γράψε ‘∆ύο ρίζες’, x1, x2
αλλιώς
x1 -β / 2*α
γράψε ‘∆ιπλή ρίζα’, x1
τέλος_αν
τέλος_αν
τέλος_αν
Τέλος_∆ιαδικασίας
Να δοθεί πρόγραµµα που να βρίσκει κι εµφανίζει τον µέγιστο 30 ακεραίων.
ΑΠΑΝΤΗΣΗ
Αν έχουµε δηµιουργήσει διαδικασία η οποία υπολογίζει τον µέγιστο n ακεραίων, τότε για την δηµιουργία του παραπάνω προγράµ ΠΑΡΑΤΗΡΗΣΗ
µατος το µόνο που θα κάνουµε είναι να καλέσουµε αυτή την διαΠαρατηρούµε ότι χρη- δικασία για n=30. Έτσι:
σιµοποιώντας την διαδικασία του max για n- Πρόγραµµα Μέγιστος
ακεραίους µπορούµε να
Μεταβλητές
βρούµε εύκολα και
γρήγορα τον µέγιστο ακέραιος: arithm
µεταξύ οποιουδήποτε Αρχή
αριθµού ακεραίων.
plithos 30
κάλεσε max(plithos,arithm)
Τέλος_Προγράµµατος
304
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
∆ιαδικασία max(n,α)
Μεταβλητές
ακέραιος : α, n
Αρχή
διάβασε α
max α
για i από 1 µέχρι n
διάβασε α
αν α > max τότε
max α
τέλος_αν
τέλος_ επανάληψης
γράψε max
Τέλος_∆ιαδικασίας
Να δοθεί πρόγραµµα που να βρίσκει κι εµφανίζει το
άθροισµα όλων των πρώτων αριθµών από το 1 µέχρι το 100.
ΠΑΡΑΤΗΡΗΣΗ
Η συνάρτηση που χρησιµοποιούµε εξετάζει
εάν ένας αριθµός είναι
πρώτος. Αν είναι τον
προσθέτει
στο
άθροισµα S.
ΑΠΑΝΤΗΣΗ
Πρόγραµµα Πρώτος_αριθµός
Μεταβλητές
ακέραιος : S , i
Αρχή
S 0
για i από 1 µέχρι 100
S S + Εξέταση(i)
τέλος_ επανάληψης
γράψε S
Τέλος_Προγράµµατος
Συνάρτηση Εξέταση(κ) : ακέραιος
Μεταβλητές
305
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ακέραιος : κ , j , διαιρέτες
Αρχή
διαιρέτες 0
για j από 1 µέχρι κ
αν κ mod j = 0 τότε
διαιρέτες διαιρέτες + 1
τέλος_ αν
τέλος_επανάληψης
αν διαιρέτες = 2 τότε
Εξέταση κ
αλλιώς
Εξέταση 0
τέλος_ αν
Τέλος_Συνάρτησης
ΠΑΡΑΤΗΡΗΣΗ
Η συνάρτηση που χρησιµ οποι ού µ ε υ πολογίζει το παραγοντικό
ενός αριθµού. Η χρησιµότητα της συνάρτησης
φαίνεται στον διπλανό
αλγόριθµο όπου αντί να
υπολογίσουµε ξεχωριστά τα ν! , µ! , κ!
καλούµε τρεις φορές
την συνάρτηση Υπολ
(α) .
Να δοθεί πρόγραµµα που να υπολογίζει κι εµφανίζει την τιµή της παράστασης Σ = ν! + µ! + κ! (Να µην γίνει έλεγχος
ορθότητας δεδοµένων).
ΑΠΑΝΤΗΣΗ
Πρόγραµµα Παραγοντικό
Μεταβλητές
ακέραιος : Σ , ν , µ , κ
Αρχή
διάβασε ν , µ , κ
Σ Υπολ(ν) + Υπολ(µ) + Υπολ(κ)
γράψε Σ
Τέλος_Προγράµµατος
Συνάρτηση Υπολ(α) : ακέραιος
Μεταβλητές
ακέραιος : α , i
Αρχή
306
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Υπολ 1
για i από 1 µέχρι α
Υπολ Υπολ * i
τέλος_επανάληψης
Τέλος_Συνάρτησης
Να δοθεί πρόγραµµα που να υπολογίζει κι εµφανίζει το
άθροισµα όλων των ακεραίων αριθµών από το 1 µέχρι τον
αριθµό ν.
ΑΠΑΝΤΗΣΗ
Πρόγραµµα Πρόσθεση
Μεταβλητές
ακέραιος : Σ , ν
Αρχή
κάλεσε ∆εδοµένα(ν)
ΠΑΡΑΤΗΡΗΣΗ
Σ Υπολ(ν)
γράψε Σ
Το διπλανό πρόγραµµα
είναι παράδειγµα προ- Τέλος_Προγράµµατος
γράµµατος που συνδυάζει διαδικασίες και
∆ιαδικασία ∆εδοµένα(α)
συναρτήσεις.
Μεταβλητές
ακέραιος : α
Αρχή
αρχή_επανάληψης
γράψε ‘∆ώσε αριθµό’
διάβασε α
µέχρις_ότου α > 0
Τέλος_∆ιαδικασίας
Συνάρτηση Υπολ(κ) : ακέραιος
Μεταβλητές
ακέραιος : κ , i
307
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Αρχή
Υπολ 0
για i από 1 µέχρι κ
Υπολ Υπολ + i
τέλος_επανάληψης
Τέλος_Συνάρτησης
Να δοθεί υποπρόγραµµα που υλοποιώντας τη σειριακή αναζήτηση να επιστρέφει τη θέση του ακεραίου που αναζητούµε, σε µονοδιάστατο πίνακα ακεραίων. (να θεωρήσετε ότι ο
µέγιστος αριθµός θέσεων του πίνακα είναι 100).
ΠΑΡΑΤΗΡΗΣΗ
Όταν ως παραµέτρους
έχουµε πίνακα, τότε η
µια παράµετρος είναι
το όνοµα του πίνακα
και η άλλη παράµετρος
το πλήθος των θέσεων
του πίνακα, εφόσον
αναφερόµαστε σε µονοδιάστατο πίνακα.
ΑΠΑΝΤΗΣΗ
Συνάρτηση thesi(Α,n, S):ακέραιος
Μεταβλητές
ακέραιος: i,S,Α[100]
λογικός:flag
Αρχή
i ← 1; flag ← false, thesi ← 0
όσο (i<=n και flag<>true) επανάλαβε
αν A[i]=S τότε
thesi ← i
flag ← true
αλλιώς
i ← i+1
τέλος_αν
τέλος_επανάληψης
Τέλος_Συνάρτησης
308
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
Να γράψετε υποπρόγραµµα το οποίο να εντοπίζει το ελάχιστο στοιχείο σε δισδιάστατο πίνακα ακεραίων, καθώς και τη
θέση στην οποία βρίσκεται.(να θεωρήσετε ότι ο µέγιστος
αριθµός θέσεων του πίνακα είναι 30x30). Έπειτα και χρησιµοποιώντας το παραπάνω υποπρόγραµµα να γράψετε πρόγραµµα που να εκτελεί τις παρακάτω εργασίες:
α) Καταχωρεί σε πίνακα ακεραίων Βαθµοί(20,9) τους βαθµούς 20 µαθητών σε 9 µαθήµατα, στο πίνακα Μαθήµατα(9)
τους τίτλους των 9 µαθηµάτων και τέλος στο πίνακα Ονόµατα(20) τα επώνυµα των 20 µαθητών.
β) Να εκτυπώνει ποιος µαθητής και σε ποιο µάθηµα παρατηρήθηκε ο χαµηλότερος βαθµός. (Να θεωρήσετε ότι ο ελάχιστος βαθµός δεν συναντάται άλλες φορές)
ΠΑΡΑΤΗΡΗΣΗ
Όταν ως παραµέτρους
έχουµε δισδιάστατο
πίνακα, τότε η µια παράµετρος είναι το
όνοµα του πίνακα και
οι άλλες παράµετροι
είναι το πλήθος των
γραµµών και το πλήθος
των στηλών του πίνακα.
ΑΠΑΝΤΗΣΗ
∆ιαδικασία min(A, n, m, min, θέση1, θέση2)
Μεταβλητές
ακέραιος : Α[30,30], n, m, min, θέση1, θέση2, i, j
Αρχή
min A[1,1], θέση1 1, θέση2 1
για i από 1 µέχρι n
για j από 1 µέχρι m
αν A[i,j] < min τότε
min A[i,j], θέση1 i, θέση2 j
τέλος_αν
τέλος_ επανάληψης
τέλος_ επανάληψης
Τέλος_∆ιαδικασίας
Οι άλλες παράµετροι
που ακολουθούν, min,
θεση1, θεση2, έιναι
ουσιαστικά οι µεταβλητές µέσα στις οποίες
αποθηκεύονται τα απο- Πρόγραµµα Μαθητής
τελέσµατα της διαδικα- Μεταβλητές
σίας.
ακέραιος : Βαθµοί[20,9], Μ, γραµµή, στήλη, i, j
χαρακτήρας: Ονόµατα[20], Μαθήµατα[9]
Αρχή
309
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΠΑΡΑΤΗΡΗΣΗ
Στις παραµέτρους
γραµµή και στήλη και
αφού έχουµε καλέσει
την διαδικασία min,
έχουν καταχωρηθεί ο
αριθµός της γραµµής
και ο αριθµός της στήλης αντίστοιχα, της
θέσης του ελάχιστου
στοιχείου του πίνακα
Βαθµοί.
Μετατροπή
συνάρτησης σε
διαδικασία.
για i από 1 µέχρι 20
διάβασε Ονόµατα[i]
για j από 1 µέχρι 9
διάβασε Βαθµοί[i,j]
τέλος_ επανάληψης
τέλος_ επανάληψης
για j από 1 µέχρι 9
διάβασε Μαθήµατα[j]
τέλος_ επανάληψης
κάλεσε min(Βαθµοί, 20, 9, Μ, γραµµή, στήλη)
γράψε ‘Ο µαθητής’, Ονόµατα[γραµµή], ‘έχει τον χαµηλότερο
βαθµό στο µάθηµα’, Μαθήµατα[στήλη]
Τέλος_Προγράµµατος
Να γραφεί συνάρτηση που να βρίσκει το ελάχιστο ενός µονοδιάστατου πίνακα ακεραίων. Στη συνέχεια να γίνει το ίδιο
αλλά µε διαδικασία.(να θεωρήσετε ότι το µέγιστο πλήθος
των στοιχείων πίνακα είναι 30).
ΑΠΑΝΤΗΣΗ
ΠΑΡΑΤΗΡΗΣΗ
Σε αυτή την παράµετρο
καταχωρείται ουσιαστικά το αποτέλεσµα της
διαδικασίας.
Αντίθετα στη συνάρτηση αυτή η επιπλέον
παράµετρος δεν χρησιµοποιείται αφού το
αποτέλεσµα αποδίδεται καλώντας µόνο το
όνοµα της συνάρτησης.
Συνάρτηση min(A, n): ακέραιος
Μεταβλητές
ακέραιος : Α[30], n, i,
Αρχή
min A[1]
για i από 1 µέχρι n
αν A[i] < min τότε
min A[i]
τέλος_αν
τέλος_επανάληψης
Τέλος_Συνάρτησης
Για να µετατρέψουµε τη συνάρτηση σε διαδικασία κάνουµε ακριβώς τα ίδια µε τη µόνη διαφορά ότι στη λίστα παραµέτρων προσθέτουµε µια επιπλέον παράµετρο, την min. Έτσι θα έχουµε:
310
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
∆ιαδικασία µικρότερο(A, n, min)
Μεταβλητές
ακέραιος : Α[30], n, i, min
Αρχή
min A[1]
για i από 1 µέχρι n
αν A[i] < min τότε
min A[i]
τέλος_αν
τέλος_επανάληψης
Τέλος_∆ιαδικασίας
Χρησιµοποιώντας τα δυο προηγούµενα υποπρογράµµατα να
γράψετε πρόγραµµα που αφού καταχωρήσει στο πίνακα ΒΑΘΜΟΙ
[20] τους βαθµούς 20 µαθητών, να τυπώνει τον µεγαλύτερο βαθµό.
ΑΠΑΝΤΗΣΗ
Α’ τρόπος (χρησιµοποιώντας συνάρτηση)
ΠΑΡΑΤΗΡΗΣΗ
Όταν χρησιµοποιούµε
συνάρτηση, η τιµή που
επιστρέφεται καταχωρείται σε νέα µεταβλητη.
Πρόγραµµα min_βαθµός
Μεταβλητές
ακέραιος : ΒΑΘΜΟΙ[20], i, ελάχιστο
Αρχή
για i από 1 µέχρι 20
διάβασε ΒΑΘΜΟΙ(i)
τέλος_ επανάληψης
ελάχιστο min(ΒΑΘΜΟΙ, 20)
γράψε ελάχιστο
Τέλος_Προγράµµατος
Β’ τρόπος (χρησιµοποιώντας διαδικασία)
Πρόγραµµα min_βαθµός
Μεταβλητές
ακέραιος : ΒΑΘΜΟΙ[20], i, minimum
Αρχή
311
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
για i από 1 µέχρι 20
διάβασε ΒΑΘΜΟΙ(i)
τέλος_
επανάληψης
Όταν χρησιµοποιούµε
διαδικασία, η τιµή που κάλεσε µικρότερο(ΒΑΘΜΟΙ, 20, minimum)
επιστρέφεται καταχω- γράψε minimum
ρείται σε παράµετρο. Τέλος_Προγράµµατος
ΠΑΡΑΤΗΡΗΣΗ
312
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΑΛΥΤΕΣ ΑΣΚΗΣΕΙΣ
1. Σε κάποια εξεταστική δοκιµασία ένα γραπτό αξιολογείται από δύο βαθµολογητές
στη βαθµολογική κλίµακα [0 , 100]. Αν η διαφορά µεταξύ των βαθµολογιών του α΄
και β΄ βαθµολογητή είναι µικρότερη ή ίση των 20 µονάδων της παραπάνω κλίµακας , ο τελικός βαθµός είναι ο µέσος όρος των βαθµολογιών. Αν η διαφορά µεταξύ
των βαθµολογιών του α΄ και β΄ βαθµολογητή είναι µεγαλύτερη από 20 µονάδες , το
γραπτό δίνεται για αναβαθµολόγηση σε τρίτο βαθµολογητή. Ο τελικός βαθµός του
γραπτού προκύπτει τότε από το µέσο όρο των βαθµολογιών.
Να αναπτύξετε πρόγραµµα το οποίο αφού ελέγξει την εγκυρότητα των βαθµών
στην βαθµολογική κλίµακα [0 , 100], να υλοποιεί την παραπάνω διαδικασία εξαγωγής τελικού βαθµού και να εµφανίζει τον τελικό βαθµό του γραπτού στην εικοσαβάθµια κλίµακα.
Παρατήρηση: Να αναπτύξετε διαδικασία για τον έλεγχο ορθότητας των δεδοµένων, καθώς και συνάρτηση που να υπολογίζει µέσο όρο.
2. Να δοθεί πρόγραµµα που να διαβάζει τον µισθό των υπαλλήλων µιας εταιρίας καθώς και την ηλικία τους. Το πρόγραµµα πρέπει να υπολογίζει το µέσο µισθό των
υπαλλήλων και την µέση ηλικία τους. Τέλος αν η µέση ηλικία ξεπερνά τα 50 χρόνια να εµφανίζεται το µήνυµα ‘Χρειάζεται ανανέωση’. Το πρόγραµµα θα σταµατά
αν δοθεί αρνητικός µισθός ή ηλικία . Αυτό το πρόγραµµα θα µπορούσε να απλοποιηθεί αν χρησιµοποιούσαµε κάποιο υποπρόγραµµα; Αν ναι, ποιο θα ήταν αυτό;
3. Να δοθεί πρόγραµµα ( χρησιµοποιώντας συναρτήσεις ) που να υπολογίζει την
παράσταση : Π = ν! / ν κ όπου ν , κ θετικοί ακέραιοι.
4. Ν’ αναπτύξετε συνάρτηση που να επιλύει πλήρως την πρωτοβάθµια εξίσωση
αx+b=0 για α,b <> 0.
5. Ν’ αναπτύξετε διαδικασία που να υλοποιεί την ταξινόµηση της ευθείας ανταλλαγής (φυσαλίδας) για πίνακα ακεραίων καθώς και διαδικασία που να ελέγχει την
ορθότητα των δεδοµένων. Έπειτα και χρησιµοποιώντας τις δυο αυτές διαδικασίες
να αναπτύξετε πρόγραµµα , το οποίο να διαβάζει τον πίνακα pontous ( σε αυτόν
τον πίνακα καταχωρούµε τους πόντους που έχουν πετύχει 10 παίκτες σε 5 αγώνες
µπάσκετ , κάθε γραµµή αντιστοιχεί σε έναν παίκτη και κάθε στήλη σε έναν αγώνα). Στην συνέχεια να καταχωρεί στον πίνακα onomata (µονοδιάστατος 10 θέσεων) τα ονόµατα των παικτών, στον πίνακα sum (µονοδιάστατος 10 θέσεων) τους
συνολικούς πόντους που πέτυχαν και τελικά να εκτυπώνει τα ονόµατα των 3 παικτών που έχουν πετύχει τους περισσότερους πόντους.
313
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
6. Σ’ ένα εργοστάσιο δουλεύουν 500 άνθρωποι. Να γράψετε πρόγραµµα το οποίο:
α)Να καταχωρεί στο πίνακα ΕΡΓΑΤΕΣ[500] τα ονόµατα των 500 εργατών και στο
πίνακα ΕΤΗ[500], τα έτη που γεννήθηκαν.
β)Να υπολογίζει και να καταχωρεί στο πίνακα ΗΛΙΚΙΕΣ[500] τις ηλικίες τους.
γ)Επειδή υπάρχει η υποψία ότι στο εργοστάσιο δουλεύουν ανήλικοι (ηλικία<18), να
αναζητάει αν υπάρχει τέτοια ηλικία εργάτη, να εµφανίζει το όνοµά του, αλλιώς να
εµφανίζει µήνυµα «∆εν υπάρχει παρανοµία».
Παρατήρηση: Να αναπτύξετε υποπρόγραµµα για την συγκεκριµένη αναζήτηση.
δ)Να υπολογίζει κι εµφανίζει τον µέσο όρο ηλικίας των εργατών.
Παρατήρηση: Να αναπτύξετε υποπρόγραµµα για το προηγούµενο ερώτηµα.
7. Να γράψετε πρόγραµµα το οποίο:
α)Να καταχωρεί στο πίνακα ακεραίων ΒΑΘΜΟΙ[20,9] τους βαθµούς 20 µαθητών
σε 9 µαθήµατα (στην 20-βάθµια κλίµακα), στο πίνακα ΜΑΘΗΜΑΤΑ[9] τους τίτλους των 9 µαθηµάτων και τέλος στο πίνακα ΟΝΟΜΑΤΑ[20] τα επώνυµα των 20
µαθητών.
β)Να υπολογίζει και καταχωρεί στο πίνακα ΜΟ[20] στρογγυλοποιηµένους τους
µέσους όρους των µαθητών στα 9 αυτά µαθήµατα.
(η στρογγυλοποίηση να γίνεται χρησιµοποιώντας κατάλληλο υποπρόγραµµα)
γ)Να εµφανίζει ποιοι είναι οι 3 µεγαλύτεροι µέσοι όροι και να εµφανίζει τα επώνυµα των µαθητών που «έβγαλαν» αυτούς τους 3 µέσους όρους.
Παρατήρηση: Να αναπτύξετε υποπρόγραµµα για το προηγούµενο ερώτηµα.
8. Πρόγραµµα τιµές
Μεταβλητές
ακέραιος: Α, Β, βήµα
Αρχή
Α 8
Β -4
Βήµα 2
αρχή_επανάληψης
κάλεσε διαδ(Α, Β, βήµα)
Α 2*Α-5
Β Β+1
γράψε Α, Β
µέχρις_ότου Α<=Β
Τέλος_Προγράµµατος
∆ιαδικασία διαδ(Χ, Υ, Ζ)
Μεταβλητές
ακέραιος: Χ, Υ, Ζ
Αρχή
Χ Χ-Ζ
Υ Υ+Ζ
Τέλος_∆ιαδικασίας
Τι θα εµφανίσει το πρόγραµµα που προηγήθηκε σε κάθε επανάληψη;
314