Δευτέρα 31 Ιανουαρίου 2011

Άσκηση : συγγραφή διαδικασίας

Γράψτε διαδικασία που διαβάζει τις τιμές πώλησης, το
εμβαδόν σε τετραγωνικά μέτρα και τις διευθύνσεις 35
διαμερισμάτων στην Αθήνα και υπολογίζει τον αύξοντα
αριθμό (1-35) και τη διεύθυνση του διαμερίσματος που
αποτελεί την πιο συμφέρουσα αγορά για κάποιο
επενδυτή γης.
Παρατήρηση 
Η διαδικασία πρέπει να διασφαλίζει την
εγκυρότητα των εισερχόμενων δεδομένων και συγκεκριμένα
ότι:
* όλες οι τιμές πώλησης είναι θετικοί αριθμοί που δεν
   υπερβαίνουν το 200000,
* το εμβαδόν όλων  των διαμερισμάτων είναι θετικό και
    δεν υπερβαίνει τα 80 τετραγωνικά μέτρα.

Λύση

         ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΜ(ΑΑΜΙΝ, ΔΜΙΝ)
         ΜΕΤΑΒΛΗΤΕΣ
               ΑΚΕΡΑΙΕΣ: ΑΑΜΙΝ, Κ
               ΧΑΡΑΚΤΗΡΕΣ: Δ, ΔΜΙΝ
               ΠΡΑΓΜΑΤΙΚΕΣ: ΠΩΛ, ΕΜΒ, ΜΙΝ, ΤΜ2
         ΑΡΧΗ
               ΜΙΝ <-- 200001
               ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 35
                     ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                           ΔΙΑΒΑΣΕ ΠΩΛ
                     ΜΕΧΡΙΣ_ΟΤΟΥ (ΠΩΛ > 0) ΚΑΙ (ΠΩΛ <= 200000)
                     ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                           ΔΙΑΒΑΣΕ ΕΜΒ
                     ΜΕΧΡΙΣ_ΟΤΟΥ (ΕΜΒ > 0) ΚΑΙ (ΕΜΒ <= 80)
                     ΔΙΑΒΑΣΕ Δ
                     ΤΜ2 <-- ΠΩΛ/ΕΜΒ
                     ΑΝ ΤΜ2 < ΜΙΝ ΤΟΤΕ
                           ΜΙΝ <-- ΤΜ2
                           ΑΑΜΙΝ <-- Κ
                           ΔΜΙΝ <-- Δ
                     ΤΕΛΟΣ_ΑΝ
               ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
         ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Άσκηση : συγγραφή διαδικασίας

Γράψτε διαδικασία που δέχεται ως παράμετρο έναν
ακέραιο πίνακα Α[9, 9] και μια αλφαριθμητική τιμή
Χ και ταξινομεί :
* όλες τις γραμμές του πίνακα κατά αύξουσα σειρά,
   αν Χ = 'Γ'΄,
* όλες τις στήλες του πίνακα κατά φθίνουσα σειρά,
   αν Χ = 'Σ',
* τα στοιχεία της 1ης κυρίας διαγωνίου, αν το Χ έχει
   οποιαδήποτε άλλη τιμή.

Λύση

      ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(Α, Χ)
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Α[9, 9], Κ, Λ, Μ, ΒΟΗΘ
            ΧΑΡΑΚΤΗΡΕΣ: Χ
      ΑΡΧΗ
            ΑΝ Χ = 'Γ' ΤΟΤΕ
                  ΓΙΑ Μ ΑΠΟ 1 ΜΕΧΡΙ 9
                       ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 9
                            ΓΙΑ Λ ΑΠΟ 9 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
                                 ΑΝ Α[Μ, Λ-1] > Α[Μ, Λ] ΤΟΤΕ
                                        ΒΟΗΘ <-- Α[Μ, Λ-1]
                                        Α[Μ, Λ-1] <-- Α[Μ, Λ]
                                        Α[Μ, Λ] <-- ΒΟΗΘ
                                 ΤΕΛΟΣ_ΑΝ
                            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                       ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΑΛΛΙΩΣ_ΑΝ Χ = 'Σ' ΤΟΤΕ
                   ΓΙΑ Μ ΑΠΟ 1 ΜΕΧΡΙ 9
                       ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 9
                            ΓΙΑ Λ ΑΠΟ 9 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
                                 ΑΝ Α[Λ-1, Μ] < Α[Λ, Μ] ΤΟΤΕ
                                        ΒΟΗΘ <-- Α[Λ-1, Μ]
                                        Α[Λ-1, Μ] <-- Α[Λ, Μ]
                                        Α[Λ, Μ] <-- ΒΟΗΘ
                                 ΤΕΛΟΣ_ΑΝ
                            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                       ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ            
            ΑΛΛΙΩΣ
                  ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 9
                            ΓΙΑ Λ ΑΠΟ 9 ΜΕΧΡΙ Κ ΜΕ_ΒΗΜΑ -1
                                 ΑΝ Α[Λ-1, Λ-1] > Α[Λ, Λ] ΤΟΤΕ
                                        ΒΟΗΘ <-- Α[Λ-1, Λ-1]
                                        Α[Λ-1, Λ-1] <-- Α[Λ, Λ]
                                        Α[Λ, Λ] <-- ΒΟΗΘ
                                 ΤΕΛΟΣ_ΑΝ
                            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Παρασκευή 28 Ιανουαρίου 2011

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο έναν
πίνακα Β[12, 31] πραγματικού τύπου και υπολογίζει
πόσα στοιχεία του περιέχουν ακέραιες τιμές.

Λύση

     ΣΥΝΑΡΤΗΣΗ Πόσα(Β) : ΑΚΕΡΑΙΑ
     ΜΕΤΑΒΛΗΤΕΣ
          ΑΚΕΡΑΙΕΣ : Κ, Λ, Φ
          ΠΡΑΓΜΑΤΙΚΕΣ: Β[12, 31]
     ΑΡΧΗ
          Φ <-- 0
          ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 12
               ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 31
                    ΑΝ Α_Μ(Β[Κ, Λ]) = Β[Κ, Λ] ΤΟΤΕ
                          Φ <-- Φ+1
                    ΤΕΛΟΣ_ΑΝ
               ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
          ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
          Πόσα <-- Φ
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Τετάρτη 26 Ιανουαρίου 2011

Άσκηση : γέμισμα πίνακα

Γράψτε αλγόριθμο που γεμίζει τον πίνακα Α[3, 4] με το
ακόλουθο περιεχόμενο:
      12       15      18       21
      21       24      27       30
      30       33      36       39

Λύση

     Αλγόριθμος ΑΣΚ
     Υ <-- 12
     Για κ από 1 μέχρι 3
          Για λ από 1 μέχρι  4
               Α[κ, λ] <-- Υ
               Υ <-- Υ+3
         Τέλος_επανάληψης
         Υ <-- Υ-3
     Τέλος_επανάληψης
     Αποτελέσματα // Α //


     Τέλος ΑΣΚ

Άσκηση : γέμισμα πίνακα

Γράψτε αλγόριθμο που γεμίζει τον πίνακα Α[3, 3] με το
ακόλουθο περιεχόμενο
       εφ(10)       ημ(20)      εφ(30)
       ημ(40)       εφ(50)      ημ(60)
       εφ(70)       ημ(80)      εφ(90)

Λύση

       Αλγόριθμος Ασκ
       Υ <-- 10
       Για κ από 1 μέχρι 3
           Για λ από 1 μέχρι 3
                Αν (κ+λ) mod 2 = 1 τότε
                      Α[κ, λ] <-- ΕΦ(Υ)
                αλλιώς
                      Α[κ, λ] <-- ΗΜ(Υ)
                Τέλος_αν
                Υ <-- Υ+10
           Τέλος_επανάληψης
       Τέλος_επανάληψης
       Αποτελέσματα  // Α //
       Τέλος Ασκ

Άσκηση : συγγραφή διαδικασίας

Γράψτε διαδικασία που διαβάζει τα αποτελέσματα
(ΝΙΚΗ ή ΙΣΟΠΑΛΙΑ ή ΗΤΤΑ) που έφερε μια ομάδα
ποδοσφαίρου σε 30 αγώνες της στο πρωτάθλημα και
υπολογίζει το ποσοστό (%) των νικών, ισοπαλιών και
ηττών της.
Παρατήρηση : Πρέπει να διασφαλίζεται η εγκυρότητα
όλων των εισερχόμενων δεδομένων.

Λύση

     ΔΙΑΔΙΚΑΣΙΑ ΟΜΑΔΑ(Π1, Π2, Π3)
     ΜΕΤΑΒΛΗΤΕΣ
          ΑΚΕΡΑΙΕΣ: Νικ, Ισο, Ητ, Κ
          ΠΡΑΓΜΑΤΙΚΕΣ: Π1, Π2, Π3
          ΧΑΡΑΚΤΗΡΕΣ: ΑΠ
     ΑΡΧΗ
         Νικ <-- 0
         Ισο <-- 0
         Ητ <-- 0
          ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 30
                ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                      ΔΙΑΒΑΣΕ ΑΠ
                ΜΕΧΡΙΣ_ΟΤΟΥ  (ΑΠ = 'ΝΙΚΗ') Ή
                                             (ΑΠ = 'ΙΣΟΠΑΛΙΑ') Ή
                                             (ΑΠ = 'ΗΤΤΑ')
                ΑΝ ΑΠ = 'ΝΙΚΗ' ΤΟΤΕ
                      Νικ <-- Νικ+1
                ΑΛΛΙΩΣ_ΑΝ  ΑΠ = 'ΙΣΟΠΑΛΙΑ' ΤΟΤΕ
                      Ισο <-- Ισο+1
                ΑΛΛΙΩΣ
                      Ητ <-- Ητ+1
                ΤΕΛΟΣ_ΑΝ
          ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
          Π1 <-- 100*Νικ/30
          Π2 <-- 100*Ισο/30
          Π3 <-- 100*Ητ/30
     ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Δευτέρα 24 Ιανουαρίου 2011

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο τους
ακέραιους πίνακες Α[12], Β[12], Γ[12] και ελέγχει
αν ισχύει η ιδιότητα :
       Α[Κ] = 2*Β[Κ]-ΓΚ], για Κ = 1, 2, ..., 12

Λύση

        ΣΥΝΑΡΤΗΣΗ ΙΔΙΟΤΗΤΑ(Α, Β, Γ) : ΛΟΓΙΚΗ
        ΜΕΤΑΒΛΗΤΕΣ
               ΑΚΕΡΑΙΕΣ: Α[12], Β[12], Γ[12], Κ, Φ
        ΑΡΧΗ
               Φ <-- 0
               ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 12
                     ΑΝ Α[Κ] = 2*Β[Κ]-ΓΚ] ΤΟΤΕ
                            Φ <-- Φ+1
                     ΤΕΛΟΣ_ΑΝ
               ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
               ΑΝ Φ = 12 ΤΟΤΕ
                    ΙΔΙΟΤΗΤΑ <-- ΑΛΗΘΗΣ
               ΑΛΛΙΩΣ
                    ΙΔΙΟΤΗΤΑ <-- ΨΕΥΔΗΣ
               ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Ερωτήσεις σωστού-λάθους

Ποιές από τις παρακάτω προτάσεις είναι σωστές και ποιές
λανθασμένες;
1. Μια συνάρτηση μπορεί να ενεργοποιηθεί μέσα από μια
    εντολή εκχώρησης ή μια εντολή ΓΡΑΨΕ.
2. Κάθε διαδικασία μπορεί να υλοποιηθεί και ως συνάρτηση.
3. Ο μικρότερος μονοδιάστατος πίνακας έχει 2 στοιχεία.
4. Ο μικρότερος δυσδιάστατος πίνακας έχει 4 στοιχεία.
5. Η γλώσσα JAVA είναι 4ης γενιάς.
6. Ένας από τους τρόπους αναπαράστασης αλγορίθμων
   είναι και η κωδικοποίηση.


Απαντήσεις

1. Σ
2. Λ
3. Σ
4. Σ
5. Λ
6. Σ




Παρασκευή 21 Ιανουαρίου 2011

Άσκηση : υποπρόγραμμα+συνάρτηση

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

      Ποσό παραγγελίας(ευρώ)         Ποσοστό έκπτωσης(%)
         Μέχρι και 1500                                      6
         Από 1501 έως και 3200                         8
         Από 3201 έως και 4800                         9
         Από 4801 και πάνω                               12
1. Γράψτε συνάρτηση που δέχεται το ποσό παραγγελίας
    ενός πελάτη και υπολογίζει το ποσό της έκπτωσης που
    του αναλογεί.
2. Γράψτε πρόγραμμα το οποίο:
    * διαβάζει το ποσό παραγγελίας 37 διαφορετικών 
       πελατών,
    * υπολογίζει και εμφανίζει:
       α) το τελικό ποσό πληρωμής κάθε πελάτη,
       β) πόσοι πελάτες πλήρωσαν περισσότερα από
           2500 ευρώ,
       γ) το ποσοστό (%) των πελατών που πλήρωσαν
           λιγότερα από 1500 ευρώ.
Παρατήρηση : Το πρόγραμμα πρέπει να καλεί με 
κατάλληλο τρόπο τη συνάρτηση που γράψατε στο 1.


Λύση
 
     ΠΡΟΓΡΑΜΜΑ ΠΕΛΑΤΕΣ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Κ, Φ1, Φ2, ΑΡΧ
           ΠΡΑΓΜΑΤΙΚΕΣ: ΤΕΛ, ΠΟΣ, ΕΚΠ
     ΑΡΧΗ
            Φ1 <-- 0
            Φ2 <-- 0
            ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 37
                  ΔΙΑΒΑΣΕ ΑΡΧ
                  ΕΚΠ <-- ΕΚΠΤΩΣΗ(ΑΡΧ)
                  ΤΕΛ <-- ΑΡΧ-ΕΚΠ
                  ΓΡΑΨΕ ΤΕΛ
                  ΑΝ ΤΕΛ > 2500 ΤΟΤΕ
                         Φ1 <-- Φ1+1
                  ΤΕΛΟΣ_ΑΝ
                  ΑΝ ΤΕΛ < 1500 ΤΟΤΕ
                         Φ2 <-- Φ2+1
                  ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΠΟΣ <-- 100*Φ2/37
            ΓΡΑΨΕ Φ1, ΠΟΣ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     ΣΥΝΑΡΤΗΣΗ ΕΚΠΤΩΣΗ(ΑΡΧ) : ΠΡΑΓΜΑΤΙΚΗ
     ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: ΑΡΧ
     ΑΡΧΗ
        ΑΝ ΑΡΧ <= 1500 ΤΟΤΕ
           ΕΚΠΤΩΣΗ <-- ΑΡΧ*6/100
        ΑΛΛΙΩΣ_ΑΝ ΑΡΧ <= 3200 ΤΟΤΕ
           ΕΚΠΤΩΣΗ <-- 1500*6/100+(ΑΡΧ-1500)*8/100
        ΑΛΛΙΩΣ_ΑΝ ΑΡΧ <= 4800 ΤΟΤΕ
           ΕΚΠΤΩΣΗ <-- 1500*6/100+1700*8/100+
                                     (ΑΡΧ-3200)*9/100
        ΑΛΛΙΩΣ
           ΕΚΠΤΩΣΗ <-- 1500*6/100+1700*8/100+
                                     1600*9/100+ (ΑΡΧ-4800)*12/100
        ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
    

Άσκηση: επεξεργασία δοσμένου πλήθους δεδομένων (Για)

Γράψτε αλγόριθμο που διαβάζει τις ημερομηνίες
γέννησης των 350 μαθητών ενός γυμνασίου και
υπολογίζει πόσοι μαθητές γεννήθηκαν:
*  χειμωνιάτικα,
* την τελευταία μέρα του χρόνου,
* πρωτομαγιά,
* μετά το 1999

Λύση

     Αλγόριθμος Γυμν
     Χειμ <-- 0
     Τελ <-- 0
     Πρ <-- 0
     Μετά <-- 0
     Για κ από 1 μέχρι 350
           Διάβασε Ημέρα, Μήνας, Χρόνος
           Αν (Μήνας = 12) Ή (Μήνας = 1) Ή (Μήνας = 2)
           τότε
               Χειμ <-- Χειμ+1
           Τέλος_αν
           Αν (Ημέρα = 31) ΚΑΙ (Μήνας = 12) τότε
                Τελ <-- Τελ+1
           Τέλος_αν
           Αν  (Ημέρα = 1) ΚΑΙ (Μήνας = 5) τότε
                 Πρ <-- Πρ+1
           Τέλος_αν
           Αν  Χρόνος > 1999 τότε
                 Μετά <-- Μετά+1
           Τέλος_αν
     Τέλος_επανάληψης
     Αποτελέσματα // Χειμ, Τελ, Πρ, Μετά //
     Τέλος Γυμν

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο τον
ακέραιο πίνακα Α[42, 33] και υπολογίζει το πλήθος
των στοιχείων του  πίνακα που είναι περιττά και
μεγαλύτερα από το 13.

Λύση

     ΣΥΝΑΡΤΗΣΗ ΥΠΟΛ(Α) : ΑΚΕΡΑΙΑ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Α[42, 33], Κ, Λ, Φ
     ΑΡΧΗ
            Φ <-- 0
            ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 42
                  ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 33
                        ΑΝ (Α[Κ, Λ] MOD 2 = 1) KAI (A[K, Λ] > 13)  
                        ΤΟΤΕ
                                 Φ <-- Φ+1
                         ΤΕΛΟΣ_ΑΝ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΥΠΟΛ <-- Φ 
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Πέμπτη 20 Ιανουαρίου 2011

Διόρθωση λανθασμένων προτάσεων

Διορθώστε τις παρακάτω προτάσεις και επαναδιατυπώστε
τις έτσι ώστε να είναι σωστές.
1. Τη μεγαλύτερη προτεραιότητα από όλους τους
     αριθμητικούς τελεστές έχει ο πολλαπλασιασμός (*).
2.  Οι συμβολικές σταθερές είναι ονόματα που αντι-
     προσωπεύουν συμβολικά δεδομένα.
3.  Η πράξη div μας δίνει ως αποτέλεσμα το
     υπόλοιπο της διαίρεσηςδύο ακεραίων  αριθμών.
4.  Τα σχόλια σε ένα πρόγραμμα είναι υποχρεωτικά.
5.   Οι τρισδιάστοι, τετραδιάστατοι, πενταδιάστατοι, κτλ.
      πίνακες αποκαλούνται και πολυδιάστατοι.

 


 



Απάντηση

1. Τη μεγαλύτερη προτεραιότητα από όλους τους
     αριθμητικούς τελεστές έχει η ύψωση στη δύναμη (^).
2.  Οι συμβολικές σταθερές είναι ονόματα που αντι-
     προσωπεύουν σταθερές ποσότητες.
3.  Η πράξη div μας δίνει ως αποτέλεσμα το
     πηλίκο της διαίρεσηςδύο ακεραίων  αριθμών.
4.  Τα σχόλια σε ένα πρόγραμμα είναι προαιρετικά.
5.   Οι δυσδιάστατοι, τρισδιάστοι, τετραδιάστατοι,
      πενταδιάστατοι, κτλ. πίνακες αποκαλούνται και
      πολυδιάστατοι.

Ερωτήσεις σωστού-λάθους

Ποιές από τις παρακάτω προτάσεις είναι σωστές και ποιές
λάθος;
1. Η τιμή 'ΑΛΗΘΗΣ' είναι λογική σταθερά.
2. Ο τελεστής - είναι συγκριτικός.
3. Κάθε αλγόριθμος τελειώνει με τη δεσμευμένη λέξη
    Τέλος και το όνομα του αλγορίθμου.
4. Το γεωμετρικό σχήμα του πλάγιου παραλληλογράμμου
    αναπαριστά την είσοδο δεδομένων ή την έξοδο των
    αποτελεσμάτων σε ένα λογικό διάγραμμα.
5. Το διάγραμμα ροής είναι ένας τρόπος αναπαράστασης
    αλγορίθμου που μπορεί να παραβιάσει το κριτήριο της
    καθοριστικότητας.
6. Μια από τις σκοπιές από τις οποίες εξετάζει η
    Πληροφορική τα δεδομένα είναι των γλωσσών
    προγραμματισμού.




 

 


Απάντηση

1. Λ
2. Λ
3. Σ
4. Σ
5. Λ
6. Σ

Άσκηση :συγγραφή διαδικασίας

Γράψτε διαδικασία που διαβάζει 110 λέξεις και υπολογίζει
το ποσοστό (%) των λέξεων αυτών που προηγούνται
λεξικογραφικά της λέξης 'ΑΝΑΠΤΥΞΗ'

Λύση

      ΔΙΑΔΙΚΑΣΙΑ ΥΠΟΛ(ΠΟΣ)
      ΣΤΑΘΕΡΕΣ
           ΑΡΧΛΕΞ = 'ΑΝΑΠΤΥΞΗ'
      ΜΕΤΑΒΛΗΤΕΣ
             ΑΚΕΡΑΙΕΣ: Φ, Κ
             ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣ
             ΧΑΡΑΚΤΗΡΕΣ : Λέξη
      ΑΡΧΗ


               Φ <-- 0
               ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 110
                     ΔΙΑΒΑΣΕ Λέξη
                     ΑΝ Λέξη < ΑΡΧΛΕΞ ΤΟΤΕ
                          Φ <-- Φ+1
                     ΤΕΛΟΣ_ΑΝ
               ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
               ΠΟΣ <-- 100*Φ/110
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 



 

Άσκηση :συγγραφή διαδικασίας

