Σήμερα έπεσε στο μάτι μου η δραστηριότητα ΔΤ1 από το
κεφάλαιο 6 (σελίδα 58)του τετραδίου μαθητή.
Στην άσκηση αυτή μετατρέπεται ενα τμήμα αλγορίθμου με GOTO σε
αντίστοιχο τμήμα δομημένου προγραμματισμού...
Μια λύση που σκέφτομαι είναι η εξής:
ΟΣΟ συνθήκη 1 και ΟΧΙ (συνθήκη 3) ΕΠΑΝΑΛΑΒΕ
ΕΝΤΟΛΗ 2
ΕΝΤΟΛΗ 5
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΕΝΤΟΛΗ 4
Αλλά όσο την κοιτάω, τόσο λάθος μου φαίνεται...
Γιατί η ΕΝΤΟΛΗ 2 πρέπει να εκτελείται μόνο στην περίπτωση που ισχύει η συνθήκη 2, ανεξάρτητα από το
αν ισχύει η συνθήκη 3....
Αλλά... δεν μου έρχεται κάποια λύση στο μυαλό....
Μήπως μπορεί κανείς να βοηθήσει???
Για να γίνω πιο σαφής αναρτώ και την εκφώνηση:
ΑΡΧΗ
ΟΣΟ συνθήκη 1 ΕΠΑΝΑΛΑΒΕ
ΕΝΤΟΛΗ 2
ΑΝ συνθήκη 3 ΤΟΤΕ
ΕΝΤΟΛΗ 4
ΠΗΓΑΙΝΕ ΣΤΟ ΤΕΛΟΣ ! Σημείο 1
ΑΛΛΙΩΣ
ΕΝΤΟΛΗ 5
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ
Και μόλις τώρα βρήκα το παρακάτω .pdf που προτείνει σαν λύση την ακόλουθη:
1) Στο σημείο 1 απλά να γίνεται η συνθήκη 1 ψευδής!!!
Όμως τότε δεν πηγαίνει στο ΤΕΛΟΣ!!!!!!!!!!!!!!!
Πηγαίνει ξανά στην ΟΣΟ, όπου η αντίστοιχη συνθήκη είναι ψευδής και τότε πηγαίνει στο ΤΕΛΟΣ!!!!!!!!!!!!
Άσκηση "ταμάμ" για τις φετινές εξετάσεις!!!!!!!!!!!!!!!!
Το .pdf που βρήκα είναι:
http://users.hol.gr/~ddriggas/Lyseis.pdf
Αν και θεωρώ εντελώς άστοχο ένα τέτοιο θέμα (και είχε προκαλέσει σαματά όταν είχε πέσει), ο κώδικας είναι φτυστός η σειριακή αναζήτηση που έχει το βιβλίο. Δες από εκεί την ιδέα και παίξε με τη λογική μεταβλητή.
gpapargi εννοείς την άσκηση με τα βήματα που ήταν το παράδειγμα στο πλαίσιο με την goto στο σχολικό??
Το ότι πηγαίνει στο ΟΣΟ και μετά στο ΤΕΛΟΣ δεν είναι πρόβλημα. Αφού τη συνθήκη στο ΟΣΟ θα τη βρεί έτσι και αλλιώς ψευδή.
Εξάλλου αυτό που θέλουμε βασικά είναι να τελειώσει ο κώδικας. Τώρα αν πριν πάει στο τέλος κάνει έλεγχο και μιας συνθήκης δεν είναι σημαντικό. Ίσως να θέλει λίγο φτιάξιμο η εκφώνηση αλλά νομίζω πως τα πράγματα είναι ξεκάθαρα.
Κι εγώ στην αρχή το flag σκέφτηκα, αλλά το flag προυποθέτει μια επιπλέον συνθήκη
στην επανάληψη, κι όχι μόνο τη συνθήκη 1!
Ευχαριστώ πολύ!
Το μόνο που μένει είναι να δούμε τι θέματα θα μας βάλουν!
τη λύση αυτή δίνει και η συγγραφική ομάδα στο βιβλίο καθηγητή
http://pi-schools.sch.gr/download/lessons/computers/lykeio/books/anap_bk/Kef6.zip
Παράθεση από: m.k. στις 20 Μαΐου 2011, 08:38:14 ΜΜ
ΑΡΧΗ
ΟΣΟ συνθήκη 1 ΕΠΑΝΑΛΑΒΕ
ΕΝΤΟΛΗ 2
ΑΝ συνθήκη 3 ΤΟΤΕ
ΕΝΤΟΛΗ 4
ΠΗΓΑΙΝΕ ΣΤΟ ΤΕΛΟΣ ! Σημείο 1
ΑΛΛΙΩΣ
ΕΝΤΟΛΗ 5
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ
Και μόλις τώρα βρήκα το παρακάτω .pdf που προτείνει σαν λύση την ακόλουθη:
1) Στο σημείο 1 απλά να γίνεται η συνθήκη 1 ψευδής!!!
όμως η λύση που προτείνει ο Γιώργος (με τη χρήση λογικής μεταβλητής) είναι σαφώς καλύτερη και πιο συνεπής. Αναδεικνύει και τη φύση και χρήση των λογικών μεταβλητών
Αυτή η άσκηση δεν μου φαίνεται και πολύ σωστή. Δεν μπορεί ακριβώς μετά το αρχή του αλγόριθμου να υπάρχει η δομή όσο.
οκ Κώστα έχεις δίκιο
όμως και να υπήρχε άλλη μια γραμμή πριν το Όσο π.χ. ως εντολή1
δε θα άλλαζε κάτι
Όχι βέβαια δεν θα άλλαζε κάτι, αλλά έπρεπε να υπάρχει.