Λύσεις – Πανελλαδικές, Μαΐου-Ιουνίου, Ημερήσια Λύκεια, 2014 (ΑΕΠΠ)

ΘΕΜΑ Γ

Ένας πελάτης αγοράζει προϊόντα από ένα κατάστημα. Να αναπτύξετε αλγόριθμο ο οποίος:

Γ1. Για κάθε προϊόν που αγοράζει ο πελάτης, να διαβάζει τον κωδικό του, τον αριθμό τεμαχίων που αγοράστηκαν και την τιμή τεμαχίου. Η διαδικασία ανάγνωσης να σταματά, όταν δοθεί ως κωδικός ο αριθμός 0.
Μονάδες 3

Γ2. Αν ο λογαριασμός δεν υπερβαίνει τα 500 ευρώ, να εμφανίζει το μήνυμα «ΠΛΗΡΩΜΗ ΜΕΤΡΗΤΟΙΣ». Διαφορετικά, να υπολογίζει και να εμφανίζει το πλήθος των απαιτούμενων για την εξόφληση δόσεων, όταν η εξόφληση γίνεται με άτοκες μηνιαίες δόσεις, ως εξής: Τον πρώτο μήνα η δόση θα είναι 20 ευρώ και κάθε επόμενο μήνα θα αυξάνεται κατά 5 ευρώ, μέχρι να εξοφληθεί το συνολικό ποσό.
Μονάδες 6

Γ3. Να υπολογίζει και να εμφανίζει τον συνολικό αριθμό των τεμαχίων με τιμή τεμαχίου μεγαλύτερη των 10 ευρώ.
Μονάδες 5

Γ4. Να υπολογίζει και να εμφανίζει τον συνολικό αριθμό των τεμαχίων με τη μέγιστη τιμή τεμαχίου.
Μονάδες 6

ΛΥΣΗ

ΘΕΜΑΓ_2014ΙΟΥΝ_ΗΜΕΡ [DEMO δεδομένα]

 

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ_2014_ΙΟΥΝ_ΗΜΕΡ
ΜΕΤΑΒΛΗΤΕΣ
 ΑΚΕΡΑΙΕΣ: ΤΕΜΑΧΙΑ, ΠΛΗΘΟΣ_ΤΕΜ, ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ, i
 ΠΡΑΓΜΑΤΙΚΕΣ: ΤΙΜΗ, ΛΟΓΑΡΙΑΣΜΟΣ, ΜΑΧ_ΤΙΜΗ, ΠΟΣΟ_ΔΟΣΕΩΝ
 ΧΑΡΑΚΤΗΡΕΣ: ΚΩΔΙΚΟΣ
ΑΡΧΗ
 ! Αρχικοποίηση μεταβλητών
 ΛΟΓΑΡΙΑΣΜΟΣ <-- 0
 ΠΛΗΘΟΣ_ΤΕΜ <-- 0
 ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ <-- 0
 ΜΑΧ_ΤΙΜΗ <-- 0

! Γ1
 ΓΡΑΨΕ 'ΔΩΣΤΕ ΚΩΔΙΚΟ ΠΡΟΙΟΝΤΟΣ:'
 ΔΙΑΒΑΣΕ ΚΩΔΙΚΟΣ
 ΟΣΟ ΚΩΔΙΚΟΣ <> '0' ΕΠΑΝΑΛΑΒΕ
     ΓΡΑΨΕ 'ΔΩΣΤΕ ΑΡΙΘΜΟ ΤΕΜΑΧΙΩΝ:'
     ΔΙΑΒΑΣΕ ΤΕΜΑΧΙΑ
     ΓΡΑΨΕ 'ΔΩΣΤΕ ΤΙΜΗ ΠΡΟΙΟΝΤΟΣ:'
     ΔΙΑΒΑΣΕ ΤΙΜΗ
     ΛΟΓΑΡΙΑΣΜΟΣ <-- ΛΟΓΑΡΙΑΣΜΟΣ + ΤΙΜΗ * ΤΕΜΑΧΙΑ

    ! Γ3
     ΑΝ ΤΙΜΗ > 10 ΤΟΤΕ
        ΠΛΗΘΟΣ_ΤΕΜ <-- ΠΛΗΘΟΣ_ΤΕΜ + ΤΕΜΑΧΙΑ
     ΤΕΛΟΣ_ΑΝ

    ! Γ4
    ΑΝ ΤΙΜΗ > ΜΑΧ_ΤΙΜΗ ΤΟΤΕ
       ΜΑΧ_ΤΙΜΗ <-- ΤΙΜΗ
       ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ <-- ΤΕΜΑΧΙΑ
    ΑΛΛΙΩΣ_ΑΝ ΤΙΜΗ = ΜΑΧ_ΤΙΜΗ ΤΟΤΕ
       ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ <-- ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ + ΤΕΜΑΧΙΑ
    ΤΕΛΟΣ_ΑΝ

    ΓΡΑΨΕ 'ΔΩΣΤΕ ΚΩΔΙΚΟ ΠΡΟΙΟΝΤΟΣ:'
    ΔΙΑΒΑΣΕ ΚΩΔΙΚΟΣ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ 'ΣΥΝΟΛΙΚΟΣ ΑΡΙΘΜΟΣ ΤΕΜ ΚΟΣΤΟΥΣ > 10Ε:', ΠΛΗΘΟΣ_ΤΕΜ