Γράψτε διαδικασία που διαβάζει τα ύψη και τα έτη γέννησης
των κατοίκων μιας πόλης(η έισοδος τερματίζεται μόλις δοθεί
η απάντηση 'Ο' στην υποβαλλόμενη προς το χρήστη ερώτηση
'Υπάρχει άλλος μαθητής;') και υπολογίζει:
α) πόσοι κάτοικοι έχουν ηλικία τουλάχιστον 32 έτη και το ύψος
    τους δεν υπερβαίνει το 1,70μ.,
β) την ηλικία και τον αύξοντα αριθμό του πιο ψηλού κάτοικου.

Λύση

      ΔΙΑΔΙΚΑΣΙΑ ΠΟΛΗ(Φ, ΗΛΙΚΜΑΧ, ΑΑΜΑΧ)
      ΜΕΤΑΒΛΗΤΕΣ
             ΑΚΕΡΑΙΕΣ: Φ, ΠΛΗΘ, ΑΑΜΑΧ, ΕΤΟΣ,
                                   ΗΛΙΚΜΑΧ, ΗΛΙΚΙΑ
             ΠΡΑΓΜΑΤΙΚΕΣ: ΥΨΟΣ, ΜΑΧ
             ΧΑΡΑΚΤΗΡΕΣ : ΑΠ
      ΑΡΧΗ
             Φ <-- 0
             ΜΑΧ <-- -1
             ΠΛΗΘ <-- 0
             ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                    ΔΙΑΒΑΣΕ ΥΨΟΣ, ΕΤΟΣ
                    ΠΛΗΘ <-- ΠΛΗΘ+1
                    ΗΛΙΚΙΑ <-- 2011-ΕΤΟΣ
                    ΑΝ (ΗΛΙΚΙΑ >= 32) ΚΑΙ (ΥΨΟΣ <= 1.70) ΤΟΤΕ
                            Φ <-- Φ+1
                    ΤΕΛΟΣ_ΑΝ
                    ΑΝ ΥΨΟΣ > ΜΑΧ ΤΟΤΕ
                          ΜΑΧ <-- ΥΨΟΣ
                          ΗΛΙΚΜΑΧ <-- ΗΛΙΚΙΑ
                          ΑΑΜΑΧ <-- ΠΛΗΘ
                    ΤΕΛΟΣ_ΑΝ
                    ΓΡΑΨΕ 'Υπάρχει άλλος μαθητής;'
                    ΔΙΑΒΑΣΕ ΑΠ
             ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ = 'Ο'
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Τετάρτη 19 Ιανουαρίου 2011

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο έναν
ακέραιο πίνακα Α[9, 9] και δύο ακέραιες τιμές Κ, Λ
και επιστρέφει την τιμή :
* 0, αν το Α[Κ, Λ] ανήκει στην 1η κύρια διαγώνιο του Α,
* 1, αν το Α[Κ, Λ] βρίσκεται πάνω από την 1η κύρια δια-
       γώνιο του Α,
* 2, αν το Α[Κ, Λ] βρίσκεται κάτω από την 1η κύρια δια-
       γώνιο του Α.

Λύση

     ΣΥΝΑΡΤΗΣΗ ΕΛΕΓΧΟΣ(Α, Κ, Λ) : ΑΚΕΡΑΙΑ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Α[9, 9], Κ, Λ
     ΑΡΧΗ
            ΑΝ Κ = Λ ΤΟΤΕ
                 ΕΛΕΓΧΟΣ <-- 0
            ΑΛΛΙΩΣ_ΑΝ Κ < Λ ΤΟΤΕ
                 ΕΛΕΓΧΟΣ <-- 1
            ΑΛΛΙΩΣ
                 ΕΛΕΓΧΟΣ <-- 2
            ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Τρίτη 18 Ιανουαρίου 2011

Άσκηση : γέμισμα πίνακα

Γράψτε αλγόριθμο που δέχεται ως δεδομένο ένα θετικό
άρτιο ακέραιο Ν και γεμίζει τον ακέραιο πίνακα Α[Ν, Ν]
ως εξής :
* τα στοιχεία της 1ης κυρίας διαγωνίου παίρνουν
   ως τιμή το γινόμενο των συντεταμένων τους,
* τα στοιχεία της 2ης κυρίας διαγωνίου παίρνουν
   ως τιμή το άθροισμα των συντεταμένων τους,
* όλα τα υπόλοιπα στοιχεία  αποκτούν την τιμή 0.

Λύση

     Αλγόριθμος Γεμ
     Δεδομένα // Ν //
     Για κ από 1 μέχρι Ν
         Για λ από 1 μέχρι Ν
               Αν κ = λ τότε
                     Α[κ, λ] <-- κ*λ
               αλλιώς_αν κ+λ = Ν+1 τότε
                     Α[κ, λ] <-- κ+λ
               αλλιώς
                     Α[κ, λ] <-- 0
               Τέλος_αν
         Τέλος_επανάληψης
     Τέλος_επανάληψης
     Αποτελέσματα  // Α //
     Τέλος Γεμ

    

Δευτέρα 17 Ιανουαρίου 2011

άσκηση : προσδιορίστε το περιεχόμενο του πίνακα

Ποιο είναι το περιεχόμενο του πίνακα Α[5, 5] μετά την εκτέλεση
των παρακάτω εντολών;
     Για κ από μέχρι 5
          Για λ από 1 μέχρι 5
              Αν (κ+λ) mod 2 = 0 τότε
                   Α[κ, λ] <-- 76
              αλλιώς
                   Α[κ, λ] <-- 83
              Τέλος_αν
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για κ από 1 μέχρι 5
          Α[κ, κ] <-- 0
          Α[κ, 6-κ] <-- 1
     Τέλος_επανάληψης


Λύση
     
     Αρχικά, με την εκτέλεση των  εμφωλευμένων Για,
     καταχωρείται η τιμή 76 στις θέσεις του πίνακα που
     το άθροισμα των συντεταγμένων τους είναι άρτιο
     (π.χ Α[1, 1], Α[1, 3], κτλ) και η τιμή 83 στις υπόλοιπες
     θέσεις του πίνακα. Αφού το γέμισμα γίνεται γραμμή
     προς γραμμή, το  περιεχόμενο του πίνακα είναι:
            76     83     76     83      76
            83     76     83     76      83
            76     83     76     83      76
            83     76     83     76      83
            76     83     76     83      76
     Στη συνέχεια, η επόμενη Για γεμίζει τα στοιχεία της
     * 1ης κυρίας διαγωνίου με το 0,
     * 2ης κυρίας διαγωνίου με το 1
    Ειδικότερα το στοιχείο Α[3,3] που ανήκει και στις
    δύο διαγωνίους, αλλάζει περιεχόμενο δύο φορές και
    τελικά γίνεται 1 (αφού η εντολή Α[κ, 6-κ] <-- 1 γίνεται
    τελευταία).
    Συνεπώς το τελικό περιεχόμενο του πίνακα είναι:
            0       83     76     83       1
            83     0       83     1        83
            76     83     1       83      76
            83     1       83     0        83
            1      83     76     83        0

Άσκηση : Συγχώνευση δυσδιάστατων πινάκων

Ας θεωρήσουμε τους ακέραιους πίνακες Α[Ρ, Λ] και
Β[Ρ, Μ]. Γράψτε αλγόριθμο που δοθέντων των
παραπάνω πινάκων, επιτυγχάνει τη συγχώνευσή τους
στον ακέραιο πίνακα Γ[Ρ, Λ+Μ]

Λύση

     Αλγόριθμος Συγχώνευση
     Δεδομένα // Α, Β, Ρ, Λ, Μ //
     Για κ από 1 μέχρι Ρ
          Για ξ από 1 μέχρι Λ
                 Γ[κ, ξ] <-- Α[κ, ξ]
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για κ από 1 μέχρι Ρ
          Για ξ από 1 μέχρι Μ
                 Γ[κ, Λ+ξ] <-- Β[κ, ξ]
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     Αποτελέσματα // Γ // 
     Τέλος Συγχώνευση

Σάββατο 15 Ιανουαρίου 2011

Άσκηση : μονοδιάστατος πίνακας (αναδρομικός τύπος γεμίσματος+φυσσαλίδα)

Ένας μαθητής αποταμιεύει καθημερινά ένα ποσό από το 
ημερήσιο χαρτζιλίκι του. Την πρώτη ημέρα το ποσό που 
αποταμίευσε ήταν Μ ευρώ, ενώ για κάθε άλλη ημέρα
αποταμίευσε ποσό κατά Ν ευρώ μεγαλύτερο από την 
προηγούμενη. Αν η αποταμίευση του μαθητή πραγματο-
ποιήθηκε σε Π ημέρες, γράψτε αλγόριθμο που, με δεδο-
μένα τα Μ, Ν και Π, υπολογίζει και εμφανίζει τα 
ημερήσια ποσά αποταμίευσης κατά φθίνουσα σειρά.
 
Λύση

      Αλγόριθμος Μαθητής
      Δεδομένα // Μ, Ν, Π //
      Ποσό[1] <-- Χ
      Για κ από 2 μέχρι Π
           Ποσό[κ] <-- Ποσό[κ-1]+Ν
      Τέλος_επανάληψης
       Για κ από μέχρι Π
           Για λ από Π μέχρι κ με_βήμα -1
                  Αν Ποσό[λ-1] < Ποσό[λ] τότε
                         Βοηθ <-- Ποσό[λ-1]
                         Ποσό[λ-1] <-- Ποσό[λ]
                         Ποσό[λ] <-- Βοηθ
                  Τέλος_αν
           Τέλος_επανάληψης
      Τέλος_επανάληψης
      Για κ από 1 μέχρι Π
            Εμφάνισε Ποσό[κ]
      Τέλος_επανάληψης
      Τέλος Μαθητής

Άσκηση: συγγραφή διαδικασίας

Γράψτε διαδικασία που δέχεται ως παράμετρο έναν ακέραιο
πίνακα Β[12, 21] και υπολογίζει πόσες τιμές είναι αρνητικές,
σε κάθε στήλη ξεχωριστά.

Λύση

       ΔΙΑΔΙΚΑΣΙΑ Αρνητικές(Β, Αρν)
       ΜΕΤΑΒΛΗΤΕΣ
              ΑΚΕΡΑΙΕΣ: Β[12, 21], Κ, Λ, Φ, Αρν[21]
       ΑΡΧΗ
              ΓΙΑ Λ ΑΠΟ ΜΕΧΡΙ 21
                   Φ <-- 0
                   ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 12
                         ΑΝ Β[Κ, Λ] < 0 ΤΟΤΕ
                                Φ <-- Φ+1
                         ΤΕΛΟΣ_ΑΝ
                   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                   Αρν[Λ] <-- Φ
              ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
       ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Παρασκευή 14 Ιανουαρίου 2011

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο τον
ακέραιο πίνακα Α[8, 91, 3] και υπολογίζει το μέσο
όρο των στοιχείων που ανήκουν στην 1η γραμμή
και σε βάθος 2.

Λύση

     ΣΥΝΑΡΤΗΣΗ ΜΟ(Α) : ΠΡΑΓΜΑΤΙΚΗ
     ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Α[8, 91, 3], Κ, Σ
     ΑΡΧΗ
            Σ <-- 0
            ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 91
                   Σ <-- Σ+Α[1, Κ, 2]
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΜΟ <-- Σ/91
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Άσκηση : διαχωρισμός δισδιάστατου πίνακα

Τα κεντρικά γραφεία μιας πολυεθνικής εταιρείας βρίσκονται
σε μια πολυκατοικία 7 ορόφων. Σε κάθε όροφο λειτουργούν
9 γραφεία. Για οικονομικούς λόγους, η εταιρεία αποφασίζει
να εγκαταλείψει το κτίριο που τη στέγαζε και να μεταφερθεί
αλλού. Πιο συγκεκριμένα οι υπάλληλοι των 3 πρώτων 
ορόφων θα μεταφερθούν σε μια πολυκατοικία τριών και
οι υπόλοιποι υπάλληλοι σε μια πολυκατοικία τεσσάρων 
ορόφων. Σε κάθε όροφο των πολυκατοικιών που θα φιλοξε-
νούν πλέον την εταιρεία, θα λειτουργούν και πάλι 9 γραφεία.
Ας θεωρήσουμε τον πίνακα ΟΝ[7, 9] που περιέχει
τα ονοματεπώνυμα των υπαλλήλων κάθε γραφείου, στις
αρχικές εγκαταστάσεις της εταιρείας. Γράψτε αλγόριθμο
που, με δεδομένο τον παραπάνω πίνακα, εμφανίζει τα 
ονοματεπώνυμα των υπαλλήλων της εταιρείας σε κάθε
όροφο των  νέων εγκαταστάσεων. Ειδικότερα για την 
τετραόροφη πολυκατοικία, η παρουσίαση  των ονοματε-
πωνύμων πρέπει να ακολουθεί την αλφαβητική σειρά
(για κάθε όροφο ξεχωριστά).


Λύση

        Αλγόριθμος Εταιρεία
        Δεδομένα // ΟΝ //
        Για κ από 1 μέχρι 3
             Για λ από 1 μέχρι 9
                    ΟΝΑ[κ, λ] <-- ΟΝ[κ, λ]
             Τέλος_επανάληψης
        Τέλος_επανάληψης
         Για κ από μέχρι 7
             Για λ από μέχρι 9
                    ΟΝΒ[κ-3, λ] <-- ΟΝ[κ, λ]
             Τέλος_επανάληψης
        Τέλος_επανάληψης
        Για κ από 1 μέχρι 3
             Για λ από 1 μέχρι 9
                   Εμφάνισε ΟΝΑ[κ, λ]
             Τέλος_επανάληψης
        Τέλος_επανάληψης
        Για Όροφος από 1 μέχρι 4
             ! Ταξινόμηση της Όροφος γραμμής
             Για κ από 1 μέχρι 9
                  Α[κ] <-- ΟΝΒ[Όροφος, κ]
             Τέλος_επανάληψης
             Για κ από 2 μέχρι 9
                  Για λ από 9 μέχρι κ με_βήμα -1
                       Αν Α[λ-1] > Α[λ] τότε
                             Βοηθ <-- Α[λ-1]
                             Α[λ-1] <-- Α[λ]
                             Α[λ] <-- Βοηθ
                       Τέλος_αν
                  Τέλος_επανάληψης
             Τέλος_επανάληψης
             Για κ από 1 μέχρι 9
                   Εμφάνισε Α[κ]
             Τέλος_επανάληψης
        Τέλος_επανάληψης
        Τέλος Εταιρεία


Άσκηση : διαχωρισμός δυσδιάστατου πίνακα

Θεωρήστε τον ακέραιο πίνακα Α[6, 6] που περιέχει
18 άρτιες και 18 περιττές τιμές. Γράψτε αλγόριθμο
που, με δεδομένο τον πίνακα Α, αντιγράφει όλες τις
άρτιες τιμές του Α στον ακέραιο πίνακα Β[6, 3] και
όλες τις περιττές τιμές του Α στον ακέραιο πίνακα
Γ[6, 3].

Λύση

       Αλγόριθμος Διαμερισμός
       Δεδομένα // Α //
       ΓρΒ <-- 1
       ΣτΒ <-- 1
       ΓρΓ <-- 1
       ΣτΓ <-- 1
       Για Κ από 1 μέχρι 6
            Για Λ από 1 μέχρι 6
                Αν Α[Κ, Λ] mod 2 = 0 τότε
                     Β[ΓρΒ, ΣτΒ] <-- Α[Κ, Λ]
                     ΣτΒ <-- ΣτΒ+1
                     Αν ΣτΒ > 3 τότε
                           ΣτΒ <-- 1
                           ΓρΒ <-- ΓρΒ+1
                     Τέλος_αν             
                αλλιώς
                     Γ[ΓρΓ, ΣτΓ] <-- Α[Κ, Λ]
                     ΣτΓ <-- ΣτΓ+1
                     Αν ΣτΓ > 3 τότε
                           ΣτΓ <-- 1
                           ΓρΓ <-- ΓρΓ+1
                     Τέλος_αν                          
                 Τέλος_αν            
            Τέλος_επανάληψης
       Τέλος_επανάληψης
       Αποτελέσματα  // Β, Γ //
       Τέλος Διαμερισμός

Τετάρτη 12 Ιανουαρίου 2011

Άσκηση : πρόγραμμα+διαδικασία

1. Γράψτε διαδικασία που δέχεται ως παράμετρο ένα
    θετικό ακέραιο Ν και :
    α) διαβάζει Ν πραγματικές τιμές,
    β) υπολογίζει τη μεγαλύτερη και τη μικρότερη τιμή
        τους.
2. Γράψτε πρόγραμμα το οποίο:
    α) διαβάζει ένα ακέραιο αριθμό Ν,
    β) αν το Ν είναι θετικό, καλεί τη διαδικασία που
        γράψατε στο ερώτημα 1, εμφανίζει τα αποτε-
        λέσματα και επανέρχεται στο βήμα 2-α).
    γ) αν το Ν είναι αρνητικό ή μηδέν, το πρόγραμμα
        ολοκληρώνεται και εμφανίζεται το μήνυμα:
              Ολοκλήρωση επεξεργασίας δεδομένων

Λύση

      ΠΡΟΓΡΑΜΜΑ ΕΠΕΞ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Ν
            ΠΡΑΓΜΑΤΙΚΕΣ: ΜΑΧ, ΜΙΝ
      ΑΡΧΗ
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                  ΔΙΑΒΑΣΕ Ν
                  ΑΝ Ν > 0 ΤΟΤΕ
                       ΚΑΛΕΣΕ ΥΠΟΛ(Ν, ΜΑΧ, ΜΙΝ)
                       ΓΡΑΨΕ ΜΑΧ, ΜΙΝ
                  ΤΕΛΟΣ_ΑΝ
            ΜΕΧΡΙΣ_ΟΤΟΥ Ν <= 0
            ΓΡΑΨΕ 'Ολοκλήρωση επεξεργασίας δεδομένων'
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

      ΔΙΑΔΙΚΑΣΙΑ ΥΠΟΛ(Ν, ΜΑΧ, ΜΙΝ)
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Ν, Κ
            ΠΡΑΓΜΑΤΙΚΕΣ: ΜΑΧ, ΜΙΝ, Χ
      ΑΡΧΗ
            ΔΙΑΒΑΣΕ Χ
            ΜΑΧ <-- Χ
            ΜΙΝ <-- Χ
            ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ Ν
                    ΔΙΑΒΑΣΕ Χ
                    ΑΝ Χ > ΜΑΧ ΤΟΤΕ
                          ΜΑΧ <-- Χ
                    ΤΕΛΟΣ_ΑΝ
                    ΑΝ Χ < ΜΙΝ ΤΟΤΕ
                          ΜΙΝ <-- Χ
                    ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
       ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 


        

Άσκηση : ταξινόμηση γραμμών δυσδιάστατου πίνακα

Θεωρείστε τον πίνακα Βαθμ[28, 6] που περιέχει τους
βαθμούς που έγραψαν οι 28 μαθητές της Γ' τάξης ενός
γενικού λυκείου στα 6 πανελλαδικώς εξεταζόμενα
μαθήματα. Γράψτε αλγόριθμο που με δεδομένο τον
παραπάνω πίνακα, εμφανίζει τους τρεις καλύτερους
βαθμούς επίδοσης για κάθε μαθητή ξεχωριστά.

Λύση

     Αλγόριθμος Μαθητές
     Δεδομένα // Βαθμ //
     Για Μαθητής από 1 μέχρι 28
         ! αντιγράφω τη γραμμή Μαθητής στον Α[6]
         Για κ από 1 μέχρι 6
              Α[κ] <-- Βαθμ[Μαθητής, κ]
         Τέλος_επανάληψης
         ! Ταξινομώ τον Α κατά φθίνουσα σειρά
         Για κ από 2 μέχρι 6
              Για λ από 6 μέχρι κ με_βήμα -1
                    Αν Α[λ-1] < Α[λ] τότε
                        Βοηθ <-- Α[λ-1]
                        Α[λ-1] <-- Α[λ]
                        Α[λ] <-- Βοηθ
                    Τέλος_αν
              Τέλος_επανάληψης
         Τέλος_επανάληψης
         ! Εμφανίζω τα τρια πρώτα στοιχεία του Α
         Για κ από 1 μέχρι 3
              Εμφάνισε Α[κ]
         Τέλος_επανάληψης
     Τέλος_επανάληψης
     Τέλος Μαθητές

Τρίτη 11 Ιανουαρίου 2011

Άσκηση : δυσδιάστατος πίνακας (ιδιαίτερο διάβασμα+μετρητές ιδιότητας)

Οι 76 μαθητές της Γ' τάξης ενός γενικού λυκείου βαθμολογούν
τα μέλη του προηγούμενου 15μελούς στα πλαίσια μιας άτυπης
γενικής συνέλευσης. Κάθε μαθητής βαθμολογεί 7 μέλη και δίνει
στο καθένα από αυτά διαφορετική βαθμολογία στην ακέραια
κλίμακα 14-20 (όλα τα υπόλοιπα μέλη βαθμολογούνται με 0).
Γράψτε αλγόριθμο που:
α) διαβάζει τη βαθμολογία που έδωσε κάθε μαθητής και
    καταχωρεί τα δεδομένα αυτά σε κατάλληλο πίνακα,
β) υπολογίζει και εμφανίζει τον αύξοντα αριθμό (1-15)
    του μαθητή που συγκέντρωσε τα λιγότερα
    20άρια (θεωρείστε ότι είναι μοναδικός)
