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

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


ΠΡΟΓΡΑΜΜΑ Αλμα_εις_μήκος
! ΑΕΠΠ - Οδηγός Μελέτης Μαθητή
! Μη λυμένες ασκήσεις 4.10.19
!
! 19. Στο αγώνισμα του άλματος εις μήκος συμμετέχουν 12 αθλητές οι οποίοι
!     κάνουν 6 προσπάθειες ο καθένας. Να γραφεί πρόγραμμα σε "ΓΛΩΣΣΑ", το οποίο να:
! 1) Διαβάζει και να αποθηκεύει τα ονόματα 12 αθλητών σε μονοδιάστατο πίνακα.
! 2) Διαβάζει και να αποθηκεύει σε δισδιάστατο πίνακα τις επιδόσεις του κάθε
!    αθλητή στις 6 προσπάθειες που έκανε. Η άκυρη προσπάθεια δίνεται το μηδέν.
! 3) Εμφανίζει για κάθε αθλητή το όνομά του και τις επιδόσεις του ταξινομημένες,
!    από την καλύτερη προς την χειρότερη, εκτός από τις άκυρες.
! 4) Εμφανίζει το όνομα του νικητή του αγωνίσματος άλματος εις μήκος.
!    Νικητής θεωρείται αυτός με την μεγαλύτερη επίδοση
!    Στην περίπτωση ισοβαθμίας, νικητής θεωρείται αυτός που έχει την μεγαλύτερη
!    2η επίδοση.


ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: όνομα[12], max_on
  ΠΡΑΓΜΑΤΙΚΕΣ: επιδόσεις[12, 6], temp, max, max2
  ΑΚΕΡΑΙΕΣ: i, j, k

ΑΡΧΗ
!   Διάβασμα τιμών

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    ΓΡΑΨΕ 'Δώστε όνομα ', i, 'ου αθλητή'
    ΔΙΑΒΑΣΕ όνομα[i] 
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
      ΓΡΑΨΕ 'Δώστε ', j, 'η επίδοση'
      ΔΙΑΒΑΣΕ επιδόσεις[i, j] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


! Ταξινόμηση και εμφάνιση επιδόσεων
  ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 12

    ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 6
      ΓΙΑ j ΑΠΟ 6 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
        ΑΝ (επιδόσεις[k, j - 1] < επιδόσεις[k, j]) ΤΟΤΕ
          temp <- επιδόσεις[k, j] 
          επιδόσεις[k, j] <- επιδόσεις[k, j - 1] 
          επιδόσεις[k, j - 1] <- temp
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ΓΡΑΨΕ όνομα[k] 
    i <- 1
    ΟΣΟ i <= 6 ΚΑΙ επιδόσεις[k, i] > 0 ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ επιδόσεις[k, i], '  '
      i <- i + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ

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


! εύρεση μέγιστης επίδοσης
  max <- επιδόσεις[1, 1] 
  max2 <- επιδόσεις[1, 2] 
  max_on <- όνομα[1] 
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    ΑΝ επιδόσεις[i, 1] > max ΤΟΤΕ
!     αρκεί να δούμε την πρώτη επίδοση κάθε αθλητή, αφού έχουμε κάνει ταξινόμηση
      max <- επιδόσεις[i, 1] 
      max_on <- όνομα[i] 
      max2 <- επιδόσεις[i, 2] 
    ΑΛΛΙΩΣ_ΑΝ επιδόσεις[i, 1] = max ΚΑΙ επιδόσεις[i, 2] > max2 ΤΟΤΕ
!     ελέγχουμε την δεύτερη είδοση των αθλητών που ισοβαθμούν
      max <- επιδόσεις[i, 1] 
      max_on <- όνομα[i] 
      max2 <- επιδόσεις[i, 2] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Νικητής : ', max_on, ' με επίδοση : ', max
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

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