Μετατροπές Δομές επανάληψης

Ξεκίνησε από Λαμπράκης Μανώλης, 07 Οκτ 2013, 10:14:53 ΠΜ

« προηγούμενο - επόμενο »

Λαμπράκης Μανώλης

Καλημέρα σε όλους

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

Διάβασε λ
κ<--0
Αρχή_επανάληψης
    εμφάνισε κ
     κ<-- κ+1
Μεχρις_ότου κ>λ

αν θέλουμε να την μετρέψουμε σε Όσο που να εκτελεί τις ίδιες λειτουργίες τότε για να διασφαλίσουμε πως οι εντολές του βρόγχου της όσο θα εκτελεστεί μία φορά, τον τοποθετούμε έξω από την Όσο τις εντολές του βρόγχου για μία επανάληψη

Διάβασε λ
κ<--0
εμφάνισε κ
κ<--κ+1
Όσο κ<=λ επανάλαβε
   εμφάνισε κ
     κ<-- κ+1
Τέλος_επανάληψης


ένας μαθητής μου πρότυνε το εξής

διάβασε λ
κ<--0
Αν κ>λ τότε
   εμφάνισε κ
   κ<--κ+1
Αλλιώς
Όσο κ<=λ επανάλαβε
   εμφάνισε κ
     κ<-- κ+1
Τέλος_επανάληψης

δηλαδή αν κάνει μία επανάληψη αν η η συνθήκη είναι τέτοια ώστε να μην μπει καθόλου στο Όσο, αλλιώς να εκτελεστεί κανονικά

Ουσιαστικά αν δεν κάνω λάθος το ίδιο είνια, απλά η δομή Αν μου φαίνεται κάπως "περιττή", καθώς ουσιαστικά με την μία επανάληψη εκτός μεταβάλεται έτσι ο μετρητής της συνθήκης που δεν χρειάζεται να ελέγξουμε κάτι παραπάνω

Σωστά τα σκέφτομαι, ή μήπως υπάρχει κάποια περίπτωση που δεν καλύπτεται με την χρήση της Αν ???

petrosp13

Αν το κ είναι μεγαλύτερο του λ, τότε θα ισχύσει το Αν και δεν θα γίνει Επανάληψη Όσο
Το ίδιο θα γινόταν και χωρίς την δομή Αν
Άρα, η δομή Αν είναι περιττή

Αφού οι συνθήκες του Αν και του Όσο είναι οι ακριβώς αντίθετες, δεν υπάρχει πρόβλημα
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Λαμπράκης Μανώλης

ωραία, συμφωνούμε πως είναι περιττή, δεν είναι όμως και λάθος έτσι ?? δηλαδή ουσιαστικά σωτή είναι σαν υλοποίηση, απλά το αν είναι περιττό, και "εγκυμονεί τον κίνδυνο" να γίνει και κανένα λάθος στην συνθήκη...

petrosp13

Είναι περιττός έλεγχος
Αντίστοιχο παράδειγμα:
Αν (χ <= 20) τότε
      .....
Αλλιώς_Αν (χ > 20) και ....

Δεν είναι τόσο προφανές φυσικά, απλά με δεύτερη σκέψη καταλαβαίνεις ότι ο έλεγχος είναι περιττός
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής