1η Λύση
ΠΡΟΓΡΑΜΜΑ ΣΑΡΩΣΗ_ΠΙΝΑΚΑ1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α1, Β1, Α2, Β2, Ι, Ξ, Α[3, 4]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 4
ΔΙΑΒΑΣΕ Α[Ι, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α1, Β1 !υποθέτουμε ότι το δεύτερο στοιχείο
!βρίσκεται μετά το πρώτο μέσα στον πίνακα
ΔΙΑΒΑΣΕ Α2, Β2
ΑΝ Α1 = Α2 ΤΟΤΕ ! αν τα στοιχεία βρίσκονται στην ίδια γραμμή
ΓΙΑ Ξ ΑΠΟ Β1 ΜΕΧΡΙ Β2
ΓΡΑΨΕ Α[Α1, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ ! αν τα στοιχεία βρίσκονται σε διαφορετική γραμμή
ΓΙΑ Ξ ΑΠΟ Β1 ΜΕΧΡΙ 4
ΓΡΑΨΕ Α[Α1, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ Α1 + 1 ΜΕΧΡΙ Α2 - 1
ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ Α[Ι, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ Β2
ΓΡΑΨΕ Α[Α2, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΑΡΩΣΗ_ΠΙΝΑΚΑ1
2η Λύση
ΠΡΟΓΡΑΜΜΑ
ΣΑΡΩΣΗ_ΠΙΝΑΚΑ2 !για κάθε στοιχείο του πίνακα ελέγχει αν βρίσκεται
! μέσα στα όρια που θέλουμε
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ι, κ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[3, 4], αποτελ
ΑΡΧΗ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 4
ΔΙΑΒΑΣΕ ΠΙΝ[ι, κ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ εμφ1(ΠΙΝ)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΑΡΩΣΗ_ΠΙΝΑΚΑ2
ΔΙΑΔΙΚΑΣΙΑ εμφ1(ΠΙΝ)
αντί
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: αρ1, αρ2, αρ3, αρ4, ι, κ, ψ, ξ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[3, 4]
ΑΡΧΗ
ΔΙΑΒΑΣΕ αρ1, αρ2, αρ3, αρ4 !Α1, Β1, Α2, Β2
ΓΙΑ ψ ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 4
ΑΝ ψ = αρ1 ΚΑΙ ξ >= αρ2 ΚΑΙ αρ1 <> αρ3 ΤΟΤΕ
ΓΡΑΨΕ ΠΙΝ[αρ1, ξ]
ΑΛΛΙΩΣ_ΑΝ ψ <> αρ1 ΚΑΙ ψ <> αρ3 ΚΑΙ ψ > αρ1 ΚΑΙ ψ < αρ3 ΤΟΤΕ
ΓΡΑΨΕ ΠΙΝ[ψ, ξ]
ΑΛΛΙΩΣ_ΑΝ ψ = αρ3 ΚΑΙ ξ <= αρ4 ΚΑΙ αρ1 <> αρ3 ΤΟΤΕ
ΓΡΑΨΕ ΠΙΝ[αρ3, ξ]
ΑΛΛΙΩΣ_ΑΝ αρ1 = αρ3 ΚΑΙ ξ >= αρ2 ΚΑΙ ξ <= αρ4 ΚΑΙ ψ = αρ1 ΤΟΤΕ
ΓΡΑΨΕ ΠΙΝ[ψ, ξ]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ εμφ1
3η Λύση
ΠΡΟΓΡΑΜΜΑ
ΣΑΡΩΣΗ_ΠΙΝΑΚΑ3 !αντιμετωπίζει τον πίνακα σαν μονοδιάστατο
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[3, 4], Ι, Ξ, Α1, Β1, Α2, Β2, Κ, Λ, Χ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 4
ΔΙΑΒΑΣΕ Α[Ι, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α1, Β1, Α2, Β2
Κ <- (Α1 - 1)*4 + Β1
Λ <- (Α2 - 1)*4 + Β2
ΓΙΑ Χ ΑΠΟ Κ ΜΕΧΡΙ Λ
Ι <- (Χ - 1) div 4 + 1
Ξ <- Χ mod 4
ΑΝ Ξ = 0 ΤΟΤΕ
Ξ <- 4
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ Α[Ι, Ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΑΡΩΣΗ_ΠΙΝΑΚΑ3