Πέμπτη 9 Ιουνίου 2011

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

Διορθώστε τις παρακάτω προτάσεις και επαναδιατυπώστε τις
με σωστό τρόπο.
1. Η λίστα των παραμέτρων μιας συνάρτησης είναι τουλάχιστον
    μονομελής.
2. Το πρόβλημα "Επιλογή μέσου μαζικής μεταφοράς" είναι
    αδόμητο.
3. Το αποτέλεσμα της παράστασης 2+3*4 είναι 20.
4. Η εντολή εκχώρησης παριστάνεται με το σύμβολο =.
5. Για να περιγράψουμε το πλήθος των επιβατών ενός
    πλοίου απαιτείται μια μεταβλητή πραγματικού τύπου.



Απάντηση

1.  Η λίστα των παραμέτρων μιας συνάρτησης είναι
     προαιρετική.
2. Το πρόβλημα "Επιλογή μέσου μαζικής μεταφοράς" είναι
    ημιδομημένο.
3. Το αποτέλεσμα της παράστασης 2+3*4 είναι 14.
4. Η εντολή εκχώρησης παριστάνεται με το σύμβολο <--.
5. Για να περιγράψουμε το πλήθος των επιβατών ενός
    πλοίου απαιτείται μια μεταβλητή ακεραίου τύπου.

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

Άσκηση : επεξεργασία στοιχείων μονοδιάστατου πίνακα

Σε μια τάξη φοιτούν 25 μαθητές. Γράψτε αλγόριθμο που,
δοθέντος του πίνακα ΥΨΗ[25] που περιέχει τα ύψη των 
μαθητών αυτής της τάξης, εμφανίζει τους αύξοντες 
αριθμούς (1-25) των 5 ψηλότερων μαθητών.
Παρατήρηση : Όλα τα ύψη είναι διαφορετικά μεταξύ τους.


Λύση

     Αλγόριθμος ΤΑΞΗ
     Δεδομένα // ΥΨΗ //
     Για κ από 1 μέχρι 25
          ΑΑ[κ] <-- κ
     Τέλος_επανάληψης
      Για κ από 2 μέχρι 25
          Για λ από 25 μέχρι κ με_βήμα -1
               Αν ΥΨΗ[λ-1] < ΥΨΗ[λ] τότε
                     Βοηθ <-- ΥΨΗ[λ-1]
                     ΥΨΗ[λ-1] <-- ΥΨΗ[λ]
                     ΥΨΗ[λ] <-- Βοηθ
                     ΤΕΜΡ <-- ΑΑ[λ-1]
                     ΑΑ[λ-1] <-- ΑΑ[λ]
                     ΑΑ[λ] <-- ΤΕΜΡ
               Τέλος_αν
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για κ από 1 μέχρι 5
           Εμφάνισε ΑΑ[κ]
     Τέλος_επανάληψης
     Τέλος ΤΑΞΗ

Τρίτη 7 Ιουνίου 2011

Επεξεργασία μονοδιάστατου πίνακα

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

Λύση

       Αλγόριθμος Μαθητές
       Διάβασε ΜΟΑπ
       Για κ από 1 μέχρι 27
            Διάβασε ΜΟ[κ]
       Τέλος_επανάληψης
       Μεγ <-- ΜΟΑπ-ΜΟ[1]
       Μικ <-- ΜΟΑπ-ΜΟ[1]
       Για κ από 2 μέχρι 27
            Αν ΜΟΑπ-ΜΟ[κ] > Μεγ τότε
                  Μεγ <-- ΜΟΑπ-ΜΟ[κ]
            Τέλος_αν
            Αν ΜΟΑπ-ΜΟ[κ] < Μικ τότε
                  Μικ <-- ΜΟΑπ-ΜΟ[κ]
                  ΑΑΜικ <-- κ
            Τέλος_αν
       Τέλος_επανάληψης
       Εμφάνισε 'Μικρότερη απόκλιση από τον τελικό '
       Εμφάνισε 'μέσο όρο του απουσιολόγου έχει ο :', ΑΑΜικ
       Εμφάνισε 'Τη μεγαλύτερη απόκλιση από τον τελικό'
       Εμφάνισε 'μέσο όρο του απουσιολόγου είχαν οι:',
        Για κ από 1 μέχρι 27
            Αν ΜΟΑπ-ΜΟ[κ] =  Μεγ τότε
                  Εμφάνισε κ
            Τέλος_αν
       Τέλος_επανάληψης
       Τέλος Μαθητές

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

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

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


Απαντήσεις

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

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

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

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

Λύση

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

Πέμπτη 2 Ιουνίου 2011

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

Γράψτε συνάρτηση που δέχεται ως παραμέτρους τρεις
 ακέραιες τιμές Α, Β, Γ, ένα χαρακτήρα Χ και υπολογίζει το:
* Α+Β+Γ, αν Χ = 'Α'
* Α-Β-Γ, αν Χ = 'Δ'
* Α*Β*Γ, αν Χ = 'Π'
* (Α+Β-Γ)/2, αν το Χ έχει μια οποιαδήποτε άλλη τιμή.

Λύση

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

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

Μετατροπές

Γράψτε με ισοδύναμο τρόπο το παρακάτω σύνολο εντολών,
χρησιμοποιώντας μόνο εντολές Αν..τότε
      Αν Χ > Α τότε
            Αν Υ > Β τότε
                Ζ <-- Χ*Υ+Α-Β
            αλλιώς
                Ζ <-- Χ+Υ*(Α-Β)
            Τέλος_αν
     αλλιώς_αν Χ < Α τότε
            Αν Υ >= Β τότε
                  Ζ <-- Χ^Υ+Α*Β
            Τέλος_αν
      αλλιώς
            Αν Υ < Β τότε
                  Ζ <-- (Χ-1)^Α+Υ*2-Β
            Τέλος_αν
      Τέλος_αν


Λύση

       Αν (Χ > Α) ΚΑΙ (Υ > Β) τότε            
                Ζ <-- Χ*Υ+Α-Β
       Τέλος_αν
       Αν (Χ > Α) ΚΑΙ (Υ <= Β) τότε   
                Ζ <-- Χ+Υ*(Α-Β)
       Τέλος_αν
       Αν (Χ < Α) ΚΑΙ (Υ >= Β) τότε
                  Ζ <-- Χ^Υ+Α*Β
       Τέλος_αν
       Αν (Χ = Α) ΚΑΙ (Υ < Β) τότε
                  Ζ <-- (Χ-1)^Α+Υ*2-Β
       Τέλος_αν