Τετάρτη 29 Σεπτεμβρίου 2010

Πίνακας αντιστοίχησης (μεταβλητές+τύποι δεδομένων)

Δίνονται οι παρακάτω τύποι δεδομένων
    α. ΑΚΕΡΑΙΕΣ
    β. ΠΡΑΓΜΑΤΙΚΕΣ
    γ. ΧΑΡΑΚΤΗΡΕΣ
    δ. ΛΟΓΙΚΕΣ
και μεταβλητές που αντιπροσωπεύουν τα ακόλουθα:
   1.  Υπάρχει ανάγκη αναβαθμολόγησης ενός
         γραπτού;
   2.   Η επωνυμία ενός ηλεκτρονικού παιχνιδιού.
   3.   Ο τίτλος μιας κινηματογραφικής ταινίας.
   4.   Το πλήθος των ακινήτων που κατέχει ένας
         φορολογούμενος.
   5.   Το ποσοστό (%) των μαθητών ενός σχολείου
         που έχουν βάρος τουλάχιστον 50 κιλά.
   6.   Η μέση τιμή πώλησης 15 διαφορετικών
         προϊόντων.
   7.   Το πλήθος των γυμναστών σε ένα γυμνάσιο.
Γράψτε τον αριθμό της μεταβλητής (1-7) και δίπλα το
γράμμα (α-δ) που αντιστοιχεί στον τύπο της.

Απάντηση

    1. δ
    2. γ
    3. γ
    4. α
    5. β
    6. β
    7. α

Άσκηση : Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζονται;

Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζονται στον
παρακάτω αλγόριθμο
    Αλγόριθμος ΑΣΚ
    Διάβασε λ
    μ <-- κ+λ
    Αν μ > 100 τότε
         μ <-- μ-10
    Τέλος_αν
    Τέλος ΑΣΚ

Απάντηση
    
    α) Είσοδος, γιατί το κ δεν έχει τιμή και παρ' όλα αυτά
        χρησιμοποιείται στην εντολή μ <-- κ+λ.
    β) Έξοδος, γιατί ο αλγόριθμος δεν "βγάζει" προς τα έξω
         κανένα αποτέλεσμα.

Βρείτε τα συντακτικά και τα λογικά λάθη

Το παρακάτω (αριθμημένο) σύνολο εντολών φιλοδοξεί να
υπολογίσει και να εμφανίσει το μέσο όρο ύψους των 20
μαθητών μιας τάξης
1     σ <-- 1
2    Διάβασε ΥΨΟΣ  
3    Για λ από 1 έως 20 
4          σ <-- σ+ΥΨΟΣ
5    Τέλοςεπανάληψης
6    Ε <-- σ/20
7    Εμφάνισε 'Ε'

Γράψτε τον αριθμό της σειράς (1-7), και το λάθος που υπάρχει
εκεί. Χαρακτηρίστε το κάθε λάθος και ξαναγράψτε το σύνολο
των εντολών από την αρχή έτσι ώστε να επιτυγχάνει το στόχο
της εκφώνησης.

Λύση

1. Λογικό λάθος, δεν πρέπει να εκχωρήσουμε στο σ το 1 αλλά
    το 0.
2. Λογικό λάθος,  η εντολή αυτή πρέπει να τοποθετηθεί μέσα στην
    Για..από..μέχρι, ακριβώς πριν την εντολή σ <-- σ+ΥΨΟΣ
3. Συντακτικό λάθος, αντί του έως πρέπει να χρησιμοποιηθεί η
    λέξη μέχρι
5. Συντακτικό λάθος, αντί του Τέλοςεπανάληψης πρέπει να
    χρησιμοποιηθεί η λέξη Τέλος_επανάληψης
6. Συντακτικό λάθος, το Ε είναι δεσμευμένη λέξη (είναι η
    εκθετική συνάρτηση) και πρέπει να χρησιμοποιηθεί ένα
    άλλο όνομα μεταβλητής για το αποτέλεσμα π.χ ΜΟ
7. Λογικό λάθος, η συγκεκριμένη εντολή θα τυπώσει το
    γράμμα Ε και όχι το αποτέλεσμα που έχουμ υπολογίσει.
    Το σωστό θα ήταν να εμφανίσουμε το περιεχόμενο της
    μεταβλητής που χρησιμοποιήσαμε στο 6.

Κατά συνέπεια το διορθωμένο σύνολο των εντολών έχει ως εξής:
      σ <-- 0
      Για λ από 1 μέχρι 20
           Διάβασε ΥΨΟΣ
           σ <-- σ+ΥΨΟΣ
      Τέλος_επανάληψης
      ΜΟ <-- σ/20
      Εμφάνισε ΜΟ

Τρίτη 28 Σεπτεμβρίου 2010

Άσκηση : Βήμα-βήμα εκτέλεση εντολών (Όσο+Αν..τότε..αλλιώς_αν)

Τι θα εμφανίσει το παρακάτω σύνολο εντολών;
     λ <-- 10
     Α <-- 13
     Όσο λ > 0 επανάλαβε
          Αν λ > 8 τότε
               Α <-- Α+2*λ
          αλλιώς_αν λ > 5 τότε
               Α <-- Α-λ
          αλλιώς
               Α <-- Α+1
          Τέλος_αν
          Εμφάνισε 'Α < λ', λ mod 4 = 0, A >= 28
          λ <-- λ-3
     Τέλος_επανάληψης
     Εμφάνισε Α, λ

Λύση

      λ = 10
      Α = 13
      1η επανάληψη
            Αφού λ > 8 = 10 > 8 = Αληθής έχουμε:
                   Α = Α+2*λ = 13+2*10 = 13+20 = 33
            Επειδή (λ mod 4 = 0) = (10 mod 4 = 0) =(2 = 0) =
            Ψευδής και A >= 28 = 33 >= 28 = Αληθής
             η Εμφάνισε τυπώνει:
                   Α < λ    Ψευδής    Αληθής
             λ = λ-3 = 10-3 = 7
      2η επανάληψη
            Αφού λ > 8 = 7 > 8 = Ψευδής και λ > 5 = 7 > 5 = Αληθής
            έχουμε:
                   Α = Α-λ = 33-7 = 26
            Επειδή (λ mod 4 = 0) = (7 mod 4 = 0) =(3 = 0) =
            Ψευδής και A >= 28 = 26 >= 28 = Ψευδής
             η Εμφάνισε τυπώνει:
                   Α < λ    Ψευδής    Ψευδής
             λ = λ-3 = 7-3 =4
      3η επανάληψη
            Αφού λ > 8 = 4 > 8 = Ψευδής και λ > 5 = 4 > 5 = Ψευδής
            έχουμε:
                   Α = Α+1 = 26+1 = 27
            Επειδή (λ mod 4 = 0) = (4 mod 4 = 0) =(0 = 0) =
            Αληθης και A >= 28 = 27 >= 28 = Ψευδής
             η Εμφάνισε τυπώνει:
                   Α < λ    Αληθής    Ψευδής
             λ = λ-3 = 4-3 =1
       4η επανάληψη
            Αφού λ > 8 = 1 > 8 = Ψευδής και λ > 5 = 1 > 5 = Ψευδής
            έχουμε:
                   Α = Α+1 = 27+1 = 28
            Επειδή (λ mod 4 = 0) = (1 mod 4 = 0) =(1 = 0) =
            Ψευδής και A >= 28 = 28 >= 28 = Αληθής
             η Εμφάνισε τυπώνει:
                   Α < λ    Ψευδής   Αληθής
             λ = λ-3 = 1-3 = -2
        Αφού λ > 0 = -2 > 0 = Ψευδής, η Όσο τερματίζεται.
        Η Εμφάνισε τυπώνει:
              28       -2

Είναι ισοδύναμα;

Αν η τιμή εισόδου και στα δύο τμήματα εντολών είναι ο ίδιος
ακέραιος,υπάρχει ισοδυναμία ανάμεσα στα τμήματα
αυτά;
   
     Τμήμα Α

           Διάβασε λ
           α <-- (4*λ+18) mod 2
           β <-- β*3
           γ <-- (12*λ+4) div 4
           Εμφάνισε α*1000, β^2, γ-3*λ-5 

      Τμήμα Β

           Διάβασε λ
           γ <-- 3*λ+1
           β <-- γ+2-3*λ
           α <-- (5*λ+10) mod 5
           Εμφάνισε α, A_T(β-12), α-β-1 

Λύση

       Τμήμα Α
           Το λ παίρνει μια τιμή εισόδου.
           α = (4*λ+18) mod 2 = 0   (επειδή το α είναι άρτιο)
           β = α+3 = 0+3 = 3
           γ = (12*λ+4) div 4 = 4*(3*λ+1) div 4 = 3*λ+1
           Αφού α*1000 = 0*1000 = 0, β^2 = 3^2 = 9 και
           γ-3*λ-5 = (3*λ+1)-3*λ-5 = -4, η Εμφάνισε τυπώνει:
                 0       9      -4

       Τμήμα Β
          Το λ παίρνει μια τιμή εισόδου.
           γ = 3*λ+1
           β = γ+2-3*λ = (3*λ+1)+2-3*λ = 3
           α = (5*λ+10) mod 5 = (λ+2)*5 mod 5 = 0
           Αφού Α_Τ(β-12) = Α_Τ(3-12) = Α_Τ(-9) = 9 και
           α-β-1 = 0-3-1 = -4,  η Εμφάνισε τυπώνει:
                  0       9      -4


       Συμπέρασμα: Αφού και στα δύο τμήματα εντολών, οι τελικές
                               τιμές των μεταβλητών είναι ίδιες και η έξοδος
                               των αποτελεσμάτων κοινή, υπάρχει ισοδυναμία
                               μεταξύ τους.

            

Δευτέρα 27 Σεπτεμβρίου 2010

Άσκηση : μετατροπή από Αν..τότε..αλλιώς_αν σε άλλες δομές επιλογές.

Δίνεται το ακόλουθο τμήμα εντολών
     Αν (μ = '@') Ή (μ = '!') τότε
           α <-- 100
     αλλιώς_αν μ = '*' τότε
           α <-- 90
     αλλιώς_αν (μ = '+') Ή (μ = '&') Ή (μ = '$') τότε
           α <-- 80
     αλλιώς
           α <-- 70
     Τέλος_αν
Ξαναγράψτε το ισοδύναμα αντικαθιστώντας την εντολή
Αν..τότε..αλλιώς_αν με
α) με εμφωλευμένες Αν..τότε..αλλιώς
β) με εντολές Αν..τότε
γ) με μια Επίλεξε

Λύση

α)
     Αν (μ = '@') Ή (μ = '!') τότε
           α <-- 100
     αλλιώς
          Αν μ = '*' τότε
                α <-- 90
          αλλιώς
               Αν (μ = '+') Ή (μ = '&') Ή (μ = '$') τότε
                    α <-- 80
               αλλιώς
                    α <-- 70
               Τέλος_αν
           Τέλος_αν
     Τέλος_αν

β)
     Αν (μ = '@') Ή (μ = '!') τότε
           α <-- 100
     Τέλος_αν
     Αν μ = '*' τότε
           α <-- 90
     Τέλος_αν
     Αν (μ = '+') Ή (μ = '&') Ή (μ = '$') τότε
           α <-- 80
     Τέλος_αν
     Αν (μ < > '@') ΚΑΙ (μ < > '!') ΚΑΙ (μ < > '*') ΚΑΙ
           (μ < > '+') ΚΑΙ (μ < > '&') ΚΑΙ (μ < > '$') τότε
           α <-- 70
     Τέλος_αν

γ)
     Επίλεξε μ
         Περίπτωση '@', '!'
              α <-- 100
         Περίπτωση '*'
              α <--90
         Περίπτωση '+', '&', '$'
              α <--80
         Περίπτωση αλλιώς
              α <-- 70
      Τέλος_επιλογών
 

 

 





 



 

Κυριακή 26 Σεπτεμβρίου 2010

Άσκηση : Αν..τότε..αλλιώς+Αν..τότε..αλλιώς_αν

Γράψτε πρόγραμμα το οποίο διαβάζει μια ακέραια τιμή Χ
και υπολογίζει την τιμή της συνάρτησης Φ με τύπο:
                        Χ/(Χ+20), αν Χ < 0
       Φ(Χ)  =     Χ/(Χ-19), αν 0 <= Χ <= 21
                        Χ+1, αν Χ > 21

Λύση

     ΠΡΟΓΡΑΜΜΑ Φ_Χ
     ΜΕΤΑΒΛΗΤΕΣ
          ΑΚΕΡΑΙΕΣ: Χ
          ΠΡΑΓΜΑΤΙΚΕΣ: Υ
     ΑΡΧΗ
          ΔΙΑΒΑΣΕ Χ
          ΑΝ (Χ = -20) Ή (Χ = 19) ΤΟΤΕ
                ΓΡΑΨΕ 'Η συνάρτηση δεν ορίζεται!'
          ΑΛΛΙΩΣ
                ΑΝ Χ < 0 ΤΟΤΕ
                      Υ <-- Χ/(Χ+20)
                ΑΛΛΙΩΣ_ΑΝ Χ <= 21 ΤΟΤΕ
                      Υ <-- Χ/(Χ-19)
                ΑΛΛΙΩΣ
                      Υ <-- Χ+1
                ΤΕΛΟΣ_ΑΝ
                ΓΡΑΨΕ  'Φ(Χ) = ', Υ 
          ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Είναι ισοδύναμα;

Αν η τιμή εισόδου είναι κοινή και στα δύο τμήματα εντολών,
υπάρχει ισοδυναμία μεταξύ τους;

   Τμήμα  Α

          Διάβασε α
          β <-- α+1
          γ <-- 3*β-2
          δ <-- β-γ
          ζ <-- β+γ+δ
 

 
    Τμήμα Β

          Διάβασε α
          γ <-- 3*α+1
          β <-- γ-2*α
          δ <-- -2*β+2
          ζ <-- γ-α



Λύση

    Τμήμα  Α

         Το  α παίρνει μια τιμή εισόδου
          β = α+1
          γ = 3*β-2 = 3*(α+1)-2 = 3*α+3-2 = 3*α+1
          δ = β-γ = (α+1)-(3*α+1) = -2*α
          ζ = β+γ+δ = (α+1)+(3*α+1)-2*α = 2*α+2

    Τμήμα Β

          Το  α παίρνει μια τιμή εισόδου
          γ = 3*α+1
          β = γ-2*α = (3*α+1)-2*α = α+1

          δ = -2*β+2 = -2*(α+1)+2 = -2*α-2+2 = -2*α
          ζ = γ-α = (3*α+1)-α = 2*α+1
 
Αφού τα δύο τμήματα διαφέρουν στην τελική τιμή του ζ,
δεν είναι ισοδύναμα μεταξύ τους.

Σάββατο 25 Σεπτεμβρίου 2010

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

Γράψτε αλγόριθμο που υπολογίζει και εμφανίζει το άθροισμα
του πρώτου και του τελευταίου ψηφίου, για όλους τους τετρα-
ψήφιους ακέραιους αριθμούς από το 1234 μέχρι το 9287.

Λύση

      Αλγόριθμος Ψηφία
      Για λ από 1234 μέχρι 9287
           Πρώτο <-- λ div 1000
           Τελευταίο <--  ( (λ mod 1000) mod 100 ) mod 10
            σ <-- Πρώτο+Τελευταίο
            Εμφάνισε 'λ = ', λ, ' άθροισμα = ', σ
      Τέλος_επανάληψης
      Τέλος Ψηφία

Είναι ισοδύναμα;

Είναι ισοδύναμα τα παρακάτω τμήματα εντολών;

    Τμήμα Α

         α <-- 0
         Για λ από μέχρι 13 με_βήμα 2
              α <-- α+1
         Τέλος_επανάληψης

    Τμήμα Β

         α <-- 14
         Για λ από 22 μέχρι 16 με_βήμα -1
               α <-- α-1
         Τέλος_επανάληψης

Λύση

       Τμήμα Α
               α = 0
               Η Για..από..μέχρι εκτελείται 7 φορές και τερματίζεται
               με λ = 15
               Κατά συνέπεια προστίθεται στο α η μονάδα 7 φορές και
               η τελική τιμή του είναι:
                      α = 0+7*1 = 7

       Τμήμα Β
               α = 14
               Η Για..από..μέχρι εκτελείται 7 φορές και τερματίζεται
               με λ = 15
               Κατά συνέπεια αφαιρείται από το α η μονάδα 7 φορές και
               η τελική τιμή του είναι:
                      α = 14-7*1 = 7

        Αφού οι τελικές τιμές των μεταβλητών α, λ είναι οι ίδιες και στα
        δύο τμήματα εντολών, τα τμήματα αυτά είναι ισοδύναμα
        μεταξύ τους.


    

Πέμπτη 23 Σεπτεμβρίου 2010

Άσκηση : Βήμα-βήμα εκτέλεση εντολών (Μέχρις_ότου+Αν..τότε)

Τι θα εμφανίσει στη μονάδα εξόδου το παρακάτω σύνολο
εντολών;
   μ <-- 12
   ν <-- 17
   Αρχή_επανάληψης
        Αν μ < 20 τότε
             μ <-- 2*μ
        Τέλος_αν
        Αν ν <= 25 τότε
             ν <-- ν+8
        Τέλος_αν
        Εμφάνισε  μ, ν
        μ <-- μ+1
        ν <-- ν+1
   Μέχρις_ότου  μ+ν > 62
   Εμφάνισε (μ-ν)^2

Λύση

    μ = 12
    ν = 17
    1η επανάληψη
         Αφού μ < 20 = 12 < 20 = Αληθής έχουμε:
              μ = 2*μ = 2*12 = 24
         Αφού ν <= 25 = 17 <= 25 = Αληθής έχουμε:
              ν = ν+8 = 17+8 = 25
         Η Εμφάνισε τυπώνει:             24       25
         μ = μ+1 = 24+1 = 25
         ν = ν+1 = 25+1 = 26
    2η επανάληψη
         Αφού μ < 20 = 25 < 20 = Ψευδής δεν εκτελείται η
         εντολή εκχώρησης της πρώτης Αν..τότε.
         Αφού ν <= 25 = 26 <= 25 = Αληθής έχουμε:
              ν = ν+8 = 26+8 = 34
         Η Εμφάνισε τυπώνει:             25       34
         μ = μ+1 = 25+1 = 26
         ν = ν+1 = 34+1 = 35
    3η επανάληψη
         Αφού μ < 20 = 26 < 20 = Ψευδής δεν εκτελείται η
         εντολή εκχώρησης της πρώτης Αν..τότε.
         Αφού ν <= 25 = 35 <= 25 = Ψευδής δεν εκτελείται η 
         εντολή εκχώρησης της δεύτερης Αν..τότε.
         Η Εμφάνισε τυπώνει:             26       35
         μ = μ+1 = 26+1 = 27
         ν = ν+1 = 35+1 = 36
    Αφού μ+ν > 62 = 27+36 > 62 = 63 > 62 = Αληθής,
    η Μέχρις_ότου τερματίζεται.
    Επειδή (μ-ν)^2 = (27-36)^2 = (-9)^2 = 81,
    η Εμφάνισε τυπώνει:         81

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

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

Λύση

      ΠΡΟΓΡΑΜΜΑ ΕΥΡΩ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Ποσό, Χ50, Χ20, Χ10
      ΑΡΧΗ
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                  ΔΙΑΒΑΣΕ Ποσό
            ΜΕΧΡΙΣ_ΟΤΟΥ (Ποσό > 0) ΚΑΙ (Ποσό MOD 10 = 0)
            ΚΑΛΕΣΕ Ανάλυση(Ποσό, Χ50, Χ20, Χ10)
            ΓΡΑΨΕ Χ50, Χ20, Χ10
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

      ΔΙΑΔΙΚΑΣΙΑ Ανάλυση(Ποσό, Χ50, Χ20, Χ10)
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Ποσό, Χ50, Χ20, Χ10
      ΑΡΧΗ
            Χ50 <-- Ποσό DIV 50
            X20 <-- (Ποσό MOD 50) DIV 20
            X10 <--  ( (Ποσό MOD 50) MOD 20) DIV 10
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


  

Τετάρτη 22 Σεπτεμβρίου 2010

Πολλαπλές Μετατροπές

Δίνεται το παρακάτω σύνολο εντολών
     Για λ από 21 μέχρι 3 με_βήμα -4
            Αν λ > 10 τότε
                   κ <-- 2
                   Όσο κ < λ επανάλαβε
                        Εμφάνισε κ+λ
                        κ <-- κ+1
                   Τέλος_επανάληψης
            αλλιώς
                   κ <-- 32
                   Αρχή_επανάληψης
                        Εμφάνισε κ-λ
                        κ <-- κ-2
                   Μέχρις_ότου κ > λ
            Τέλος_αν
     Τέλος_επανάληψης
Ξαναγράψτε το αντικαθιστώντας:
α) Τη Για..από..μέχρι με Όσο..επανάλαβε
β) Την Όσο..επανάλαβε με Μέχρις_ότου
γ) Την  Μέχρις_ότου με Όσο..επανάλαβε
δ) Την Αν..τότε..αλλιώς με εντολές Αν..τότε

Λύση


       λ <-- 21
       Όσο λ >= 3 επανάλαβε

            Αν λ > 10 τότε
                   κ <-- 2
                   Αρχή_επανάληψης
                        Εμφάνισε κ+λ
                        κ <-- κ+1
                   Μέχρις_ότου κ >= λ
            Τέλος_αν
            Αν λ <= 10 τότε
                   κ <-- 32
                   Όσο κ <= λ επανάλαβε
                        Εμφάνισε κ-λ
                        κ <-- κ-2

                   Τέλος_επανάληψης
            Τέλος_αν
            λ <-- λ-4
     Τέλος_επανάληψης

Τρίτη 21 Σεπτεμβρίου 2010

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

Το κυλικείο ενός σχολείου, πουλάει δύο διαφορετικές μάρκες
χυμών : την ΜΑΡΚΑ_Α και την ΜΑΡΚΑ_Β. Για καθεμιά από
τις παραπάνω μάρκες διατίθενται χυμοί ροδάκινου, πορτοκαλιού
και ανάμεικτοι. Η τιμή πώλησης του κάθε προϊόντος φαίνεται στον
πίνακα που ακολουθεί:

        Μάρκα                Χυμός              Χυμός                Χυμός
                               πορτοκάλι         ροδάκινου      ανάμεικτος
       ΜΑΡΚΑ_Α              0.7                    0.8                    0.9
       ΜΑΡΚΑ_Β              0.8                    0.9                    1.0

1. Γράψτε συνάρτηση που δέχεται ως παράμετρο τη μάρκα του
    χυμού (Α - ΜΑΡΚΑ_Α, Β - ΜΑΡΚΑ_Β) και το είδος του
    (Π - πορτοκάλι, Ρ - ροδάκινο, Α - ανάμεικτος) και υπολογίζει
     την τιμή πώλησης του αντίστοιχου προϊόντος.
2. Γράψτε πρόγραμμα το οποίο:
    * διαβάζει τη μάρκα (Α - ΜΑΡΚΑ_Α, Β - ΜΑΡΚΑ_Β) και το
       είδος του χυμού (Π - πορτοκάλι, Ρ - ροδάκινο, Α - ανάμεικτος)
       που αγοράζει κάθε παιδί από το κυλικείο (η είσοδος ολοκληρώ-
       νεται μόλις δοθεί ως μάρκα το κενό διάστημα),
    * καλεί κατάλληλα τη συνάρτηση που γράψατε στο 1, προκειμένου
       να υπολογίσει την τιμή πώλησης του αντίστοιχου προϊόντος,
    * υπολογίζει και εμφανίζει :
       α) τη συνολική είσπραξη του κυλικείου από τους παραπάνω
            χυμούς,
       β) το πλήθος των χυμών πορτοκάλι της ΜΑΡΚΑΣ_Α που
           πουλήθηκαν τελικά.
Παρατήρηση : Το πρόγραμμα πρέπει να διασφαλίζει την εγκυρότητα
των εισερχόμενων δεδομένων.

Λύση

     ΠΡΟΓΡΑΜΜΑ ΚΥΛ
     ΜΕΤΑΒΛΗΤΕΣ
            ΧΑΡΑΚΤΗΡΕΣ: Μ, Ειδ
            ΠΡΑΓΜΑΤΙΚΕΣ: Τιμή, Σύνολο
            ΑΚΕΡΑΙΕΣ: Πληθ
     ΑΡΧΗ
            Σύνολο <-- 0
            Πληθ <-- 0
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                      ΔΙΑΒΑΣΕ Μ
                 ΜΕΧΡΙΣ_ΟΤΟΥ (Μ = 'Α') Ή (Μ = 'Β') Ή (Μ = '   ')
                 ΑΝ Μ < > '   '  ΤΟΤΕ
                       ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                             ΔΙΑΒΑΣΕ Ειδ
                       ΜΕΧΡΙΣ_ΟΤΟΥ (Ειδ = 'Π') Ή (Ειδ = 'Ρ') Η (Ειδ = 'Α')
                       Τιμή <-- Κόστος(Μ, Ειδ)
                       Σύνολο <-- Σύνολο+Τιμή
                       ΑΝ (Μ = 'Α') ΚΑΙ (Ειδ = 'Π') ΤΟΤΕ
                           Πληθ <-- Πληθ+1
                       ΤΕΛΟΣ_ΑΝ
                 ΤΕΛΟΣ_ΑΝ
            ΜΕΧΡΙΣ_ΟΤΟΥ Μ = '  '
            ΑΝ Σύνολο > 0 ΤΟΤΕ
                  ΓΡΑΨΕ Σύνολο, Πληθ
            ΑΛΛΙΩΣ
                  ΓΡΑΨΕ 'Δε δόθηκαν καθόλου δεδομένα!'
            ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     ΣΥΝΑΡΤΗΣΗ Κόστος(Μ, Ειδ) : ΠΡΑΓΜΑΤΙΚΗ   
     ΜΕΤΑΒΛΗΤΕΣ
            ΧΑΡΑΚΤΗΡΕΣ: Μ, Ειδ
     ΑΡΧΗ
            ΑΝ Μ = 'Α' ΤΟΤΕ
                 ΑΝ Ειδ = 'Π' ΤΟΤΕ
                       Κόστος <-- 0.7
                 ΑΛΛΙΩΣ_ΑΝ Ειδ = 'Ρ' ΤΟΤΕ
                       Κόστος <-- 0.8
                 ΑΛΛΙΩΣ   ! Ειδ = 'Α'
                       Κόστος <-- 0.9
                 ΤΕΛΟΣ_ΑΝ
            ΑΛΛΙΩΣ              ! Μ = 'Β'
                 ΑΝ Ειδ = 'Π' ΤΟΤΕ
                       Κόστος <-- 0.8
                 ΑΛΛΙΩΣ_ΑΝ Ειδ = 'Ρ' ΤΟΤΕ
                       Κόστος <-- 0.9
                 ΑΛΛΙΩΣ   ! Ειδ = 'Α'
                       Κόστος <-- 1.0
                 ΤΕΛΟΣ_ΑΝ            
            ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ     

Έλεγχος ορθότητας ονομάτων

Ποιά από τα παρακάτω ονόματα μεταβλητών είναι αποδεκτά
στη ΓΛΩΣΣΑ; Αιτιολογήστε την απάντησή σας μόνο για την
περίπτωση των μη αποδεκτών ονομάτων;
   1. ΠΡΟΓ_ΤΕΛΟΣ
   2. ΤΕΛΟΣ_ΑΝΝ
   3. ΤΡΙΑ ΤΕΤΑΡΤΑ
   4.  ΕΝΑ_1%
   5.  3ΑΡΧ
   6.  ΑΡΧΗ_ΣΥΝΑΡΤΗΣΗ

Απάντηση
 
     1. Αποδεκτό
     2. Αποδεκτό
     3. Μη αποδεκτό (υπάρχει κενό διάστημα)
     4. Μη αποδεκτό (υπάρχει το %)
     5. Μη αποδεκτό (ξεκινάει με αριθμό)
     6. Αποδεκτό

Κυριακή 19 Σεπτεμβρίου 2010

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

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

Λύση

       ΠΡΟΓΡΑΜΜΑ ΟΡΘΟΓ
       ΜΕΤΑΒΛΗΤΕΣ
             ΠΡΑΓΜΑΤΙΚΕΣ: α, β, Εμβ, Περ
       ΑΡΧΗ
             ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                    ΔΙΑΒΑΣΕ α, β
                    ΑΝ (α > 0) ΚΑΙ (β > 0) ΤΟΤΕ
                          ΚΑΛΕΣΕ ΕΜΒ_ΠΕΡ(α, β, Εμβ, Περ)
                          ΓΡΑΨΕ 'Εμβαδόν = ', Εμβ
                          ΓΡΑΨΕ 'Περίμετρος = ', Περ
                    ΤΕΛΟΣ_ΑΝ
             ΜΕΧΡΙΣ_ΟΤΟΥ (α <= 0) Ή (β <= 0)
       ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

       ΔΙΑΔΙΚΑΣΙΑ ΕΜΒ_ΠΕΡ(α, β, Εμβ, Περ)
       ΜΕΤΑΒΛΗΤΕΣ
             ΠΡΑΓΜΑΤΙΚΕΣ: α, β, Εμβ, Περ
       ΑΡΧΗ
             Εμβ <-- α*β
             Περ <-- 2*α+2*β
       ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Μενού λειτουργιών

Γράψτε πρόγραμμα το οποίο παρέχει το ακόλουθο μενού
λειτουργιών
     1.  Υπολογισμός α+β*γ
     2.  Υπολογισμός α-β
     3.  Υπολογισμός α+β-γ*δ
     4.  Έξοδος
Όταν η επιλογή του χρήστη είναι 1-3, διαβάζονται οι
απαιτούμενες (ακέραιες) τιμές εισόδου, γίνεται ο αντί-
στοιχος υπολογισμός και εμφανίζεται το αποτέλεσμα
στην οθόνη με κατάλληλα διαμορφωμένο μήνυμα.Η
λειτουργία του προγράμματος ολοκληρώνεται μόνο όταν
δοθεί ως επιλογή του χρήστη η τιμή 4.
Παρατήρηση : Το πρόγραμμα πρέπει να διασφαλίζει την
εγκυρότητα των εισερχόμενων δεδομένων.

Λύση

     ΠΡΟΓΡΑΜΜΑ ΜΕΝΟΥ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: ΕΠ, α, β, γ, δ, ΑΠ
     ΑΡΧΗ
           ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                ΓΡΑΨΕ '1.  Υπολογισμός α+β*γ'
                ΓΡΑΨΕ '2.  Υπολογισμός α-β'
                ΓΡΑΨΕ '3.  Υπολογισμός α+β-γ*δ'
                ΓΡΑΨΕ '4.  Έξοδος'
                ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                     ΓΡΑΨΕ 'Δώσε επιλογή:'
                     ΔΙΑΒΑΣΕ ΕΠ
                ΜΕΧΡΙΣ_ΟΤΟΥ (ΕΠ >= 1) ΚΑΙ (ΕΠ <= 4)
                ΑΝ ΕΠ = 1 ΤΟΤΕ
                           ΔΙΑΒΑΣΕ α, β, γ
                           ΑΠ <-- α+β*γ
                           ΓΡΑΨΕ 'α+β*γ = ', ΑΠ
               ΑΛΛΙΩΣ_ΑΝ ΕΠ = 2 ΤΟΤΕ
                           ΔΙΑΒΑΣΕ α, β
                           ΑΠ <-- α-β
                           ΓΡΑΨΕ 'α-β = ', ΑΠ                      
               ΑΛΛΙΩΣ_ΑΝ ΕΠ = 3 ΤΟΤΕ         
                           ΔΙΑΒΑΣΕ α, β, γ, δ
                           ΑΠ <-- α+β-γ*δ
                           ΓΡΑΨΕ 'α+β-γ*δ = ', ΑΠ                      
               ΑΛΛΙΩΣ
                           ΓΡΑΨΕ 'Τερματισμός λειτουργιών'
               ΤΕΛΟΣ_ΑΝ
           ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠ = 4
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Δώστε την εκφώνηση της άσκησης

Δίνεται ο παρακάτω αλγόριθμος
    Αλγόριθμος Τι_κάνει
    χ <-- 0
    υ <-- 0
    Για κ από 1 μέχρι 120
           Διάβασε α
           Αν α mod 3 = 0 τότε
                χ <-- χ+1
           αλλιώς
                υ <-- υ+1
           Τέλος_αν
    Τέλος_επανάληψης
     ζ <-- 100*υ/120
     Αποτελέσματα // χ, ζ //
    Τέλος Τι_κάνει
Ποιά είναι η εκφώνηση του προβλήματος που επιλύει;

Λύση

Γράψτε αλγόριθμο που διαβάζει 120 ακέραιες τιμές και
υπολογίζει:
* το πλήθος των τιμών εισόδου που είναι πολλαπλάσια του 3,
* το ποσοστό (%) των τιμών εισόδου που δεν είναι πολλαπλάσια
   του 3

Βρείτε τα συντακτικά και λογικά λάθη

Τα παρακάτω σύνολα εντολών φιλοδοξούν να υπολογίσουν
το μέσο όρο ύψους 20 ατόμων, ωστόσο έχουν κάποια λάθη.
Ποιά από αυτά είναι συντακτικά και ποιά λογικά;

 1.
     Για κ από 1 μέχρι 20
           Διάβασε Υ
           σ <-- σ+Υ
     Τέλος_επανάληψης
     Εμφάνισε σ/20

2.
     σ <-- 0
     Για κ από 1 μέχρι 20
           Διάβασε σ
           σ <-- σ+Υ
     Τέλος_επανάληψης
     Εμφάνισε σ/20
 
3.
     σ <-- 0
     Για κ από 1 μέχρι 20
           Διάβασε Υ
           σ = σ+Υ
     Τέλος_επανάληψης
     Εμφάνισε σ/20

4.
     σ <-- 0
     Για κ από 1 μέχρι 20 κάνε
           Διάβασε Υ
           σ <-- σ+Υ
     Τέλος_επανάληψης
     Εμφάνισε σ/20

5.
     σ <-- 0
     Για κ από 1 μέχρι 20
           Διάβασε Υ
           σ <-- σ+Υ
     Τέλος_επανάληψης
     Εμφάνισε σ

Απάντηση

    1. Λογικό λάθος,γιατί δε μηδενίσαμε έξω από τη Για το σ.
    2. Λογικό λάθος,γιατί αντί να διαβάζουμε την τιμή του Υ,
        διαβάζουμε το σ.
    3. Συντακτικό λάθος, γιατί η εντολή σ = σ+Υ έπρεπε να ήταν
        σ <-- σ+Υ
    4. Συντακτικό λάθος, γιατί η λέξη κάνε είναι περιττή.
    5. Λογικό λάθος, γιατί στο τέλος δεν έχουμε διαιρέσει το σ
        με το 20.

Σάββατο 18 Σεπτεμβρίου 2010

Διόρθωση συντακτικών λαθών

Διορθώστε τα συντακτικά λάθη του παρακάτω αλγορίθμου
      Αλγόριθμος  Δοκ1_2
      Διάβασε α, β
      Υ <-- 0
      Όσο Υ <= 1000 επαναλάμβανε
            Υ = Υ+α*β
            α = α+1
            β = β+2
      Τέλος_όσο
      Τύπωσε Υ
      Τέλος_αλγορίθμου

Λύση

      Αλγόριθμος  Δοκ1_2
      Διάβασε α, β
      Υ <-- 0
      Όσο Υ <= 1000 επανάλαβε
            Υ <-- Υ+α*β
            α <-- α+1
            β <-- β+2
      Τέλος_επανάληψης
      Εκτύπωσε Υ
      Τέλος Δοκ1_2

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

Ποιό είναι το περιεχόμενο του πίνακα Α[3, 6] μετά την
εκτέλεση των παρακάτω εντολών;
      Για μ από 1 μέχρι 3
           Για λ από 1 μέχρι 6
                Αν (μ = 1) Ή (λ = 1) τότε
                     Α[μ, λ] <-- 11
                αλλιώς_αν μ = 3 τότε
                     Α[μ, λ] <-- 0
                αλλιώς
                     Α[μ, λ] <-- 99
                Τέλος_αν
           Τέλος_επανάληψης
      Τέλος_επανάληψης
   
Λύση

      Μετά την εκτέλεση των παραπάνω εντολών
      * όλα τα στοιχεία της 1ης γραμμής  και της 1ης στήλης
         παίρνουν την τιμή 11,
      * όλα τα στοιχεία της 3ης γραμμής παίρνουν την τιμή 0
         (εκτός από το Α[3, 1]),
      * όλα τα υπόλοιπα στοιχεία του πίνακα παίρνουν την
         τιμή 99
      Κατά συνέπεια το περιεχόμενο του πίνακα είναι το
      ακόλουθο:

             11     11     11     11     11     11
             11     99     99     99     99     99
             11      0       0       0       0       0

Άσκηση : έλεγχος τύπου δεδομένων και υπολογισμός

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

Λύση

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

Παρασκευή 17 Σεπτεμβρίου 2010

Κάντε τις σωστές αντιστοιχήσεις

Δίνονται τα παρακάτω σύνολα εντολών
    1. 
       χ <-- 7
       Όσο χ > 0 επανάλαβε
            χ <-- χ-2
       Τέλος_επανάληψης

    2.
        χ <-- -4
        Για κ από 10 μέχρι 9 με_βήμα -1
              χ <-- χ+1
        Τέλος_επανάληψης

    3. 
        χ <-- -1
        Για λ από 2010 μέχρι 2010
             χ <-- χ+1
        Τέλος_επανάληψης

     4.
         χ <-- -4
         Αρχή_επανάληψης
              χ <-- χ+2
         Μέχρις_ότου χ <= 0

      5.
          χ <-- -3
          Αρχή_επανάληψης
               Αν χ > 0 τότε
                   χ <-- -χ
               Τέλος_αν
               χ <-- χ-1
          Μέχρις_ότου  χ < -3
    
    και οι τιμές

         α. -4
         β. -3
         γ. -2
         δ. -1
         ε. 0

Γράψτε στο τετράδιό σας τον αριθμό του τμήματος εντολών
(1-5) και δίπλα το γράμμα (α-ε) που αντιστοιχεί στην τελική
τιμή του χ.

Απάντηση

       1. δ
       2. γ
       3. ε
       4. γ
       5. α

Άσκηση : Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζονται;

Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζει το
παρακάτω σύνολο εντολών;

    χ <-- 3
    Αρχή_επανάληψης
        Αν χ mod 3 = 0 τότε
            χ <-- χ-1
        αλλιώς
            χ <-- χ+1
        Τέλος_αν
         α <-- 1/χ
         Εμφάνισε α
    Μέχρις_ότου χ =0

Απάντηση

     Το χ μπορεί να πάρει μόνο τις τιμές 3 και 2 (εναλλάξ). Έτσι η
     συνθήκη χ = 0 είναι πάντοτε Ψευδής και η Μέχρις_ότου
     αποτελεί ατέρμων βρόχο. Κατά συνέπεια παραβιάζεται
     η περατότητα.

Πέμπτη 16 Σεπτεμβρίου 2010

Διόρθωση λανθασμένων προτάσεων και επαναδιατύπωσή τους

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και
επαναδιατυπώστε τις με σωστό τρόπο
1. Μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται
    ως είσοδοι σ' έναν αλγόριθμο.
2. Στα προβλήματα απόφασης πραγματοποιούνται
    πάντοτε κάποιοι υπολογισμοί προκειμένου να
    βρούμε τη λύση.
3. Η λογική πράξη ΟΧΙ αποκαλείται σύζευξη.
4. Κάθε πρόγραμμα τελειώνει με τη δεσμευμένη λέξη
    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑ.
5. Σταθερές μπορούμε να συναντήσουμε μόνο μέσα σ'
    ένα πρόγραμμα.
6. Κάθε εντολή ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ μπορεί να αντικατασταθεί
    από μια ΟΣΟ..ΕΠΑΝΑΛΑΒΕ έτσι ώστε να προκύπτει
    το ίδιο αλγοριθμικό αποτέλεσμα.
7. Όταν μια εντολή προγράμματος συνεχίζεται και στην
    επόμενη γραμμή, η γραμμή αυτή ξεκινάει με τον
    ειδικό χαρακτήρα !.
8. Αν Α[30] ακέραιος πίνακας, η εντολή
         Α[11] <-- 7.3
    αποτελεί λογικό λάθος.
9. Αν Α[20, 3] ακέραιος πίνακας γεμάτος με αρνητικές
    τιμές, η εντολή
           ζ <-- Τ_Ρ(Α[11, 2])
    παραβιάζει το κριτήριο της αποτελεσματικότητας.
10. Αν ζ αλφαριθμητική μεταβλητή και Φ συνάρτηση
      αλφαριθμητικού τύπου χωρίς παραμέτρους, η
      ενεργοποίηση της Φ μπορεί να γίνει με την εντολή
             ζ <-- Φ( )


Απάντηση

1. Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται
    ως είσοδοι σ' έναν αλγόριθμο.
 2. Στα υπολογιστικά προβλήματα πραγματοποιούνται
    πάντοτε κάποιοι υπολογισμοί προκειμένου να
    βρούμε τη λύση.

3. Η λογική πράξη ΟΧΙ αποκαλείται άρνηση.
4. Κάθε πρόγραμμα τελειώνει με τη δεσμευμένη λέξη
    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ.
5. Συμβολικές σταθερές μπορούμε να συναντήσουμε μόνο μέσα σ'
    ένα πρόγραμμα .
6. Κάθε εντολή ΟΣΟ..ΕΠΑΝΑΛΑΒΕ μπορεί να αντικατασταθεί
    από μια ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ έτσι ώστε να προκύπτει
    το ίδιο αλγοριθμικό αποτέλεσμα.
7. Όταν μια εντολή προγράμματος συνεχίζεται και στην
    επόμενη γραμμή, η γραμμή αυτή ξεκινάει με τον
    ειδικό χαρακτήρα &.
8. Αν Α[30] ακέραιος πίνακας, η εντολή
         Α[11] <-- 7.3
    αποτελεί συντακτικό λάθος.
9. Αν Α[20, 3] ακέραιος πίνακας γεμάτος με αρνητικές
    τιμές, η εντολή
           ζ <-- Τ_Ρ(Α[11, 2])
    παραβιάζει το κριτήριο της καθοριστικότητας.
10. Αν ζ αλφαριθμητική μεταβλητή και Φ συνάρτηση
      αλφαριθμητικού τύπου χωρίς παραμέτρους, η
      ενεργοποίηση της Φ μπορεί να γίνει με την εντολή
             ζ <-- Φ

Τετάρτη 15 Σεπτεμβρίου 2010

Άσκηση : Φρουρός

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

Λύση

     Αλγόριθμος ΚΜΕ
     Πληθ <-- 0
     Φ28 <-- 0
     Αρχή_επανάληψης
          Διάβασε Ταχ
          Αν Ταχ > 0 τότε
               Πληθ <-- Πληθ+1
               Αν Ταχ > 2.8 τότε
                   Φ28 <-- Φ28+1
               Τέλος_αν
          Τέλος_αν
     Μέχρις_ότου Ταχ <= 0
     Εμφάνισε Πληθ, Φ28
     Τέλος ΚΜΕ

Άσκηση : Απάντηση σε ερώτηση

Γράψτε αλγόριθμο που διαβάζει το είδος (α - αθλητικές,
π - πολιτικές) και τις τιμές πώλησης των εφημερίδων που
κυκλοφορούν πανελλαδικά (η είσοδος δεδομένων ολοκληρώνεται
μόλις δοθεί η απάντηση 'ΟΧΙ' στην υποβαλλόμενη προς το χρήστη
ερώτηση 'Κυκλοφορεί άλλη εφημερίδα πανελλαδικά;'), και
υπολογίζει:
α) το ποσοστό (%) των εφημερίδων που είναι αθλητικές,
β) τη μέση τιμή πώλησης για τις πολιτικές εφημερίδες.

Παρατήρηση : Οι τιμές εισόδου είναι στα επιτρεπτά πλαίσια
τιμών

