Ασκησιολόγιο ΓλωσσοΜάθειας
https://www.spinet.gr/glossomatheia/programs/

Επαναληπτικές Ημερήσιο - Θέμα 4
https://www.spinet.gr/glossomatheia/programs/viewtopic.php?f=39&t=679
Σελίδα 1 από 1

Συγγραφέας:  ΧΑΤΖΗΤΣΟΜΠΑΝΗΣ ΘΕΟΦΙΛΟΣ [ Δευτ 28 Ιούλ 2008 12:47 pm ]
Θέμα δημοσίευσης:  Επαναληπτικές Ημερήσιο - Θέμα 4

Syntax: [ Download ] [ Hide ]
! ==============================================================================
! ΗΜΕΡΗΣΙΟ - Ι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
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

Σελίδα 1 από 1 Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/