Αποστολέας Θέμα: Λύνεται χωρίς πίνακες;  (Αναγνώστηκε 1073 φορές)

ikariofil

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 114
  • Γράψτε το προσωπικό σας σλόγκαν!
Λύνεται χωρίς πίνακες;
« στις: 02 Ιούν 2010, 02:16:52 μμ »
(Θέμα εξετάσεων – Ιούλιος 2007 – Ενιαία Λύκεια)
Μια σύγχρονη πτηνοτροφική μονάδα παρακολουθεί την ημερήσια παραγωγή αυγών και καταγράφει τα στοιχεία σε ηλεκτρονικό αρχείο. Να αναπτύξετε αλγόριθμο ο οποίος θα διαχειρίζεται τα στοιχεία της μονάδας στη διάρκεια ενός έτους. Για το σκοπό αυτό:
(Α) Να κατασκευάσετε κύριο πρόγραμμα το οποίο:
1. να ζητάει το έτος παρακολούθησης, ελέγχοντας ότι πρόκειται για έτος του 21ου αιώνα (από 2000 μέχρι και 2099). Ο αλγόριθμος να δημιουργεί πίνακα με τον αριθμό των ημερών για καθέναν από τους δώδεκα μήνες του έτους που δόθηκε. Ο αριθμός των ημερών του μήνα θα υπολογίζεται από υποπρόγραμμα το οποίο θα κατασκευάσετε για το σκοπό αυτό. Η λειτουργία του υποπρογράμματος περιγράφεται στο ερώτημα Β. 
2. να ζητάει την ημερήσια παραγωγή (αριθμό αυγών) για κάθε μέρα του έτους και να καταχωρίζει τις τιμές σε πίνακα δύο διαστάσεων, με μια γραμμή για κάθε μήνα.
3. να εμφανίζει τον τρίτο κατά σειρά από τους μήνες του έτους που έχουν ο καθένας μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο. Αν δεν βρει τέτοιο μήνα, να εμφανίζει κατάλληλο μήνυμα.
(Β) Να κατασκευάσετε υποπρόγραμμα το οποίο να δέχεται ως παραμέτρους κάποιο έτος και τον αριθμό κάποιου μήνα (1 έως 12), και να επιστρέφει τον αριθμό των ημερών του συγκεκριμένου μήνα. Όταν το έτος είναι δίσεκτο, ο Φεβρουάριος έχει 29 ημέρες, διαφορετικά έχει 28. Δίσεκτα είναι τα έτη που διαιρούνται με το 4 αλλά όχι με το 100, καθώς και εκείνα που διαιρούνται με το 400. Για τους υπόλοιπους μήνες, πλην του Φεβρουαρίου, ισχύει το εξής: μέχρι και τον Ιούλιο (7ος  μήνας) οι μονοί μήνες έχουν 31 ημέρες και οι ζυγοί 30. Για τους μήνες μετά τον Ιούλιο, ισχύει το αντίστροφο.

ΠΡΟΓΡΑΜΜΑ Πτηνοτροφείο
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ:  έτος, μ, j, ΗΜ[12], ΠΑΡ[12, 31], α, κ, Sολ, S
   ΠΡΑΓΜΑΤΙΚΕΣ:  ΜΟ[12], ΓΜΟ, ποσοστό
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
     ΔΙΔΒΑΣΕ έτος
  ΜΕΧΡΙΣ_ΟΤΟΥ έτος >= 2000 ΚΑΙ έτος <= 2099
  ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 12
      ΗΜ[μ] ← Βρες_μέρες(έτος, μ)
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 12
      ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ HM[μ]
          ΔΙΑΒΑΣΕ ΠΑΡ[μ, j]
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  Sολ ← 0
  α ← 0
  ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 12
      S ← 0
      ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ HM[μ]
           S ← S + ΠΑΡ[μ, j]
           Sολ ← Sολ +  ΠΑΡ[μ, j]
           α ← α + 1
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΜΟ[μ] ← S / ΗΜ[μ]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΜΟ ← Sολ / α

  κ ← 0
  μ ← 1
  ΟΣΟ  μ <= 12  ΚΑΙ  κ < 3  ΕΠΑΝΑΛΑΒΕ
      ποσοστό ← 100 * (ΜΟ[μ] – ΓΜΟ) / ΓΜΟ
      ΑΝ  Α_Τ(ποσοστό) <= 10 ΤΟΤΕ
          κ ← κ + 1
      ΤΕΛΟΣ_ΑΝ
      ΑΝ  κ < 3 ΤΟΤΕ
          μ ← μ + 1
      ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΑΝ  κ = 3 ΤΟΤΕ
       ΓΡΑΨΕ μ
   ΑΛΛΙΩΣ
       ΓΡΑΨΕ 'Κανείς μήνας'
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Πτηνοτροφείο

! ================================================
ΣΥΝΑΡΤΗΣΗ Βρες_μέρες (έτος, μήνας) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: έτος, μήνας, επιστροφή
ΑΡΧΗ
   ΑΝ μήνας = 2 ΤΟΤΕ
      ΑΝ (έτος MOD 4 = 0 ΚΑΙ έτος MOD 100 <> 0) Ή (έτος MOD 400 = 0) ΤΟΤΕ
           επιστροφή ← 29
      ΑΛΛΙΩΣ
           επιστροφή ← 28
      ΤΕΛΟΣ_ΑΝ
   ΑΛΛΙΩΣ
      ΑΝ (μήνας <= 7 ΚΑΙ μήνας MOD 2 = 1) Ή (μήνας > 7 ΚΑΙ μήνας MOD 2 = 0) ΤΟΤΕ
           επιστροφή ← 31
      ΑΛΛΙΩΣ
           επιστροφή ← 30
      ΤΕΛΟΣ_ΑΝ
   ΤΕΛΟΣ_ΑΝ
   Βρες_μέρες ← επιστροφή
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

merlin

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 318
Απ: Λύνεται χωρίς πίνακες;
« Απάντηση #1 στις: 02 Ιούν 2010, 02:29:35 μμ »
Κάποια προβλήματα λύνονται ΚΑΙ με πίνακες, κάποια άλλα ΜΟΝΟ με πίνακες (για αυτό το λόγο τους φτιάξαμε), μέχρι την Παρασκευή είχα την εντύπωση ότι υπήρχαν και προβλήματα που λύνονταν ΜΟΝΟ χωρίς πίνακες.
Που θέλεις όμως να καταλήξεις?
Παρασκευάς Πανάγου
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής ΠΕ20

batos

  • Βετεράνος
  • ****
  • Μηνύματα: 70
Απ: Λύνεται χωρίς πίνακες;
« Απάντηση #2 στις: 02 Ιούν 2010, 05:07:36 μμ »
Κάποια προβλήματα λύνονται ΚΑΙ με πίνακες, κάποια άλλα ΜΟΝΟ με πίνακες (για αυτό το λόγο τους φτιάξαμε), μέχρι την Παρασκευή είχα την εντύπωση ότι υπήρχαν και προβλήματα που λύνονταν ΜΟΝΟ χωρίς πίνακες.
Που θέλεις όμως να καταλήξεις?

Και εγώ είχα (και έχω) την ίδια εντύπωση.
Το πρόβλημα, φαίνεται είναι οτι δεν έχουμε συμφωνήσει όλοι (στα πλαίσια του συγκεκριμένου μαθήματος) στο τι εννοούμε με τις έννοιες αλγόριθμος, πίνακες (και δεν ξέρω τι άλλο).