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

Λύσεις ασκήσεων από θέματα Πανελλαδικών εξετάσεων


ΠΡΟΓΡΑΜΜΑ ΙΣΤΙΟΠΛΟΙΑ
! ΠΑΝΕΛΛΗΝΙΕΣ 2010 ΘΕΜΑ Δ
!Το ράλλυ Βορείων Σποράδων είναι ένας αγώνας ιστοπλοΐας
!ανοικτής θάλασσας που γίνεται κάθε χρόνο. Στην τελευταία
!διοργάνωση συμμετείχαν 35 σκάφη που διαγωνίστηκαν σε διαδρομή
!συνολικής απόστασης 70 μιλίων. Κάθε σκάφος ανήκει σε μια από τις
!κατηγορίες C1, C2, C3. Επειδή στον αγώνα συμμετέχουν σκάφη
!διαφορετικών δυνατοτήτων, η κατάταξη δεν προκύπτει από τον
!«πραγματικό» χρόνο τερματισμού αλλά από ένα «σχετικό» χρόνο,
!που υπολογίζεται διαιρώντας τον «πραγματικό» χρόνο του σκάφους
!με τον «ιδανικό». Ο ιδανικός χρόνος είναι διαφορετικός για κάθε
!σκάφος και προκύπτει πολλαπλασιάζοντας την απόσταση της
!διαδρομής με τον δείκτη GPH του σκάφους. Ο δείκτης GPH
!αντιπροσωπεύει τον ιδανικό χρόνο που χρειάζεται το σκάφος για να
!καλύψει απόσταση ενός μιλίου.
!Να κατασκευάσετε αλγόριθμο ο οποίος
!Δ1. Να ζητάει για κάθε σκάφος:
!- το όνομά του
!- την κατηγορία του ελέγχοντας την ορθή καταχώρηση
!- τον χρόνο (σε δευτερόλεπτα) που χρειάστηκε για να
!τερματίσει
!- τον δείκτη GPH (σε δευτερόλεπτα).
!Μονάδες 4
!Δ2. Να υπολογίζει τον σχετικό χρόνο κάθε σκάφους.
!Μονάδες 5
!Δ3. Να εμφανίζει την κατηγορία στην οποία ανήκουν τα
!περισσότερα σκάφη.
!Μονάδες 6
!Δ4. Να εμφανίζει για κάθε κατηγορία καθώς και για την γενική
!κατάταξη τα ονόματα των σκαφών που κερδίζουν μετάλλιο.
!(Μετάλλια απονέμονται στους 3 πρώτους κάθε κατηγορίας και
!στους 3 πρώτους της γενικής κατάταξης).
!Μονάδες 5
!Σημείωση: Να θεωρήσετε ότι κάθε κατηγορία έχει διαφορετικό
!αριθμό σκαφών και τουλάχιστον τρία σκάφη.
!ΔΙΕΥΚΡΙΝΙΣΗ:(Συμπλήρωση της Σημείωσης)
! Να θεωρήσετε ότι οι σχετικοί χρόνοι των σκαφών είναι
!διαφορετικοί μεταξύ τους.


ΣΤΑΘΕΡΕΣ
  N = 35
  
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, πλήθος, πλήθος1, πλήθος2, πλήθος3, περισσότερα
  ΧΑΡΑΚΤΗΡΕΣ: όνομα[N], κατηγορία[N], κατηγορία_περισσότερων, tempON, tempKat, κατηγορία_αναζήτησης
  ΠΡΑΓΜΑΤΙΚΕΣ: χρόνος, GPH, σχετικός_χρόνος[N], ιδανικός_χρόνος, temp
  
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
!Δ1. Να ζητάει για κάθε σκάφος:
!- το όνομά του
    ΓΡΑΨΕ 'Δώσε όνομα : '
    ΔΙΑΒΑΣΕ όνομα[i] 
    
!- την κατηγορία του ελέγχοντας την ορθή καταχώρηση
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Δώσε κατηγορία :'
      ΔΙΑΒΑΣΕ κατηγορία[i] 
    ΜΕΧΡΙΣ_ΟΤΟΥ κατηγορία[i] = 'C1' Η κατηγορία[i] = 'C2' Η κατηγορία[i] = 'C3'

!- τον χρόνο (σε δευτερόλεπτα) που χρειάστηκε για να τερματίσει
    ΓΡΑΨΕ 'Δώσε Χρόνο : '
    ΔΙΑΒΑΣΕ χρόνος

