Τρίτη 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
         Αν (ΗΛΙΚ[κ] > Μεγ) Ή 
              (ΗΛΙΚ[κ] = Μεγ ΚΑΙ  ΒΑΡ[κ] < ΒΑΡ[ΘΜεγ]) τότε
               Μεγ <-- ΗΛΙΚ[κ]
               ΘΜεγ <-- κ
         Τέλος_αν
    Τέλος_επανάληψης
    Εμφάνισε ΟΝ[ΘΜεγ]
    Τέλος Ασκ