Παρασκευή 1 Απριλίου 2011

Άσκηση : πρόγραμμα + συνάρτηση

Α. Γράψτε διαδικασία Δυο_Στοιχεία η οποία δέχεται
     ως παράμετρο έναν πραγματικό πίνακα Α[30] και μια
     λογική τιμή Β και υπολογίζει:
     * τα δύο μεγαλύτερα στοιχεία του Α, αν Β = ΑΛΗΘΗΣ,
     * τα δύο μικρότερα στοιχεία του Α, αν Β = ΨΕΥΔΗΣ.
Β. Γράψτε πρόγραμμα το οποίο:
     1) διαβάζει 30 πραγματικές τιμές και τις καταχωρεί
         στον πίνακα Α,
     2) διαβάζει μια λογική τιμή Β,
     3) καλεί τη διαδικασία Δυο_Στοιχεία,
     4) υπολογίζει και εμφανίζει το μέσο όρο (ΜΟ) των δύο
         αποτελεσμάτων της διαδικασίας,
     5) αν αυτός ο μέσος όρος είναι μεγαλύτερος από 110,
         υπολογίζει και εμφανίζει το πλήθος των στοιχείων
         του πίνακα που είναι μη μηδενικά.


Λύση

      ΠΡΟΓΡΑΜΜΑ ΑΣΚ
      ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: κ, Πληθ
           ΠΡΑΓΜΑΤΙΚΕΣ: Α[30], ΜΟ, ΑΠ1, ΑΠ2
           ΛΟΓΙΚΕΣ: Β
      ΑΡΧΗ
            ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
                  ΔΙΑΒΑΣΕ Α[κ]
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΔΙΑΒΑΣΕ Β
            ΚΑΛΕΣΕ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
            ΜΟ <-- (ΑΠ1+ΑΠ2)/2
            ΓΡΑΨΕ ΜΟ
            ΑΝ ΜΟ > 110 ΤΟΤΕ
                 Πληθ <-- 0
                 ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 30
                    ΑΝ Α[κ] < > 0 ΤΟΤΕ
                          Πληθ <-- Πληθ+1
                    ΤΕΛΟΣ_ΑΝ
                 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                 ΓΡΑΨΕ Πληθ
            ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

      ΔΙΑΔΙΚΑΣΙΑ Δύο_Στοιχεία(Α, Β, ΑΠ1, ΑΠ2)
      ΜΕΤΑΒΛΗΤΕΣ
            ΠΡΑΓΜΑΤΙΚΕΣ: Α[30],  ΑΠ1, ΑΠ2, ΒΟΗΘ
           ΛΟΓΙΚΕΣ: Β
           ΑΚΕΡΑΙΕΣ: Κ, Λ
      ΑΡΧΗ
            ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 30
                  ΓΙΑ Λ ΑΠΟ 30 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
                       ΑΝ Α[Λ-1] > Α[Λ] ΤΟΤΕ
                              ΒΟΗΘ <-- Α[Λ-1]
                              Α[Λ-1] <-- Α[Λ]
                              Α[Λ] <-- ΒΟΗΘ
                       ΤΕΛΟΣ_ΑΝ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΑΝ Β ΤΟΤΕ
                  ΑΠ1 <-- Α[30]
                  ΑΠ2 <-- Α[29]
            ΑΛΛΙΩΣ
                  ΑΠ1 <-- Α[1]
                  ΑΠ2 <-- Α[2]
            ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου