Τετάρτη, 25 Απριλίου 2012

Μετατροπή

Μετατρέψτε το παρακάτω σύνολο εντολών σε ισοδύναμο, χρησιμοποιώντας μόνο την εντολή Όσο..επανάλαβε
        Αρχή_επανάληψης
             Διάβασε χ
             σ <-- χ
             Διάβασε μ
             Αρχή_επανάληψης
                  σ <-- σ+μ
                  Διάβασε μ
             Μέχρις_ότου μ <= 0
        Μέχρις_ότου σ > 1000

Απάντηση

         σ <-- 999
         Όσο σ <= 1000 επανάλαβε
              Διάβασε χ
              σ <-- χ
              Διάβασε μ
              σ <-- σ+μ
              Διάβασε μ
              Όσο μ > 0 επανάλαβε
                  σ <-- σ+μ
                  Διάβασε μ
              Τέλος_επανάληψης
         Τέλος_επανάληψης

Τρίτη, 24 Απριλίου 2012

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

Γράψτε διαδικασία η οποία δέχεται ως παράμετρο τον ακέραιο
πίνακα Α[12, 34] και μια ακέραια τιμή Γ (1 <= Γ <= 12),
και αντιγράφει το περιεχόμενο της γραμμής Γ του πίνακα Α
μέσα στον ακέραιο πίνακα Β[34].

Λύση

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

Πέμπτη, 19 Απριλίου 2012

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

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

Λύση


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

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

Ποια από τα παρακάτω ισχύουν για τις διαδικασίες
1. Μπορούν να εκτελέσουν οποιαδήποτε λειτουργία.
2. Υπολογίζουν τουλάχιστον ένα αποτέλεσμα.
3. Δεν μπορούν να εμφανίσουν απευθείας τα αποτελέσματά τους
    στην οθόνη.
4. Είναι μια κατηγορία υποπρογραμμάτων.
5. Ενεργοποιούνται μέσω μιας εντολής εκχώρησης.
6. Καλούνται μέσα από το κύριο πρόγραμμα ή άλλο υποπρόγραμμα.
7. Η ενεργοποίησή τους γίνεται με τη βοήθεια της εντολής ΚΑΛΕΣΕ.
8. Έχουν πάντοτε μικρό μέγεθος



Απαντήσεις

1, 4, 6, 7

Πέμπτη, 12 Απριλίου 2012

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

Ποια από τα παρακάτω ισχύουν για ένα αλγόριθμο
1. οι εντολές του είναι πεπερασμένες σε πλήθος
2. οι εντολές του είναι αυστηρά καθορισμένες
3. μπορεί να μην έχει καμία έξοδο.
4. συνδέεται αποκλειστικά με προβλήματα Πληροφορικής
5. είναι κωδικοποιημένος σε ψευδογλώσσα
6. εκτελείται απευθείας από οποιοδήποτε υπολογιστή
7. μπορεί να αναπαρασταθεί και διαγραμματικά
8. η εκτέλεσή του ολοκληρώνεται μετά από πεπερασμένο
   χρονικό διάστημα
9. δέχεται ως είσοδο τουλάχιστον ένα δεδομένο
10. μπορεί να διασπαστεί σε απλούστερα υποπρογράμματα

Απαντήσεις

1, 2, 5, 7, 8

Τετάρτη, 11 Απριλίου 2012

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

Ποιο ή ποια αλγοριθμικά κριτήρια παραβιάζει ο παρακάτω
αλγόριθμος και γιατί;
     Αλγόριθμος Ασκ
     σ <-- 0
     Αρχή_επανάληψης
         Διάβασε Χ
         Αν Χ > 0 τότε
              σ <-- σ-1/Χ
         αλλιώς
              σ <-- σ+Χ
         Τέλος_αν
     Μέχρις_ότου σ > 1000
     Τέλος Ασκ

Λύση

     Παραβιάζεται το κριτήριο της:
     α) εξόδου, γιατί ο αλγόριθμος δεν εμφανίζει κανένα
          αποτέλεσμα
     β) περατότητας, γιατί το σ δεν αυξάνεται και δεν
         πρόκειται ποτέ να ξεπεράσει το 1000 (άρα η
         Μέχρις_ότου αποτελεί ατέρμων βρόχο)

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

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

Απαντήσεις

2, 4, 5, 8, 9


Τρίτη, 10 Απριλίου 2012

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

Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος.
1. Κάθε πίνακας λογικού τύπου έχει μέγιστο και ελάχιστο στοιχείο.
2. Τη μεγαλύτερη προτεραιότητα από όλους τους τελεστές έχουν οι
    αριθμητικοί.
3. Μια διαδικασία που ελέγχει αν μια ιδιότητα ισχύει ή όχι είναι
    λογικού τύπου.
4. 'ΑΝΑΠΤΥΞΗ' < 'ΑΝΑΠΤΥΓΜΕΝΟΣ' = ΨΕΥΔΗΣ
5. Αν Χ  = 3 και Υ = 8, μετά την εκτέλεση των εντολών
          Χ <-- Υ
          Υ <-- Χ
    έχουμε Χ = 8 και Υ = 3

Απαντήσεις

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

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

Συμπληρώστε τα κενά που λείπουν
1. Οι αριθμητικές μεταβλητές μπορεί να είναι ακεραίου ή
     _________ τύπου.
2. Όταν ο αλγόριθμος υπολογίζει ένα αποτέλεσμα αλλά δεν
    το εμφανίζει στη μονάδα εξόδου, χρησιμοποιούμε τη
    δήλωση ________.
3. Το μικρότερο στοιχείο σε ένα αλφαριθμητικό πίνακα είναι
     εκείνο που _________ σε αλφαβητική σειρά.
4. Επιλύσιμα χαρακτηρίζονται και προβλήματα που είναι
    _______ με άλλα προβλήματα που γνωρίζουμε ότι λύνονται.
5. Η επιλογή μιας γλώσσας προγραμματισμού εξαρτάται και
    από το __________ και προγραμματιστικό περιβάλλον της
    εφαρμογής.

Απαντήσεις

1. πραγματικού
2. Αποτελέσματα
3. προηγείται
4. συναφή
5. υπολογιστικό

Μετατροπή

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


Λύση


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

Δευτέρα, 9 Απριλίου 2012

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

Γράψτε διαδικασία που δέχεται ως παραμέτρους δύο αρνητικούς
ακέραιους αριθμούς (διαφορετικούς μεταξύ τους) και βρίσκει
ποιος από αυτούς έχει τη μεγαλύτερη και ποιος τη μικρότερη απόλυτη
τιμή.

Λύση


      ΔΙΑΔΙΚΑΣΙΑ ΜΑΧ_ΜΙΝ_ΑΠΟΛ(Χ, Υ, ΑρΜΑΧ, ΑρΜΙΝ)
      ΜΕΤΑΒΛΗΤΕΣ
             ΑΚΕΡΑΙΕΣ: Χ, Υ, ΑρΜΑΧ, ΑρΜΙΝ
      ΑΡΧΗ
             ΑΝ Α_Τ(Χ) < Α_Τ(Υ) ΤΟΤΕ
                  ΑρΜΙΝ <-- Χ
                  ΑρΜΑΧ <-- Υ
             ΑΛΛΙΩΣ
                  ΑρΜΙΝ <-- Υ
                  ΑρΜΑΧ <-- Χ
             ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

Γράψτε συνάρτηση που υπολογίζει το άθροισμα
      1+1/3+1/5+...+1/Ν, όπου Ν περιττός ακέραιος

Λύση

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

Μετατροπή

Ξαναγράψτε το παρακάτω σύνολο εντολών χρησιμοποιώντας μόνο
μια εντολή Αν..τότε
       Αν Χ < 1000 τότε
             Αν Υ > 0 τότε
                 Αν Ζ <= 0 τότε
                      Εμφάνισε Χ+Υ+Ζ
                 Τέλος_αν
             Τέλος_αν
       Τέλος_αν


Λύση


      Αν (Χ < 1000) ΚΑΙ (Υ > 0) ΚΑΙ (Ζ <= 0) τότε
           Εμφάνισε Χ+Υ+Ζ
     Τέλος_αν
             

Τρίτη, 3 Απριλίου 2012

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

Διορθώστε τις παρακάτω λανθασμένες προτάσεις και επαναδιατυπώστε τις
με σωστό τρόπο.
1. Ο υπολογιστής υπερέχει σε ποιοτικό επίπεδο από τον ανθρώπινο νου.
2. Κάθε αποτέλεσμα που υπολογίζει μια συνάρτηση, αποτελεί και ξεχωριστή
    παράμετρο στην επικεφαλίδα της.
3. Αλγόριθμοι + Λογικά διαγράμματα = Προγράμματα
4. Η γλώσσα SQL είναι αντικειμενοστραφής.
5. Η δομής ενός προβλήματος καταγράφεται κατά το
    στάδιο της κατανόησης.




Απαντήσεις

1. Ο υπολογιστής υπερέχει σε ποσοτικό επίπεδο από τον ανθρώπινο νου.
2. Κάθε αποτέλεσμα που υπολογίζει μια διαδικασία, αποτελεί και ξεχωριστή
    παράμετρο στην επικεφαλίδα της.
3. Αλγόριθμοι + Δομές δεδομένων = Προγράμματα
4. Η γλώσσα C++ είναι αντικειμενοστραφής.
5. Η δομής ενός προβλήματος καταγράφεται κατά το
    στάδιο της ανάλυσης.

Επεξεργασία δοσμένου πλήθους δεδομένων

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

Λύση

      Αλγόριθμος Οικογ
      Μονο <-- 0
      σ <-- 0
      ΟικΑγ <-- 0
      Για κ από 1 μέχρι 120
          Διάβασε Αγόρια, Κορίτσια
          Αν  Αγόρια > 0 τότε 
               σ <-- σ+Αγόρια
               ΟικΑγ <-- ΟικΑγ+1
          αλλιώς
                Αν Κορίτσια > 0 τότε
                    Μονο <-- Μονο+1
                Τέλος_αν
          Τέλος_αν
      Τέλος_επανάληψης
      ΜΟΑγ <-- σ/ΟικΑγ
      ΠοσΜονο <-- 100*Μονο/120
      Εμφάνισε
      Τέλος Οικογ

Κυριακή, 1 Απριλίου 2012

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

Ποιες από τις παρακάτω ερωτήσεις είναι σωστές και ποιες λάθος;
1. Το στοιχείο Α[κ, λ] ανήκει στην 1η κύρια διαγώνιο του
     πίνακα Α[100, 100] μόνο όταν κ = λ.
2. Το στοιχείο Α[κ, λ] ανήκει στην 2η κύρια διαγώνιο του
     πίνακα Α[100, 100] μόνο όταν κ + λ = 101
3. Κάθε πρόγραμμα έχει τουλάχιστον μια συμβολική
    σταθερά και τουλάχιστον μια μεταβλητή.
4. Σε μια λογική μεταβλητή μπορούμε να εκχωρήσουμε
    και μια λογική σταθερά.
5. Οι μεταβλητές ενός αλγορίθμου δεσμεύουν μνήμη
    του υπολογιστή.

Απαντήσεις

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