Λύση

     Αλγόριθμος ΕΦΗΜ
     Πληθ <-- 0
     Αθλ <-- 0
     Πολ <-- 0
     σ <-- 0
     Αρχή_επανάληψης
          Διάβασε Είδος
          Διάβασε Τιμή
          Πληθ <-- Πληθ+1
          Αν (Είδος = 'α') τότε
               Αθλ <-- Αθλ+1
          αλλιώς    ! π
               σ <-- σ+Τιμή
               Πολ  <-- Πολ+1
          Τέλος_αν
          Εμφάνισε 'Κυκλοφορεί άλλη εφημερίδα πανελλαδικά;'
          Διάβασε Απ
     Μέχρις_ότου Απ = 'ΟΧΙ'
     ΠΟΣ <-- 100*Αθλ/Πληθ
     Εμφάνισε ΠΟΣ
     Αν Πολ > 0 τότε
          ΜΟ <-- σ/Πολ
          Εμφάνισε ΜΟ
     αλλιώς
          Εμφάνισε 'Δεν υπάρχει καμιά πολιτική εφημερίδα!'
     Τέλος ΕΦΗΜ

Δευτέρα 13 Σεπτεμβρίου 2010

Άσκηση : Συμπληρώστε τα κενά

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

     ΠΡΟΓΡΑΜΜΑ ΦΡ
     ΜΕΤΑΒΛΗΤΕΣ
           _______ : Χ, ΠΛΗΘ
     ΑΡΧΗ
          ΠΛΗΘ <-- ____
          ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                ______ Χ
                ΑΝ Χ ____ 1000 ΤΟΤΕ
                   ΑΝ Χ _____ 2 = ____ ΤΟΤΕ
                       ΠΛΗΘ <-- ___ + ___
                   ΤΕΛΟΣ_ΑΝ
                ΤΕΛΟΣ_ΑΝ

          ΜΕΧΡΙΣ_ΟΤΟΥ  ____ = ____
          _____ ΠΛΗΘ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Απάντηση

     ΠΡΟΓΡΑΜΜΑ ΦΡ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Χ, ΠΛΗΘ
     ΑΡΧΗ
          ΠΛΗΘ <-- 0
          ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                ΔΙΑΒΑΣΕ Χ
                ΑΝ Χ < > 1000 ΤΟΤΕ
                   ΑΝ Χ MOD 2 = 1 ΤΟΤΕ
                       ΠΛΗΘ <-- ΠΛΗΘ+1
                   ΤΕΛΟΣ_ΑΝ
                ΤΕΛΟΣ_ΑΝ
          ΜΕΧΡΙΣ_ΟΤΟΥ  Χ = 1000
          ΓΡΑΨΕ ΠΛΗΘ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Κυριακή 12 Σεπτεμβρίου 2010

Άσκηση : μικρότερο και μεγαλύτερο ψηφίο θετικού τετραψήφιου

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

Λύση

     Αλγόριθμος ΜΑΧ_ΨΗΦ
     Αρχή_επανάληψης
          Διάβασε Ν
     Μέχρις_ότου (Ν >= 1000) ΚΑΙ (Ν <= 9999)
     ΧΙΛ <-- N div 1000
     ΕΚΑΤ <-- (Ν mod 1000) div 100
     ΔΕΚ <-- ( (Ν mod 1000) mod 100) div 10
     ΜΟΝ <-- ( (Ν mod 1000) mod 100) mod 10
     MAX <-- ΧΙΛ
     Αν  ΕΚΑΤ >ΜΑΧ τότε
          ΜΑΧ <-- ΕΚΑΤ
     Τέλος_αν
     Αν ΔΕΚ >ΜΑΧ τότε
          ΜΑΧ <-- ΔΕΚ
     Τέλος_αν
     Αν  ΜΟΝ >ΜΑΧ τότε
          ΜΑΧ <-- ΜΟΝ
     Τέλος_αν
     Εμφάνισε  ΜΑΧ

     Τέλος ΜΑΧ_ΨΗΦ

Άσκηση: βήμα-βήμα εκτέλεση (Για+Για)

Τι θα εμφανίσει το παρακάτω σύνολο εντολών;
     α <-- 9
     β <-- 18
     Για λ από 80 μέχρι 101 με_βήμα 20
          Εμφάνισε α+β
          Για μ από 18 μέχρι 11 με_βήμα -6
                Εμφάνισε μ mod β
                β <-- β+5
          Τέλος_επανάληψης
          Εμφάνισε λ div α
          α <-- α+2
     Τέλος_επανάληψης
     Εμφάνισε α+β-λ+μ

Λύση

     α = 9
     β = 18
     λ = 80
          Αφού α+β = 9+18 = 27, η Εμφάνισε τυπώνει:    27
          μ = 18
              Αφού μ mod β = 18 mod 18 = 0, η Εμφάνισε τυπώνει:   0
              β = β+5 = 18+5 = 23
          μ = 12
             Αφού μ mod β = 12  mod 23 = 12, η Εμφάνισε τυπώνει:  12            
             β = β+5 = 23+5 = 28
          Η εσωτερική Για τερματίζεται με μ = 6
         Αφού λ div α = 80 div 9 = 8, η Εμφάνισε τυπώνει:  8
         α = α+2 = 9+2 = 11
     λ = 100
         Αφού α+β = 11+28= 39, η Εμφάνισε τυπώνει:    39
          μ = 18
              Αφού μ mod β = 18 mod 28 = 18, η Εμφάνισε τυπώνει:   18
              β = β+5 = 28+5 = 33
          μ = 12
             Αφού μ mod β = 12  mod  33 = 12, η Εμφάνισε τυπώνει:  12            
             β = β+5 = 33+5 = 38
         Η εσωτερική Για τερματίζεται με μ = 6
         Αφού λ div α = 100 div 11  = 9, η Εμφάνισε τυπώνει:  9
         α = α+2 = 11+2 = 13
    Η εξωτερική Για τερματίζεται με λ = 120
    Αφού α+β-λ+μ = 13+38-120+6 = -63, η Εμφάνισε τυπώνει:  -63

Παρασκευή 10 Σεπτεμβρίου 2010

Άσκηση σε τρισδιάστατο πίνακα

Γράψτε αλγόριθμο που διαβάζει 150 ακέραιες τιμές και τις
καταχωρεί στον πίνακα Α[3, 5, 10]. Στη συνέχεια υπολογίζει
πόσες από αυτές είναι πολλαπλάσια του 17.

Λύση

      Αλγόριθμος ΤΡΙ
      Για λ από 1 μέχρι 3
          Για μ από 1 μέχρι 5
               Για ρ από 1 μέχρι 10
                     Διάβασε Α[λ, μ, ρ]
               Τέλος_επανάληψης
          Τέλος_επανάληψης
      Τέλος_επανάληψης     
      Πολ <-- 0
      Για λ από 1 μέχρι 3
          Για μ από 1 μέχρι 5
               Για ρ από 1 μέχρι 10
                     Αν Α[λ, μ, ρ] mod 17 = 0 τότε
                          Πολ <-- Πολ+1
                     Τέλος_αν
               Τέλος_επανάληψης
          Τέλος_επανάληψης
      Τέλος_επανάληψης
      Αποτελέσματα // Πολ //
      Τέλος ΤΡΙ

Πέμπτη 9 Σεπτεμβρίου 2010

Συμπληρώστε τα κενά

