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

Εισαγωγή

Η μετατροπή μεταξύ των δομών επανάληψης (ΓΙΑ, ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ) είναι μια σημαντική δεξιότητα στον προγραμματισμό, καθώς επιτρέπει την προσαρμογή του κώδικα σε διαφορετικές καταστάσεις. Κάθε δομή έχει τα δικά της χαρακτηριστικά και χρήσεις, και η κατανόηση του πώς να μετατρέπετε την μία στην άλλη βοηθά στη βελτιστοποίηση και την ευελιξία του κώδικα.

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

  • Πώς να μετατρέπετε έναν βρόχο ΟΣΟ σε ΓΙΑ.
  • Πώς να μετατρέπετε έναν βρόχο ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ.
  • Πώς να μετατρέπετε έναν βρόχο ΓΙΑ σε ΟΣΟ.
  • Πώς να μετατρέπετε έναν βρόχο ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ (μέσω ΟΣΟ).
  • Πώς να μετατρέπετε έναν βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ.
  • Πώς να μετατρέπετε έναν βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ (μέσω ΟΣΟ).

Μετατροπή ΟΣΟ σε ΓΙΑ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΟΣΟ σε ΓΙΑ, πρέπει να:

  1. Βεβαιωθείτε ότι ο βρόχος ΟΣΟ έχει μια μεταβλητή ελέγχου που αυξάνεται ή μειώνεται με σταθερό βήμα.
  2. Βεβαιωθείτε ότι η συνθήκη του βρόχου ΟΣΟ μπορεί να εκφραστεί ως μια σύγκριση της μεταβλητής ελέγχου με μια τελική τιμή.
  3. Γράψτε τον βρόχο ΓΙΑ χρησιμοποιώντας την αρχική τιμή, την τελική τιμή και το βήμα της μεταβλητής ελέγχου.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΟΣΟ):

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΓΙΑ:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΟΣΟ):

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΓΙΑ:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΜΕ ΒΗΜΑ 2
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σημείωση: Δεν είναι πάντα δυνατή η μετατροπή ενός βρόχου ΟΣΟ σε ΓΙΑ, καθώς η συνθήκη του βρόχου ΟΣΟ μπορεί να μην είναι γραμμική ή να εξαρτάται από πολλαπλές μεταβλητές.

Μετατροπή ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ, πρέπει να:

  1. Αντιστρέψετε τη συνθήκη του βρόχου ΟΣΟ.
  2. Βεβαιωθείτε ότι οι εντολές μέσα στο βρόχο ΟΣΟ ενημερώνουν την μεταβλητή ελέγχου έτσι ώστε η συνθήκη να γίνει αληθής σε κάποιο σημείο.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΟΣΟ):

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΜΕΧΡΙΣ_ΟΤΟΥ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΟΣΟ):

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΜΕΧΡΙΣ_ΟΤΟΥ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 20
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σημείωση: Η μετατροπή από ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ είναι δυνατή μόνο αν ο βρόχος ΟΣΟ εκτελείται τουλάχιστον μία φορά.

Μετατροπή ΓΙΑ σε ΟΣΟ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΓΙΑ σε ΟΣΟ, πρέπει να:

  1. Δηλώσετε την μεταβλητή ελέγχου πριν τον βρόχο ΟΣΟ.
  2. Αρχικοποιήσετε την μεταβλητή ελέγχου με την αρχική τιμή του βρόχου ΓΙΑ.
  3. Γράψτε την συνθήκη του βρόχου ΟΣΟ βάσει της τελικής τιμής και του βήματος του βρόχου ΓΙΑ.
  4. Ενημερώσετε την μεταβλητή ελέγχου μέσα στο σώμα του βρόχου ΟΣΟ σύμφωνα με το βήμα του βρόχου ΓΙΑ.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΓΙΑ):

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΓΙΑ):

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΜΕ ΒΗΜΑ 2
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 3: Φθίνων Βρόχος

Αρχικός Κώδικας (ΓΙΑ):

ΓΙΑ i ΑΠΟ 10 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΟΣΟ:

i ← 10
ΟΣΟ i >= 1 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i - 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ, πρέπει να:

  1. Πρώτα μετατρέψτε τον βρόχο ΓΙΑ σε ΟΣΟ.
  2. Έπειτα μετατρέψτε τον βρόχο ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ αντιστρέφοντας τη συνθήκη.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΓΙΑ):

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 1: Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 2: Μετατροπή σε ΜΕΧΡΙΣ_ΟΤΟΥ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΓΙΑ):

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΜΕ ΒΗΜΑ 2
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 1: Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 2: Μετατροπή σε ΜΕΧΡΙΣ_ΟΤΟΥ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 20
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ, πρέπει να:

  1. Αντιστρέψετε τη συνθήκη του βρόχου ΜΕΧΡΙΣ_ΟΤΟΥ.
  2. Βεβαιωθείτε ότι οι εντολές μέσα στο βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ ενημερώνουν την μεταβλητή ελέγχου έτσι ώστε η συνθήκη να γίνει ψευδής σε κάποιο σημείο.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΜΕΧΡΙΣ_ΟΤΟΥ):

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΜΕΧΡΙΣ_ΟΤΟΥ):

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 20
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σημείωση: Η μετατροπή από ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ είναι δυνατή μόνο αν ο βρόχος ΜΕΧΡΙΣ_ΟΤΟΥ εκτελείται τουλάχιστον μία φορά και η συνθήκη μπορεί να εκφραστεί ως το αντίθετο μιας συνθήκης που ελέγχεται στην αρχή.

Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ

Βασική Αρχή

Για να μετατρέψετε έναν βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ, πρέπει να:

  1. Πρώτα μετατρέψτε τον βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ.
  2. Έπειτα μετατρέψτε τον βρόχο ΟΣΟ σε ΓΙΑ, εφόσον είναι γνωστός ο αριθμός των επαναλήψεων.

Παράδειγμα 1: Βασική Μετατροπή

Αρχικός Κώδικας (ΜΕΧΡΙΣ_ΟΤΟΥ):

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 1: Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 2: Μετατροπή σε ΓΙΑ:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειγμα 2: Με Βήμα

Αρχικός Κώδικας (ΜΕΧΡΙΣ_ΟΤΟΥ):

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 20
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 1: Μετατροπή σε ΟΣΟ:

i ← 1
ΟΣΟ i <= 20 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Βήμα 2: Μετατροπή σε ΓΙΑ:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΜΕ ΒΗΜΑ 2
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Σημείωση: Η μετατροπή από ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ είναι δυνατή μόνο αν ο αριθμός των επαναλήψεων είναι γνωστός εκ των προτέρων.

Ασκήσεις

Άσκηση 1: Μετατροπή ΟΣΟ σε ΓΙΑ

Να μετατρέψετε τον ακόλουθο βρόχο ΟΣΟ σε ΓΙΑ:

i ← 5
ΟΣΟ i <= 15 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 2: Μετατροπή ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ

Να μετατρέψετε τον ακόλουθο βρόχο ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ:

i ← 3
ΟΣΟ i <= 12 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ i * 2
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 3: Μετατροπή ΓΙΑ σε ΟΣΟ

Να μετατρέψετε τον ακόλουθο βρόχο ΓΙΑ σε ΟΣΟ:

ΓΙΑ i ΑΠΟ 10 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 4: Μετατροπή ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ

Να μετατρέψετε τον ακόλουθο βρόχο ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 8
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 5: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ

Να μετατρέψετε τον ακόλουθο βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 7
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 6: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ

Να μετατρέψετε τον ακόλουθο βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ:

i ← 5
ΜΕΧΡΙΣ_ΟΤΟΥ i > 15
  ΓΡΑΨΕ i
  i ← i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 7: Σύνθετη Μετατροπή

Να μετατρέψετε τον ακόλουθο βρόχο ΓΙΑ σε ΜΕΧΡΙΣ_ΟΤΟΥ:

ΓΙΑ i ΑΠΟ 20 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -2
  ΓΡΑΨΕ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Άσκηση 8: Μετατροπή με Σύνθετες Συνθήκες

Να μετατρέψετε τον ακόλουθο βρόχο ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ:

i ← 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10
  ΓΡΑΨΕ i
  i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