Πέμπτη 31 Μαΐου 2012

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

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και επαναδιατυπώστε
τις με σωστό τρόπο.
1. Όταν ένας αλγόριθμος δεν τερματίζεται μετά από πεπερασμένο
    αριθμό βημάτων, λέμε ότι παραβιάζει το κριτήριο του βρόχου.
2. Το μεγαλύτερο και το μικρότερο στοιχείο καταλαμβάνουν τις
    δύο ακραίες θέσεις ενός πίνακα.
3. Οι τιμές 'ΑΛΗΘΗΣ' και 'ΨΕΥΔΗΣ' είναι λογικές σταθερές.
4. Η GOTO είναι η εντολή με την οποία καλούμε τις διαδικασίες.
5. Ο πίνακας Α[10, 5, 3] έχει 18 στοιχεία.




Απαντήσεις

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

3. Οι τιμές 'ΑΛΗΘΗΣ' και 'ΨΕΥΔΗΣ' είναι αλφαριθμητικές 
    σταθερές.
4. Η ΚΑΛΕΣΕ είναι η εντολή με την οποία καλούμε τις 
    διαδικασίες.
5. Ο πίνακας Α[10, 5, 3] έχει 150 στοιχεία.

Κυριακή 27 Μαΐου 2012

Ποιο κριτήριο παραβιάζεται;

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

Αλγόριθμος ΑΣΚ
Α <-- Χ
Όσο Α <= 2012 επανάλαβε
     Αρχή_επανάληψης
          Διάβασε Υ
     Μέχρις_ότου Υ > 0
     Α <-- Α+Υ
Τέλος_επανάληψης
Τέλος ΑΣΚ

Απάντηση

α) Είσοδος, γιατί η μεταβλητή Χ έχει απροσδιόριστο
    περιεχόμενο.
β) Έξοδος, γιατί ο αλγόριθμος δεν εμφανίζει κανένα
    αποτέλεσμα.

Παρασκευή 25 Μαΐου 2012

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

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

Απαντήσεις

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

Τρίτη 22 Μαΐου 2012

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

Γράψτε διαδικασία η οποία δέχεται ως παραμέτρους:
* τον πίνακα ΟΝ[135] που περιέχει τα ονοματεπώνυμα
   των 135 μαθητών της Γ' τάξης ενός λυκείου,
* τον πίνακα Β[135, 6] που περιέχει τους βαθμούς
   (στην κλίμακα 0-100 που έγραψαν οι μαθητές
    στα 6 πανελλαδικώς εξεταζόμενα μαθήματα)
και εμφανίζει τα ονοματεπώνυμα των μαθητών και τους
βαθμούς που έγραψαν, κατά αλφαβητική σειρά των
ονοματεπωνύμων (αγνοήστε την περίπτωση της
συνωνυμίας).

Λύση


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


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

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

Λύση


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

Πέμπτη 17 Μαΐου 2012

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

Συμπληρώστε τα κενά που λείπουν:
1.  3 + 2 * 5 < > 30 = ___________
2.  (5+2) div 52 >= 0  = __________
3.  'ΑΛΦΑ' > 'ΒΗΤΑ' = __________
4.  (Αληθής = Ψευδής) = _________
5. 'Αληθής' < 'Ψευδής' = _________

Απαντήσεις 
1. Αληθής
2. Αληθής
3. Ψευδής
4. Ψευδής
5. Αληθής



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

Ποιες από τις παρακάτω προτάσεις είναι σωστές
και ποιες λάθος;
1. Αν Α_Τ(Χ) < > Χ, το περιεχόμενο της μεταβλητής
    Χ είναι αρνητικό.
2. Αν Α_Μ(Χ) > 0 τότε το περιεχόμενο της μεταβλητής
    Χ είναι ακέραιο.
3. Αν Χ = '1+2', η εντολή Γράψε '2*Χ' εμφανίζει
    2*1+2
4. Ο μικρότερη τιμή που μπορεί να πάρει μια μεταβλητή
    ακεραίου τύπου είναι το 1.
5. Όλα τα αλφαριθμητικά δεδομένα μπορούν να συγκριθούν
    μεταξύ τους.



Απαντήσεις

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

Κυριακή 13 Μαΐου 2012

Κυκλώστε τα σωστά

Ποια από τα παρακάτω ισχύουν για την εγγραφή;
1. Είναι μια συλλογή δεδομένων ίδιου τύπου.
2. Αποτελείται από ένα ή περισσότερα πεδία.
3. Είναι μια δομή δεδομένων.
4. Έχει μεταβαλλόμενο τύπο.
5. Χρησιμοποιείται σπάνια σε εμπορικές εφαρμογές.
6. Περιγράφει μια οντότητα που έχει πολλά και εν γένει
    διαφορετικά χαρακτηριστικά γνωρίσματα.

Απαντήσεις

2, 3, 6

Σάββατο 12 Μαΐου 2012

Φιλτράρισμα

