ΠΙΝΑΚΕΣ

ΛΥΣΕΙΣ ΤΟΥ ΣΕΤ1 - ΕΚΜΑΘΗΣΗ ΤΩΝ 1D

1.
Αλγόριθμος ασκ1σετ1
Για i από 1 μέχρι 65
     Διάβασε ΟΝ[i],ΟΦ[i]
Τέλος_επανάληψης
αθρ  0
Για i από 1 μέχρι 65
     αθρ  αθρ + ΟΦ[i]
Τέλος_επανάληψης
μο  αθρ/65
Εκτύπωσε μο
Για i από 1 μέχρι 65
     Αν ΟΦ[i] > 65/100*μο τότε
          Εκτύπωσε ΟΝ[i]
     Τέλος_αν
Τέλος_επανάληψης
Τέλος ασκ1σετ1

! αν ήθελε να δημιουργώ νέους πίνακες με τα ονόματα και τις
! οφειλές των μεγαλοοφειλετών (λειτουργία αντιγραφής), τότε:
! κ 
 0
! Για i από 1 μέχρι 65
!     Αν ΟΦ[i] > 65/100*μο τότε
!        ΟΝΜΕΓΟΦ [κ] 
 ΟΝ[i]
!        ΜΕΓΟΦ [κ] 
 ΟΦ[i]
!     Τέλος_αν
! Τέλος_επανάληψης
! Για i από 1 μέχρι κ
!    Εμφάνισε ΟΝΜΕΓΟΦ [i],ΜΕΓΟΦ [i]
! Τέλος_επανάληψης


2.
Αλγόριθμος ασκ2σετ1
Για i από 1 μέχρι 124
     Διάβασε ΖΑΡ1[i], ΖΑΡ2[i]
Τέλος_επανάληψης
πλδιπλ  0
Για i από 1 μέχρι 124
     Αν ΖΑΡ1[i] = ΖΑΡ2[i] τότε
         πλδιπλ  πλδιπλ + 1
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε πλδιπλ, πλδιπλ/124*100
πλ  0
Για i από 1 μέχρι 124
     Αν ΖΑΡ1[i] + ΖΑΡ2[i] > 8 τότε
         πλδιπλ  πλδιπλ + 1
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε πλ
Τέλος ασκ2σετ1


3.
Αλγόριθμος ασκ3σετ1
Για i από 1 μέχρι 125
     Διάβασε names[i]
Τέλος_επανάληψης
Για i από 1 μέχρι 125
     Αν names[i] = "Τάκης" τότε
         names[i]  "Δημήτρης"
     αλλιώς_αν names[i] = "Κώτσιος" τότε
         names[i]  "Κώστας"
     αλλιώς_αν names[i] = "Τζορτζίνιο" τότε
         names[i]  "Γιώργος"
     αλλιώς
         Αν names[i] = "Τζόνης" τότε
             names[i]  "Γιάννης"
         Τέλος_αν
     Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // names //
Τέλος ασκ3σετ1


4. 
Αλγόριθμος ασκ4σετ1
Δεδομένα // εκτ, πληθ, ον //  !δίνονται...
! ερωτ. α
minεκτ  εκτ[1]
χ1  ον[1]
Για i από 2 μέχρι 27
     Αν εκτ[i] < minεκτ τότε
         minεκτ  εκτ[i]
         χ1  ον[i]
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε χ1
! ερωτ. β
maxπλ  πληθ[1]
χ2  ον[1]
Για i από 2 μέχρι 27
     Αν πληθ[i] < minεκτ τότε
         minεκτ  πληθ[i]
         χ2  ον[i]
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε χ2
! ερωτ. γ
αθρ  0
Για i από 1 μέχρι 27
     αθρ  αθρ + πληθ[i]
Τέλος_επανάληψης
Εμφάνισε αθρ/27
Τέλος ασκ4σετ1


5.
Αλγόριθμος ασκ5σετ1
Για i από 1 μέχρι 22
     Διάβασε εισ[i], κατ[i]
Τέλος_επανάληψης
αθρ  εισ[1]
posmax  1
max  εισ[1]
posmin  1
min  εισ[1]
Για i από 1 μέχρι 22
     αθρ  αθρ + εισ[i]
     Αν εισ[i] < max τότε
         max  εισ[i]
         posmin  i
     Τέλος_αν
     Αν εισ[i] < max τότε
         max  εισ[i]
         posmin  i
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε αθρ/22
Εμφάνισε κατ[posmax], κατ[posmin] 

Τέλος ασκ5σετ1 

ΛΥΣΕΙΣ ΤΟΥ ΣΕΤ1 - ΕΚΜΑΘΗΣΗ ΤΩΝ 2D

1.
Αλγόριθμος ασκ1σετ1_2Δ
Δεδομένα // Α, Ν //
s  0
Για i από 1 μέχρι N
     Για j από 1 μέχρι N
          Αν i = j ή i = N + 1 - j τότε
               s  s + A[i, j]
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
Αποτελέσματα // s //
Τέλος ασκ1σετ1_2Δ

! θα μπορούσε κάποιος να
 γράψει χωρίς την Αν...τότε και:
! s  s + A[i,i] + A[i,N+1-i]

2.
Αλγόριθμος ασκ2σετ1_2D
Δεδομένα // A, N, M //
πλ1  0
πλ2  0
Για i από 1 μέχρι N
     Για j από 1 μέχρι M
          Αν A[i, j]  15 τότε
              πλ1  πλ1 + 1
          Τέλος_αν
          Αν A[i, j]  9 και A[i, j]  0 τότε
              πλ2  πλ2 + 1
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
ποσ1  πλ1/(N*M)
ποσ2  πλ2/(N*M)
Εμφάνισε ποσ1, '% πάνω από 15'
Εμφάνισε ποσ2, '% μεταξύ 0 και 9'
Τέλος ασκ2σετ1_2D


3.
Αλγόριθμος ασκ3σετ1_2D
Δεδομένα // A, N, M //
Αρχή_επανάληψης
       Διάβασε αρ
Μέχρις_ότου αρ  1 και αρ  M
max  A[1, αρ]                         ! αρχικοποίηση στο 1ο στοιχείο της στήλης
θέση  1
Για i από 2 μέχρι N
     Αν A[i, αρ] > max τότε
         max  A[i, αρ]
         θέση  i
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε max, θέση
Αρχή_επανάληψης
       Διάβασε αρ
Μέχρις_ότου αρ  1 και αρ  N
min  A[αρ, 1]                        ! αρχικοποίηση στο 1ο στοιχείο της γραμμής
θέση  1
Για j από 2 μέχρι M
     Αν A[αρ, j] < min τότε
         min  A[αρ, j]
         θέση  j
     Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε min, θέση
Τέλος ασκ3σετ1_2D


4. 
Αλγόριθμος ασκ4σετ1_2D
Δεδομένα // Α, Ν, Μ // 
Αρχή_επανάληψης
       Διάβασε αρ
Μέχρις_ότου αρ ≥ 1 και αρ ≤ Ν
αθρ ← 0
Για j από 1 μέχρι Μ
     αθρ ← αθρ + Α[αρ, j] 
Τέλος_επανάληψης
μο ← αθρ/Μ
Εκτύπωσε αθρ, μο

Τέλος ασκ4σετ1_2D

5. 
Αλγόριθμος ασκ5σετ1_2D
Δεδομένα // Π //
!ερώτημα α
αθρ16γρ  0
Για j από 1 μέχρι 60
     αθρ16γρ  αθρ16γρ + Π[16, j]
Τέλος_επανάληψης
Εκτύπωσε αθρ16γρ
!ερώτημα β
αθρ25στ  0
Για i από 1 μέχρι 60
     αθρ25στ  αθρ25στ + Π[i, 25]
Τέλος_επανάληψης
Εκτύπωσε αθρ25στ/60
!ερώτημα γ
min  Π[1, 1]
max  Π[1, 60]
Για i από 1 μέχρι 60
     Για j από 1 μέχρι 60
          Αν i = j και Π[i, j] < min τότε
               min  Π[i, j]
          Τέλος_αν
          Αν i = 61 - j και Π[i, j] > max τότε           !  i=N+1-j
               max  Π[i, j]
          Τέλος_αν
      Τέλος_επανάληψης
Τέλος_επανάληψης
Εκτύπωσε min, max
Τέλος ασκ5σετ1_2D

! για τα min και max, 2ος τρόπος:
! min ← Π[1,1]
! Για i από 1 μέχρι 60
!     Αν Π[i,i] < min τότε
!        min ← Π[i,i]
!     Τέλος_αν
! Τέλος_επανάληψης
! max ← Π[1,60]
! Για i από 1 μέχρι 60
!     Αν Π[i,61-i] > max τότε
!        max ← Π[i,61-i]
!     Τέλος_αν
! Τέλος_επανάληψης
! Εκτύπωσε min,max

6.
Αλγόριθμος ασκ6σετ1_2D
Δεδομένα // Α, Ν // 
αθρ1 ← 0
αθρ2 ← 0
Για i από 1 μέχρι Ν
     αθρ1 ← αθρ1 + Α[i, 1] + Α[i, Ν] 
     αθρ2 ← αθρ2 + Α[1, i] + Α[Ν, i] 
Τέλος_επανάληψης
Εκτύπωσε αθρ1, 'το άθροισμα της 1ης και τελευταίας στήλης'
Εκτύπωσε αθρ2, 'το άθροισμα της 1ης και τελευταίας γραμμής'

Τέλος ασκ6σετ1_2D 

7. 
Αλγόριθμος ασκ7σετ1_2D
Δεδομένα // A, M, N //
Για i από 1 μέχρι M
     s  0
     Για j από 1 μέχρι N
          s  s + A[i, j]
     Τέλος_επανάληψης
     SUM[i]  s          !δεν αποφεύγεται ο πίνακας,δε μπορώ να αρχικοποιήσω minsum
Τέλος_επανάληψης
minsum  SUM[1]
line  1
Για i από 2 μέχρι M
     Αν SUM[i] < minsum τότε
          minsum  SUM[i]
          line  i
     Τέλος_αν
Τέλος_επανάληψης
Εκτύπωσε line
Τέλος ασκ7σετ1_2D


8. 
Αλγόριθμος ασκ8σετ1_2D
Δεδομένα // Α, Ν, Μ //
max  Α[1, 1]
Για i από 1 μέχρι Ν
     Για j από 1 μέχρι Μ
          Αν Α[i, j] > max τότε
              max  Α[i, j]
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
found  Ψευδής
i  1
Όσο i  Ν και found = Ψευδής επανάλαβε
       j  1
       Όσο j  Μ και found = Ψευδής επανάλαβε
              Αν Α[i, j] = max τότε
                   found  Αληθής
                   line  i
                   column  j
                   Εκτύπωσε '1η εμφάνιση στη γραμμή:', line, 'και στη στήλη:', column
               Τέλος_αν
               j  j + 1
        Τέλος_επανάληψης
        i  i + 1
Τέλος_επανάληψης
found  Ψευδής
i  Ν
Όσο i  1 και found = Ψευδής επανάλαβε
       j  Μ
       Όσο j  1 και found = Ψευδής επανάλαβε
              Αν Α[i, j] = max τότε
                   found  Αληθής
                   line  i
                   column  j
                   Εκτύπωσε 'τελευταία στη γραμμή:', line, 'και στη στήλη:', column
              Τέλος_αν
              j  j - 1
        Τέλος_επανάληψης
        i  i - 1