ΓΡΑΨΕ 'ΣΥΝΟΛΙΚΟΣ ΑΡΙΘΜΟΣ ΤΕΜ ΜΑΧ ΤΙΜΗΣ', ΤΕΜ_ΜΑΧ_ΤΙΜΗΣ

ΑΝ ΛΟΓΑΡΙΑΣΜΟΣ < 500 ΤΟΤΕ
   ΓΡΑΨΕ 'ΠΛΗΡΩΜΗ ΜΕΤΡΗΤΟΙΣ'
 ΑΛΛΙΩΣ
   ΓΡΑΨΕ 'ΠΛΗΡΩΜΗ ΣΕ ΔΟΣΕΙΣ'
   ! Υπολογισμός δόσεων, α' τρόπος
   i <-- 1
   ΠΟΣΟ_ΔΟΣΕΩΝ <-- 20
   ΟΣΟ ΠΟΣΟ_ΔΟΣΕΩΝ < ΛΟΓΑΡΙΑΣΜΟΣ ΕΠΑΝΑΛΑΒΕ
! O υπολογισμός αυτός θα μπορούσε να γίνει σε 2 βήματα, πρώτα η δόση (20+i*5) και μετά η άθροιση στο σύνολο.
       ΠΟΣΟ_ΔΟΣΕΩΝ <-- ΠΟΣΟ_ΔΟΣΕΩΝ + (20+i*5) 
       i <-- i + 1
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ! θεωρούμε ότι η τελευταία δόση είναι το όποιο υπόλοιπο
   ΓΡΑΨΕ 'ΑΠΑΙΤΟΥΜΕΝΕΣ ΔΟΣΕΙΣ: ', i
 ΤΕΛΟΣ_ΑΝ

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

 

ΘΕΜΑ Δ

Μια εταιρεία Πληροφορικής καταγράφει, για δέκα ιστότοπους, τον αριθμό των επισκέψεων που δέχεται ο καθένας, κάθε μέρα, για τέσσερις εβδομάδες.
Να αναπτύξετε αλγόριθμο, ο οποίος:
Δ1. Για καθένα από τους ιστότοπους να διαβάζει το όνομά του και τον αριθμό των επισκέψεων που δέχθηκε ο ιστότοπος για καθεμιά ημέρα. Δεν απαιτείται έλεγχος εγκυρότητας τιμών.
Μονάδες 2
Δ2. Να εμφανίζει το όνομα κάθε ιστοτόπου και τον συνολικό αριθμό των επισκέψεων που δέχθηκε αυτός στο διάστημα των τεσσάρων εβδομάδων.
Μονάδες 3
Δ3. Να εμφανίζει τα ονόματα των ιστοτόπων που κάθε μέρα στο διάστημα των τεσσάρων εβδομάδων δέχθηκαν περισσότερες από 500 επισκέψεις. Αν δεν υπάρχουν τέτοιοι ιστότοποι, να εμφανίζει κατάλληλο μήνυμα.
Μονάδες 6
Δ4. Να διαβάζει το όνομα ενός ιστοτόπου. Αν το όνομα αυτό δεν είναι ένα από τα δέκα ονόματα που έχουν δοθεί, να το ξαναζητά, μέχρι να δοθεί ένα από αυτά τα ονόματα. Να εμφανίζει τους αριθμούς των εβδομάδων (1-4) κατά τη διάρκεια των οποίων ο συνολικός (εβδομαδιαίος) αριθμός επισκέψεων στον ιστότοπο αυτό είχε τη μέγιστη τιμή.
Μονάδες 9

