ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ

(Γ) Ανάπτυξη Εφαρμογών

εβδ 10

Ύλη - Στόχοι

Μέγιστος / Ελάχιστος ένας 3ος τρόπος. Γενίκευση.

Ένας 3ος τρόπος εύρεσης μέγιστου/ελάχιστου με χρήση ΓΙΑ και ΑΝ για να ξεχωρίσουμε την 1η τιμή από τις υπόλοιπες. Γενίκευση αυτού σε άγνωστο αριθμό επαναλήψεων με χρήση σημαίας.

Ο τρόπος παρουσιάζεται στους αλγορίθμους που θα πρέπει να εκτυπώσεις και να έχεις μαζί σου στον σύνδεσμο: τριάδες αλγορίθμων

Μετατροπές

Να γνωρίζω ότι από ΟΣΟ σε ΜΕΧΡΙΣ_ΌΤΟΥ και αντίστροφα γίνεται πάντα. Απο ΟΣΟ ή ΜΕΧΡΙΣ_ΌΤΟΥ σε ΓΙΑ μπορεί να μην γίνεται. Απο ΓΙΑ σε ΟΣΟ ή ΜΕΧΡΙΣ_ΟΤΟΥ γίνεται πάντα.

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

Να μπορώ να μετατρέψω απο διάγραμμα σε κώδικα και αντίστροφα.

Ασκήσεις

Και αυτή την εβδομάδα συνεχίζουμε με ασκήσεις. Αυτή την εβδομάδα μπορείτε να λύσετε και τις ίδιες ασκήσεις με χρήση της άλλης δομής επανάληψης (αν τις λύσατε με ΜΕΧΡΙΣ_ΟΤΟΥ δοκιμάστε με ΟΣΟ ή αντίστροφα).

Αυτή την εβδομάδα θα πρέπει να είστε έτοιμοι για ολόκληρο Θέμα Γ πανελληνίων και πιο δύσκολα θέματα πανελληνίων με μετρήσεις επαναλήψεων και διαγράμματα ροής.

Βιβλίο 3: 3.5, 3.6, 3.7

Μετατροπές

Πολύ συχνά θα μας ζητηθεί να μετατρέψουμε από ένα είδος επανάληψης σε άλλη. Ας δούμε μερικές τεχνικές.

Άσκηση μετατροπής (πανελληνίων)

[Παν. 2021] Α3. Δίνεται το παρακάτω τμήμα προγράμματος σε ΓΛΩΣΣΑ:
Κάνε κλίκ στον κώδικα για αντιγραφή
ΔΙΑΒΑΣΕ α
β <- 1
OΣΟ α <= 5 EΠΑΝΑΛΑΒΕ
  β <- β + α
  ΔΙΑΒΑΣΕ α
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να μετατραπεί σε ισοδύναμο με χρήση της εντολής ΜΕΧΡΙΣ_ΟΤΟΥ.

Ασκήσεις Υπολογισμών

Βασισμένοι στις ασκήσεις μετρήσεων επαναλήψεων του βιβλίου 3 (σ56, 57) μπορείτε να δοκιμάσετε ασκήσεις πανελληνίων

Δύο min/max (για προχωρημένους)

Εκφώνηση
Σε μια αρχαιολογική ανασκαφή το κάθε εύρημα καταγράφεται ανάλογα με το βάρος. Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που :
α) Για κάθε εύρημα να διαβάζει το βάρος σε γραμμάρια (ακέραια θετική) μέχρι να εισαχθεί μηδενικό βάρος
β) Να υπολογίζει και να εμφανίζει το βάρος των 2 ελαφρύτερων και του βαρύτερου δείγματος

Προσοχή στην λύση
Για να λυθεί η άσκηση όπως πρέπει (βιβλίο 3, σελ. 51) θα ορίσουμε το max ← -1 εφόσον γνωρίζουμε την μικρότερη δυνατή τιμή, όμως για τα min1 και min2 εφόσον δεν υπάρχει μεγαλύτερη δυνατή τιμή τα ορίζουμε ως min1 ← β και min2 ← β.
(εδώ αποφεύγουμε λύσεις που δεν υπάρχουν στα βιβλία όπως min1 <- 10^10)

Στο υπόλοιπο πρόγραμμα και ενώ το max αντικαθίσταται κανονικά όπως στο βιβλίο, τα min1 και min2 αντικαθιστώνται είτε μεταξύ τους, είτε μόνο το min2.

Δες την παρακάτω λύση στο Διερμηνευτη και προσπάθησε να την καταλάβεις μόνη/ος σου. και δοκίμασε π.χ. τις τιμές 5, 6, 7, 0, ύστερα τις τιμές 7, 6, 5, 0 και τέλος για τιμές 5, 7, 6, 0 παρατηρώντας σε εκτέλεση βήμα-βήμα τι συμβαίνει στην μνήμη.

Πρόσεξε το σημείο που λέει Η μιν1 = μιν2. Διέγραψε τον κομμάτι αυτό και ξαναδοκίμασε τις παραπάνω τιμές. Θα υπήρχε η ανάγκη του κώδικα αυτού αν στο παράδειγμα ψάχναμε τα 2 max αντί για 2 min;

Αν δεν κατάλαβες τα παραπάνω απλά απομνημόνευσε το κομμάτι που αφορά τα 2 min.

Κάνε κλίκ στον κώδικα για αντιγραφή

ΠΡΟΓΡΑΜΜΑ ευρήματα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: β, μαξ, μιν1, μιν2, ι
ΑΡΧΗ
  ΔΙΑΒΑΣΕ β
  μαξ <- -1
  μιν1 <- β
  μιν2 <- β
  ΟΣΟ β <> 0 ΕΠΑΝΑΛΑΒΕ
    ΑΝ β > μαξ ΤΟΤΕ
      μαξ <- β
    ΤΕΛΟΣ_ΑΝ
    ΑΝ β < μιν1 ΤΟΤΕ
      μιν2 <- μιν1
      μιν1 <- β
    ΑΛΛΙΩΣ_ΑΝ β < μιν2 Η μιν1 = μιν2 ΤΟΤΕ
      μιν2 <- β
    ΤΕΛΟΣ_ΑΝ
    ΔΙΑΒΑΣΕ β
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ μιν1, μιν2, μαξ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ασκήσεις

Και αυτή την εβδομάδα συνεχίζουμε να λύνουμε ασκήσεις στις δομές επανάληψης:

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

Βιβλίο 3
Αν δεν το έκανες ήδη, να μελετήσεις τα λυμένα παραδείγματα απο τα κεφάλαια 3.5, 3.6.

Να συνεχίσεις με τις υπόλοιπες ασκήσεις του βιβλίου 3 (κεφ. 3.7, σ.59)

Να λύσεις τις επιπλέον ασκήσεις που έχω αναρτήσει εδώ.

Μπορείς να στείλεις μέσω email λύσεις δικών σου ασκήσεων και θα προσπαθήσω να τις παρουσιάσω στην τάξη.
εβδ 10