Παρατήρηση
Στους 76 μαθητές δε συμπεριλαμβάνεται κανένα μέλος του
15μελούς.

Λύση

     Αλγόριθμος Λύκειο
     Για κ από 1 μέχρι 76
         Για λ από 1 μέχρι 15
              Β[κ, λ] <-- 0
         Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για  κ από 1 μέχρι 76
           Για βαθμ από 14 μέχρι 20
                ΕΝΤ <-- Ψευδής
                Αρχή_επανάληψης
                      Διάβασε λ
                      Αν (λ < 1 ) Ή (λ > 15) τότε
                          Εμφάνισε 'Η επιλογή είναι εκτός ορίων'
                      αλλιώς_αν Β[κ, λ] < > 0 τότε
                          Εμφάνισε 'Το μέλος έχει ήδη βαθμό'
                      αλλιώς
                          ΕΝΤ <-- Αληθής
                      Τέλος_αν
                Μέχρις_ότου ΕΝΤ = Αληθής
                Β[κ, λ] <-- βαθμ
           Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για λ από 1 μέχρι 15
           φ <-- 0
           Για κ από 1 μέχρι 76
                 Αν Β[κ, λ] = 20 τότε
                      φ <-- φ+1
                 Τέλος_αν
           Τέλος_επανάληψης
           Εικ[λ] <-- φ
     Τέλος_επανάληψης
     ΜΙΝ <-- Εικ[1]
     ΑΑΜΙΝ <-- 1
     Για κ από 2 μέχρι 15
         Αν Εικ[κ] < ΜΙΝ τότε
              ΜΙΝ <-- Εικ[κ]
              ΑΑΜΙΝ <-- κ
         Τέλος_αν

     Τέλος_επανάληψης
     Εμφάνισε ΑΑΜΙΝ
     Τέλος Λύκειο

Δευτέρα 10 Ιανουαρίου 2011

Άσκηση : δυσδιάστατος πίνακας (ιδιαίτερο διάβασμα+μέσοι όροι ανά στήλη)

15 κορυφαίοι προπονητές του κόσμου καλούνται από
μεγάλο τηλεοπτικό κανάλι προκειμένου να αξιολογήσουν
ο ένας τον άλλο. Στη διαδικασία αυτή μπαίνουν οι
ακόλουθοι κανόνες:
* η βαθμολογία είναι στην ακέραια κλίμακα 50-100,
* κανένας προπονητής δεν μπορεί να βαθμολογήσει
   τον εαυτό του,
* κάθε προπονητής πρέπει να βαθμολογήσει 6 από τους
   14 συναδέλφους του (οι υπόλοιποι βαθμολογούνται με
   0).
Γράψτε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:
α) διαβάζει τα ονοματεπώνυμα των προπονητών και τα
     καταχωρεί σε κατάλληλο πίνακα,
β) διαβάζει τη βαθμολογία των προπονητών και την
    καταχωρεί σε κατάλληλο πίνακα,
γ) υπολογίζει τη συνολική βαθμολογία που συγκέντρωσε
    κάθε προπονητής,
δ) εμφανίζει το ονοματεπώνυμο του προπονητή ή των
    προπονητών που συγκέντρωσαν τη μεγαλύτερη
    συνολική βαθμολογία.
ΠΑΡΑΤΗΡΗΣΗ : Το πρόγραμμα πρέπει να διασφαλίζει την
εγκυρότητα όλων των εισερχόμενων δεδομένων.

Λύση


       ΠΡΟΓΡΑΜΜΑ ΠΡΟΠΟΝ
       ΜΕΤΑΒΛΗΤΕΣ
             ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[15]
             ΑΚΕΡΑΙΕΣ: Β[15, 15], Κ, Λ, Σ, ΑΘΡ[15], Πλήθος,
                                   ΜΑΧ
             ΛΟΓΙΚΕΣ: ΕΝΤ
       ΑΡΧΗ
             ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 15
                  ΔΙΑΒΑΣΕ ΟΝ[Κ]
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 15
                  ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 15
                         Β[Κ, Λ] <-- 0
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                  Πλήθος <-- 0
                  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                        ΕΝΤ <-- ΨΕΥΔΗΣ
                        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ      
                             ΔΙΑΒΑΣΕ Λ
                             ΑΝ (Λ < 1) Ή (Λ > 15) ΤΟΤΕ
                                ΓΡΑΨΕ 'Η επιλογή σας είναι εκτός ορίων'
                             ΑΛΛΙΩΣ_ΑΝ Β[Κ, Λ] < > 0 ΤΟΤΕ
                                ΓΡΑΨΕ 'Ο προπονητής αυτός έχει ήδη βαθμό'
                             ΑΛΛΙΩΣ_ΑΝ Κ = Λ ΤΟΤΕ
                                ΓΡΑΨΕ 'Δεν επιτρέπεται αυτοαξιολόγηση'
                             ΑΛΛΙΩΣ
                                 ΕΝΤ <-- ΑΛΗΘΗΣ
                             ΤΕΛΟΣ_ΑΝ
                        ΜΕΧΡΙΣ_ΟΤΟΥ ΕΝΤ = ΑΛΗΘΗΣ
                        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                             ΔΙΑΒΑΣΕ Β[Κ, Λ]
                       ΜΕΧΡΙΣ_ΟΤΟΥ (Β[Κ, Λ] >= 50) ΚΑΙ
                                                   (Β[Κ, Λ] <= 100) 
                       Πλήθος <-- Πλήθος+1
                  ΜΕΧΡΙΣ_ΟΤΟΥ Πλήθος = 6
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
              ΓΙΑ Λ ΑΠΟ ΜΕΧΡΙ 15
                  Σ <-- 0
                  ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                         Σ <-- Σ+Β[Κ, Λ] 
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΑΘΡ[Λ] <-- Σ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΜΑΧ <-- ΑΘΡ[1]
             ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 15
                  ΑΝ ΑΘΡ[Κ] > ΜΑΧ ΤΟΤΕ
                        ΜΑΧ <-- ΑΘΡ[Κ]
                  ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                  ΑΝ ΑΘΡ[Κ] = ΜΑΧ ΤΟΤΕ
                        ΓΡΑΨΕ ΟΝ[Κ]
                  ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ          
       ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Κυριακή 9 Ιανουαρίου 2011

Συμπλήρωση κενών

Συμπληρώστε τα κενά που λείπουν στις παρακάτω προτάσεις
1. Κάθε εντολή Όσο..επανάλαβε τελειώνει με τη δεσμευμένη
    λέξη __________.
2. Η εντολή που είναι ιδανική για έλεγχο εγκυρότητας εισε-
    ρχόμενων δεδομένων είναι η _________.
3. Ο __________ συχνοτήτων είναι μια συλλογή μετρητών
    ιδιότητας που καταγράφει τη συχνότητα εμφάνισης
    κάποιων τιμών εισόδου (διαδοχικών μεταξύ τους).
4. Τα αρχεία εγγραφών είναι δομές δεδομένων _________
    μνήμης.
5. Η σειριακή αναζήτηση αποκαλείται και ________
    μέθοδος.


Απάντηση

1. Τέλος_επανάληψης
2. Μέχρις_ότου
3. πίνακας
4. δευτερεύουσας
5. γραμμική

Άσκηση : δυσδιάστατος πίνακας (μετρητής ιδιότητας+άθροισμα ανά γραμμή)