Συμπληρώστε τα κενά που λείπουν έτσι ώστε το παρακάτω
σύνολο εντολών να υπολογίζει το άθροισμα των τετραγώνων
όλων των θετικών άρτιων αριθμών που είναι πολλαπλάσια του 8
και μικρότεροι από το 300
      Α <-- ____
      Για λ από _____ μέχρι ____ με_βήμα ____
             Αν (λ ____ 2 = ____ ) ΚΑΙ (λ ____ = 0) τότε
                    Α <-- Α+___
             Τέλος_αν
      Τέλος_επανάληψης
      Αποτελέσματα // Α //

Λύση

      Α <-- 0
      Για λ από 2 μέχρι 298 με_βήμα 2
             Αν mod 2 = 0) ΚΑΙ mod 8 = 0) τότε
                    Α <-- Α+λ^2
             Τέλος_αν
      Τέλος_επανάληψης
      Αποτελέσματα // Α //

Τετάρτη 8 Σεπτεμβρίου 2010

Άσκηση : Μονοδιάστατοι πίνακες (αναζήτηση)

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

Λύση

     ΠΡΟΓΡΑΜΜΑ ΝΟΜ
     ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: κ, λ, Θ
            ΠΡΑΓΜΑΤΙΚΕΣ: ΙΣΟΤ[12]
            ΧΑΡΑΚΤΗΡΕΣ: ΝΟΜ[12], Ν
            ΛΟΓΙΚΕΣ: Β
     ΑΡΧΗ
            ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 12
                 ΔΙΑΒΑΣΕ ΝΟΜ[λ]
                 ΔΙΑΒΑΣΕ ΙΣΟΤ[λ]
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΔΙΑΒΑΣΕ Ν
            Β <-- ΨΕΥΔΗΣ
            λ <-- 1
            ΟΣΟ (λ <= 12) ΚΑΙ (Β = ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ
                 ΑΝ ΝΟΜ[λ] = Ν ΤΟΤΕ
                       Β <-- ΑΛΗΘΗΣ
                       Θ <-- λ
                 ΑΛΛΙΩΣ
                       λ <-- λ+1
                 ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΑΝ Β = ΑΛΗΘΗΣ ΤΟΤΕ
                  ΓΡΑΨΕ 'ΙΣΟΤΙΜΙΑ :', ΙΣΟΤ[Θ],  ' ευρώ'
            ΑΛΛΙΩΣ
                  ΓΡΑΨΕ 'Το νόμισμα αυτό δεν είναι ένα από τα 12'
            ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Συμπληρώστε τα κενά

Συμπληρώστε τα κενά που λείπουν στο παρακάτω σύνολο
εντολών έτσι ώστε αυτό να υπολογίζει το ποσοστό (%) των
περιττών αριθμών (μέχρι και το 189) που δεν είναι
πολλαπλάσια του 3.
       χ <-- 0
       Για λ από ____ μέχρι ____  με_βήμα ____
             Αν λ ___ 3 = ____ τότε
                    χ <-- χ+1
             Τέλος_αν
       Τέλος_επανάληψης
       ΠΟΣ <-- 100*(95-χ)/___
       Εμφάνισε 'Ποσοστό =', ΠΟΣ, '%'

Απάντηση

       χ <-- 0
       Για λ από 1 μέχρι 189  με_βήμα 2
             Αν λ mod 3 = 0 τότε
                    χ <-- χ+1
             Τέλος_αν
       Τέλος_επανάληψης
       ΠΟΣ <-- 100*(95-χ)/95
       Εμφάνισε 'Ποσοστό =', ΠΟΣ

Δευτέρα 6 Σεπτεμβρίου 2010

Άσκηση : Βήμα-βήμα εκτέλεση εντολών (Όσο+Αν..τότε)

Ποιές είναι οι τελικές τιμές των μεταβλητών μετά την
εκτέλεση των παρακάτω εντολών;
     κ <-- 3
     λ <-- 18
     α <-- 0
     Όσο λ > 0 επαναλαβε 
          α <-- α+λ+2*κ
          κ <-- κ+2
          Αν λ > 5 τότε
               α <-- α-9
          Τέλος_αν
          λ <-- λ div 3
     Τέλος_επανάληψης

Λύση

     κ = 3
     λ = 18
     α = 0
     1η επανάληψη
          α = α+λ+2*κ = 0+18+2*3 = 18+6 = 24
          κ = κ+2 = 3+2 = 5
          Αφού λ > 5 = 18 > 5 = Αληθής έχουμε:
                α = α-9 = 24-9 = 15
          λ = λ div 3 = 18 div 3 = 6

     2η επανάληψη
          α = α+λ+2*κ = 24+6+2*5 = 30+10 = 40
          κ = κ+2 = 5+2 = 7
          Αφού λ > 5 = 6 > 5 =  Αληθής έχουμε:
                α = α-9 = 40-9 = 31
          λ = λ div 3 = 6 div 3 = 2
     3η επανάληψη     
          α = α+λ+2*κ = 40+2+2*7 = 42+14 =56
          κ = κ+2 = 7+2 =9
          Αφού λ > 5 = 2 > 5 =  Ψευδής το α δεν αλλάζει.
          λ = λ div 3 = 2 div 3 = 0
     Αφού λ > 0 = 0 > 0 = Ψευδής, η Όσο τερματίζεται.
     Οι τελικές τιμές των μεταβλητών είναι:
          λ = 0, κ = 9, α = 56

Κυριακή 5 Σεπτεμβρίου 2010

Ανάλυση προβλήματος

Στα πλαίσια της νέας σχολικής χρονιάς, η σχολική επιτροπή
θέλει να εφοδιάσει το σχολείο σας με ένα υπερσύγχρονο
φωτοτυπικό μηχάνημα. Σε πρώτη φάση γίνεται μια συνάντηση
των μελών της επιτροπής στην οποία και υποβάλλονται οι
εναλλακτικές προτάσεις τεχνικών προδιαγραφών, γίνεται
ψηφοφορία και επιλέγεται η πλειοψηφούσα πρόταση. Στη
συνέχεια ο πρόεδρος της σχολικής επιτροπής επισκέπτεται
τα μεγαλύτερα καταστήματα ειδών γραφείου της πόλης,
κάνει μια έρευνα αγοράς και καταλήγει στον προμηθευτή από
τον οποίο θα γίνει η αγορά. Στο τελικό στάδιο, ο προμηθευτής
μεταφέρει το φωτοτυπικό μηχάνημα στο σχολείο,
παρουσιάζει τον τρόπου λειτουργίας του και
λαμβάνει επιταγή από το διευθυντή του σχολείου για την πληρωμή
του προϊόντος. Αναλύστε το παραπάνω πρόβλημα "Προμήθειας
φωτοτυπικού μηχανήματος από τη σχολική επιτροπή του σχολείου
σας".

Λύση

     1.  Προσδιορισμός τεχνικών προδιαγραφών
          1.1 Συνάντηση των μελών της σχολικής επιτροπής
          1.2 Υποβολή εναλλακτικών προτάσεων
          1.3 Ψηφοφορία
          1.4 Επιλογή της πλειοψηφούσας πρότασης
     2.  Επιλογή προμηθευτή/Έρευνα αγοράς
          2.1 Επίσκεψη του προέδρου της σχολικής επιτροπής
                στα μεγαλύτερα καταστήματα ειδών γραφείου
                της πόλης
          2.2  Σύγκριση τιμών
          2.3 Λήψη απόφασης
     3. Υλοποίηση
          3.1 Μεταφορά φωτοτυπικού στο χώρο του σχολείου
                από τον  προμηθευτή
          3.2 Επίδειξη του τρόπου λειτουργίας του
          3.3 Πληρωμή της αξίας του προϊόντος με επιταγή από
                το διευθυντή του σχολείου