Τρίτη 31 Αυγούστου 2010

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

Διορθώστε τις παρακάτω προτάσεις και επαναδιατυπώστε τις
έτσι ώστε να έχουν σωστό περιεχόμενο
1. Τα επιλύσιμα προβλήματα είναι υποκατηγορία των
    ημιδομημένων.
2. Το δομημένο κείμενο είναι ένας τρόπος αναπαράστασης
    αλγορίθμων που εγκυμονεί ωστόσο τον κίνδυνο
    παραβίασης του κριτηρίου της περατότητας.
3.  Το πεδίο είναι μια δομή δεδομένων που απαρτίζεται
     από πολλές εγγραφές.
4.  Ένα προγραμματιστικό περιβάλλον περιλαμβάνει
     κατ' ελάχιστο ένα συντάκτη, ένα συνδέτη και ένα
     διερμηνευτή.
5.  Η πολιτική εξυπηρέτησης σε μια στοίβα είναι
     Πρώτο μέσα - πρώτο έξω.
6.  Σε έναν πίνακα δεν μπορούν να γίνουν ποτέ οι
     λειτουργίες της συγχώνευσης και της προσπέλασης.
7.  Το σύνολο των εντολών μιας διαδικασίας δεν μπορεί
     να περιλαμβάνει τις εντολές ΓΡΑΨΕ και ΔΙΑΒΑΣΕ.


Απάντηση

1. Τα ημιδομημένα προβλήματα είναι υποκατηγορία των
    επιλύσιμων.
2. Το  ελεύθερο κείμενο είναι ένας τρόπος αναπαράστασης
    αλγορίθμων που εγκυμονεί ωστόσο τον κίνδυνο
    παραβίασης του κριτηρίου της αποτελεσματικότητας.
3. Η εγγραφή είναι μια δομή δεδομένων που απαρτίζεται   
    από πολλά πεδία.
4.  Ένα προγραμματιστικό περιβάλλον περιλαμβάνει
     κατ' ελάχιστο ένα συντάκτη, ένα συνδέτη και ένα
     μεταγλωττιστή.
5.  Η πολιτική εξυπηρέτησης σε μια στοίβα είναι
     Τελευταίο μέσα - πρώτο έξω.
6.  Σε έναν πίνακα δεν μπορούν να γίνουν ποτέ οι
     λειτουργίες της εισαγωγής και της διαγραφής.
7.  Το σύνολο των εντολών μιας συνάρτησης δεν μπορεί
     να περιλαμβάνει τις εντολές ΓΡΑΨΕ και ΔΙΑΒΑΣΕ.

Άσκηση : Βήμα-βήμα εκτέλεση εντολών (Πολλαπλασιασμός αλά ρωσικά)

Εκτελέστε τον πολλαπλασιασμό αλά ρωσικά για Μ1 = 32 και
Μ2 = 19

Λύση

       Μ1               Μ2   
        32                19               32
        64                  9               64
      128                  4
      256                  2
      512                  1               512

                       Άθροισμα =    608

Δευτέρα 30 Αυγούστου 2010

Άσκηση σε δυσδιάστατο πίνακα (μέγιστα/ελάχιστα ανά γραμμή και ανά στήλη)

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

Λύση

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

Κυριακή 29 Αυγούστου 2010

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

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

Λύση

    ΠΡΟΓΡΑΜΜΑ Τριγ
    ΣΤΑΘΕΡΕΣ
         Π = 3.14
    ΜΕΤΑΒΛΗΤΕΣ
         ΠΡΑΓΜΑΤΙΚΕΣ: Βάση, Ύψος, Εμβ
         ΧΑΡΑΚΤΗΡΕΣ: ΑΠ
    ΑΡΧΗ
         ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
              ΔΙΑΒΑΣΕ Βάση, Ύψος
              Εμβ <-- (Βάση*Ύψος)/2
              ΓΡΑΨΕ Εμβ
              ΓΡΑΨΕ 'Υπάρχει άλλο τρίγωνο;'
              ΔΙΑΒΑΣΕ ΑΠ
         ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ = 'ΟΧΙ'
    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ερωτήσεις σωστού-λάθους (εφ' όλης της ύλης)

Ποιές από τις παρακάτω προτάσεις είναι σωστές (Σ) και ποιές
λανθασμένες (Λ)
1. Η τοποθέτηση των ονοματεπωνύμων των μαθητών μιας
    τάξης κατά αλφαβητική σειρά είναι ένα παράδειγμα
    επεξεργασίας δεδομένων.
2. Τα δεδομένα σε ένα πρόβλημα μπορούν να γίνουν αντιληπτά
    με μια από τις ανθρώπινες αισθήσεις.
3. Μια από τις σκοπιές από τις οποίες εξετάζει η πληροφορική
    τους αλγορίθμους είναι και της καθοριστικότητας.
4. Για να απεικονίσουμε μια εντολή εκχώρησης σε ένα λογικό
    διάγραμμα χρησιμοποιούμε ένα πλάγιο παραλληλόγραμμο.
5. Για να επισκεφθούμε τους κόμβους μιας δομής δεδομένων
    χρησιμοποιούμε τη λειτουργία της προσπέλασης.
6. Αλγόριθμοι+Προγράμματα = Δομές δεδομένων
7. Οι γλώσσες 4ης γενιά αποκρύπτουν από το χρήστη
    λεπτομέρειες της αρχιτεκτονικής του υπολογιστή.
8. Η γλώσσα LOGO είναι ιδανική για την ανάπτυξη
    διαδικτυακών εφαρμογών.
9. Κάθε πρόγραμμα που χρησιμοποιεί πίνακες, μπορεί
    να γραφεί ισοδύναμα χωρίς τη χρήση πινάκων.
10. Για να προσδιορίσουμε τα στοιχεία ενός τρισδιάστατου
      πίνακα χρησιμοποιούμε 3 δείκτες.
11. Η τιμή που υπολογίζει μια συνάρτηση επιστρέφει μέσω
     του ονόματός της.
12. Ο τρόπος ενεργοποίησης των δικών μας συναρτήσεων
     διαφέρει από τον τρόπο ενεργοποίησης των ενσωματωμένων
     συναρτήσεων της ΓΛΩΣΣΑΣ.

Απάντηση

1. Σ
2. Σ
3. Λ
4. Λ
5. Σ
6. Λ
7. Σ
8. Λ
9. Λ
10. Σ
11. Σ
12. Λ

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

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

Λύση

      Αλγόριθμος Χώρες
      Πλήθος <-- 0
      Ελ <-- 0
      Αρχή_επανάληψης
          Διάβασε Χώρα
          Αν Χώρα < > 'ΠΟΥΘΕΝΑ' τότε
               Πλήθος <-- Πλήθος+1
               Αν Χώρα = 'ΕΛΛΑΔΑ' τότε
                    Ελ <-- Ελ+1          

               Τέλος_αν
          Τέλος_αν
      Μέχρις_ότου Χώρα = 'ΠΟΥΘΕΝΑ'
      Αν Πλήθος > 0 τότε
           ΠΟΣ <-- 100*(Πλήθος-Ελ)/Πλήθος
           Εμφάνισε Πλήθος, Ελ, ΠΟΣ
      αλλιώς
           Εμφάνισε 'Δε δόθηκαν δεδομένα!'
      Τέλος_αν
      Τέλος Χώρες

Παρασκευή 27 Αυγούστου 2010

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

Τι θα εμφανίσει το παρακάτω σύνολο εντολών;
     μ <-- 31
     Αρχή_επανάληψης
          Για λ από -2 μέχρι 5 με_βήμα 4
              κ <-- 19
              Όσο κ <= 42 επανάλαβε
                   Εμφάνισε κ+λ+μ
                   κ <-- κ+13
              Τέλος_επανάληψης
          Τέλος_επανάληψης
          Εμφάνισε μ+λ
          μ <-- μ-14
     Μέχρις_ότου μ < 4
     Εμφάνισε μ

Λύση

     μ = 31
     1η επανάληψη της Μέχρις_ότου
          λ = -2
               κ = 19
               1η επανάληψη της Όσο
                   Αφού κ+λ+μ = 19+(-2)+31 = 48, η Εμφάνισε
                   τυπώνει :              48

                   κ = κ+13 = 19+13 = 32
               2η επανάληψη της Όσο
                   Αφού κ+λ+μ = 32+(-2)+31 = 61, η Εμφάνισε
                   τυπώνει :              61

                   κ = κ+13 = 32+13 = 45
               Αφού κ <= 42 = 45 <= 42 = Ψευδής, η Όσο τερματίζεται.
          λ = 2
               κ = 19
               1η επανάληψη της Όσο
                   Αφού κ+λ+μ = 19+2+31 = 52, η Εμφάνισε
                   τυπώνει :              52
                   κ = κ+13 = 19+13 = 32
               2η επανάληψη της Όσο
                   Αφού κ+λ+μ = 32+2+31 = 65, η Εμφάνισε
                   τυπώνει :              65
                   κ = κ+13 = 32+13 = 45
               Αφού κ <= 42 = 45 <= 42 = Ψευδής, η Όσο τερματίζεται.
          Η Για τερματίζεται με λ = 6.
          Αφού μ+λ = 31+6 = 37, η Εμφάνισε τυπώνει:       37
          μ = μ-14 = 31-14 = 17
     2η επανάληψη της Μέχρις_ότου
          λ = -2
               κ = 19
               1η επανάληψη της Όσο
                   Αφού κ+λ+μ = 19+(-2)+17= 34, η Εμφάνισε
                   τυπώνει :              34
                   κ = κ+13 = 19+13 = 32
               2η επανάληψη της Όσο
                   Αφού κ+λ+μ = 32+(-2)+17= 47, η Εμφάνισε
                   τυπώνει :              47
                   κ = κ+13 = 32+13 = 45
               Αφού κ <= 42 = 45 <= 42 = Ψευδής, η Όσο τερματίζεται.
          λ = 2
               κ = 19
               1η επανάληψη της Όσο
                   Αφού κ+λ+μ = 19+2+17 = 38, η Εμφάνισε
                   τυπώνει :              38
                   κ = κ+13 = 19+13 = 32
               2η επανάληψη της Όσο
                   Αφού κ+λ+μ = 32+2+17= 51, η Εμφάνισε
                   τυπώνει :              51
                   κ = κ+13 = 32+13 = 45
               Αφού κ <= 42 = 45 <= 42 = Ψευδής, η Όσο τερματίζεται.
          Η Για τερματίζεται με λ = 6.
          Αφού μ+λ = 17+6 = 23, η Εμφάνισε τυπώνει:       23
          μ = μ-14 = 17-14 = 3
     Αφού μ < 4  = 3 < 4 = Αληθής, η Μέχρις_ότου τερματίζεται.
     Η Εμφάνισε τυπώνει:           3

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

Ας υποθέσουμε ότι η ΓΛΩΣΣΑ δε διαθέτει τους τελεστές
DIV και MOD. Γράψτε διαδικασία που δέχεται ως
παραμέτρους δύο θετικούς ακέραιους Χ, Υ και υπολογίζει
το πηλίκο και το υπόλοιπο της ακέραιας διαίρεσης του Χ
με το Υ.


Λύση

     ΔΙΑΔΙΚΑΣΙΑ DIV_MOD(X, Y, Πηλ, Υπολ)
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Χ, Υ, Πηλ, Υπολ
     ΑΡΧΗ
           Πηλ <-- 0
           Υπολ <-- Χ
           ΟΣΟ Υπολ >= Υ ΕΠΑΝΑΛΑΒΕ
                Υπολ <-- Υπολ-Υ
                Πηλ <-- Πηλ+1
           ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
     ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Πέμπτη 26 Αυγούστου 2010

Άσκηση: Κλιμακωτός+Φρουρός

Σε ένα κατάστημα αθλητικών ειδών, τα μπαλάκια του
πινγκ πονγκ έχουν την ακόλουθη κλιμακωτή χρέωση:
       Πλήθος από μπαλάκια            Κόστος ανά μπαλάκι
          Από 1 έως και 3                              1.1 ευρώ
          Από 4 έως και 10                             0.9 ευρώ
          Από 11 και πάνω                              0.78 ευρώ
Γράψτε πρόγραμμα το οποίο:
α) διαβάζει πόσα μπαλάκια πινγκ πονγκ επιθυμεί κάθε πελάτης
    του παραπάνω καταστήματος (η είσοδος δεδομένων ολοκλη-
    ρώνεται μόλις δοθεί μια μη θετική τιμή),
β) υπολογίζει και εμφανίζει:
    * τη χρέωση του κάθε πελάτη,
    * το συνολικό πλήθος των πελατών.

Λύση

      ΠΡΟΓΡΑΜΜΑ ΠΙΝΓΚ_ΠΟΝΓΚ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Μπαλ, Πλήθος
            ΠΡΑΓΜΑΤΙΚΕΣ: Χ
      ΑΡΧΗ
            Πλήθος <-- 0
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                 ΔΙΑΒΑΣΕ Μπαλ
                 ΑΝ Μπαλ > 0 ΤΟΤΕ
                      Πλήθος <-- Πλήθος+1
                      ΑΝ Μπαλ <= 3 ΤΟΤΕ
                            Χ <-- Μπαλ*1.1
                      ΑΛΛΙΩΣ_ΑΝ Μπαλ <= 10 ΤΟΤΕ
                            Χ <-- 3*1.1+(Μπαλ-3)*0.9
                      ΑΛΛΙΩΣ
                            Χ <-- 3*1.1+7*0.9+(Μπαλ-10)*0.78
                      ΤΕΛΟΣ_ΑΝ
                      ΓΡΑΨΕ Χ
                 ΤΕΛΟΣ_ΑΝ
            ΜΕΧΡΙΣ_ΟΤΟΥ Μπαλ <= 0
            ΓΡΑΨΕ Πλήθος
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Τετάρτη 25 Αυγούστου 2010

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

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

