Λύσεις – Πανελλαδικές, Επαναληπτικές, Ημερήσια Λύκεια, 2013 (ΑΕΠΠ)

ΘΕΜΑ Γ

 

Ο σύλλογος γονέων και κηδεμόνων μιας περιοχής θέλει να διοργανώσει μια πολιτιστική εκδήλωση. Για το σκοπό αυτό, ζητά από κάθε σχολείο της περιοχής να προσφέρει κάποιο χρηματικό ποσό για την πραγματοποίησή της. Κάθε σχολείο έχει τη δυνατότητα να επικοινωνεί περισσότερες από μία φορές με το σύλλογο και να τροποποιεί την προσφορά του.

Να αναπτύξετε αλγόριθμο σε ψευδογλώσσα, ο οποίος:

Γ1. Να θεωρεί δεδομένο ένα πίνακα Σ[100] που περιέχει τα ονόματα των 100 σχολείων της περιοχής και να δημιουργεί πίνακα Π[100] που θα περιέχει τις αντίστοιχες χρηματικές προσφορές από κάθε σχολείο. Αρχικά να τοποθετηθεί σε κάθε στοιχείο του πίνακα Π[100] την τιμή -1.

Μονάδες 3

Γ2.     αΝα διαβάζει το όνομα ενός σχολείου και να το αναζητά στον πίνακα Σ.

(μονάδες 4)

β) Να εμφανίζει το μήνυμα «Άγνωστο», όταν το σχολείο δε βρεθεί. Όταν το σχολείο βρεθεί, να σταματά την αναζήτηση, να διαβάζει τη χρηματική προσφορά του σχολείου και να την τοποθετεί στην αντίστοιχη θέση του πίνακα Π. (Όταν δοθεί η τιμή 0, σημαίνει ότι το σχολείο δεν μπορεί να προσφέρει χρήματα, δηλαδή έδωσε μηδενική προσφορά).Όταν δεν είναι η πρώτη φορά που δίνει προσφορά τότε να εμφανίζει το μήνυμα «ΤΡΟΠΟΠΟΙΗΣΗ ΠΡΟΣΦΟΡΑΣ» και να αντικαθιστά την προηγούμενη προσφορά του με τη νέα.

(μονάδες 6)

Μονάδες 10

Γ3. Να επαναλαμβάνει τις ενέργειες που περιγράφονται στο ερώτημα Γ2, μέχρις ότου όλα τα σχολεία να δώσουν τουλάχιστον μία προσφορά.

Μονάδες 3

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

Μονάδες 4

 

ΛΥΣΗ 

ΘΕΜΑΓ_2013ΕΠΑΝΗΜΕΡ [Demoδεδομένα]

 

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ_ΕΠΑΝ_ΗΜΕΡ_2013
ΜΕΤΑΒΛΗΤΕΣ
 ΑΚΕΡΑΙΕΣ: i, θέση, Πλήθος_προσφορών, Πλήθος_μηδενικών, Πλήθος_τροποποιήσεων
 ΠΡΑΓΜΑΤΙΚΕΣ: Π[100], ΠΡΟΣΦΟΡΑ, Άθροισμα_προσφορών
 ΧΑΡΑΚΤΗΡΕΣ: Σ[100], ΟΝΟΜΑ
 ΛΟΓΙΚΕΣ: done

ΑΡΧΗ

! Γ1
 ΓΡΑΨΕ 'ΔΩΣΤΕ ΟΝΟΜΑΤΑ ΣΧΟΛΕΙΩΝ (100):'
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
     ΔΙΑΒΑΣΕ Σ[i]
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
    Π[i] <-- -1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Γ2α
Πλήθος_προσφορών <-- 0
Πλήθος_τροποποιήσεων <-- 0
ΟΣΟ Πλήθος_προσφορών < 100 ΕΠΑΝΑΛΑΒΕ

    ΓΡΑΨΕ 'ΔΩΣΤΕ ΣΧΟΛΕΙΟ:'
    ΔΙΑΒΑΣΕ ΟΝΟΜΑ
    done <-- ΨΕΥΔΗΣ
    i <-- 1
    ΟΣΟ i<= 100 ΚΑΙ done = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
        ΑΝ ΟΝΟΜΑ <> Σ[i] ΤΟΤΕ
           i <-- i + 1
        ΑΛΛΙΩΣ
           done <-- ΑΛΗΘΗΣ
           θέση <-- i
       ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ! Γ2β
    ΑΝ done = ΑΛΗΘΗΣ ΤΟΤΕ
       ΓΡΑΨΕ 'ΔΩΣΤΕ ΠΡΟΣΦΟΡΑ:'
       ΔΙΑΒΑΣΕ ΠΡΟΣΦΟΡΑ
       ΑΝ Π[θέση] <> - 1 ΤΟΤΕ
          ΓΡΑΨΕ 'ΤΡΟΠΟΠΟΙΗΣΗ ΠΡΟΣΦΟΡΑΣ'
          Πλήθος_τροποποιήσεων <-- Πλήθος_τροποποιήσεων + 1
       ΑΛΛΙΩΣ
          Πλήθος_προσφορών <-- Πλήθος_προσφορών + 1
       ΤΕΛΟΣ_ΑΝ
          Π[θέση] <-- ΠΡΟΣΦΟΡΑ
    ΑΛΛΙΩΣ
       ΓΡΑΨΕ 'ΑΓΝΩΣΤΟ ΣΧΟΛΕΙΟ'
    ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Άθροισμα_προσφορών <-- 0
Πλήθος_μηδενικών <-- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
    Άθροισμα_προσφορών <-- Άθροισμα_προσφορών + Π[i]
    ΑΝ Π[i] = 0 ΤΟΤΕ
       Πλήθος_μηδενικών <-- Πλήθος_μηδενικών + 1
    ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ 'ΣΥΝΟΛΟ ΠΟΣΟΥ ΠΡΟΣΦΟΡΩΝ: ',Άθροισμα_προσφορών
ΓΡΑΨΕ 'ΠΛΗΘΟΣ ΜΗΔΕΝΙΚΩΝ ΠΡΟΣΦΟΡΩΝ: ', Πλήθος_μηδενικών
ΓΡΑΨΕ 'ΠΛΗΘΟΣ ΤΡΟΠΟΠΟΙΗΣΕΩΝ: ', Πλήθος_τροποποιήσεων

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

 
 

ΘΕΜΑ Δ

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

Για κάθε bit (ακέραιος με τιμή 0 ή 1), που ο πομπός θέλει να στείλει, μεταδίδει μια λέξη, που αντιστοιχεί σε πίνακα ΜΕΤΑΔΟΣΗ[31] με όλες τις τιμές του ταυτόσημες με το προς μετάδοση bit, δηλαδή, αν πρόκειται να σταλεί το bit 1, τότε η λέξη που μεταδίδεται είναι η 11…1 μήκους 31 bits, ενώ αν πρόκειται να σταλεί το bit 0, τότε η λέξη που μεταδίδεται είναι η 00…0, μήκους 31 bits. Ο δέκτης λαμβάνει λέξη μήκους 31 bits, τα οποία τοποθετούνται σε πίνακα ΛΗΨΗ[31]. Έχουμε «ΛΑΝΘΑΣΜΕΝΗ ΛΗΨΗ», εάν υπάρχει τουλάχιστον ένα στοιχείο του πίνακα ΛΗΨΗ[31] με διαφορετική τιμή από αυτήν του αντίστοιχου στοιχείου του πίνακα ΜΕΤΑΔΟΣΗ[31]. Εάν το πλήθος των 1 του πίνακα ΛΗΨΗ[31] είναι μεγαλύτερο από το πλήθος των 0, τότε ο δέκτης αποφασίζει ότι ο πομπός έστειλε 1, ενώ σε αντίθετη περίπτωση ο δέκτης αποφασίζει ότι ο πομπός έστειλε 0. Σε κάθε περίπτωση, αν περισσότερα από τα μισά των 31 bits της λέξης μετάδοσης έχουν αλλοιωθεί, τότε ο δέκτης θα έχει πάρει «ΛΑΝΘΑΣΜΕΝΗ ΑΠΟΦΑΣΗ».

Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να κάνει τα εξής:

Δ1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων.

Μονάδες 3

Δ2. Για κάθε τιμή ποιότητας του καναλιού, που χαρακτηρίζεται από ακεραίους από 1 έως και 10, να πραγματοποιούνται το πολύ 100.000 διαφορετικές προσπάθειες μετάδοσης-λήψης και διόρθωσης λαθών. Εάν όμως ληφθούν 100 λανθασμένες αποφάσεις, τότε να διακόπτεται η διαδικασία για τη συγκεκριμένη τιμή ποιότητας του καναλιού.

Μονάδες 4

Δ3.Σε κάθε προσπάθεια μετάδοσης-λήψης και διόρθωσης λαθών να πραγματοποιούνται οι ακόλουθες ενέργειες:

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

β. Να διορθώνει τη ληφθείσα λέξη στο δέκτη, βάσει της παραπάνω περιγραφής του αλγορίθμου.

Μονάδες 9

Δ4. α. Να αποθηκεύει, για κάθε τιμή ποιότητας καναλιού, σε πίνακα ΛΑΘΗΑΠΟΦ[10] το ποσοστό των λανθασμένων αποφάσεων και σε πίνακα ΛΑΘΗΛΗΨ[10] το ποσοστό των λανθασμένων λήψεων.

β. Να εμφανίζει συγκεντρωτικά τα ποσοστά των λανθασμένων αποφάσεων και λανθασμένων λήψεων στο δέκτη.

Μονάδες 4

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ_ΕΠΑΝ_ΗΜΕΡ_2013
ΜΕΤΑΒΛΗΤΕΣ
 ΑΚΕΡΑΙΕΣ: ΜΕΤΑΔΟΣΗ[31], ΛΗΨΗ[31], Πλήθος_λαθών_λήψης, Προσπάθειες, 
           Κανάλι, bit, Λάθος_αποφάσεις, Σωστά_bit, Πλήθος_0, Πλήθος_1
 ΠΡΑΓΜΑΤΙΚΕΣ: Λαθ_Ληψ[10], Λαθ_Αποφ[10]
ΑΡΧΗ
 ΓΙΑ Κανάλι ΑΠΟ 1 ΜΕΧΡΙ 10
     Λάθος_αποφάσεις <-- 0
     Προσπάθειες <-- 1
     Πλήθος_λαθών_λήψης <-- 0
     ΟΣΟ Προσπάθειες < 1000000 ΚΑΙ Πλήθος_λαθών_λήψης <100 ΕΠΑΝΑΛΑΒΕ

        ΓΙΑ bit ΑΠΟ 1 ΜΕΧΡΙ 31
            ΔΙΑΒΑΣΕ ΜΕΤΑΔΟΣΗ[bit], ΛΗΨΗ[bit]
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

        Σωστά_bit <-- 0
        Πλήθος_0 <-- 0
        Πλήθος_1 <-- 0
        ΓΙΑ bit ΑΠΟ 1 ΜΕΧΡΙ 31
            ΑΝ ΜΕΤΑΔΟΣΗ[bit] = ΛΗΨΗ[bit] ΤΟΤΕ
               Σωστά_bit <-- Σωστά_bit + 1
            ! Εντοπίστηκε λάθος bit
            ΑΛΛΙΩΣ 
               ! Μετρώ αν είναι περισσότερα τα 0 ή τα 1
               ΑΝ ΛΗΨΗ[bit]=0 ΤΟΤΕ
                  Πλήθος_0 <-- Πλήθος_0 + 1
               ΑΛΛΙΩΣ
                  Πλήθος_1 <-- Πλήθος_1 + 1
              ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

        ! Δεν έχουν μεταδοθεί σωστά όλα τα bits
        ΑΝ Σωστά_bit< 31 ΤΟΤΕ 
           Πλήθος_λαθών_λήψης <-- Πλήθος_λαθών_λήψης + 1

           ! Διόρθωση λάθους
           ΑΝ Πλήθος_0 > Πλήθος_1 ΤΟΤΕ  ! Πιθανότερη η μετάδοση 0
              ΓΙΑ bit ΑΠΟ 1 ΜΕΧΡΙ 31
                  ΛΗΨΗ[bit] <-- 0
              ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
           ΑΛΛΙΩΣ
              ΓΙΑ bit ΑΠΟ 1 ΜΕΧΡΙ 31    ! Πιθανότερη η μετάδοση 1
                 ΛΗΨΗ[bit] <-- 1
              ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
           ΤΕΛΟΣ_ΑΝ

           ! Μεταδόθηκαν πιο πολλά λάθος από σωστά bit 
           ΑΝ Σωστά_bit < 16 ΤΟΤΕ
              Λάθος_αποφάσεις <-- Λάθος_αποφάσεις + 1
           ΤΕΛΟΣ_ΑΝ
           
        ΤΕΛΟΣ_ΑΝ

     Προσπάθειες <-- Προσπάθειες + 1
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
 Λαθ_Αποφ[κανάλι] <-- Λάθος_αποφάσεις / Προσπάθειες * 100
 Λαθ_Ληψ[κανάλι] <-- Πλήθος_λαθών_λήψης / Προσπάθειες * 100

 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΙΑ Κανάλι ΑΠΟ 1 ΜΕΧΡΙ 10
   ΓΡΑΨΕ 'Κανάλι ', Κανάλι
   ΓΡΑΨΕ 'Ποσοστό λαθών απόφασης / Προσπαθειών', Λαθ_Αποφ[Κανάλι]
   ΓΡΑΨΕ 'Ποσοστό λαθών λήψης / Προσπαθειών', Λαθ_Ληψ[Κανάλι]
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Τα θέματα σε pdf, 2013, Επαναληπτικές, Ημερήσια