1. Γράψτε πρόγραμμα το οποίο:
α) διαβάζει τους 18 βαθμούς τριμήνου που πήραν οι 27 μαθητές
    της Α' τάξης ενός γυμνασίου, και καταχωρεί τα δεδομένα αυτά
    σε κατάλληλο πίνακα,
β) υπολογίζει και εμφανίζει πόσοι μαθητές είχαν μέσο όρο
    βαθμολογίας στα πρώτα 9 μαθήματα μεγαλύτερο από τον
    αντίστοιχο μέσο όρο τους στα 9 τελευταία.
Παρατήρηση : Το πρόγραμμα πρέπει να διασφαλίζει την
εγκυρότητα των εισερχόμενων δεδομένων.

Λύση

       ΠΡΟΓΡΑΜΜΑ ΓΥΜΝ
       ΜΕΤΑΒΛΗΤΕΣ
             ΑΚΕΡΑΙΕΣ: ΒΑΘΜ[27, 18], Κ, Λ, σ, ΠΛΗΘ
             ΠΡΑΓΜΑΤΙΚΕΣ : ΜΟ1, ΜΟ2
       ΑΡΧΗ
             ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 27
                  ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 18
                        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                               ΔΙΑΒΑΣΕ ΒΑΘΜ[Κ, Λ]
                        ΜΕΧΡΙΣ_ΟΤΟΥ (ΒΑΘΜ[Κ, Λ] >= 0) ΚΑΙ 
                                                    (ΒΑΘΜ[Κ, Λ] <= 20)
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΠΛΗΘ <-- 0
             ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 27
                  σ <-- 0
                  ΓΙΑ Λ ΑΠΟ ΜΕΧΡΙ 9
                        σ <-- σ+ΒΑΘΜ[Κ, Λ]
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΜΟ1 <-- σ/9
                  σ <-- 0
                  ΓΙΑ Λ ΑΠΟ 10 ΜΕΧΡΙ 18
                        σ <-- σ+ΒΑΘΜ[Κ, Λ]
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΜΟ2 <-- σ/9
                  ΑΝ ΜΟ1 > ΜΟ2 ΤΟΤΕ
                         ΠΛΗΘ <-- ΠΛΗΘ+1
                  ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΡΑΨΕ ΠΛΗΘ
       ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Σάββατο 8 Ιανουαρίου 2011

Άσκηση : συγγραφή συνάρτησης

Γράψτε συνάρτηση που δέχεται ως παράμετρο τον
ακέραιο πίνακα Α[76, 76] και ελέγχει αν όλα τα
στοιχεία της 2ης κυρίας διαγωνίου είναι ταξινομημένα
κατά αύξουσα σειρά ή όχι.

Λύση

       ΣΥΝΑΡΤΗΣΗ ΔΙΑΓ(Α) : ΛΟΓΙΚΗ
       ΜΕΤΑΒΛΗΤΕΣ
             ΑΚΕΡΑΙΕΣ: Α[76, 76], Κ
             ΛΟΓΙΚΕΣ: ΕΛ
       ΑΡΧΗ
             ΕΛ <-- ΑΛΗΘΗΣ
             Κ <-- 1
             ΟΣΟ (Κ <= 75) ΚΑΙ (ΕΛ = ΑΛΗΘΗΣ) ΕΠΑΝΑΛΑΒΕ
                   ΑΝ Α[Κ, 77-Κ] > Α[Κ+1, 76-Κ] ΤΟΤΕ
                         ΕΛ <-- ΨΕΥΔΗΣ
                   ΑΛΛΙΩΣ
                         Κ <-- Κ+1
                   ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΔΙΑΓ <-- ΕΛ
       ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Άσκηση : συγγραφή διαδικασίας

Γράψτε διαδικασία που δέχεται ως παράμετρο έναν
αλφαριθμητικό πίνακα Α[82] και αντιμεταθέτει το
πρώτο με το δεύτερο μισό ολόκληρου του πίνακα.

Λύση

      ΔΙΑΔΙΚΑΣΙΑ ΑΝΤΙΜ(Α)
      ΜΕΤΑΒΛΗΤΕΣ
            ΧΑΡΑΚΤΗΡΕΣ: Α[82], ΒΟΗΘ
            ΑΚΕΡΑΙΕΣ: Κ
      ΑΡΧΗ
            ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 41
                 ΒΟΗΘ <-- Α[Κ]
                 Α[Κ] <-- Α[83-Κ]
                 Α[83-Κ] <-- ΒΟΗΘ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Παρασκευή 7 Ιανουαρίου 2011

Άσκηση : πίνακας συχνοτήτων

Γράψτε αλγόριθμο που:
α) διαβάζει τα τελευταία δύο ψηφία των αριθμών δελτίου
    ταυτότητας κάποιων πολιτών (η είσοδος δεδομένων
    ολοκληρώνεται μόλις δοθεί μια αρνητική τιμή ή μηδέν),
β) υπολογίζει τη συχνότητα εμφάνισης των τιμών
    30, 31, ...., 78, 79, 80 ανάμεσα στα εισερχόμενα δεδομένα.

Λύση

     Αλγόριθμος ΑΣΚ
     Για κ από 1 μέχρι 51
         Φ[κ] <-- 0
     Τέλος_επανάληψης
     Αρχή_επανάληψης
           Διάβασε Ψ
           Αν Ψ > 0 τότε
                Αν (Ψ >= 30) ΚΑΙ (Ψ <= 80) τότε
                     Θ <-- Ψ-29
                     Φ[Θ] <-- Φ[Θ]+1
                Τέλος_αν
           Τέλος_αν
     Μέχρις_ότου Ψ <= 0
     Αποτελέσματα // Φ //
     Τέλος ΑΣΚ

Διόρθωση λανθασμένων προτάσεων

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και
επαναδιατυπώστε τις με σωστό τρόπο.
1. Μια εντολή Για..από..μέχρι εκτελεί μία ή περισσότερες
    επαναλήψεις.
2. Η εντολή Αν..τότε χρησιμοποιείται όταν τα επιμέρους
    ενδεχόμενα είναι τουλάχιστον τρία.
3. Το πρόβλημα υπολογισμού της περιμέτρου ενός
    ορθογωνίου παραλληλογράμμου είναι ανοικτό.
4. Η συνάρτηση ΣΥΝ της ΓΛΩΣΣΑΣ υπολογίζει το
    άθροισμα κάποιων τιμών.
5. Αν ο πίνακας Α[300] είναι ταξινομημένος, το
    μεγαλύτερο στοιχείο του είναι το Α[300].



Απάντηση



1. Μια εντολή Για..από..μέχρι εκτελεί καμία ή περισσότερες
    επαναλήψεις.
2. Η εντολή Αν..τότε..αλλιώς_αν χρησιμοποιείται όταν τα 
    επιμέρους  ενδεχόμενα είναι τουλάχιστον τρία.
3. Το πρόβλημα υπολογισμού της περιμέτρου ενός
    ορθογωνίου παραλληλογράμμου είναι επιλύσιμο.
4. Η συνάρτηση ΣΥΝ της ΓΛΩΣΣΑΣ υπολογίζει το 
    συνημίτονο μιας γωνίας.
5. Αν ο πίνακας Α[300] είναι ταξινομημένος, το 
    μεγαλύτερο στοιχείο του είναι το Α[300] ή το Α[1].