Λύση

     Αλγόριθμος Φαγητά
     Διάβασε Χρόνος
     Διάβασε Επωνυμία
     ΜΑΧ <-- Χρόνος
     ΕπωνΜΑΧ <-- Επωνυμία
     ΜΙΝ <-- Χρόνος
     ΕπωνΜΙΝ <-- Επωνυμία
     Για λ από 2 μέχρι 11
          Διάβασε Χρόνος
          Διάβασε Επωνυμία
          Αν Χρόνος > ΜΑΧ τότε
               ΜΑΧ <-- Χρόνος
               ΕπωνΜΑΧ <-- Επωνυμία
          Τέλος_αν
          Αν Χρόνος < ΜΙΝ τότε
               ΜΙΝ <-- Χρόνος
               ΕπωνΜΙΝ <-- Επωνυμία
          Τέλος_αν
     Τέλος_επανάληψης
     Αποτελέσματα // ΕπωνΜΑΧ, ΕπωνΜΙΝ //
     Τέλος Φαγητά

Ξαναγράψτε το παρακάτω σύνολο εντολών

Διάβασε λ
Εμφάνισε λ
Όσο λ > 0 επανάλαβε
      Διάβασε λ
      Εμφάνισε λ
Τέλος_επανάληψης

έτσι ώστε οι εντολές Διάβασε και Εμφάνισε να χρησιμο-
ποιούνται μόνο μια φορά.

Απάντηση

     λ <-- 101
     Όσο λ > 0 επανάλαβε
         Διάβασε λ
         Εμφάνισε λ
     Τέλος_επανάληψης

Τρίτη 24 Αυγούστου 2010

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

Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζει το
παρακάτω σύνολο εντολών;
     Διάβασε Χ
     Όσο Χ > 0 επανάλαβε
          Εμφάνισε Χ
          Διάβασε Χ
     Τέλος_επανάληψης
     Εμφάνισε 1/(Χ+11)

Απάντηση

     Η Όσο..επανάλαβε θα τερματιστεί μόλις δοθεί ως τιμή
     εισόδου ένας μη θετικός αριθμός. Αν ωστόσο δοθεί ως
     είσοδος η τιμή -11, η τελευταία Εμφάνισε δεν μπορεί να
     εκτελεστεί αφού η παράσταση 1/(Χ+11) είναι απροσδιόριστη.
     Κατά συνέπεια το μοναδικό αλγοριθμικό κριτήριο που παραβιά-
     ζεται είναι η καθοριστικότητα.

Δευτέρα 23 Αυγούστου 2010

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

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

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

Λύση

      ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: λ, Χαν, Ηρακλ
            ΠΡΑΓΜΑΤΙΚΕΣ: ΠοσΧαν
            ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[133], ΟΝΗρ[133], ΝΟΜ[133]
      ΑΡΧΗ
            ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 133
                ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                     ΔΙΑΒΑΣΕ ΟΝ[λ]
                ΜΕΧΡΙΣ_ΟΤΟΥ ΟΝ[λ] < > '  '
                ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                     ΔΙΑΒΑΣΕ ΝΟΜ[λ]
                ΜΕΧΡΙΣ_ΟΤΟΥ (ΝΟΜ[λ] = 'Ηράκλειο') Ή
                                           (ΝΟΜ[λ] = 'Λασίθι') Ή
                                           (ΝΟΜ[λ] = 'Ρέθυμνο') Ή
                                           (ΝΟΜ[λ] = 'Χανιά')             
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            Χαν <-- 0
            Ηρακλ <-- 0
            ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 133
                ΑΝ ΝΟΜ[λ] = 'Ηράκλειο' ΤΟΤΕ
                     Ηρακλ <-- Ηρακλ+1
                     ΟΝΗρ[λ] <-- ΟΝ[λ]
                ΤΕΛΟΣ_ΑΝ
                ΑΝ ΝΟΜ[λ] = 'Χανιά' ΤΟΤΕ
                     Χαν <-- Χαν+1
                ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΠοσΧαν <-- 100*Χαν/133
            ΓΡΑΨΕ ΠοσΧαν
            ΑΝ Ηρακλ > 0 ΤΟΤΕ
                  ΓΙΑ κ ΑΠΟ 2 ΜΕΧΡΙ Ηρακλ
                      ΓΙΑ λ ΑΠΟ Ηρακλ ΜΕΧΡΙ κ ΜΕ_ΒΗΜΑ -1
                           ΑΝ ΟΝΗρ[λ-1] > ΟΝΗρ[λ] ΤΟΤΕ
                                 Βοηθ <-- ΟΝΗρ[λ-1]
                                 ΟΝΗρ[λ-1] <-- ΟΝΗρ[λ]
                                 ΟΝΗρ[λ] <-- Βοηθ
                           ΤΕΛΟΣ_ΑΝ
                      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ Ηρακλ
                      ΓΡΑΨΕ ΟΝΗρ[λ]
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΑΛΛΙΩΣ
                  ΓΡΑΨΕ 'Δεν υπάρχει κανένας ηρακλειώτης!'
            ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Συμπλήρωση κενών (χωρίς να δίνονται οι δυνατές επιλογές)

Συμπληρώστε τα κενά με τις λέξεις που λείπουν
1. Η δομή ενός προβλήματος προσδιορίζεται κατά το στάδιο
    της _________.
2. Στα προβλήματα _________ αναζητούμε μια λύση που να
    ικανοποιεί όσο το δυνατόν καλύτερα (βέλτιστα) τα δεδομένα
    τους.
3. Η _________ είναι η εντολή εισόδου της ΓΛΩΣΣΑΣ.
4. Τα ______ διαγράμματα αποτελούν εναλλακτικές
    αναπαραστάσεις αλγορίθμων.
5. Η εντολή ________ παριστάνεται με ένα βελάκι (<--).
6. Οι πράξεις DIV και MOD μπορούν να εφαρμοστούν
    μόνο πάνω σε ______ μεταβλητές ή σταθερές.
7. Ένας πίνακας δεν μπορεί να ταξινομηθεί μόνο όταν είναι
    ______ τύπου.
8. Όταν καλείται μια διαδικασία από το κύριο πρόγραμμα,
    οι εντολές του κυρίου προγράμματος αναστέλλονται
    _______.


Απάντηση

1. ανάλυσης
2. βελτιστοποίησης
3. ΔΙΑΒΑΣΕ
4. λογικά
5. εκχώρησης
6. ακέραιες
7. λογικού
8. προσωρινά