Τέλος_επανάληψης
Για i από 1 μέχρι Ν
     Για j από 1 μέχρι Μ
          Αν Α[i, j] = max τότε
              Εκτύπωσε 'μέγιστο στη γραμμή:', i, 'και στήλη:', j
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος ασκ8σετ1_2D


9.
Αλγόριθμος ασκ9σετ1_2D
Δεδομένα // A //
Εκτύπωσε 'μέγιστα ανά στήλη:'
Για j από 1 μέχρι 80
     max  A[1, j]
     Για i από 2 μέχρι 40
          Αν A[i, j] > max τότε
              max  A[i, j]
          Τέλος_αν
     Τέλος_επανάληψης
     Εκτύπωσε max
Τέλος_επανάληψης
sum_all  0                               ! άθροισμα όλων των γραμμών του πίνακα
Εκτύπωσε 'άθροισμα ανά γραμμή:'
Για i από 1 μέχρι 40
     sum  0
     Για j από 1 μέχρι 80
          sum  sum + A[i, j]
     Τέλος_επανάληψης
     Εκτύπωσε sum
     sum_all  sum_all + sum
Τέλος_επανάληψης
γεν_μο  sum_all/3200
πλ  0
Για i από 1 μέχρι 40
     Για j από 1 μέχρι 80
          Αν A[i, j] < γεν_μο τότε
              Εκτύπωσε A[i, j]
              πλ  πλ + 1
          Τέλος_αν
      Τέλος_επανάληψης
Τέλος_επανάληψης
Εκτύπωσε πλ
Τέλος ασκ9σετ1_2D


10.
Αλγόριθμος ασκ10σετ1_2D
Δεδομένα // Π, Ν, Μ //
Για i από 1 μέχρι Ν
     min  Π[1, j]
     Για j από 1 μέχρι Μ
          Αν Π[i, j] < min τότε
               pos  j
          Τέλος_αν
     Τέλος_επανάληψης
     Για j από 1 μέχρι pos - 1
          Π[i, j]  min
     Τέλος_επανάληψης
Τέλος_επανάληψης
Αποτελέσματα // Π, Ν, Μ //
Τέλος ασκ10σετ1_2D


11.

Αλγόριθμος ασκ11σετ1_2D
Για i από 1 μέχρι 20
     Διάβασε π[i]
     Για j από 1 μέχρι 30
          Διάβασε θ[i, j]
     Τέλος_επανάληψης
Τέλος_επανάληψης
sum  0
Για i από 1 μέχρι 20
     Για j από 1 μέχρι 30
          sum  sum + θ[i, j]
     Τέλος_επανάληψης
Τέλος_επανάληψης
μεση  sum/600
Εκτύπωσε μεση
Για i από 1 μέχρι 20
     πλ  0
     Για j από 1 μέχρι 30
          Αν θ[i, j] > μεση τότε
              πλ  πλ + 1
          Τέλος_αν
     Τέλος_επανάληψης
     Εκτύπωσε πλ
Τέλος_επανάληψης
Τέλος ασκ11σετ1_2D


