Τώρα είναι Πέμ 28 Μαρ 2024 04:58 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Πέμ 24 Ιούλ 2008 10:17 am 
Χωρίς σύνδεση

Εγγραφή: Κυρ 12 Οκτ 2003 01:52 am
Δημοσιεύσεις: 189
Τοποθεσία: ΝΙΚΑΙΑ - ΠΕΙΡΑΙΑΣ
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 Δημοσίευση ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 3 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Προβολές: