Στο άθλημα των 110 μέτρων μετ’ εμποδίων, στους δύο ημιτελικούς αγώνες συμμετέχουν δέκα έξι (16) αθλητές (8 σε κάθε ημιτελικό). Σύμφωνα με τον κανονισμό στον τελικό προκρίνεται ο πρώτος αθλητής κάθε ημιτελικού. Η οκτάδα του τελικού συμπληρώνεται με τους αθλητές που έχουν τους έξι (6) καλύτερους χρόνους απ’ όλους τους υπόλοιπους συμμετέχοντες. Να θεωρήσετε ότι δεν υπάρχουν αθλητές με ίδιους χρόνους. Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο:
α. περιλαμβάνει το τμήμα δηλώσεων. Μονάδες 2
β. καλεί τη διαδικασία ΕΙΣΟ∆ΟΣ για κάθε ημιτελικό ξεχωριστά. Η διαδικασία διαβάζει το όνομα του αθλητή και τoν χρόνο του (με ακρίβεια δεκάτου του δευτερολέπτου). Μονάδες 2
γ. καλεί τη διαδικασία ΤΑΞΙΝΟΜΗΣΗ για κάθε ημιτελικό ξεχωριστά. Η διαδικασία ταξινομεί τους αθλητές ως προς τον χρόνο τους με αύξουσα σειρά. Μονάδες 2
δ. δημιουργεί τον πίνακα ΟΝ με τα ονόματα και τον πίνακα ΧΡ με τους αντίστοιχους χρόνους των αθλητών που προκρίθηκαν στον τελικό Μονάδες 6
ε. εμφανίζει τα ονόματα και τους χρόνους των αθλητών που θα λάβουν μέρος στον τελικό. Μονάδες 2
Να γράψετε
α. τη διαδικασία ΕΙΣΟ∆ΟΣ. Μονάδες 2
β. τη διαδικασία ΤΑΞΙΝΟΜΗΣΗ. Μονάδες 4
ΛΥΣΗ
! ============================================================================== ! ΗΜΕΡΗΣΙΟ - Ι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 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Πρόσφατα σχόλια