Τετάρτη 29 Αυγούστου 2012

Εμφωλευμένες δομές επιλογής

Σ' ένα fun park η χρέωση των πελατών (για όλες
τις δραστηριότητες του πάρκου) γίνεται ως εξής:
Σαββατοκύριακα
     Ενήλικες     25 ευρώ
     Παιδιά         17 ευρώ
Καθημερινές
     Ενήλικες     18 ευρώ
     Παιδιά         10 ευρώ
Γράψτε αλγόριθμο που:
α) διαβάζει το αν η ημέρα επίσκεψης ενός πελάτη
    είναι καθημερινή (Κ) ή Σαββατοκύριακο (Σ),
β) διαβάζει αν ο πελάτης αυτός είναι ενήλικος (Ε) ή
    παιδί (Π),
γ) υπολογίζει το ποσό που πρέπει να καταβάλλει για
   να εισέλθει στο πάρκο.

Λύση

    Αλγόριθμος Πάρκο
    Διάβασε Μέρα
    Διάβασε Πελάτης
    Αν Μέρα = 'Σ' τότε
         Αν Πελάτης = 'Ε' τότε
              Ποσό <-- 25
         αλλιώς
              Ποσό <-- 17
         Τέλος_αν
    αλλιώς
         Αν Πελάτης = 'Ε' τότε
              Ποσό <-- 18
         αλλιώς
              Ποσό <-- 10
         Τέλος_αν
    Τέλος_αν
    Αποτελέσματα // Ποσό //
    Τέλος Πάρκο

Κλιμακωτός υπολογισμός

Σ' ένα μαγαζί αθλητικών ειδών, η χρέωση των
φανελών προπόνησης της μάρκας ΑΑΑ γίνεται με
κλιμακωτό τρόπο ως εξής:
* οι πρώτες 5 τιμώνται προς 18 ευρώ,
* οι επόμενες 4 τιμώνται προς 16 ευρώ,
* από 10 και πάνω τιμώνται προς 12 ευρώ.
Γράψτε αλγόριθμο που δοθέντος του αριθμού
των φανελών που επιθυμεί να αγοράσει ένας
πελάτης, υπολογίζει το συνολικό ποσό που
πρέπει να καταβάλλει.

Λύση

    Αλγόριθμος ΑΑΑ
    Δεδομένα // Φαν //
    Αν Φαν <= 5 τότε
         Ποσό <-- Φαν*18
    αλλιώς_αν Φαν <= 9 τότε
         Ποσό <-- 5*18+(Φαν-5)*16
    αλλιώς
         Ποσό <-- 5*18+4*16+(Φαν-9)*12
    Τέλος_αν
    Αποτελέσματα // Ποσό //
    Τέλος ΑΑΑ

Αλγόριθμος ακολουθιακής δομής

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

Λύση

   Αλγόριθμος Χρον
   Δεδομένα // ΣυνΜην //
   Αιωνες <-- ΣυνΜην div 1200
   Ετη <-- (ΣυνΜην mod 1200) div 12
   Μην <-- (ΣυνΜην mod 1200) mod 12
   Αποτελέσματα // Αιωνες, Ετη, Μην //
   Τέλος Χρον

Παρασκευή 24 Αυγούστου 2012

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

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





Απαντήσεις

1. Η δομή ακολουθίας είναι μια από τις τρεις αλγοριθμικές δομές.
2. Ένα πρόβλημα που δεν λύνεται αποκαλείται άλυτο.

3. Η μετάφραση ενός προγράμματος σε γλώσσα μηχανής μπορεί
    να γίνει μέσω μεταγλωττιστή ή διερμηνευτή.
4. Ο λογικός τελεστής με τη μεγαλύτερη προτεραιότητα
    είναι ο ΟΧΙ.

5. Η επιλογή του μέσου μαζικής μεταφοράς είναι ένα ημιδομημένο
    πρόβλημα.


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

Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος;
1.Η αφαιρετικότητα είναι αλγοριθμικό κριτήριο.
2. Μια  δομή επανάληψης αποκαλείται και βρόχος.
3. Η δομή επιλογής μπορεί να χρησιμοποιηθεί για τη
    διενέργεια ελέγχων σε αλγορίθμους ή προγράμματα.
4. Ένας πίνακας μπορεί να είναι είτε μονοδιάστατος είτε
    δυσδιάστατος.
5. Τα υποπρογράμματα είναι αναπόσπαστα στοιχεία ενός
    προγράμματος.


Απαντήσεις

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

Σάββατο 11 Αυγούστου 2012

Έλεγχος αλγοριθμικών κριτηρίων

Ποιο ή ποια αλγοριθμικά κριτήρια παραβιάζει το
παρακάτω σύνολο εντολών;
      Κ <-- 1
      Α <-- 0
      Όσο Κ <= 12 επανάλαβε
            Α <-- Α+1/(Κ-4)
            Αν Κ mod 12 = 0 τότε
                 Κ <-- Κ-10
            Τέλος_αν
            Κ <-- Κ+1
      Τέλος_επανάληψης
      Εμφάνισε Α

Λύση

    Παραβιάζονται:
    α) η καθοριστικότητα, γιατί όταν το Κ γίνει 4 η εντολή
        Α <-- Α+1/(Κ-4) δεν μπορεί να εκτελεστεί
    β) η περατότητα, γιατί το Κ δεν πρόκειται ποτέ να ξεπεράσει
        το 12 και η Όσο..επανάλαβε αποτελεί ατέρμων βρόχο (οι
        τιμές που παίρνει το Κ είναι 1, 2, ...., 12, 3, 4, ..., 12, 3, 4, ...., 12, κτλ)

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

Διορθώστε τον παρακάτω Αλγόριθμο και επαναδιατυπώστε τον
έτσι ώστε να μην έχει συντακτικά λάθη.
    Αλγόριθμος  Βρείτε τα λάθη
    Δεδομένο // Χ //
    Υ = Χ
    Όσο Υ > 0 επανέλαβε
         Διαβάστε Ζ
         Υ = Υ-Ζ
    ΤέλοςΌσο
    Αποτέλεσμα  Υ
    Τέλος_αλγορίθμου  Βρείτε τα λάθη

Απάντηση

    Αλγόριθμος  Βρείτε_τα_λάθη
    Δεδομένα // Χ //
    Υ <-- Χ
    Όσο Υ > 0 επανάλαβε
         Διάβασε Ζ
         Υ <-- Υ-Ζ
    Τέλος_επανάληψης
    Αποτελέσματα //Υ//
    Τέλος  Βρείτε_τα_λάθη

Επαναδιατύπωση λογικών συνθηκών

Επαναδιατυπώστε τις παρακάτω λογικές συνθήκες, χρησιμοποιώντας
μόνο συγκριτικούς τελεστές και το λογικό τελεστή Ή.
  1. ΟΧΙ (Χ = 'Α') Ή ΟΧΙ (Χ = 'Γ')
  2. ΟΧΙ ( (Χ >= 31) ΚΑΙ (Χ <= 111) )
  3. ΟΧΙ ( (Χ < > 1) ΚΑΙ (Χ < > 2) ΚΑΙ (Χ < > 3) )
  4. ΟΧΙ ( (Χ > 0) ΚΑΙ ΟΧΙ(Χ < > -3) )

Απαντήσεις

1. (Χ < > 'Α') Ή (Χ < > 'Γ')
2. ΟΧΙ ( (Χ >= 31) ΚΑΙ (Χ <= 111) ) =
    ΟΧΙ (Χ >= 31) Ή ΟΧΙ (Χ <= 111)  =
    (Χ < 31) Ή (Χ > 111)
3. ΟΧΙ ( (Χ < > 1) ΚΑΙ (Χ < > 2) ΚΑΙ (Χ < > 3) ) =
    ΟΧΙ (Χ < > 1) Ή ΟΧΙ (Χ < > 2) Ή ΟΧΙ (Χ < > 3)  =
    (Χ = 1) Ή (Χ = 2) Ή (Χ = 3)
4. ΟΧΙ ( (Χ > 0) ΚΑΙ ΟΧΙ(Χ < > -3) ) =
    ΟΧΙ ( (Χ > 0) ΚΑΙ (Χ = -3) ) =
    ΟΧΙ (Χ > 0) Ή ΟΧΙ (Χ = -3)  =
    (Χ < = 0) Ή (Χ < > -3)


