Δευτέρα 30 Ιανουαρίου 2012

Εξαφανίστε την GOTO

Ξαναγράψτε το παρακάτω σύνολο εντολών έτσι ώστε να
ικανοποιεί τις αρχές του δομημένου προγραμματισμού.
             A <-- 0
      10 : ΔΙΑΒΑΣΕ Χ
              ΑΝ Χ >= 20 ΤΟΤΕ GOTO 20
             A <-- A+X^2
       20: AN A < 10^3 TOTE GOTO 10
             ΓΡΑΨΕ Α

Λύση

           Α <-- 0
           ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                 ΔΙΑΒΑΣΕ Χ
                 ΑΝ Χ < 20 ΤΟΤΕ
                        Α <-- Α+Χ^2
                 ΤΕΛΟΣ_ΑΝ
           ΜΕΧΡΙΣ_ΟΤΟΥ Α >= 10^3
           ΓΡΑΨΕ Α

             

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

Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες
λάθος.
1. Η εντολή εκχώρησης είναι ένας από τους δύο τρόπους με
    τους οποίους μπορούμε να αλλάξουμε μια μεταβλητή.
2. Η λέξη ΑΚΕΡΑΙΟΣ είναι δεσμευμένη στην ΓΛΩΣΣΑ.
3. Ένα λογικό διάγραμμα περιέχει τουλάχιστον ένα
    ρόμβο.
4. Για να υπολογίσουμε το γινόμενο 100 αριθμών πρέπει
    να χρησιμοποιήσουμε έναν αλγόριθμο ακολουθιακής
    δομής.
5. Η συνάρτηση ΗΜ επιστρέφει ένα αριθμητικό αποτέλεσμα
    πραγματικού τύπου.



Απαντήσεις

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

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

Γράψτε αλγόριθμο που συγχωνεύει δύο δοσμένους
αλφαριθμητικούς πίνακες Β[12, 3, 5] και Γ[12, 3, 4]
σε έναν αλφαριθμητικό πίνακα Α[12, 3, 9].

Λύση

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

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

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

Λύση

      Αλγόριθμος ΑΣΚ
      Δεδομένα // Α //
      Για Κ από 1 μέχρι 10
          Για Λ από 1 μέχρι 4
              Για Μ από 1 μέχρι 6
                     Β[Κ, Λ, Μ] <-- Α[Κ, Λ, Μ]
                     Γ[Κ, Λ, Μ] <-- Α[Κ, Λ, Μ+6]
              Τέλος_επανάληψης
          Τέλος_επανάληψης
      Τέλος_επανάληψης
      Αποτελέσματα // Β. Γ //
      Τέλος ΑΣΚ

Κυριακή 29 Ιανουαρίου 2012

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

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

Απαντήσεις

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



Τετάρτη 25 Ιανουαρίου 2012

Υπολογισμός αριθμού επαναλήψεων

Δίνεται η παρακάτω ομάδα εντολών:
      Για κ από Α μέχρι Β με_βήμα Γ
          Εμφάνισε 'ΑΛΦΑ'
     Τέλος_επανάληψης
 Πόσες φορές θα εμφανιστεί η λέξη 'ΑΛΦΑ' σε καθεμιά
από τις παρακάτω περιπτώσεις.
1. Α = 100,  Β = -5, Γ = 55 
2. Α = -100, Β = 5, Γ = -55
3. Α = 100, Β = 100, Γ = 0
4. Α = 100, Β = 100, Γ = 2012
5. Α = -100, Β = 100, Γ = 55
6. Α = 100,  Β = -5, Γ = -55

Λύση
 
1. 0
2. 0
3. άπειρες
4. 1
5. 4
6. 2

   

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

Γράψτε αλγόριθμο που υπολογίζει το ποσοστό (%) των
μη μηδενικών στοιχείων στον ακέραιο πίνακα Α[11, 2, 34].

Λύση

    Αλγόριθμος Ασκ
    Δεδομένα // Α //
    φ <-- 0
    Για κ από 1 μέχρι 11
        Για λ από 1 μέχρι 2
              Για μ από 1 μέχρι 34
                  Αν Α[κ, λ, μ] < > 0 τότε
                        φ <-- φ+1
                  Τέλος_αν
              Τέλος_επανάληψης
        Τέλος_επανάληψης
    Τέλος_επανάληψης
     ΠΟΣ <-- 100*φ/(11*2*34)
    Αποτελέσματα // ΠΟΣ //
    Τέλος Ασκ

Πέμπτη 19 Ιανουαρίου 2012

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

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




Απάντηση

1. Στη φυσσαλίδα ελέγχονται διαδοχικά στοιχεία του πίνακα.

2.  Κάθε διαδικασία που υπολογίζει ένα μόνο αποτέλεσμα
     και δεν περιέχει εντολές εισόδου ή εξόδου, μπορεί να
     υλοποιηθεί και ως συνάρτηση.

3.  Για την ταξινόμηση των κόμβων μιας δομής απαραίτητη
     κρίνεται η ύπαρξη μιας συνάρτησης διάταξης.
4. Η γλώσσα SQL είναι 4ης γενιάς.

5.  Ένα πρόγραμμα σε γλώσσα μηχανής είναι μια ακολουθία
      από ψηφία 0 και  1.


Προσδιορισμός τύπου υποπρογράμματος

Ποιό είναι ο πιο κατάλληλος τύπος υποπρογράμματος για
τις ακόλουθες ενέργειες.
1. Υπολογισμός ελαχίστων ανά γραμμή σ' ένα δυσδιάστατο
    πίνακα.
2. Επίλυση μιας δευτεροβάθμιας εξίσωσης.
3. Υπολογισμός ελαχίστου δύο αριθμών.
4. Έλεγχος για το αν ένα δοσμένο έτος ανήκει στον 21ο αιώνα
    ή όχι.
5. Εμφάνιση των περιεχομένων ενός μονοδιάστατου πίνακα.

Απαντήσεις

1. διαδικασία
2. διαδικασία
3. συνάρτηση
4. συνάρτηση
5. διαδικασία

Τρίτη 17 Ιανουαρίου 2012

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

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


Απαντήσεις

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

Δευτέρα 16 Ιανουαρίου 2012

Συγγραφή διαδικασίας

Γράψτε διαδικασία η οποία δέχεται ως παράμετρο έναν
τρισδιάστατο ακέραιο πίνακα Α[3, 4, 5] και υπολογίζει
τη συχνότητα εμφάνισης των αριθμών -3, -2, -1, ..., 12
μέσα στον πίνακα αυτό.

Λύση
 
    ΔΙΑΔΙΚΑΣΙΑ ΕΠΕΞ(Α, ΣΥΧΝ)
    ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Α[3, 4, 5], Κ, Λ, Μ, ΣΥΧΝ[16], ΤΙΜΗ, ΘΕΣΗ
    ΑΡΧΗ
           ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 16
                 ΣΥΧΝ[Κ] <-- 0
           ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
           ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 3
               ΓΙΑ Λ ΑΠΟ ΜΕΧΡΙ 4
                  ΓΙΑ Μ ΑΠΟ ΜΕΧΡΙ 5
                        ΤΙΜΗ <-- Α[Κ, Λ, Μ]
                        ΑΝ (ΤΙΜΗ >= -3) ΚΑΙ (ΤΙΜΗ <= 12) ΤΟΤΕ
                              ΘΕΣΗ <-- ΤΙΜΗ+4
                              ΣΥΧΝ[ΘΕΣΗ] <-- ΣΥΧΝ[ΘΕΣΗ]+1
                        ΤΕΛΟΣ_ΑΝ
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
              ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
           ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Πέμπτη 12 Ιανουαρίου 2012

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

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

Λύση

    Αλγόριθμος Ασκ
    Δεδομένα // Α //
    θετ <-- 0
    Για λ από 1 μέχρι 13
        Για μ από 1 μέχρι 15
             Αν Α[1, λ, μ] > 0 τότε
                  θετ <-- θετ+1
             Τέλος_αν
        Τέλος_επανάληψης
    Τέλος_επανάληψης
    σ <-- 0
    Για μ από 1 μέχρι 15
         σ <-- σ+Α[3, 2, μ]
    Τέλος_επανάληψης
    ΜΟ <-- σ/15
    Γιν <-- 1
    Για κ από 1 μέχρι 11
      Για λ από 1 μέχρι 13
        Για μ από 1 μέχρι 15
             Γιν <-- Γιν*Α[κ, λ, μ]
        Τέλος_επανάληψης

      Τέλος_επανάληψης
    Τέλος_επανάληψης 
    Αποτελέσματα // θετ, ΜΟ, Γιν //
    Τέλος Ασκ

Συγγραφή διαδικασίας

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

Λύση

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

Τετάρτη 11 Ιανουαρίου 2012

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

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


Λύση

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

Δευτέρα 9 Ιανουαρίου 2012

Αναζήτηση σε τρισδιάστατο

Γράψτε αλγόριθμο που αναζητά την τιμή Χ μέσα στον
πίνακα Α[12, 45, 3].

Λύση

    Αλγόριθμος Αναζ
    Δεδομένα // Α, Χ //
    βρεθ <-- Ψευδής
    θκ <-- 0
    θλ <-- 0
    θμ <-- 0
    κ <-- 1
    Όσο (κ <= 12) ΚΑΙ (βρεθ = Ψευδής) επανάλαβε
        λ <-- 1
        Όσο (λ <= 45) ΚΑΙ (βρεθ = Ψευδής) επανάλαβε
             μ <-- 1
             Όσο (μ <= 3) ΚΑΙ (βρεθ = Ψευδής) επανάλαβε
                  Αν Α[κ, λ, μ] = Χ τότε
                        βρεθ <-- Αληθής
                        θκ <-- κ
                        θλ <-- λ
                        θμ <-- μ
                  αλλιώς
                       μ <-- μ+1
                  Τέλος_αν
             Τέλος_επανάληψης
             Αν βρεθ = Ψευδής τότε
                  λ <-- λ+1
             Τέλος_αν
        Τέλος_επανάληψης
         Αν βρεθ = Ψευδής τότε
              κ <-- κ+1
         Τέλος_αν
    Τέλος_επανάληψης
     Αποτελέσματα // βρεθ, θκ, θλ, θμ //
    Τέλος Αναζ

Σάββατο 7 Ιανουαρίου 2012

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

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

   


Απαντήσεις

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

3. Οι τυπικές και οι πραγματικές παράμετροι πρέπει να
    είναι ίδιου τύπου.

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


5. Οι τυπικές παράμετροι αποκαλούνται και ορίσματα. 

Μετατροπή

Ξαναγράψτε το παρακάτω σύνολο εντολών χρησιμοποιώντας
την εντολή Μέχρις_ότου
       Για κ από Χ μέχρι Υ με_βήμα 2
             Εμφάνισε κ
       Τέλος_επανάληψης


Λύση


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

Τρίτη 3 Ιανουαρίου 2012

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

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


Απαντήσεις

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

Αναζήτηση

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

Λύση

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