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

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


ΠΡΟΓΡΑΜΜΑ ΚΟΤΟΠΟΥΛΑ
! Ε2007-Θ4
! Μια σύγχρονη πτηνοτροφική μονάδα παρακολουθεί την ημερήσια
! παραγωγή αυγών και καταγράφει τα στοιχεία σε ηλεκτρονικό αρχείο.
! Να αναπτύξετε αλγόριθμο ο οποίος θα διαχειρίζεται τα στοιχεία
! της μονάδας στη διάρκεια ενός έτους. Για το σκοπό αυτό:
!
!Α. Να κατασκευάσετε κύριο πρόγραμμα το οποίο:
!1. να ζητάει το έτος παρακολούθησης, ελέγχοντας ότι πρόκειται
! για έτος του 21ου αιώνα (από 2000 μέχρι και 2099).
! Ο αλγόριθμος να δημιουργεί πίνακα με τον αριθμό των ημερών
! για καθέναν από τους δώδεκα μήνες του έτους που δόθηκε.
! Ο αριθμός των ημερών του μήνα θα υπολογίζεται από υποπρόγραμμα
! το οποίο θα κατασκευάσετε για το σκοπό αυτό. Η λειτουργία του
! υποπρογράμματος περιγράφεται στο ερώτημα Β.
!
! 2. να ζητάει την ημερήσια παραγωγή (αριθμό αυγών) για κάθε μέρα
! του έτους και να καταχωρίζει τις τιμές σε πίνακα δύο διαστάσεων,
! με μια γραμμή για κάθε μήνα.
!
!3. να εμφανίζει τον τρίτο κατά σειρά από τους μήνες του έτους
!που έχουν ο καθένας μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα
!ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο. Αν δεν
!βρει τέτοιο μήνα, να εμφανίζει κατάλληλο μήνυμα.
!
!Β. Να κατασκευάσετε υποπρόγραμμα το οποίο να δέχεται ως
!παραμέτρους κάποιο έτος και τον αριθμό κάποιου μήνα (1 έως 12),
!και να επιστρέφει τον αριθμό των ημερών του συγκεκριμένου μήνα.
!Όταν το έτος είναι δίσεκτο, ο Φεβρουάριος έχει 29 ημέρες,
!διαφορετικά έχει 28.
!Δίσεκτα είναι τα έτη που διαιρούνται με το 4 αλλά όχι με το 100,
!καθώς και εκείνα που διαιρούνται με το 400. Για τους υπόλοιπους
!μήνες, πλην του Φεβρουαρίου,ισχύει το εξής: μέχρι και τον Ιούλιο
!(7ος μήνας) οι μονοί μήνες έχουν 31 ημέρες και οι ζυγοί 30.
!Για τους μήνες μετά τον Ιούλιο, ισχύει το αντίστροφο.
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: έτος, i, j, μέρες_μήνα[12], παραγωγή[12, 31], άθροισμα, ετήσιο_άθροισμα, μετρητής
  ΠΡΑΓΜΑΤΙΚΕΣ: μηνιαίος_μέσος_όρος[12], ετήσιος_μέσος_όρος

ΑΡΧΗ
!1. να ζητάει το έτος παρακολούθησης, ελέγχοντας ότι πρόκειται
! για έτος του 21ου αιώνα (από 2000 μέχρι και 2099).
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε έτος παρακολούθησης: '
    ΔΙΑΒΑΣΕ έτος
    ΑΝ ΟΧΙ (έτος >= 2000 ΚΑΙ έτος <= 2099) ΤΟΤΕ
      ΓΡΑΨΕ 'Όχι αποδεκτό έτος. Δοκιμάστε ξανά. (2000-2099)'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ έτος >= 2000 ΚΑΙ έτος <= 2099