Παρασκευή 10 Αυγούστου 2012

Διατύπωση περιορισμών

Διατυπώστε τους παρακάτω περιορισμούς στη ΓΛΩΣΣΑ, χρησιμοποιώντας
κατάλληλες λογικές συνθήκες
1. Το Χ είναι μεγαλύτερο από το 200 και διαφορετικό τόσο από το 500
    όσο και από το 1000.
2. Το Υ είναι άρτιο ή πολλαπλάσιο του 3 αλλά όχι του 9.
3. Η πραγματική μεταβλητή  Z περιέχει ακέραιο και θετικό αριθμό.
4. Το Κ έχει τιμή 5 ή 10 ή 18
5. Το Μ δεν ανήκει στο διάστημα τιμών [-1, 999]

Απαντήσεις

1.  (Χ > 200) ΚΑΙ (Χ < > 500) ΚΑΙ (Χ < > 1000)
2.  (Υ mod 2 = 0) Ή ( (Υ mod 3 = 0) KAI (Y mod 9 < > 0) )
3. (Α_Μ(Ζ) = Ζ) ΚΑΙ (Ζ > 0)
4. (Κ = 5) Ή (Κ = 10) Ή (Κ = 18)
5.  (Μ < -1) Ή (Μ > 999)

Συγγραφή κατάλληλων εντολών εκχώρησης

Γράψτε τις εντολές εκχώρησης που υλοποιούν τις παρακάτω λειτουργίες:
1. Βάλε στο Β το γινόμενο του Α με το Γ, ελαττωμένο κατά 10.
2. Βάλε στο Γ το υπόλοιπο της διαίρεσης του τετραγώνου του Α
    με το 100.
3. Βάλε στο Α το πηλίκο της διαίρεσης του δεκαπλασίου του Β με
    το τριπλάσιο του Γ.
4. Βάλε στο Δ το μέσο όρο των Α, Β, πολλαπλασιασμένο με το Γ.
5. Βάλε στο Δ το αντίστροφο του γινομένου των Α, Β, Γ.



Απαντήσεις

1. Β <-- Α*Γ-10
2. Γ <-- Α^2 mod 100
3. Α <-- (10*Β) div (3*Γ)
4. Δ <-- (Α+Β)/2*Γ
5. Δ <-- 1/(Α*Β*Γ)



Έλεγχος ορθότητας εντολών εκχώρησης

Θεωρείστε το παρακάτω τμήμα δήλωσης μεταβλητών ενός
προγράμματος
         ΜΕΤΑΒΛΗΤΕΣ
                ΑΚΕΡΑΙΕΣ: Α, Β
                ΠΡΑΓΜΑΤΙΚΕΣ: Γ, Δ
                ΧΑΡΑΚΤΗΡΕΣ : Κ, Λ
                ΛΟΓΙΚΕΣ : Μ, Ξ
Ποιες από τις παρακάτω εντολές εκχώρησης είναι σωστές και ποιες
λάθος και γιατί;
     1. Α <-- Α+Β
     2. Β <-- Α*Γ
     3. Κ <-- Λ
     4. Λ <-- δοκιμή
     5. Μ <-- Κ = 'Λ'
     6. Ξ <-- 'ΨΕΥΔΗΣ'

Απαντήσεις

1. Σωστή, γιατί στο δεξιό μέλος υπάρχει μια ακέραια αριθμητική
    παράσταση.
2. Λάθος, γιατί δεν μπορούμε να εκχωρήσουμε σε μια ακέραια
    μεταβλητή το αποτέλεσμα μιας πραγματικής αριθμητικής
    παράστασης.
3. Σωστή, γιατί στο δεξιό μέλος υπάρχει μια αλφαριθμητική
    μεταβλητή.
4. Λάθος, γιατί στο δεξιό μέλος η λέξη δοκιμή δεν περικλείεται
    από αποστρόφους.
5. Σωστή, γιατί στο δεξιό μέλος υπάρχει μια σύγκριση (η οποία
    θα δώσει λογικό αποτέλεσμα).
