e-ΜΑΘΗΜΑΤΑ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό περιβάλλον

Λύσεις ασκήσεων από τον Οδηγό Μελέτης Μαθητών


ΠΡΟΓΡΑΜΜΑ ΚΛΗΣΗ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ
! ΑΕΠΠ - Οδηγός Μελέτης Μαθητή
! Μη λυμένες ασκήσεις 5.4.4.5
!
! 5. Να γραφεί υποπρόγραμμα, που να εντοπίζει τους δύο μικρότερους αριθμούς
! από ένα πίνακα Χ[50] με ακέραιους αριθμούς και να τους επιστρέφει.

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, x[50], min1, min2
ΑΡΧΗ
! το κύριο πρόγραμμα δεν το ζητάει η εκφώνηση,
! αλλά χρειάζεται για την κλήση του υποπρογράμματος,
! σε περίπτωση που το τρέξετε στον Διερμηνευτή.

  ΓΡΑΨΕ 'Δώστε τιμές πίνακα'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
    ΔΙΑΒΑΣΕ x[i] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Επειδή το υποπρόγραμμα επιστρέφει 2 τιμές θα καλέσουμε ΔΙΑΔΙΚΑΣΙΑ

  ΚΑΛΕΣΕ βρες_2_μικρότερα (x, min1, min2) 
  ΓΡΑΨΕ min1, min2

  ΚΑΛΕΣΕ βρες_2_μικρότερα_αλλιώς (x, min1, min2) 
  ΓΡΑΨΕ min1, min2

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ




ΔΙΑΔΙΚΑΣΙΑ βρες_2_μικρότερα (x, min1, min2) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x[50], min1, min2, i
ΑΡΧΗ
! 1ος τρόπος.
! βρίσκουμε τα δύο μικρότερα χωρίς να πειράξουμε τον πίνακα
! κάνοντας μόνο μια σάρωση

  ΑΝ x[1] < x[2] ΤΟΤΕ
    min1 <- x[1] 
    min2 <- x[2] 
  ΑΛΛΙΩΣ
    min1 <- x[2] 
    min2 <- x[1] 
  ΤΕΛΟΣ_ΑΝ


  ΓΙΑ i ΑΠΟ 3 ΜΕΧΡΙ 50
    ΑΝ x[i] < min1 ΤΟΤΕ
      min2 <- min1
      min1 <- x[i] 
    ΑΛΛΙΩΣ_ΑΝ x[i] < min2 ΤΟΤΕ
      min2 <- x[i] 

    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ



ΔΙΑΔΙΚΑΣΙΑ βρες_2_μικρότερα_αλλιώς (x, min1, min2) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x[50], min1, min2, i, j, temp
ΑΡΧΗ
! 2ος τρόπος
! ταξινομούμε και επιστρέφουμε τα 2 πρώτα στοιχεία,
! Στη εξωτερική επανάληψη,  κάνουμε μόνο δύο επαναλήψης γιατί θέλουμε
! μόνο τα δύο μικρότερα.
! Το πρόβλημα με αυτό τον τρόπο είναι ότι η  ταξινόμηση αλλάζει
! και τις τιμές στον πίνακα, κάτι που δεν το ζητάει η εκφώνηση.

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 3
    ΓΙΑ j ΑΠΟ 50 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
      ΑΝ x[j - 1] > x[j] ΤΟΤΕ
        temp <- x[j - 1] 
        x[j - 1] <- x[j] 
        x[j] <- temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  min1 <- x[1] 
  min2 <- x[2] 
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

 

© 2020 - 2ο Γενικό Λύκειο Γέρακα - Βασίλειος Αναστόπουλος