Δομή Επανάληψης ΟΣΟ στη ΓΛΩΣΣΑ

Εισαγωγή

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

Στόχος αυτού του μαθήματος είναι να κατανοήσετε:

  • Τι είναι η δομή ΟΣΟ.
  • Πώς να χρησιμοποιείτε την εντολή ΟΣΟ...ΕΠΑΝΑΛΑΒΕ.
  • Πώς να κατασκευάζετε βρόχους με άγνωστο αριθμό επαναλήψεων.
  • Πώς να χρησιμοποιείτε τη δομή ΟΣΟ για επανάληψη μέχρι να ικανοποιηθεί μια συνθήκη.

Θεωρία της Δομής ΟΣΟ

Ορισμός

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

Χαρακτηριστικά

  • Συνθήκη: Μια λογική έκφραση που αξιολογείται σε ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
  • Σώμα του Βρόχου: Οι εντολές που εκτελούνται σε κάθε επανάληψη, όσο η συνθήκη είναι αληθής.
  • Τερματισμός: Ο βρόχος τερματίζεται όταν η συνθήκη γίνει ψευδής.
  • Ελάχιστη Εκτέλεση: Ο βρόχος μπορεί να μην εκτελεστεί καθόλου αν η συνθήκη είναι ψευδής από την αρχή.

Χρήσεις

Η δομή ΟΣΟ χρησιμοποιείται για:

  • Επανάληψη ενός συνόλου εντολών μέχρι να ικανοποιηθεί μια συνθήκη.
  • Διαχείριση δεδομένων όπου ο αριθμός των επαναλήψεων δεν είναι γνωστός εκ των προτέρων.
  • Αναμονή για μια συγκεκριμένη κατάσταση (π.χ. ο χρήστης να δώσει μια έγκυρη τιμή).

Παράδειγμα: Ένα πρόγραμμα που διαβάζει αριθμούς μέχρι ο χρήστης να εισάγει το 0:

ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
  ΔΙΑΒΑΣΕ α
  ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σύνταξη της Δομής ΟΣΟ

Βασική Σύνταξη

Η βασική σύνταξη της δομής ΟΣΟ στη ΓΛΩΣΣΑ είναι η ακόλουθη:

ΟΣΟ [Συνθήκη] ΕΠΑΝΑΛΑΒΕ
  [Εντολές]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Όπου:

  • [Συνθήκη]: Μια λογική έκφραση που αξιολογείται σε ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
  • [Εντολές]: Οι εντολές που εκτελούνται σε κάθε επανάληψη, όσο η συνθήκη είναι αληθής.

Παραδείγματα Σύνταξης

Παρακάτω παρουσιάζονται κάποια παραδείγματα σύνταξης:

  • Βασικός Βρόχος:
    ΟΣΟ α < 10 ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ α
      α ← α + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  • Βρόχος με Εισαγωγή Δεδομένων:
    ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
      ΔΙΑΒΑΣΕ α
      ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σημαντικές Λεπτομέρειες

  • Συνθήκη: Η συνθήκη ελέγχεται πριν από κάθε επανάληψη.
  • Τερματισμός: Ο βρόχος τερματίζεται όταν η συνθήκη γίνει ψευδής.
  • Ελάχιστη Εκτέλεση: Αν η συνθήκη είναι ψευδής από την αρχή, ο βρόχος δεν εκτελείται καθόλου.
  • Απειροσ Βρόχος: Προσέξτε να μην δημιουργείτε άπειρους βρόχους (π.χ. ΟΣΟ ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ).

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

Παράδειγμα: Ένα πρόγραμμα που υπολογίζει το άθροισμα των αριθμών από 1 έως 10:

α ← 1
άθροισμα ← 0
ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
  άθροισμα ← άθροισμα + α
  α ← α + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα είναι: ', άθροισμα

Παραδείγματα Δομής ΟΣΟ

Παράδειγμα 1: Εκτύπωση Αριθμών

Ένα πρόγραμμα που εκτυπώνει τους αριθμούς από 1 έως 10:

ΠΡΟΓΡΑΜΜΑ Εκτύπωση_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
  α ← 1
  ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ α
    α ← α + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 2: Άθροισμα Αριθμών

Ένα πρόγραμμα που υπολογίζει το άθροισμα των αριθμών από 1 έως 10:

ΠΡΟΓΡΑΜΜΑ Άθροισμα_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, άθροισμα
ΑΡΧΗ
  α ← 1
  άθροισμα ← 0
  ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
    άθροισμα ← άθροισμα + α
    α ← α + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Το άθροισμα είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 3: Εισαγωγή Δεδομένων

Ένα πρόγραμμα που διαβάζει αριθμούς μέχρι ο χρήστης να εισάγει το 0:

ΠΡΟΓΡΑΜΜΑ Εισαγωγή_Δεδομένων
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
  ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
  ΔΙΑΒΑΣΕ α
  ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Διαβάστηκε ο αριθμός: ', α
    ΓΡΑΨΕ 'Δώσε έναν αριθμό (0 για τερματισμό): '
    ΔΙΑΒΑΣΕ α
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Τερματισμός προγράμματος.'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 4: Υπολογισμός Γινομένου

Ένα πρόγραμμα που υπολογίζει το γινόμενο των αριθμών από 1 έως 10:

ΠΡΟΓΡΑΜΜΑ Γινόμενο_Αριθμών
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, γινόμενο
ΑΡΧΗ
  α ← 1
  γινόμενο ← 1
  ΟΣΟ α <= 10 ΕΠΑΝΑΛΑΒΕ
    γινόμενο ← γινόμενο * α
    α ← α + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Το γινόμενο είναι: ', γινόμενο
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 5: Εύρεση Μέγιστου

Ένα πρόγραμμα που διαβάζει 10 αριθμούς και βρίσκει τον μέγιστο:

ΠΡΟΓΡΑΜΜΑ Εύρεση_Μέγιστου
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, α, μέγιστος
ΑΡΧΗ
  μέγιστος ← -1000000
  i ← 1
  ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Δώσε τον ', i, '-οστό αριθμό: '
    ΔΙΑΒΑΣΕ α
    ΑΝ α > μέγιστος ΤΟΤΕ
      μέγιστος ← α
    ΤΕΛΟΣ_ΑΝ
    i ← i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Ο μέγιστος αριθμός είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ασκήσεις

Άσκηση 1: Εκτύπωση Αριθμών

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να εκτυπώνει τους αριθμούς από 1 έως 20 χρησιμοποιώντας τη δομή ΟΣΟ.

Άσκηση 2: Άθροισμα Αριθμών

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να υπολογίζει και να εκτυπώνει το άθροισμα των αριθμών από 1 έως 100 χρησιμοποιώντας τη δομή ΟΣΟ.

Άσκηση 3: Εισαγωγή Δεδομένων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει αριθμούς από τον χρήστη μέχρι να εισαχθεί ο αριθμός 0 και να εκτυπώνει το άθροισμά τους.

Άσκηση 4: Υπολογισμός Γινομένου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να υπολογίζει και να εκτυπώνει το γινόμενο των αριθμών από 1 έως 10 χρησιμοποιώντας τη δομή ΟΣΟ.

Άσκηση 5: Εύρεση Μέγιστου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 20 αριθμούς και να βρίσκει και να εκτυπώνει τον μέγιστο.

Άσκηση 6: Εύρεση Ελαχίστου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 15 αριθμούς και να βρίσκει και να εκτυπώνει τον ελάχιστο.

Άσκηση 7: Μέσος Όρος

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει αριθμούς από τον χρήστη μέχρι να εισαχθεί ο αριθμός -1 και να υπολογίζει και να εκτυπώνει τον μέσο όρο των αριθμών που εισήχθησαν.

Άσκηση 8: Υπολογισμός Δυνάμεων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει έναν αριθμό και να υπολογίζει και να εκτυπώνει τις δυνάμεις του από 1 έως 5 χρησιμοποιώντας τη δομή ΟΣΟ.