Ερωτήσεις σωστού-λάθους (εφ' όλης της ύλης)

Ποιές από τις παρακάτω προτάσεις είναι σωστές (Σ) και ποιές
λανθασμένες (Λ).
1. Η συνθήκη  3 mod 7 = 0 είναι Αληθής.
2. Ένα αδόμητο πρόβλημα δεν μπορεί να είναι και άλυτο.
3. Στη δομή της ακολουθίας όλες οι εντολές εκτελούνται
    τουλάχιστον μια φορά.
4. Εκεί που μπορεί να χρησιμοποιηθεί μια Όσο..επανάλαβε
    μπορεί να χρησιμοποιηθεί και μια Μέχρις_ότου.
5. Τα σχόλια σε ένα πρόγραμμα είναι υποχρεωτικά.
6. Αν το σ είναι μια συμβολική σταθερά, η εντολή
        Διάβασε σ
    δεν είναι επιτρεπτή.
7. Ο μετρητής μιας εντολής Για..από..μέχρι αυξάνεται σε
    κάθε επανάληψη.
8. Ο πίνακας διατηρεί τα δεδομένα του και μετά το κλείσιμο
    του υπολογιστή μας.
9. Ένας μονοδιάστατος πίνακας έχει πάντοτε λιγότερα στοιχεία
    από ένα δυσδιάστατο.
10. Αν εφαρμόσουμε τον αλγόριθμο της σειριακής αναζήτησης
     στον πίνακα Β[90] και η τιμή που αναζητούμε δεν υπάρχει,
     θα πραγματοποιηθούν συνολικά 90 προσπελάσεις.
11. Η φυσσαλίδα μπορεί να εφαρμοστεί μόνο όταν ο πίνακας
      είναι ταξινομημένος.
12. Η γλώσσα PASCAL είναι ιδανική για δομημένο προγραμμα-
      τισμό.
13. Ένα πρόγραμμα σε γλώσσα μηχανής δε χρειάζεται
      μεταγλωττιστικό πρόγραμμα για την εκτέλεσή του.
14. Η SQL είναι γλώσσα 5ης γενιάς.
15. Ένα υποπρόγραμμα μπορεί να καλείται μόνο από ένα
      κύριο πρόγραμμα.
16. Ο τμηματικός προγραμματισμός είναι μια σχετικά
      ξεπερασμένη και αναποτελεσματική προγραμματιστική
      τεχνική.



Απάντηση

1. Λ
2. Σ
3. Λ
4. Σ
5. Λ
6. Σ
7. Λ
8. Λ
9. Λ
10. Σ
11. Λ
12. Σ
13. Σ
14. Λ
15. Λ
16. Λ

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

Γράψτε συνάρτηση που υπολογίζει την τιμή της
παράστασης:   εφΧ+εφ(2Χ)+...+εφ(ΝΧ)
Θεωρείστε ότι το Ν είναι ακεραίου τύπου και το
Χ πραγματικού.

Λύση

      ΣΥΝΑΡΤΗΣΗ ΠΑΡΑΣ(Χ, Ν) : ΠΡΑΓΜΑΤΙΚΗ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: Ν, λ
            ΠΡΑΓΜΑΤΙΚΕΣ: Χ, σ
      ΑΡΧΗ
            σ <-- 0
            ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ Ν
                 σ <-- σ+ΕΦ(λ*Χ)
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΠΑΡΑΣ <-- σ
      ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Σάββατο 21 Αυγούστου 2010

Πίνακας αλήθειας

Συμπληρώστε τον παρακάτω πίνακα αλήθειας
     Χ              Υ           Χ ΚΑΙ ΟΧΙ Υ      ΟΧΙ (Χ Ή Υ)
 Αληθής                            Αληθής
                    Ψευδής         Ψευδής

Απάντηση


     Χ              Υ            Χ ΚΑΙ ΟΧΙ Υ      ΟΧΙ Χ ΚΑΙ Υ
 Αληθής      Ψευδής            Αληθής                 Ψευδής
 Ψευδής      Ψευδής            Ψευδής                 Αληθής

Άσκηση : Απλοποίηση εντολών

Αν η τιμή εισόδου είναι ακεραίου τύπου, απλοποιήστε το
παρακάτω σύνολο εντολών
    Αρχή_επανάληψης
         Διάβασε κ
    Μέχρις_ότου (κ >= 0) ΚΑΙ (κ < 100) ΚΑΙ (κ < > 0)
    Αν (κ > 98) Ή (κ > 99) τότε
          Εμφάνισε 'α'
    αλλιώς_αν κ > 59 τότε
          Εμφάνισε 'β'
    αλλιώς_αν κ > 0 τότε
          Εμφάνισε 'γ'
    αλλιώς
          Εμφάνισε 'δ'
    Τέλος_αν

Απάντηση

    Αρχή_επανάληψης
         Διάβασε κ
    Μέχρις_ότου (κ > 0) ΚΑΙ (κ < 100)
    Αν κ = 99 τότε
          Εμφάνισε 'α'
    αλλιώς_αν κ > 59 τότε
          Εμφάνισε 'β'
    αλλιώς
          Εμφάνισε 'γ'

    Τέλος_αν

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

Τι θα εμφανίσει στην οθόνη το παρακάτω σύνολο εντολών;
     Για λ από 81 μέχρι 19 με_βήμα -20
         Επιλεξε Α_Τ(λ-5.6)
             Περίπτωση 75.4
                  Εμφάνισε 'Μετά από ένα χορταστικό καλοκαίρι'
             Περίπτωση 35.4
                  Εμφάνισε 'Καλό χειμώνα'
             Περίπτωση 55.4
                  Εμφάνισε 'ήρθε η ώρα να ευχηθούμε: '
             Περίπτωση αλλιώς
                  Εμφάνισε 'και καλή σχολική χρονιά!'
         Τέλος_επιλογών
     Τέλος_επανάληψης

Λύση

     λ = 81
         Αφού Α_Τ(λ-5.6) = Α_Τ(81-5.6) = 75.4 η Εμφάνισε τυπώνει:
              Μετά από ένα χορταστικό καλοκαίρι
     λ = 61
         Αφού Α_Τ(λ-5.6) = Α_Τ(61-5.6) = 55.4 η Εμφάνισε τυπώνει:
              ήρθε η ώρα να ευχηθούμε:
     λ = 41
         Αφού Α_Τ(λ-5.6) = Α_Τ(41-5.6) = 35.4 η Εμφάνισε τυπώνει:
              Καλό χειμώνα
     λ = 21
         Αφού Α_Τ(λ-5.6) = Α_Τ(21-5.6) = 15.4 η Εμφάνισε τυπώνει:
              και καλή σχολική χρονιά!
     Η Για τερματίζεται με λ = 1.

Δευτέρα 9 Αυγούστου 2010

Διορθώστε τις λανθασμένες προτάσεις

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και
επαναδιατυπώστε τις σωστά
1. Ένας ρόμβος σε ένα λογικό διάγραμμα έχει δύο
    εξόδους.
2. Ένας ατέρμων βρόχος παραβιάζει το κριτήριο της
    καθοριστικότητας.
3. Ο μεταγλωττιστής μετατρέπει το πηγαίο πρόγραμμα
    σε συμβολική γλώσσα.
4. Τα αρχεία εγγραφών είναι δομές δεδομένων της κύριας
    μνήμης.
5. Η δυαδική αναζήτηση είναι η πιο αργή μέθοδος αναζήτησης.
6. Κάποιες γλώσσες προγραμματισμού χρησιμοποιούν τον όρο
    παράμετροι για τις τυπικές παραμέτρους.

Απάντηση


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

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

Γράψτε διαδικασία η οποία δέχεται ως παραμέτρους:
* την ακέραια μεταβλητή Χ,
* την αλφαριθμητική μεταβλητή Υ,
* την λογική μεταβλητή Ζ
και υπολογίζει τις τιμές των Μ, Ν σύμφωνα με τους
ακόλουθους κανόνες:
 * αν Χ = 0, Υ = 'Α', Ζ = ΑΛΗΘΗΣ τότε
       Μ = -1 και Ν = 3.2
 * αν Χ = 0, Υ = 'Α', Ζ = ΨΕΥΔΗΣ τότε
       Μ = 1 και Ν = -3.2
 * αν Χ = 1, Υ = 'Λ', Ζ = ΑΛΗΘΗΣ τότε
       Μ = 0 και Ν = 4.1
 * αν Χ = 1, Υ = 'Λ', Ζ = ΨΕΥΔΗΣ τότε
       Μ = 11 και Ν = -4.1
 * αν Χ = 2 τότε Μ = 111 και Ν = -111.1
 * σε οποιαδήποτε άλλη περίπτωση Μ = -3 και Ν = 77.3

Λύση

     ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔΙΚ(Χ, Υ, Ζ, Μ, Ν)
     ΜΕΤΑΒΛΗΤΕΣ
          ΑΚΕΡΑΙΕΣ: Χ, Μ
          ΧΑΡΑΚΤΗΡΕΣ: Υ
          ΛΟΓΙΚΕΣ: Ζ
          ΠΡΑΓΜΑΤΙΚΕΣ: Ν
     ΑΡΧΗ
          ΑΝ (Χ = 0) ΚΑΙ (Υ = 'Α') ΚΑΙ (Ζ = ΑΛΗΘΗΣ) ΤΟΤΕ
               Μ <-- -1
               Ν <-- 3.2
          ΑΛΛΙΩΣ_ΑΝ (Χ = 0) ΚΑΙ (Υ = 'Α') ΚΑΙ (Ζ = ΨΕΥΔΗΣ)
          ΤΟΤΕ
               Μ <-- 1
               Ν <-- -3.2
          ΑΛΛΙΩΣ_ΑΝ (Χ = 1) ΚΑΙ (Υ = 'Λ') ΚΑΙ (Ζ = ΑΛΗΘΗΣ)            
          ΤΟΤΕ
               Μ <-- 0
               Ν <-- 4.1
          ΑΛΛΙΩΣ_ΑΝ (Χ = 1) ΚΑΙ (Υ = 'Λ') ΚΑΙ (Ζ = ΨΕΥΔΗΣ)
          ΤΟΤΕ
               Μ <-- 11
               Ν <-- -4.1
          ΑΛΛΙΩΣ_ΑΝ Χ = 2 ΤΟΤΕ
               Μ <-- 111
               Ν <-- -111.1
          ΑΛΛΙΩΣ
               Μ <-- -3
               Ν <-- 77.3
          ΤΕΛΟΣ_ΑΝ      
     ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

Γράψτε συνάρτηση η οποία δέχεται ως παραμέτρους:
* την ακέραια μεταβλητή Υ (δυνατές τιμές 0 ή 1)
* την αλφαριθμητική μεταβλητή Π (δυνατές τιμές
   Χ ή Α)
και επιστρέφει την τιμή:
* -1, αν Υ = 0 και Π = 'Χ'
* 0, αν Υ = 0 και Π = 'Α'
* 1, αν Υ = 1 και Π = 'Χ'
* 2, αν Υ = 1 και Π = 'Α'

Λύση

   ΣΥΝΑΡΤΗΣΗ Φ(Υ, Π) : ΑΚΕΡΑΙΑ
   ΜΕΤΑΒΛΗΤΕΣ
        ΑΚΕΡΑΙΕΣ: Υ
        ΧΑΡΑΚΤΗΡΕΣ: Π
   ΑΡΧΗ
        ΑΝ Υ = 0 ΤΟΤΕ
             ΑΝ Π = 'Χ' ΤΟΤΕ
                  Φ <-- -1
             ΑΛΛΙΩΣ
                  Φ <-- 0
             ΤΕΛΟΣ_ΑΝ
        ΑΛΛΙΩΣ
             ΑΝ Π = 'Χ' ΤΟΤΕ
                  Φ <-- 1
             ΑΛΛΙΩΣ
                  Φ <-- 2
             ΤΕΛΟΣ_ΑΝ        
        ΤΕΛΟΣ_ΑΝ
   ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

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

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

Λύση

    ΠΡΟΓΡΑΜΜΑ Τράπεζα
    ΜΕΤΑΒΛΗΤΕΣ
        ΑΚΕΡΑΙΕΣ: κ, λ, Θ
        ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[10]
        ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣΟ[10, 5], σ, ΜΑΧ, SUM[10]
    ΑΡΧΗ
        ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 10
             ΔΙΑΒΑΣΕ ΟΝ[κ]
             ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 5
                  ΔΙΑΒΑΣΕ ΠΟΣΟ[κ, λ]
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 10
             σ <-- 0
             ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 5
                  σ <-- σ+ΠΟΣΟ[κ, λ]
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             SUM[κ] <-- σ
             ΓΡΑΨΕ ΟΝ[κ], ' εβδομαδιαίο ποσό :', σ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        ΜΑΧ <-- SUM[1]
        Θ <-- 1
        ΓΙΑ κ ΑΠΟ 2 ΜΕΧΡΙ 10
            ΑΝ SUM[κ] > ΜΑΧ ΤΟΤΕ
                 ΜΑΧ <-- SUM[κ]
                 Θ <-- κ
            ΤΕΛΟΣ_ΑΝ 
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Μέγιστο εβδομαδιαίο ποσό από τον :', ΟΝ[Θ]
        ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 5
            σ <-- 0
            ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 10
                  σ <-- σ+ΠΟΣΟ[κ, λ]
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΡΑΨΕ 'Σύνολο για ', λ, ' ημέρα :', σ 
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση : Καθορισμός απαιτήσεων+Μαθηματική μορφοποίηση προβλήματος

Για την αγορά ενός φωτοτυπικού μηχανήματος αξίας
Α ευρώ, υπάρχουν δύο δυνατότητες πληρωμής:
α) προκαταβολή 38%  και 14 άτοκες μηνιαίες δόσεις
β) προκαταβολή 55% και 18 άτοκες μηνιαίες δόσεις
Ποιο είναι το ποσό της προκαταβολής και της μηνιαίας
δόσης για κάθε τρόπο πληρωμής;
Ι. Κατασκευάστε πίνακα δεδομένων-ζητουμένων.
ΙΙ. Μορφοποιήστε με μαθηματικό τρόπο το πρόβλημα.

Λύση

Ι.
     Δεδομένα             * Το φωτοτυπικό στοιχίζει Α ευρώ
                                 * Υπάρχουν 2 τρόποι πληρωμής
                                 * Ο 1ος τρόπος πληρωμής προϋποθέτει
                                    προκαταβολή 38% και 14 άτοκες δόσεις
                                 * Ο 2ος τρόπος πληρωμής προϋποθέτει
                                    προκαταβολή 55% και 18 άτοκες δόσεις
     Ζητούμενα           * Το ποσό της προκαταβολής
                                 * Το ποσό της μηνιαίας δόσης

ΙΙ.
     Ας συμβολίσουμε με:
          Π1 : ποσό προκαταβολής για τον 1ο τρόπο πληρωμής
          Π2 : ποσό προκαταβολής για τον 2ο τρόπο πληρωμής
          Μ1 : ποσό μηναίας δόσης για τον 1ο τρόπο πληρωμής
          Μ2 : ποσό μηναίας δόσης για τον 2ο τρόπο πληρωμής
     Ισχύουν οι σχέσεις:
          Π1 = Α*38/100
          Μ1 = (Α-Π1)/14
          Π2 = Α*55/100
          Μ2 = (Α-Π2)/18

Κυριακή 8 Αυγούστου 2010

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

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