1 σχόλιο:

  1. Και πότε κάνουμε πίνακα κύριε;

    Υποθέστε ότι ο χρήστης του υπολογιστή εισάγει μια σειρά από πραγματικούς
    αριθμούς. Δεν γνωρίζουμε εκ των προτέρων πόσοι θα είναι οι αριθμοί, αλλά μόνο
    ένα μέγιστο πλήθος που μπορούμε να δεχτούμε. Μόλις τελειώσει η εισαγωγή δε-
    δομένων θέλουμε να εμφανίσουμε στην οθόνη τα παρακάτω αποτελέσματα:
    (α) Τον μεγαλύτερο και μικρότερο αριθμό
    (β) Τον 2ο και 3ο μεγαλύτερο αριθμό
    (γ) Τον μεσαίο αριθμό με κριτήριο την σειρά εισαγωγής
    (δ) Τον μεσαίο αριθμό με κριτήριο την ταξινόμησή τους
    (ε) Το άθροισμα των τετραγώνων τους.
    (στ) Την μέση τιμή τους (μέσος όρος)
    (ζ) Το ποσοστό των αριθμών που ήταν μεγαλύτεροι από τον μέσο όρο.
    (η) Όλους τους αριθμούς ταξινομημένους σε αύξουσα σειρά.
    (θ) Όλους τους αριθμούς με αντίστροφη σειρά απ' αυτήν που διαβάστηκαν.
    (ι) Πόσοι αριθμοί ήταν μεγαλύτεροι από 100 και πόσοι μικρότεροι
    (κ) Ο αριθμός με την μεγαλύτερη συχνότητα εμφάνισης (υποθέστε ακεραίους
    αριθμούς μόνο αλλά με άπειρες δυνατές τιμές)
    Σε ποιες από τις προηγούμενες περιπτώσεις θα χρειαστούμε πίνακα για την απο-
    θήκευση των αριθμών και σε ποιες μπορούμε να γράψουμε τον αλγόριθμο χωρίς πίνακα;
    Απάντηση
    (α) Όχι πίνακα. Μετά από κάθε εισαγωγή, αρκεί να θυμόμαστε τον μικρότερο και με-
    γαλύτερο απ' όσους έχουν εισαχθεί μέχρι εκείνη τη στιγμή.
    (β) Όχι πίνακα. Αρκεί να θυμόμαστε τους τρεις μεγαλύτερους μετά από κάθε εισαγω-
    γή.
    (γ) Πίνακας. Δεν χρειάζεται να θυμόμαστε όλους τους αριθμούς, αλλά τους μισούς
    πιο πρόσφατους. Προσέξτε ότι σε κάθε 2 καινούργιους αριθμούς που εισάγονται,
    μπορούμε να “ξεχνάμε” το πιο παλιό αριθμό. Το ποσό μνήμης που χρειαζόμαστε
    όμως εξαρτάται από το πλήθος των δεδομένων, οπότε δεν είναι φίλτρο.
    (δ) Πίνακας. Η ταξινόμηση απαιτεί πλήρη γνώση όλων των δεδομένων. Είναι αδύ-
    νατο να ξέρουμε ποιος αριθμός θα είναι μεσαίος, πριν κάνουμε την ταξινόμηση.
    (ε) Όχι πίνακα. Αρκεί να θυμόμαστε το άθροισμα των τετραγώνων των προηγούμενων
    αριθμών, χωρίς να ξέρουμε ποιοι ήταν οι αριθμοί.
    (στ) Όχι πίνακα. Αρκεί να προσθέτουμε τους αριθμούς που διαβάζουμε και ταυτόχρο-
    να να τους μετράμε.
    (ζ) Πίνακας. Τον μέσο όρο μπορούμε να τον ξέρουμε μόνο μετά το τέλος της εισα-
    γωγής. Για να βρούμε πόσοι αριθμοί ήταν μεγαλύτεροι από τον μέσο όρο πρέπει
    να σαρώσουμε όλα τα δεδομένα.
    (η) Πίνακας. Χωρίς πίνακα η ταξινόμηση είναι δυνατή μόνο σε πολύ ειδικές περι-
    πτώσεις (πχ ταξινόμηση με μέτρημα, εφόσον τα δεδομένα παίρνουν τιμές από πε-
    περασμένο σύνολο)
    (θ) Πίνακας.
    (ι) Όχι πίνακα. Αρκεί να έχουμε δύο μετρητές και να τους ενημερώνουμε μετά από
    κάθε εισαγωγή.
    (κ) Πίνακας. Εφόσον οι δυνατές τιμές των δεδομένων είναι άπειρες δεν μπορούμε
    να χρησιμοποιήσουμε την τεχνική του “μετρήματος”

    ΑπάντησηΔιαγραφή