!- τον δείκτη GPH (σε δευτερόλεπτα).
    ΓΡΑΨΕ 'Δώσε δείκτη GPH : '
    ΔΙΑΒΑΣΕ GPH

!Δ2. Να υπολογίζει τον σχετικό χρόνο κάθε σκάφους.
    ιδανικός_χρόνος <- 70* GPH
    σχετικός_χρόνος[i] <- χρόνος/ ιδανικός_χρόνος
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


!Δ3. Να εμφανίζει την κατηγορία στην οποία ανήκουν τα
!περισσότερα σκάφη.
  πλήθος1 <- 0
  πλήθος2 <- 0
  πλήθος3 <- 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΑΝ κατηγορία[i] = 'C1' ΤΟΤΕ
      πλήθος1 <- πλήθος1 + 1
    ΤΕΛΟΣ_ΑΝ
    ΑΝ κατηγορία[i] = 'C2' ΤΟΤΕ
      πλήθος1 <- πλήθος2 + 1
    ΤΕΛΟΣ_ΑΝ
    ΑΝ κατηγορία[i] = 'C2' ΤΟΤΕ
      πλήθος1 <- πλήθος2 + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  περισσότερα <- πλήθος1
  κατηγορία_περισσότερων <- 'C1'
  ΑΝ (πλήθος2 > περισσότερα) ΤΟΤΕ
    περισσότερα <- πλήθος2
    κατηγορία_περισσότερων <- 'C2'
  ΤΕΛΟΣ_ΑΝ
  ΑΝ (πλήθος3 > περισσότερα) ΤΟΤΕ
    περισσότερα <- πλήθος3
    κατηγορία_περισσότερων <- 'C3'
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ 'Κατηγορία στην οποία με τα περισσότερα σκάφη', κατηγορία_περισσότερων


!Δ4. Να εμφανίζει για κάθε κατηγορία καθώς και για την γενική
!κατάταξη τα ονόματα των σκαφών που κερδίζουν μετάλλιο.
!(Μετάλλια απονέμονται στους 3 πρώτους κάθε κατηγορίας και
!στους 3 πρώτους της γενικής κατάταξης).

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ N
    ΓΙΑ j ΑΠΟ N ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
      ΑΝ (σχετικός_χρόνος[j - 1] < σχετικός_χρόνος[j]) ΤΟΤΕ
        temp <- σχετικός_χρόνος[j] 
        σχετικός_χρόνος[j] <- σχετικός_χρόνος[j - 1] 
        σχετικός_χρόνος[j - 1] <- temp

        tempON <- όνομα[j] 
        όνομα[j] <- όνομα[j - 1] 
        όνομα[j - 1] <- tempON

        tempKat <- κατηγορία[j] 
        κατηγορία[j] <- κατηγορία[j - 1] 
        κατηγορία[j - 1] <- tempKat
        
      ΤΕΛΟΣ_ΑΝ                         
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Μετάλλια γενικής κατάταξης'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
    ΓΡΑΨΕ i, 'ος νικητής ', όνομα[i] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
    ΑΝ i = 1 ΤΟΤΕ
      κατηγορία_αναζήτησης <- 'C1'
    ΑΛΛΙΩΣ_ΑΝ i = 2 ΤΟΤΕ
      κατηγορία_αναζήτησης <- 'C2'
    ΑΛΛΙΩΣ
      κατηγορία_αναζήτησης <- 'C3'
    ΤΕΛΟΣ_ΑΝ
    
    ΓΡΑΨΕ 'Μετάλλια κατηγορίας ', κατηγορία_αναζήτησης
    j <- 1
    πλήθος <- 0
    ΟΣΟ (πλήθος < 3) ΚΑΙ (j <= N) ΕΠΑΝΑΛΑΒΕ
      ΑΝ κατηγορία_αναζήτησης = κατηγορία[j] ΤΟΤΕ
        πλήθος <- πλήθος + 1
        ΓΡΑΨΕ πλήθος, 'ος νικητής ', όνομα[j] 
      ΤΕΛΟΣ_ΑΝ
      j <- j + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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


 

Κεντρική Σελίδα Αλλα e-μαθήματα ΑΕΠΠ Αλλη άσκηση Επιστροφή στην κορυφή της σελίδας
© 2010 - 2ο Γενικό Λύκειο Γέρακα - Βασίλειος Αναστόπουλος