Λύση

     Αλγόριθμος Ρούχα
     Για κ από 1 μέχρι 6
          Για λ από 1 μέχρι 2
                Διάβασε Τιμή[κ, λ]
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     σ <-- 0
     Για λ από 1 μέχρι 2
           σ <-- σ+Τιμή[5, λ]
     Τέλος_επανάληψης
     ΜΟ5 <-- σ/2
     Εμφάνισε ΜΟ5
     σ <-- 0
     Για κ από 1 μέχρι 6
          σ <-- σ+Τιμή[κ, 2]
     Τέλος_επανάληψης
     ΜΟ2 <-- σ/6
     Εμφάνισε ΜΟ2
     ΜΑΧ <-- Τιμή[1, 1]
     Μάρκα <-- 1
     Είδος <-- 1    
     Για κ από 1 μέχρι 6
         Για λ από 1 μέχρι 2
              Αν Τιμή[κ, λ] > ΜΑΧ τότε
                    ΜΑΧ <-- Τιμή[κ, λ]
                    Μάρκα <-- κ
                    Είδος <-- λ
              Τέλος_αν
         Τέλος_επανάληψης
     Τέλος_επανάληψης
     Αν Είδος = 1 τότε
           ΕιδΜΑΧ <-- 'μπλούζα'
     αλλιώς
           ΕιδΜΑΧ <-- 'πουκάμισο'
     Τέλος_αν
     Εμφάνισε ΜΑΧ, Μάρκα, ΕιδΜΑΧ
     Τέλος Ρούχα

Σάββατο 7 Αυγούστου 2010

Άσκηση: αναζήτηση σε μονοδιάστατους πίνακες

Θεωρήστε τους ακόλουθους πίνακες:
   * ΜΑΡΚΕΣ[12] : που περιέχει τις μάρκες 12 αυτοκινήτων
   * ΜΟΝΤΕΛΑ[12] : που περιέχει τα μοντέλα των αυτοκινήτων
                                αυτών
   * ΟΔΗΓΟΙ[12] : που περιέχει τα ονόματα των οδηγών των
                            αυτοκινήτων αυτών
Γράψτε αλγόριθμο που, με δεδομένους τους παραπάνω πίνακες
α) διαβάζει μια μάρκα και ένα μοντέλο,
β) εξετάζει αν τα παραπάνω δεδομένα αντιστοιχούν σε κάποιο από τα
    12 αυτοκίνητα,
γ) αν η απάντηση στο ερώτημα β) είναι καταφατική, εμφανίζει το
    όνομα του οδηγού (σε διαφορετική περίπτωση κατάλληλο ενημε-
    ρωτικό  μήνυμα).

Λύση

     Αλγόριθμος αυτο
     Δεδομένα // ΜΑΡΚΕΣ, ΜΟΝΤΕΛΑ, ΟΔΗΓΟΙ //
     Διάβασε Μάρκα, Μοντέλο
     λ <-- 1
     φ <-- Ψευδής
     Όσο (λ <= 12) ΚΑΙ (φ = Ψευδής) επανάλαβε
           Αν (ΜΑΡΚΕΣ[λ] = Μάρκα) ΚΑΙ (ΜΟΝΤΕΛΑ[λ] = Μοντέλο)
           τότε
                φ <-- Αληθής
                θ <-- λ
           αλλιώς
                λ <-- λ+1
           Τέλος_αν
     Τέλος_επανάληψης
     Αν φ = Αληθής τότε
           Εμφάνισε 'Οδηγός είναι ο :', ΟΔΗΓΟΙ[θ]
     αλλιώς
           Εμφάνισε 'Δεν υπάρχει κανένα τέτοιο αυτοκίνητο!'
     Τέλος_αν
     Τέλος αυτο

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

Τι θα εμφανίσει το παρακάτω σύνολο εντολών
   Για κ από 3 μέχρι 9 με_βήμα 5
       Για λ από 12 μέχρι 4 με_βήμα -7
            Για μ από 20 μέχρι 31 με_βήμα 9
                 Εμφάνισε λ-μ+κ, λ+μ-κ
            Τέλος_επανάληψης
       Τέλος_επανάληψης
       Εμφάνισε κ+λ, κ-λ
   Τέλος_επανάληψης
   Εμφάνισε κ, λ, μ

Λύση

     κ = 3
          λ = 12
               μ = 20
                   Αφού λ-μ+κ = 12-20+3 = -5, λ+μ-κ = 12+20-3 = 29
                   η Εμφάνισε τυπώνει : -5    29
               μ = 29
                   Αφού λ-μ+κ = 12-29+3 = -14, λ+μ-κ = 12+29-3 =38
                   η Εμφάνισε τυπώνει : -14    38
               Η Για τερματίζεται με μ = 38

          λ = 5
               μ = 20
                   Αφού λ-μ+κ = 5-20+3 = -12, λ+μ-κ =5+20-3 = 22
                   η Εμφάνισε τυπώνει : -12    22

               μ = 29
                   Αφού λ-μ+κ =5-29+3 = -21, λ+μ-κ = 5+29-3 = 31
                   η Εμφάνισε τυπώνει : -21    31
               Η Για τερματίζεται με μ = 38        
          Η Για τερματίζεται με λ = -2
          Αφού κ+λ = 3+(-2) = -1, κ-λ = 3-(-2) = 5
          η Εμφάνισε τυπώνει : -1    5
     κ = 8
          λ = 12
               μ = 20
                   Αφού λ-μ+κ = 12-20+8 = 0, λ+μ-κ = 12+20-8 = 24
                   η Εμφάνισε τυπώνει : 0    24
               μ = 29
                   Αφού λ-μ+κ = 12-29+8 = -9, λ+μ-κ = 12+29-8 =33
                   η Εμφάνισε τυπώνει : -9    33
               Η Για τερματίζεται με μ = 38

          λ = 5
               μ = 20
                   Αφού λ-μ+κ = 5-20+8 = -7, λ+μ-κ =5+20-8 = 17
                   η Εμφάνισε τυπώνει : -7    17

               μ = 29
                   Αφού λ-μ+κ =5-29+8 = -16, λ+μ-κ = 5+29-8 = 26
                   η Εμφάνισε τυπώνει : -16    26
               Η Για τερματίζεται με μ = 38        
          Η Για τερματίζεται με λ = -2
          Αφού κ+λ = 8+(-2) = 6, κ-λ = 8-(-2) = 10
          η Εμφάνισε τυπώνει : 6    10

     Η Για τερματίζεται με κ = 13.
     Η Εμφάνισε τυπώνει :      13     -2     38

