Γενικό Λύκειο > Εξετάσεις 2018-2019

Θέμα 4

(1/2) > >>

evry:
Εδώ σχολιάζουμε το θέμα 4

marvic:
Πολύ απλό Θέμα Δ...

progmat:

--- Κώδικας: ---ΠΡΟΓΡΑΜΜΑ ΘΕΜΑΔ_2019
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΒΑΘ[40, 6], Ι, Κ, ΚΩΔ, ΠΡ, Β, ΣΒ[40], Τ1
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[40], ΑΠ, Τ2

ΑΡΧΗ

  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 40
    ΔΙΑΒΑΣΕ ΟΝ[Ι]
    ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 6
      ΔΙΑΒΑΣΕ ΒΑΘ[Ι, Κ]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ ΚΩΔ, ΠΡ, Β
    ΑΝ Β > ΒΑΘ[ΚΩΔ, ΠΡ] ΤΟΤΕ
      ΒΑΘ[ΚΩΔ, ΠΡ] <- Β
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ 'ΥΠΑΡΧΕΙ ΝΕΑ ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ; ΝΑΙ / ΟΧΙ'
    ΔΙΑΒΑΣΕ ΑΠ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ = 'ΟΧΙ'
  ΚΑΛΕΣΕ ΥΣΒ(ΒΑΘ, ΣΒ)
 
  ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 40
    ΓΙΑ Κ ΑΠΟ 40 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
      ΑΝ ΣΒ[Κ - 1] < ΣΒ[Κ] ΤΟΤΕ
        Τ1 <- ΣΒ[Κ - 1]
        ΣΒ[Κ - 1] <- ΣΒ[Κ]
        ΣΒ[Κ] <- Τ1
        Τ2 <- ΟΝ[Κ - 1]
        ΟΝ[Κ - 1] <- ΟΝ[Κ]
        ΟΝ[Κ] <- Τ2
      ΑΛΛΙΩΣ_ΑΝ ΣΒ[Κ - 1] = ΣΒ[Κ] ΤΟΤΕ
        ΑΝ ΟΝ[Κ - 1] > ΟΝ[Κ] ΤΟΤΕ
          Τ2 <- ΟΝ[Κ - 1]
          ΟΝ[Κ - 1] <- ΟΝ[Κ]
          ΟΝ[Κ] <- Τ2
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΥΣΒ(ΒΑΘ, ΣΒ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΒΑΘ[40, 6], ΣΒ[40], Ι, Κ
ΑΡΧΗ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 40
    ΣΒ[Ι] <- 0
    ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 6
      ΣΒ[Ι] <- ΣΒ[Ι] + ΒΑΘ[Ι, Κ]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


--- Τέλος κώδικα ---

merlin:
Η αρχικοποίηση του πίνακα ΒΑΘ πρέπει να είναι με 0 και όχι με Διάβασε.
Επίσης πρέπει μετά την ταξινόμηση να εμφανίζονται και οι σχετικοί πίνακες

falexakos:
Γράφει κάποιος στο Δ5, μέσα στο (σωστό) ζεύγος επαναλήψεων της Φυσαλλίδας:

--- Κώδικας: ---.......
.......
Αν ΣΒ[j-1]<ΣΒ[j] ή ΣΒ[j-1]=ΣΒ[j] και ΟΝ[j-1]>ΟΝ[j] τότε  ! <--- έτσι, χωρίς παρενθέσεις
  Αντιμετάθεσε ΣΒ[j], ΣΒ[j-1] ! <-- Για συντομία δεν γράφω όλες τις εντολές που τις έχει γράψει σωστά με την προσωρινή μεταβλητή κλπ.
  Αντιμετάθεσε ΟΝ[j],ΟΝ[j-1]
Τέλος_Αν
.......
.......
--- Τέλος κώδικα ---

Εγώ το θεωρώ σωστό, αφού τυπικά η λογική σύζευξη ("και") έχει την προτεραιότητα του πολ/σιασμού, ενώ το "ή" αυτήν της πρόσθεσης.
Άρα είναι σαν να γράφει:

--- Κώδικας: ---Αν (ΣΒ[j-1]<ΣΒ[j]) ή (ΣΒ[j-1]=ΣΒ[j] και ΟΝ[j-1]>ΟΝ[j]) τότε
--- Τέλος κώδικα ---
Το ίδιο το σχολ. βιβλίο όμως δεν γράφει για προτεραιότητα των λογικών τελεστών (αν θυμάμαι καλά).
Τι λέτε λοιπόν;

Φώτης

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση