!===========================================
! netnick
!===========================================
! Ελέγχει εάν ενας αριθμός έχει τα ψηφία του
! σε φθίνουσα - αυξουσα σειρα ενναλάξ συνεχώς.
! πχ. 54623 ΚΑΙ 272727272 ΚΑΙ 19281928
! \/\/\ /\/\/\/\/ /\/\/\/\
! (αποτέλεσμα ΑΛΗΘΗΣ = TRUE )
! ή όχι, πχ 1111, 1234, 54323 (αποτέλεσμα ΨΕΥΔΗΣ)
! ---- //// \\\\/
! α) ιδια ψηφια, β) μεγ-μεγ-... γ)μικρ-μικρ-μικρ...
! ΠΑΡΑΤΗΡΗΣΗ: ΠΙΣΤΕΥΩ ΟΤΙ Η ΑΣΚΗΣΗ ΞΕΦΕΥΓΕΙ
! ΑΠΟ ΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΒΙΒΛΙΟΥ ΚΑΙ ΤΩΝ ΠΑΝΕΛΛΗΝΙΩΝ
! ΤΟΥΛΑΧΙΣΤΟΝ ΟΠΩΣ ΔΙΑΤΥΠΩΝΕΤΑΙ ΕΔΩ.!
!===========================================
ΠΡΟΓΡΑΜΜΑ digits2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: number,d1,d2,face,count
ΛΟΓΙΚΕΣ: ισχύει
ΑΡΧΗ
ΓΡΑΨΕ_ 'ΔΩΣΕ ΑΡΙΘΜΟ ΓΙΑ ΕΛΕΓΧΟ: '
ΔΙΑΒΑΣΕ number
ΓΡΑΨΕ
count <-- 0
ισχύει <-- ΑΛΗΘΗΣ
d1 <-- number MOD 10
number <-- number DIV 10
!===========================================
! Η ΕΠΑΝΑΛΗΨΗ ....
! Όσο υπάρχουν ψηφία και ισχύει το ζητούμενο ...
ΟΣΟ ((number <> 0) ΚΑΙ (ισχύει = ΑΛΗΘΗΣ)) ΕΠΑΝΑΛΑΒΕ
d2 <-- number MOD 10
number <-- number DIV 10
! Εδώ βρίσκουμε εάν τα 2 πρώτα ψηφία είναι μικρό-μεγάλο (face <-- 1)
! ή ανάποδα (face <-- 2). Αυτή ή ΑΝ ... ΤΕΛΟΣ_ΑΝ θα εκτελεστεί μόνο την πρώτη φορά
! δηλαδή μόνο όταν το count είναι = με 0.
ΑΝ count = 0 ΤΟΤΕ
ΑΝ d1 < d2 ΤΟΤΕ
face <-- 1
ΑΛΛΙΩΣ_ΑΝ d1 > d2 ΤΟΤΕ
face <-- 0
ΑΛΛΙΩΣ
face <-- 2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
!Εάν πρίν ήταν μικρό-μεγάλο τώρα πρέπει να είναι ανάποδα
ΑΝ face = 1 ΤΟΤΕ
ΑΝ d1 >= d2 ΤΟΤΕ
ισχύει <-- ΨΕΥΔΗΣ
ΑΛΛΙΩΣ
d1 <-- d2
ΤΕΛΟΣ_ΑΝ
! αλλιώς εάν ήταν μεγάλο-μικρό τωρα πρέπει να ακολουθεί μεγάλο.
ΑΛΛΙΩΣ_ΑΝ face = 0 ΤΟΤΕ
ΑΝ d1 <= d2 ΤΟΤΕ
ισχύει <-- ΨΕΥΔΗΣ
ΑΛΛΙΩΣ
d1 <-- d2
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ισχύει <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
face <-- 1 - face
count <-- count +1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!===========================================
ΑΝ ισχυει ΤΟΤΕ
ΓΡΑΨΕ 'ΝΑΙ ΤΑ ΨΗΦΙΑ ΕΙΝΑΙ ΕΝΑΛΛΑΞ, μικρο-ΜΕΓΑΛΟ Ή ΜΕΓΑΛΟ-μικρο'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΟΧΙ τα ψηφία ΔΕΝ ειναι εναλλαξ, μικρο-ΜΕΓΑΛΟ Ή ΜΕΓΑΛΟ-μικρο'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