Παρασκευή 6 Αυγούστου 2010

Άσκηση με GOTO

Ξαναγράψτε το παρακάτω σύνολο εντολών έτσι ώστε
να διέπεται από τις αρχές του δομημένου προγραμμα-
τισμού
     μ <-- 1
     κ <-- 1
10: ΔΙΑΒΑΣΕ α
     ΑΝ α > 0 ΤΟΤΕ GOTO 20
     α <-- -α
20: μ <-- μ*α
     κ <-- κ+1
     ΑΝ κ <= 98 ΤΟΤΕ GOTO 10
     ΓΡΑΨΕ μ

Λύση

     μ <-- 1
     κ <-- 1
     ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
         ΔΙΑΒΑΣΕ α
         ΑΝ α <= 0 ΤΟΤΕ
             α <-- -α
         ΤΕΛΟΣ_ΑΝ
         μ <-- μ*α
         κ <-- κ+1
     ΜΕΧΡΙΣ_ΟΤΟΥ κ > 98
     ΓΡΑΨΕ μ

Άσκηση μετατροπής Μέχρις_ότου σε α) Όσο και β) Για

Ξαναγράψτε το παρακάτω σύνολο εντολών
      γ <-- 1
      κ <-- 210
      Αρχή_επανάληψης
           γ <-- γ*(κ-2)^3
           κ <-- κ-6
      Μέχρις_ότου κ < 70
χρησιμοποιώντας την εντολή:
α) Όσο..επανάλαβε
β) Για..από..μέχρι

Λύση

α)
      γ <-- 1
      κ <-- 210
      Όσο κ >= 70 επανάλαβε
           γ <-- γ*(κ-2)^3
           κ <-- κ-6
      Τέλος_επανάληψης

β)
      γ <-- 1
      Για κ από 210 μέχρι 70 με_βήμα -6
           γ <-- γ*(κ-2)^3
      Τέλος_επανάληψης

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

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

Λύση

     Αλγόριθμος Memory_sticks
     Πλήθος <-- 0
     Π4 <-- 0
     Αρχή_επανάληψης
         Διάβασε GB
         Αν GB > 0 τότε
             Πλήθος <-- Πλήθος+1
             Αν GB > 4 τότε
                  Π4 <-- Π4+1
             Τέλος_αν
         Τέλος_αν
     Μέχρις_ότου  GB <= 0
     Αποτελέσματα // Πλήθος, Π4 //
     Τέλος Memory_sticks

Πέμπτη 5 Αυγούστου 2010

Άσκηση μετατροπής Για σε α) Όσο και β) Μέχρις_ότου

Ξαναγράψτε το παρακάτω σύνολο εντολών
     α <-- 0
     Για λ από 20 μέχρι Μ^2 με_βήμα Α_Τ(ν)
          α <-- α+λ
     Τέλος_επανάληψης
 με  α) Όσο..επανάλαβε β) Μέχρις_ότου

Λύση

α)
     α <-- 0
     λ <-- 20
     Όσο λ <= Μ^2 επανάλαβε
         α <-- α+λ
         λ <-- λ+Α_Τ(ν)
     Τέλος_επανάληψης

    
β)
     α <-- 0
     Αν Μ^2 >= 20 τότε
         λ <-- 20
         Αρχή_επανάληψης
             α <-- α+λ
             λ <-- λ+Α_Τ(ν)
         Μέχρις_ότου λ > Μ^2
     Τέλος_αν

Άσκηση : Γέμισμα δυσδιάστατου πίνακα

Ποιό είναι το περιεχόμενο του πίνακα Β[2, 3] μετά
την εκτέλεση των παρακάτω εντολών;
      Για κ από 1 μέχρι 2
           Για λ από 1 μέχρι 3
               Αν κ+λ < 4 τότε
                    Β[κ, λ] <-- κ+λ
               αλλιώς 
                    Β[κ, λ] <-- λ-κ
               Τέλος_αν
           Τέλος_επανάληψης
      Τέλος_επανάληψης

Λύση

      κ = 1
            λ = 1
                Αφού κ+λ < 4 = 1+1 < 4 = 2 < 4 = Αληθής
                       Β[κ, λ] = Β[1, 1] = κ+λ = 1+1 = 2
            λ = 2
                 Αφού κ+λ < 4 = 1+2 < 4 = 3 < 4 = Αληθής
                       Β[κ, λ] = Β[1, 2] = κ+λ = 1+2 = 3
            λ = 3
                 Αφού κ+λ < 4 = 1+3 < 4 = 4 < 4 = Ψευδής
                       Β[κ, λ] = Β[1, 3] = λ-κ = 3-1 = 2
       κ = 2
            λ = 1
                Αφού κ+λ < 4 = 2+1 < 4 = 3 < 4 = Αληθής
                       Β[κ, λ] = Β[2, 1] = κ+λ = 2+1 = 3
            λ = 2
                Αφού κ+λ < 4 = 2+2 < 4 = 4 < 4 = Ψευδής
                       Β[κ, λ] = Β[2, 2] = λ-κ = 2-2 = 0
            λ = 3
                Αφού κ+λ < 4 = 2+3 < 4 = 5 < 4 = Ψευδής
                       Β[κ, λ] = Β[2, 3] = λ-κ = 3-2 = 1
     Κατά συνέπεια το περιεχόμενο του Β είναι:
               2           3           2
               3           0           1
            

Τετάρτη 4 Αυγούστου 2010

Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζονται

Ποιό ή ποιά αλγοριθμικά κριτήρια παραβιάζει το
παρακάτω σύνολο εντολών;
      Διάβασε χ
      κ <-- 1
     'Οσο κ < 1000 επανάλαβε
           Διάβασε λ
           μ <-- 1/(λ+3)
           Εμφάνισε μ
      Τέλος_επανάληψης

Απάντηση

     Περατότητα, γιατί το κ δεν αλλάζει, η συνθήκη κ < 1000
                          είναι πάντοτε Αληθής και η Όσο δεν τερμα-
                          τίζεται ποτέ.
     Καθοριστικότητα, γιατί αν η τιμή εισόδου για το λ είναι -3,
                                    το 1/(λ+3) είναι απροσδιόριστο και ο
                                   υπολογισμός του μ αδύνατος.

