Α. Γράψτε διαδικασία Δυο_Στοιχεία η οποία δέχεται
ως παράμετρο έναν πραγματικό πίνακα Α[30] και μια
λογική τιμή Β και υπολογίζει:
* τα δύο μεγαλύτερα στοιχεία του Α, αν Β = ΑΛΗΘΗΣ,
* τα δύο μικρότερα στοιχεία του Α, αν Β = ΨΕΥΔΗΣ.
Β. Γράψτε πρόγραμμα το οποίο:
1) διαβάζει 30 πραγματικές τιμές και τις καταχωρεί
στον πίνακα Α,
2) διαβάζει μια λογική τιμή Β,
3) καλεί τη διαδικασία Δυο_Στοιχεία,
4) υπολογίζει και εμφανίζει το μέσο όρο (ΜΟ) των δύο
αποτελεσμάτων της διαδικασίας,
5) αν αυτός ο μέσος όρος είναι μεγαλύτερος από 110,
υπολογίζει και εμφανίζει το πλήθος των στοιχείων
του πίνακα που είναι μη μηδενικά.
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: κ, Πληθ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[30], ΜΟ, ΑΠ1, ΑΠ2
ΛΟΓΙΚΕΣ: Β
ΑΡΧΗ
ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
ΔΙΑΒΑΣΕ Α[κ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Β
ΚΑΛΕΣΕ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
ΜΟ <-- (ΑΠ1+ΑΠ2)/2
ΓΡΑΨΕ ΜΟ
ΑΝ ΜΟ > 110 ΤΟΤΕ
Πληθ <-- 0
ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
ΑΝ Α[κ] < > 0 ΤΟΤΕ
Πληθ <-- Πληθ+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Πληθ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[30], ΑΠ1, ΑΠ2, ΒΟΗΘ
ΛΟΓΙΚΕΣ: Β
ΑΚΕΡΑΙΕΣ: Κ, Λ
ΑΡΧΗ
ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 30
ΓΙΑ Λ ΑΠΟ 30 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
ΑΝ Α[Λ-1] > Α[Λ] ΤΟΤΕ
ΒΟΗΘ <-- Α[Λ-1]
Α[Λ-1] <-- Α[Λ]
Α[Λ] <-- ΒΟΗΘ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Β ΤΟΤΕ
ΑΠ1 <-- Α[30]
ΑΠ2 <-- Α[29]
ΑΛΛΙΩΣ
ΑΠ1 <-- Α[1]
ΑΠ2 <-- Α[2]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ως παράμετρο έναν πραγματικό πίνακα Α[30] και μια
λογική τιμή Β και υπολογίζει:
* τα δύο μεγαλύτερα στοιχεία του Α, αν Β = ΑΛΗΘΗΣ,
* τα δύο μικρότερα στοιχεία του Α, αν Β = ΨΕΥΔΗΣ.
Β. Γράψτε πρόγραμμα το οποίο:
1) διαβάζει 30 πραγματικές τιμές και τις καταχωρεί
στον πίνακα Α,
2) διαβάζει μια λογική τιμή Β,
3) καλεί τη διαδικασία Δυο_Στοιχεία,
4) υπολογίζει και εμφανίζει το μέσο όρο (ΜΟ) των δύο
αποτελεσμάτων της διαδικασίας,
5) αν αυτός ο μέσος όρος είναι μεγαλύτερος από 110,
υπολογίζει και εμφανίζει το πλήθος των στοιχείων
του πίνακα που είναι μη μηδενικά.
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: κ, Πληθ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[30], ΜΟ, ΑΠ1, ΑΠ2
ΛΟΓΙΚΕΣ: Β
ΑΡΧΗ
ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
ΔΙΑΒΑΣΕ Α[κ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Β
ΚΑΛΕΣΕ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
ΜΟ <-- (ΑΠ1+ΑΠ2)/2
ΓΡΑΨΕ ΜΟ
ΑΝ ΜΟ > 110 ΤΟΤΕ
Πληθ <-- 0
ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
ΑΝ Α[κ] < > 0 ΤΟΤΕ
Πληθ <-- Πληθ+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Πληθ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[30], ΑΠ1, ΑΠ2, ΒΟΗΘ
ΛΟΓΙΚΕΣ: Β
ΑΚΕΡΑΙΕΣ: Κ, Λ
ΑΡΧΗ
ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 30
ΓΙΑ Λ ΑΠΟ 30 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
ΑΝ Α[Λ-1] > Α[Λ] ΤΟΤΕ
ΒΟΗΘ <-- Α[Λ-1]
Α[Λ-1] <-- Α[Λ]
Α[Λ] <-- ΒΟΗΘ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Β ΤΟΤΕ
ΑΠ1 <-- Α[30]
ΑΠ2 <-- Α[29]
ΑΛΛΙΩΣ
ΑΠ1 <-- Α[1]
ΑΠ2 <-- Α[2]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου