! ==============================================================================
! ΗΜΕΡΗΣΙΟ - ΙOYΛIΟΣ 2008 - ΘΕΜΑ 4
! ==============================================================================
! Στο άθλημα των 110 μέτρων μετ εμποδίων, στους δύο ημιτελικούς αγώνες
! συμμετέχουν δέκα έξι (16) αθλητές (8 σε κάθε ημιτελικό). Σύμφωνα με τον
! κανονισμό στον τελικό προκρίνεται ο πρώτος αθλητής κάθε ημιτελικού.
! Η οκτάδα του τελικού συμπληρώνεται με τους αθλητές που έχουν τους έξι (6)
! καλύτερους χρόνους απ όλους τους υπόλοιπους συμμετέχοντες.
! Να θεωρήσετε ότι δεν υπάρχουν αθλητές με ίδιους χρόνους.
! 1. Να γράψετε πρόγραμμα στη "ΓΛΩΣΣΑ" το οποίο
! α. περιλαμβάνει το τμήμα δηλώσεων.
! β. καλεί τη διαδικασία ΕΙΣΟΔΟΣ για κάθε ημιτελικό ξεχωριστά.
! Η διαδικασία διαβάζει το όνομα του αθλητή και τo χρόνο του
! (με ακρίβεια δεκάτου του δευτερολέπτου).
! γ. καλεί τη διαδικασία ΤΑΞΙΝΟΜΗΣΗ για κάθε ημιτελικό ξεχωριστά.
! Η διαδικασία ταξινομεί τους αθλητές ως προς τον χρόνο τους με αύξουσα
! σειρά.
! δ. δημιουργεί τον πίνακα ΟΝ με τα ονόματα και τον πίνακα ΧΡ με τους
! αντίστοιχους χρόνους των αθλητών που προκρίθηκαν στον τελικό.
! ε. εμφανίζει τα ονόματα και τους χρόνους των αθλητών που θα λάβουν μέρος
! στον τελικό.
! 2. Να γράψετε
! α. τη διαδικασία ΕΙΣΟΔΟΣ.
! β. τη διαδικασία ΤΑΞΙΝΟΜΗΣΗ.
! ==============================================================================
ΠΡΟΓΡΑΜΜΑ ΗΜ_2008_07_4
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : i , k , l
ΠΡΑΓΜΑΤΙΚΕΣ : time1[8] , time2[8] , χρ[8]
ΧΑΡΑΚΤΗΡΕΣ : name1[8] , name2[8] , ονομ[8]
ΑΡΧΗ
ΓΡΑΨΕ '1ος ΗΜΙΤΕΛΙΚΟΣ'
ΚΑΛΕΣΕ Είσοδος(name1 , time1)
ΓΡΑΨΕ '2ος ΗΜΙΤΕΛΙΚΟΣ'
ΚΑΛΕΣΕ Είσοδος(name2 , time2)
ΚΑΛΕΣΕ Ταξινόμηση(name1 , time1)
ΚΑΛΕΣΕ Ταξινόμηση(name2 , time2)
ονομ[1] <-- name1[1] !
χρ[1] <-- time1[1] ! Οι δύο πρώτοι προκρίνονται
ονομ[2] <-- name2[1] ! ότι χρόνο και αν έχουν.
χρ[2] <-- time2[1] !
k <-- 2
l <-- 2
ΓΙΑ i ΑΠΟ 3 ΜΕΧΡΙ 8 !
ΑΝ time1[k] < time2[l] ΤΟΤΕ !
ονομ[i] <-- name1[k] !
χρ[i] <-- time1[k] ! Για τις θέσεις 3 έως 8
k <-- k + 1 ! συγκρίνουμε τους επόμενους
ΑΛΛΙΩΣ ! των δύο ημιτελικών για
ονομ[i] <-- name2[l] ! βρούμε ποιος έχει το μικρότερο
χρ[i] <-- time2[l] ! χρόνο για να προκριθεί.
l <-- l + 1 !
ΤΕΛΟΣ_ΑΝ !
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ !
ΚΑΛΕΣΕ Ταξινόμηση(ονομ , χρ) ! Ταξινομούμε αυτούς που προκρίθηκαν
ΓΡΑΨΕ 'Για τον τελικό προκρίνονται οι εξής:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 8
ΓΡΑΨΕ ονομ[i] , 'με χρόνο' , χρ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Είσοδος(a , b)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : i
ΠΡΑΓΜΑΤΙΚΕΣ : b[8]
ΧΑΡΑΚΤΗΡΕΣ : a[8]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 8
ΓΡΑΨΕ 'Δώσε το όνομα και το χρόνο του αθλητή Νο:' , i
ΔΙΑΒΑΣΕ a[i] , b[i]
b[i] <-- Α_Μ(b[i]*10 + 0.5) ! Στρογγυλεύουμε το χρόνο ώστε ότι και αν
b[i] <-- b[i]/10 ! δοθεί να είναι με ακρίβεια δεκάτου.
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση(a , b)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : i , j
ΠΡΑΓΜΑΤΙΚΕΣ : b[8] , temp1
ΧΑΡΑΚΤΗΡΕΣ : a[8] , temp2
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 8
ΓΙΑ j ΑΠΟ 8 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
ΑΝ b[j-1] > b[j] ΤΟΤΕ
temp1 <-- b[j-1]
b[j-1] <-- b[j]
b[j] <-- temp1
temp2 <-- a[j-1]
a[j-1] <-- a[j]
a[j] <-- temp2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