ΛΥΣΗ

ΘΕΜΑΔ_2014ΙΟΥΝ_ΗΜΕΡ [DEMO δεδομένα]

 

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ_2014_ΙΟΥΝ_ΗΜΕΡ
ΜΕΤΑΒΛΗΤΕΣ
 ΑΚΕΡΑΙΕΣ: ΕΠΙΣΚ[10,28], ΣΕΠΙΣΚ[10], ΣΕΠΙΣΚ_ΑΝΑ7[4], Μέγιστο, position, i, j, k
 ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[10], ΟΝΟΜΑ
 ΛΟΓΙΚΕΣ: βρέθηκε_τουλάχιστον_1, βρέθηκε_κάτω_500, βρέθηκε
ΑΡΧΗ
 ! Δ1
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
     ΓΡΑΨΕ 'ΔΩΣΤΕ ΟΝΟΜΑ ΙΣΤΟΤΟΠΟΥ ', i
     ΔΙΑΒΑΣΕ ΟΝ[i]
     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 28
         ΓΡΑΨΕ 'ΔΩΣΤΕ ΑΡΙΘΜΟ ΕΠΙΣΚΕΨΕΩΝ ΓΙΑ ΤΗ ΜΕΡΑ ', j
         ΔΙΑΒΑΣΕ ΕΠΙΣΚ[i, j]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

 ! αρχικοποίηση πίνακα μετρητών επισκεψιμότητας 28 ημερών
 ! (Παράλληλος Πίνακας, όπως και ο ΟΝ)
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
     ΣΕΠΙΣΚ[i] <-- 0
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! Δ2 Υπολογισμός αθροίσματος κατά γραμμή
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 28
         ΣΕΠΙΣΚ[i] <-- ΣΕΠΙΣΚ[i] + ΕΠΙΣΚ[i, j]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! Έξοδος στη οθόνη
 ΓΡΑΨΕ 'ΙΣΤΟΧΩΡΟΙ ΚΑΙ ΕΠΙΣΚΕΨΙΜΟΤΗΤΑ ΜΗΝΑ'
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
     ΓΡΑΨΕ ΟΝ[i],' ΕΠΙΣΚΕΨΕΙΣ ΜΗΝΑ: ', ΣΕΠΙΣΚ[i]
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! Δ3 Μπορεί να επιλυθεί και με τη χρήση πίνακα
 ΓΡΑΨΕ 'ΙΣΤΟΧΩΡΟΙ ΜΕ ΕΠΙΣΚΕΨΙΜΟΤΗΤΑ > 500 ΚΑΘΕ ΗΜΕΡΑ ΓΙΑ 4 ΕΒΔΟΜΑΔΕΣ'
 βρέθηκε_τουλάχιστον_1 <-- ΨΕΥΔΗΣ ! με επισκέψιμότητα > 500 κάθε ημέρα
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
     j <-- 1
     βρέθηκε_κάτω_500 <-- ΨΕΥΔΗΣ ! μέρα με επισκεμότητα < 500
     ΟΣΟ j<=28 ΚΑΙ βρέθηκε_κάτω_500 = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
         ΑΝ ΕΠΙΣΚ[i, j]>500 ΤΟΤΕ
            j <-- j + 1
           ΑΝ βρέθηκε_τουλάχιστον_1 = ΨΕΥΔΗΣ ΤΟΤΕ !το flag θα σηκωθεί μόνο τη 1η φορά
              βρέθηκε_τουλάχιστον_1 <-- ΑΛΗΘΗΣ
           ΤΕΛΟΣ_ΑΝ
         ΑΛΛΙΩΣ
           βρέθηκε_κάτω_500 <-- ΑΛΗΘΗΣ
         ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
     ΑΝ βρέθηκε_κάτω_500 = ΨΕΥΔΗΣ ΤΟΤΕ
        ΓΡΑΨΕ ΟΝ[i]
     ΤΕΛΟΣ_ΑΝ
     i <-- i + 1
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! Δ4
 !Αναζήτηση ύπαρξης και θέσης στοιχείου και έλεγχος εγκυρότητας
 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'ΔΩΣΤΕ ΟΝΟΜΑ ΙΣΤΟΤΟΠΟΥ:'
    ΔΙΑΒΑΣΕ ΟΝΟΜΑ
    βρέθηκε <-- ΨΕΥΔΗΣ
    i <-- 1
    ΟΣΟ i <= 10 και βρέθηκε=ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
        ΑΝ ΟΝΟΜΑ = ΟΝ[i] ΤΟΤΕ
           position <-- i
           βρέθηκε <-- ΑΛΗΘΗΣ
        ΑΛΛΙΩΣ
           i <-- i + 1
        ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΜΕΧΡΙΣ_ΟΤΟΥ βρέθηκε = ΑΛΗΘΗΣ

 ! Αρχικοποίηση πίνακα μετρητή επισκέψεων ιστοτόπου ανά εβδομάδα
 ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 4
     ΣΕΠΙΣΚ_ΑΝΑ7[k] <-- 0
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! άθροιση επισκέψεων ανά εβδομάδα α τρόπος
 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 28
     ΑΝ j<=7 ΤΟΤΕ
        ΣΕΠΙΣΚ_ΑΝΑ7[1] <-- ΣΕΠΙΣΚ_ΑΝΑ7[1] + ΕΠΙΣΚ[position, j]
     ΑΛΛΙΩΣ_ΑΝ j<=14 ΤΟΤΕ
        ΣΕΠΙΣΚ_ΑΝΑ7[2] <-- ΣΕΠΙΣΚ_ΑΝΑ7[2] + ΕΠΙΣΚ[position, j]
     ΑΛΛΙΩΣ_ΑΝ j<=21 ΤΟΤΕ
        ΣΕΠΙΣΚ_ΑΝΑ7[3] <-- ΣΕΠΙΣΚ_ΑΝΑ7[3] + ΕΠΙΣΚ[position, j]
     ΑΛΛΙΩΣ
        ΣΕΠΙΣΚ_ΑΝΑ7[4] <-- ΣΕΠΙΣΚ_ΑΝΑ7[4] + ΕΠΙΣΚ[position, j]
     ΤΕΛΟΣ_ΑΝ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!* άθροιση επισκέψεων ανά εβδομάδα, β τρόπος
!* ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 4
!*     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 7
!*         ΣΕΠΙΣΚ_ΑΝΑ7[k] <-- ΣΕΠΙΣΚ_ΑΝΑ7[k] + ΕΠΙΣΚ[position, (k-1)*7 + j]
!*     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!* ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ! Έυρεση Μεγίστου επισκέψεων στον ΣΕΠΙΣΚ_ΑΝΑ7
 Μέγιστο <-- ΣΕΠΙΣΚ_ΑΝΑ7[1]
 ΓΙΑ k ΑΠΟ 2 ΜΕΧΡΙ 4
     ΑΝ ΣΕΠΙΣΚ_ΑΝΑ7[k] > Μέγιστο ΤΟΤΕ
        Μέγιστο <-- ΣΕΠΙΣΚ_ΑΝΑ7[k]
     ΤΕΛΟΣ_ΑΝ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 ΓΡΑΨΕ 'ΜΕΓΙΣΤΟ ΕΒΔΟΜΑΔΙΑΙΩΝ ΕΠΙΣΚΕΨΕΩΝ: ', Μέγιστο
 ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 4
     ΑΝ ΣΕΠΙΣΚ_ΑΝΑ7[k] = Μέγιστο ΤΟΤΕ
        ΓΡΑΨΕ 'ΤΗΝ ΕΒΔΟΜΑΔΑ ', k
     ΤΕΛΟΣ_ΑΝ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Τα θέματα σε pdf, 2014, Μαΐου-Ιουνίου, Ημερήσια