Η δομή επανάληψης ΟΣΟ στη ΓΛΩΣΣΑ επιτρέπει στο πρόγραμμα να εκτελεί ένα σύνολο εντολών εφόσον μια συνθήκη είναι αληθής. Αυτή η δομή είναι ιδιαίτερα χρήσιμη όταν δεν γνωρίζουμε εκ των προτέρων πόσες φορές θα εκτελεστούν οι εντολές, αλλά ξέρουμε ότι πρέπει να συνεχίζουν να εκτελούνται όσο μια συνθήκη ικανοποιείται.
Στόχος αυτού του μαθήματος είναι να κατανοήσετε:
Η δομή ΟΣΟ είναι μια δομή επανάληψης που χρησιμοποιείται για να εκτελεί ένα σύνολο εντολών εφόσον μια συνθήκη είναι αληθής. Ο βρόχος συνεχίζει να εκτελείται μέχρι η συνθήκη να γίνει ψευδής.
Η δομή ΟΣΟ χρησιμοποιείται για:
Παράδειγμα: Ένα πρόγραμμα που διαβάζει αριθμούς μέχρι ο χρήστης να εισάγει το 0:
ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): ' ΔΙΑΒΑΣΕ α ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Η βασική σύνταξη της δομής ΟΣΟ στη ΓΛΩΣΣΑ είναι η ακόλουθη:
ΟΣΟ [Συνθήκη] ΕΠΑΝΑΛΑΒΕ [Εντολές] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Όπου:
Παρακάτω παρουσιάζονται κάποια παραδείγματα σύνταξης:
ΟΣΟ α < 10 ΕΠΑΝΑΛΑΒΕ ΓΡΑΨΕ α α ← α + 1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): ' ΔΙΑΒΑΣΕ α ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Σημείωση: Για να αποφύγετε έναν άπειρο βρόχο, βεβαιωθείτε ότι η συνθήκη θα γίνει ψευδής σε κάποιο σημείο.
Παράδειγμα: Ένα πρόγραμμα που υπολογίζει το άθροισμα των αριθμών από 1 έως 10:
α ← 1 άθροισμα ← 0 ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ άθροισμα ← άθροισμα + α α ← α + 1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'Το άθροισμα είναι: ', άθροισμα
Ένα πρόγραμμα που εκτυπώνει τους αριθμούς από 1 έως 10:
ΠΡΟΓΡΑΜΜΑ Εκτύπωση_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
α ← 1
ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ α
α ← α + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που υπολογίζει το άθροισμα των αριθμών από 1 έως 10:
ΠΡΟΓΡΑΜΜΑ Άθροισμα_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, άθροισμα
ΑΡΧΗ
α ← 1
άθροισμα ← 0
ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
άθροισμα ← άθροισμα + α
α ← α + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που διαβάζει αριθμούς μέχρι ο χρήστης να εισάγει το 0:
ΠΡΟΓΡΑΜΜΑ Εισαγωγή_Δεδομένων
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
ΔΙΑΒΑΣΕ α
ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α
ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
ΔΙΑΒΑΣΕ α
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Τερματισμός προγράμματος.'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που υπολογίζει το γινόμενο των αριθμών από 1 έως 10:
ΠΡΟΓΡΑΜΜΑ Γινόμενο_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, γινόμενο
ΑΡΧΗ
α ← 1
γινόμενο ← 1
ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
γινόμενο ← γινόμενο * α
α ← α + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το γινόμενο είναι: ', γινόμενο
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που διαβάζει 10 αριθμούς και βρίσκει τον μέγιστο:
ΠΡΟΓΡΑΜΜΑ Εύρεση_Μέγιστου
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, α, μέγιστος
ΑΡΧΗ
μέγιστος ← -1000000
i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ 'Δώσε τον ', i, '-οστό αριθμό: '
ΔΙΑΒΑΣΕ α
ΑΝ α > μέγιστος ΤΟΤΕ
μέγιστος ← α
ΤΕΛΟΣ_ΑΝ
i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Ο μέγιστος αριθμός είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να εκτυπώνει τους αριθμούς από 1 έως 20 χρησιμοποιώντας τη δομή ΟΣΟ.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να υπολογίζει και να εκτυπώνει το άθροισμα των αριθμών από 1 έως 100 χρησιμοποιώντας τη δομή ΟΣΟ.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει αριθμούς από τον χρήστη μέχρι να εισαχθεί ο αριθμός 0 και να εκτυπώνει το άθροισμά τους.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να υπολογίζει και να εκτυπώνει το γινόμενο των αριθμών από 1 έως 10 χρησιμοποιώντας τη δομή ΟΣΟ.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 20 αριθμούς και να βρίσκει και να εκτυπώνει τον μέγιστο.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 15 αριθμούς και να βρίσκει και να εκτυπώνει τον ελάχιστο.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει αριθμούς από τον χρήστη μέχρι να εισαχθεί ο αριθμός -1 και να υπολογίζει και να εκτυπώνει τον μέσο όρο των αριθμών που εισήχθησαν.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει έναν αριθμό και να υπολογίζει και να εκτυπώνει τις δυνάμεις του από 1 έως 5 χρησιμοποιώντας τη δομή ΟΣΟ.