Άσκηση : Εξαφανίστε τους περιττούς ελέγχους

Ξαναγράψτε το παρακάτω σύνολο εντολών
εξαφανίζοντας τους περιττούς ελέγχους
     Αν α <  0 τότε
         Εμφάνισε α
     αλλιώς_αν (α >= 0) ΚΑΙ (α < 199) τότε
         Εμφάνισε -α
     αλλιώς_αν (α >= 199) ΚΑΙ (α < 234) τότε
         Εμφάνισε α+1
     αλλιώς
           Αν α >= 234 τότε
                 Εμφάνισε 1-α
           Τέλος_αν
     Τέλος_αν

Λύση

     Αν α <  0 τότε
         Εμφάνισε α
     αλλιώς_αν α < 199 τότε
         Εμφάνισε -α
     αλλιώς_αν α < 234 τότε
         Εμφάνισε α+1
     αλλιώς
         Εμφάνισε 1-α
     Τέλος_αν

Τρίτη 3 Αυγούστου 2010

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

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

Λύση

      Αλγόριθμος Κινηματ
      Περ <-- 0
      Θρ <-- 0
      σ <-- 0
      Κωμ <-- 0
      Για λ από 1 μέχρι 11
           Διάβασε Είδος
           Διάβασε Τιμή
           Αν Είδος = 'Π' τότε
                Περ <-- Περ+1
           Τέλος_αν
           Αν Είδος = 'Θ' τότε
                Θρ <-- Θρ+1
           Τέλος_αν
           Αν Είδος = 'Κ' τότε
                 Κωμ <-- Κωμ+1
                 σ <-- σ+Τιμή
           Τέλος_αν
      Τέλος_επανάληψης
      ΠΟΣ <-- 100*Περ/11
      Εμφάνισε ΠΟΣ, Θρ
      Αν Κωμ > 0 τότε
            ΜΟ <-- σ/Κωμ
            Εμφάνισε ΜΟ
      αλλιώς
            Εμφάνισε 'Δεν παίζεται πουθενά κωμωδία!'
      Τέλος_αν
      Τέλος Κινηματ

Δευτέρα 2 Αυγούστου 2010

Άσκηση: εξαφανίστε την GOTO

Ξαναγράψτε το παρακάτω σύνολο εντολών έτσι ώστε αυτό να
ακολουθεί τις αρχές του δομημένου προγραμματισμού
     ΔΙΑΒΑΣΕ μ, ν
     ΑΝ μ <= ν ΤΟΤΕ GOTO 11
     B <-- μ
     μ <-- ν
     ν <-- Β
11: ΓΡΑΨΕ μ, ν

Λύση

     ΔΙΑΒΑΣΕ μ, ν
     ΑΝ μ > ν ΤΟΤΕ
          B <-- μ
          μ <-- ν
          ν <-- Β
     ΤΕΛΟΣ_ΑΝ
     ΓΡΑΨΕ μ, ν

Άσκηση : συγγραφή συνάρτησης+διαδικασίας

Μια εφημερίδα  δίνει τη δυνατότητα στους αναγνώστες της
να προμηθευτούν ένα φορητό υποΛογιστή καταβάλλοντας  
ΠΟΣΟ ευρώ και Κ κουπόνια. Αν η εφημερίδα στοιχίζει Χ
ευρώ και έχει σε κάθε φύλλο της ένα μόνο κουπόνι, γράψτε
α) συνάρτηση που να υπολογίζει το συνολικό κόστος
     προμήθειας του φορητού υπολογιστή,
β) διαδικασία που να κάνει τον ίδιο ακριβώς υπολογισμό.

Λύση

α)
     ΣΥΝΑΡΤΗΣΗ ΦΟΡ(ΠΟΣΟ, Κ, Χ) : ΠΡΑΓΜΑΤΙΚΗ
     ΜΕΤΑΒΛΗΤΕΣ
           ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣΟ, Κ, Χ
     ΑΡΧΗ
           ΦΟΡ <-- ΠΟΣΟ+Κ*Χ
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

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

Κυριακή 1 Αυγούστου 2010

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

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

Λύση

      ΠΡΟΓΡΑΜΜΑ ΤΟΥΡΙΣΤΕΣ
      ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: κ, λ, ΠΛΗΘ[15, 3], σ
            ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ
      ΑΡΧΗ
            ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 15
                ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 3
                     ΔΙΑΒΑΣΕ ΠΛΗΘ[κ, λ]
                ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 15
                σ <-- 0
                ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 3
                     σ <-- σ+ΠΛΗΘ[κ, λ]
                ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                ΜΟ <-- σ/3
                ΓΡΑΨΕ 'Μέσος όρος για', κ, ' περιοχή:', ΜΟ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 3
                σ <-- 0
                ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 15
                     σ <-- σ+ΠΛΗΘ[κ, λ]
                ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                ΜΟ <-- σ/15
                ΓΡΑΨΕ 'Μέσος όρος για', λ, ' μήνα:', ΜΟ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση : GOTO

Ξαναγράψτε το παρακάτω σύνολο εντολών έτσι
ώστε να ακολουθεί τις αρχές του δομημένου
προγραμματισμού
      μ <-- 71
10: ΔΙΑΒΑΣΕ λ
      μ <-- μ-λ
      ΑΝ μ > 0 ΤΟΤΕ GOTO 10
      ΓΡΑΨΕ μ

Λύση

      μ <-- 71
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΔΙΑΒΑΣΕ λ
            μ <-- μ-λ
      ΜΕΧΡΙΣ_ΟΤΟΥ μ <= 0
      ΓΡΑΨΕ μ

Συμπλήρωση κενών (χωρίς να δίνονται οι δυνατές επιλογές)

Συμπληρώστε τα κενά στις παρακάτω προτάσεις:
1. Η γλώσσα PASCAL είναι ______ χρήσης.
2. Η γραφική απεικόνιση της ανάλυσης ενός
    προβλήματος γίνεται με τη βοήθεια της
    _______ αναπαράστασης.
3. Η απλούστερη αλγοριθμική δομή είναι η
    δομή ______.
4. Η ______ ενός πίνακα προσδιορίζει τον
    τρόπο διάταξης των στοιχείων του.
5. Το τμήμα δήλωσης των ______ σταθερών σε
    ένα πρόγραμμα είναι υποχρεωτικό.
6. Η δομή επανάληψης ονομάζεται και _____.
7. Ο πίνακας Χ[12, 19] έχει _____ μέσους όρους
    ανά γραμμή.
8. Ορισμένες γλώσσες προγραμματισμού αποκαλούν
    τις τυπικές παραμέτρους _________.

Απάντηση

      1. γενικής
      2. διαγραμματικής
      3. ακολουθίας
      4. διάσταση
      5. συμβολικών
      6. βρόχος
      7. 12
      8. ορίσματα