Γράψτε αλγόριθμο που :
α) διαβάζει  τις πόλεις στις οποίες κατοικούν κάποιοι
     Έλληνες πολίτες (η είσοδος δεδομένων ολοκληρώνεται
     όταν δοθεί η απάντηση 'ΝΑΙ' στην υποβαλλόμενη προς
     το χρήστη ερώτηση 'ΟΛΟΚΛΗΡΩΣΗ   ΕΙΣΟΔΟΥ ?'
     ή όταν το πλήθος των πολιτών φτάσει το 130),
β) υπολογίζει και εμφανίζει το πλήθος των διαφορετικών
    πόλεων που έχουν καταγραφεί,
γ) αν το αποτέλεσμα στο ερώτημα β) δεν υπερβαίνει το 50,
    ο αλγόριθμος εμφανίζει τις πόλεις αυτές στη μονάδα
    εξόδου.

Λύση

      Αλγόριθμος Ασκ
      Πληθ <-- 0
      Διαφ <-- 0
      Αρχή_επανάληψης
             Διάβασε Πόλη
             Πληθ <-- Πληθ+1
             Βρεθ <-- Ψευδής
             λ <-- 1
             Όσο (λ <= Διαφ) ΚΑΙ (Βρεθ = Ψευδής) επανάλαβε
                   Αν ΠΟΛΕΙΣ[λ] = Πόλη τότε
                         Βρεθ <-- Αληθής
                   αλλιώς
                         λ <-- λ+1
                   Τέλος_αν
             Τέλος_επανάληψης
             Αν Βρεθ = Ψευδής τότε
                   Διαφ <-- Διαφ+1
                   ΠΟΛΕΙΣ[Διαφ] <-- Πόλη
             Τέλος_αν
             Εμφάνισε 'ΟΛΟΚΛΗΡΩΣΗ   ΕΙΣΟΔΟΥ ?'
             Διάβασε Απ
      Μέχρις_ότου (Πληθ = 130) Ή (Απ = 'ΝΑΙ')
      Εμφάνισε Διαφ
      Αν Διαφ <= 50 τότε
             Για λ από 1 μέχρι Διαφ
                   Εμφάνισε ΠΟΛΕΙΣ[λ]
             Τέλος_επανάληψης
      Τέλος_αν
      Τέλος Ασκ

Παρασκευή 11 Μαΐου 2012

Μέγιστο μονοδιάστατου πίνακα

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

Λύση

    Αλγόριθμος Ασκ
    Δεδομένα // ΟΝ, ΗΛΙΚ, ΒΑΡ //
    Μεγ <-- ΗΛΙΚ[1]
    ΘΜεγ <-- 1
    Για κ από 2 μέχρι 80
         Αν (ΗΛΙΚ[κ] > Μεγ) Ή 
              (ΗΛΙΚ[κ] = Μεγ ΚΑΙ  ΒΑΡ[κ] < ΒΑΡ[ΘΜεγ]) τότε
               Μεγ <-- ΗΛΙΚ[κ]
               ΘΜεγ <-- κ
         Τέλος_αν
    Τέλος_επανάληψης
    Εμφάνισε ΟΝ[ΘΜεγ]
    Τέλος Ασκ

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

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και
επαναδιατυπώστε σωστά.
1. Α_Μ(-7.8) = -8
2. Η λογική πράξη της σύζευξης εφαρμόζεται σε ένα
    μόνο όρισμα.
3. Τα αρχεία είναι στατικές δομές δεδομένων.
4. Η φυσσαλίδα είναι μια μέθοδος αναζήτησης.
5. Ο αλγόριθμος είναι ένας μηχανισμός παραγωγής
    δεδομένων.



Απαντήσεις

1. Α_Μ(-7.8) = -7
2. Η λογική πράξη της άρνησης εφαρμόζεται σε ένα
    μόνο όρισμα.
3. Τα αρχεία είναι δυναμικές δομές δεδομένων.
4. Η φυσσαλίδα είναι μια μέθοδος ταξινόμησης.

5. Ο αλγόριθμος είναι ένας μηχανισμός παραγωγής
    πληροφοριών.

Δευτέρα 7 Μαΐου 2012

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

Ποιες από τις παρακάτω ερωτήσεις είναι σωστές και ποιες
λάθος;
1. Αν ο πίνακας Α[7] περιέχει ακέραιες τιμές,η εντολή
    Α[[Α[4]] <-- 12  αποτελεί λογικό λάθος εφόσον
    το Α[4] περιέχει τιμή μεγαλύτερη του 7.
2. Όταν υπάρχει ασυμφωνία τύπων ανάμεσα στις
    τυπικές και τις πραγματικές παραμέτρους μιας
    διαδικασίας, το πρόγραμμά μας έχει τουλάχιστον
    ένα συντακτικό λάθος.
3. Η συνάρτηση Α_Τ μπορεί να εφαρμοστεί μόνο
    σε όρισμα ακεραίου τύπου.
4. Για να καταχωρήσουμε τα 30 τηλέφωνα των
    μαθητών μιας  τάξης μπορούμε να χρησιμο-
    ποιήσουμε έναν μονοδιάστατο αλφαριθμητικό
    πίνακα.
5. Μια μεταβλητή της ΓΛΩΣΣΑΣ έχει ένα όνομα
    μοναδικό (στην περιοχή δήλωσής της) που τη
    χαρακτηρίζει.

Απαντήσεις

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



Σάββατο 5 Μαΐου 2012

Φιλτράρισμα με χρήση πίνακα

Θεωρείστε τους πίνακες:
* ΟΝ[500], που περιέχει τα ονοματεπώνυμα των 500 μαθητών
                   ενός γενικού λυκείου
* ΤΑΞΗ[500], που περιέχει την τάξη φοίτησης των μαθητών
                  αυτών (Α ή Β ή Γ),
* ΜΟ[500], που περιέχει τους μέσους όρους βαθμολογίας
                  των μαθητών αυτών (στην κλίμακα 0-20)
Γράψτε αλγόριθμο που με δεδομένους τους παραπάνω
πίνακες, υπολογίζει και εμφανίζει:
α) το πλήθος των μαθητών της Α' τάξης,
β) το ποσοστό (%) (επί του συνόλου των μαθητών
    της Β' τάξης) των μαθητών της Β' τάξης που έχουν
    μέσο όρο μεγαλύτερο από 16,
γ) το πλήθος των μαθητών της Γ' τάξης που έχουν μέσο
    όρο τουλάχιστον 18,
δ) αν το πλήθος που βρήκατε στο ερώτημα γ) είναι
    μεγαλύτερο από το 25% του συνολικού αριθμού των
    μαθητών της Γ' τάξης, εμφανίζει τα ονόματα και τους
    μέσους όρους των μαθητών αυτών με κατάλληλα
    διαμορφωμένα μηνύματα.
Παρατήρηση : Θεωρείστε ότι σε κάθε τάξη φοιτά ένας
τουλάχιστον μαθητής.

Λύση

     Αλγόριθμος Λύκειο
     Δεδομένα // ΟΝ, ΤΑΞΗ, ΜΟ //
     Αταξ <-- 0
     Βταξ <-- 0
     Βταξ16 <-- 0
     Γταξ <-- 0
     Γταξ18 <-- 0
     Για κ από 1 μέχρι 500
           Αν ΤΑΞΗ[κ] = 'Α' τότε
                 Αταξ <-- Αταξ+1
           αλλιώς_αν ΤΑΞΗ[Κ] = 'Β' τότε
                 Βταξ <-- Βταξ+1
                 Αν ΜΟ[κ] > 16 τότε
                       Βταξ16 <-- Βταξ16+1
                 Τέλος_αν
           αλλιώς
                 Γταξ <-- Γταξ+1
                 Αν ΜΟ[κ] >= 18 τότε
                        Γταξ18 <-- Γταξ18+1
                        ΟΝ18[Γταξ18] <-- ΟΝ[κ]
                        ΜΟ18[Γταξ18] <-- ΜΟ[κ]
                 Τέλος_αν
           Τέλος_αν
     Τέλος_επανάληψης
     ΠοσΒ <-- 100*Βταξ16/Βταξ
     Εμφάνισε Αταξ, ΠοσΒ, Γταξ18
     ΠοσΓ <-- 100*Γταξ18/Γταξ
     Αν ΠοσΓ > 25 τότε
            Για κ από 1 μέχρι Γταξ18
                 Εμφάνισε ΟΝ18[κ], ΜΟ18[κ]
            Τέλος_επανάληψης
     Τέλος_αν
     Τέλος Λύκειο
   

Πέμπτη 3 Μαΐου 2012

Συνάρτηση+Διαδικασία

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

Λύση

     ΣΥΝΑΡΤΗΣΗ  Αυτοδυν(Έδρες) : ΛΟΓΙΚΗ
     ΜΕΤΑΒΛΗΤΕΣ
           ΑΚΕΡΑΙΕΣ: Έδρες
     ΑΡΧΗ
           Αυτοδυν <-- Έδρες > 150
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


     ΔΙΑΔΙΚΑΣΙΑ Έλεγχος(ΕΔ)
     ΜΕΤΑΒΛΗΤΕΣ
            ΑΚΕΡΑΙΕΣ: ΕΔ[8], Κ, Πληθ
     ΑΡΧΗ
            Πληθ <-- 0
            ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 8
                 ΑΝ Αυτοδυν(ΕΔ[Κ]) = ΑΛΗΘΗΣ ΤΟΤΕ
                       ΓΡΑΨΕ 'Νο :', Κ
                       Πληθ <-- Πληθ+1
                 ΤΕΛΟΣ_ΑΝ
            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
            ΑΝ Πληθ = 0 ΤΟΤΕ
                 ΓΡΑΨΕ 'Κανένα κόμμα δεν μπορεί να κάνει'
                 ΓΡΑΨΕ 'αυτοδύναμη κυβέρνηση!'
            ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Τρίτη 1 Μαΐου 2012

Κυκλώστε τα σωστά

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

Απαντήσεις

2, 4, 6