! Ο αλγόριθμος να δημιουργεί πίνακα με τον αριθμό των ημερών
! για καθέναν από τους δώδεκα μήνες του έτους που δόθηκε.
! Ο αριθμός των ημερών του μήνα θα υπολογίζεται από υποπρόγραμμα
! το οποίο θα κατασκευάσετε για το σκοπό αυτό. Η λειτουργία του
! υποπρογράμματος περιγράφεται στο ερώτημα Β.

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    μέρες_μήνα[i] <- μήκος_μήνα (έτος, i) 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
! 2. να ζητάει την ημερήσια παραγωγή (αριθμό αυγών) για κάθε μέρα
! του έτους και να καταχωρίζει τις τιμές σε πίνακα δύο διαστάσεων,
! με μια γραμμή για κάθε μήνα.
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ μέρες_μήνα[i] 
      ΓΡΑΨΕ 'Δώσε παραγωγή για την ', j, 'η μέρα του ', i, 'ου μήνα'
      ΔΙΑΒΑΣΕ παραγωγή[i, j] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!3. να εμφανίζει τον τρίτο κατά σειρά από τους μήνες του έτους
!που έχουν ο καθένας μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα
!ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο. Αν δεν
!βρει τέτοιο μήνα, να εμφανίζει κατάλληλο μήνυμα.

! βρες μέσο όρο ημερήσιας παραγωγής
  ετήσιο_άθροισμα <- 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    άθροισμα <- 0
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ μέρες_μήνα[i] 
      άθροισμα <- άθροισμα + παραγωγή[i, j] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    μηνιαίος_μέσος_όρος[i] <- άθροισμα / μέρες_μήνα[i] 
    ετήσιο_άθροισμα <- ετήσιο_άθροισμα + άθροισμα
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
! βρες ετήσιο μέσο όρο παραγωγής
  ΑΝ μέρες_μήνα[2] = 28 ΤΟΤΕ
    ετήσιος_μέσος_όρος <- ετήσιο_άθροισμα / 365
  ΑΛΛΙΩΣ
    ετήσιος_μέσος_όρος <- ετήσιο_άθροισμα / 366
  ΤΕΛΟΣ_ΑΝ
  
! βρες τον τρίτο κατά σειρά μήνα που ισχύει η παραπάνω συνθήκη
  μετρητής <- 0
  i <- 1
  ΟΣΟ μετρητής < 3 ΚΑΙ i <= 12 ΕΠΑΝΑΛΑΒΕ
    ΑΝ μηνιαίος_μέσος_όρος[i] >= ετήσιος_μέσος_όρος * 0.90
      & ΚΑΙ μηνιαίος_μέσος_όρος[i] <= ετήσιος_μέσος_όρος * 1.10 ΤΟΤΕ
      μετρητής <- μετρητής + 1
    ΤΕΛΟΣ_ΑΝ
    i <- i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ μετρητής = 3 ΤΟΤΕ
    ΓΡΑΨΕ 'Ο ', i - 1, ' μήνας είναι ο τρίτος κατά σειρά που ικανοποιεί τη συνθήκη'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Δεν υπάρχει μήνας που ικανοποιεί τη συνθήκη'
  ΤΕΛΟΣ_ΑΝ

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

! **********************************************************

ΣΥΝΑΡΤΗΣΗ μήκος_μήνα (έτος, μήνας): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: έτος, μήνας
ΑΡΧΗ
  ΕΠΙΛΕΞΕ μήνας
    ΠΕΡΙΠΤΩΣΗ 1, 3, 5, 7, 8, 10, 12
      μήκος_μήνα <- 31
    ΠΕΡΙΠΤΩΣΗ 4, 6, 9, 11
      μήκος_μήνα <- 30
    ΠΕΡΙΠΤΩΣΗ 2
      ΑΝ ((έτος MOD 4 = 0) ΚΑΙ (έτος MOD 100 <> 0)) Η (έτος MOD 400 = 0) ΤΟΤΕ
        μήκος_μήνα <- 29
      ΑΛΛΙΩΣ
        μήκος_μήνα <- 28
      ΤΕΛΟΣ_ΑΝ
    ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ
      μήκος_μήνα <- 0
  ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ



 

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