6. Λάθος, γιατί το 'ΨΕΥΔΗΣ' είναι αλφαριθμητικό και έτσι
    υπάρχει ασυμφωνία τύπων.

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

Θεωρήστε ότι Μ, Ν, Κ είναι λογικές μεταβλητές. Για ποιο ή ποιους συνδυασμούς
τιμών αυτών των μεταβλητών, η παράσταση ΟΧΙ (Μ Ή Ν) ΚΑΙ ΟΧΙ Κ έχει την
τιμή Αληθής.

Λύση

   Ας συμβολίσουμε με Α - Αληθής, Ψ - Ψευδής. Κατασκευάζουμε
   τον πίνακα αλήθειας της παράστασης:

Μ     Ν     Κ    Μ Ή Ν   ΟΧΙ(Μ Ή Ν)  ΟΧΙ Κ  ΟΧΙ (Μ Ή Ν) ΚΑΙ ΟΧΙ Κ
   Α   Α    Α       Α                Ψ         Ψ                Ψ
   Α   Α    Ψ      Α                Ψ         Α                Ψ
   Α   Ψ    Α      Α                Ψ         Ψ                Ψ
   Α   Ψ    Ψ      Α                Ψ         Α                Ψ
   Ψ   Α    Α      Α                Ψ         Ψ                Ψ
   Ψ   Α    Ψ      Α                Ψ         Α                Ψ
   Ψ   Ψ    Α      Ψ                Α         Ψ                Ψ
   Ψ   Ψ    Ψ      Ψ                Α         Α                Α

   Άρα ο μοναδικός συνδυασμός τιμών των Μ, Ν, Κ που δίνει στην παράσταση την
   τιμή Αληθής είναι:
               Μ = Ψευδής, Ν = Ψευδής, Κ = Ψευδής

Παρατήρηση
Το ερώτημα θα μπορούσε να απαντηθεί και χωρίς τη χρήση πίνακα αλήθειας ως εξής:
για να είναι όλη η παράσταση Αληθής θα πρέπει:
      ΟΧΙ Ή Ν) = Αληθής
      ΟΧΙ Κ = Αληθής
Συνεπώς πρέπει:
      Μ Ή Ν = Ψευδής
      Κ = Ψευδής
Άρα :
     Μ = Ψευδής, Ν = Ψευδής
     Κ = Ψευδής

Καθορισμός τελικής τιμής

Ποια είναι η τελική τιμή της μεταβλητής Μ μετά
την εκτέλεση των παρακάτω εντολών;
   Μ <-- 0
   Για  Κ από μέχρι 90
        Αν Κ <= 30 τότε
               Μ <-- Μ+2
        αλλιώς_αν Κ <= 60 τότε
               Μ <-- Μ+1
        αλλιώς
               Μ <-- Μ+5
        Τέλος_αν
   Τέλος_επανάληψης

Απάντηση

     Το Μ θα αυξηθεί 30 φορές κατά 2, 30 φορές κατά 1 και 30 φορές κατά 5.
     Αφού η αρχική τιμή του Μ είναι 0, η τελική τιμή του θα είναι:
           0+30*2+30*1+30*5 = 60+30+150 = 240

Παρασκευή 3 Αυγούστου 2012

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

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

Απαντήσεις

1. ενσωματωμένη
2. διαδικασία
3. δυσδιάστατος
4. δεικτών
5. δομημένο

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

Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες
λάθος;
1. Η ψευδογλώσσα είναι ένας τρόπος αναπαράστασης
    αλγορίθμων που κινδυνεύει να παραβιάσει το
    κριτήριο της αποτελεσματικότητας.
2. Κάθε  διάγραμμα ροής περιλαμβάνει έναν ή
     περισσότερους ρόμβους.
3. Ένας πίνακας έχει μεταβλητό τύπο και σταθερό
    περιεχόμενο.
4. Κάθε Για..από..μέχρι μπορεί να μετατραπεί σε
    μια ισοδύναμη Όσο..επανάλαβε.
5. Η εντολή GOTO χρησιμοποιείται για την πραγματοποίηση
    ελέγχων στη ΓΛΩΣΣΑ.


Απαντήσεις

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