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

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

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

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

ΠΡΟΓΡΑΜΜΑ  HMER_2007_07_4
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: days[12] , egg[12,31] , i , j , k , n , s , year
  ΠΡΑΓΜΑΤΙΚΕΣ : mo , mom
ΑΡΧΗ
  ΓΡΑΨΕ 'Δώσε το έτος'
  ΔΙΑΒΑΣΕ year
  ΟΣΟ year < 2000 ή year > 2099 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Λάθος. Ξαναδώσε'
    ΔΙΑΒΑΣΕ year
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    days[i] <-- ΣΥΝΑΡΤ(year , i)
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ days[i]
      ΓΡΑΨΕ 'Δώσε την ημερήσια παραγωγή αυγών την', j , 'μέρα του μήνα' , i
      ΔΙΑΒΑΣΕ egg[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  s <-- 0
  n <-- 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ days[i]
      n <-- n + 1
      s <-- s + egg[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  mo <-- s / n            ! ΕΤΗΣΙΟΣ ΜΕΣΟΣ ΟΡΟΣ

  k <-- 0
  i <-- 1
  ΟΣΟ i<= 12 ΚΑΙ k < 3 ΕΠΑΝΑΛΑΒΕ

    s <-- 0
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ days[i]
      s <-- s + egg[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    mom <-- s / days[i]   ! ΜΕΣΟΣ ΟΡΟΣ ΜΗΝΑ

    ΑΝ Α_Τ(mom - mo)*100/mo <= 10 ΤΟΤΕ
      k <-- k + 1
      ΑΝ k = 3 ΤΟΤΕ
        ΓΡΑΨΕ 'Ο τρίτος μήνας με μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο είναι ο' , i
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ
    i <-- i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ k < 3 ΤΟΤΕ
    ΓΡΑΨΕ 'Δεν υπάρχει μήνας με μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΣΥΝΑΡΤ(y , d): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : d , y
ΑΡΧΗ
  ΑΝ d = 2 ΤΟΤΕ
    ΑΝ (y MOD 4 = 0 ΚΑΙ y MOD 100 <> 0) ή y MOD 400 = 0 ΤΟΤΕ
      ΣΥΝΑΡΤ <-- 29
    ΑΛΛΙΩΣ
      ΣΥΝΑΡΤ <-- 28
    ΤΕΛΟΣ_ΑΝ
  ΑΛΛΙΩΣ_ΑΝ d <= 7 ΤΟΤΕ
    ΑΝ d MOD 2 = 1 ΤΟΤΕ
      ΣΥΝΑΡΤ <-- 31
    ΑΛΛΙΩΣ
      ΣΥΝΑΡΤ <-- 30
    ΤΕΛΟΣ_ΑΝ
  ΑΛΛΙΩΣ
    ΑΝ d MOD 2 = 1 ΤΟΤΕ
      ΣΥΝΑΡΤ <-- 30
    ΑΛΛΙΩΣ
      ΣΥΝΑΡΤ <-- 31
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 

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