ΠΡΟΓΡΑΜΜΑ SUDOKU
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,ΣΟΥ[81]
ΛΟΓΙΚΕΣ:ΠΙΑΣΜΕΝΕΣ[81]
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 81
ΠΙΑΣΜΕΝΕΣ[Ι] <-- ΨΕΥΔΗΣ
ΣΟΥ[Ι] <-- 0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΕΙΣΟΔΟΣ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
!Ευρεση λυσης
ΚΑΛΕΣΕ ΛΥΣΗ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
!Τελος Ευρεσης λυσης
ΚΑΛΕΣΕ ΕΜΦΑΝΙΣΗ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
ΓΡΑΨΕ 'Εκτελεση ξανα?'
ΓΡΑΨΕ '1.Οχι (οτιδηποτε αλλο=ναι)'
ΔΙΑΒΑΣΕ Ι
ΚΑΘΑΡΙΣΕ_ΟΘΟΝΗ
ΜΕΧΡΙΣ_ΟΤΟΥ Ι=1
ΚΛΕΙΣΕ_ΠΑΡΑΘΥΡΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΟΔΟΣ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Χ,Ι,Υ,ΑΡ,ΓΝ,ΣΟΥ[81]
ΛΟΓΙΚΕΣ:ΠΙΑΣΜΕΝΕΣ[81]
ΑΡΧΗ
ΓΡΑΨΕ_ 'Γνωστοι:'
ΔΙΑΒΑΣΕ ΓΝ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΓΝ
ΓΡΑΨΕ 'Στην θεση ( , ) βρισκεται ο αριθμος ( )'
ΠΗΓΑΙΝΕ_ΧΥ 12,Ι+1
ΔΙΑΒΑΣΕ Υ
ΠΗΓΑΙΝΕ_ΧΥ 14,Ι+1
ΔΙΑΒΑΣΕ Χ
ΠΗΓΑΙΝΕ_ΧΥ 38,Ι+1
ΔΙΑΒΑΣΕ ΑΡ
ΣΟΥ[Χ+(Υ-1)*9] <-- ΑΡ
ΠΙΑΣΜΕΝΕΣ[Χ+(Υ-1)*9] <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΛΥΣΗ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,ΠΑΡ,ΣΟΥ[81],Κ,ΟΘΟΝΗ
ΛΟΓΙΚΕΣ:ΕΠΙΤ,ΑΠΟΔ,ΠΙΑΣΜΕΝΕΣ[81]
ΑΡΧΗ
ΟΘΟΝΗ <-- ΘΕΣΗ_Υ+1
Ι <-- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΠΗΓΑΙΝΕ_ΧΥ 1,ΟΘΟΝΗ
ΓΡΑΨΕ 'Ολοκληρωθηκε (%):',Ι*100/81,' '
ΠΑΡ <-- ΣΟΥ[Ι]
ΕΠΙΤ <-- ΕΠΙΤΡΕΠΕΤΕ(Ι,ΠΙΑΣΜΕΝΕΣ)
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΠΟΔ <-- ΨΕΥΔΗΣ
ΑΝ ΕΠΙΤ=ΑΛΗΘΗΣ ΤΟΤΕ
ΠΑΡ <-- ΠΑΡ+1
ΑΝ ΠΑΡ<=9 ΤΟΤΕ
ΣΟΥ[Ι] <-- ΠΑΡ
ΑΠΟΔ <-- ΑΠΟΔΕΚΤΟ(ΣΟΥ,Ι)
ΑΝ ΑΠΟΔ=ΑΛΗΘΗΣ ΤΟΤΕ
Ι <-- Ι+1
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ΣΟΥ[Ι] <-- 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Ι <-- Ι-1
ΜΕΧΡΙΣ_ΟΤΟΥ ΠΙΑΣΜΕΝΕΣ[Ι]=ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
Ι <-- Ι+1
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠΟΔ=ΑΛΗΘΗΣ Η ΕΠΙΤ=ΨΕΥΔΗΣ Η ΠΑΡ>9
ΜΕΧΡΙΣ_ΟΤΟΥ Ι>81
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΑΠΟΔΕΚΤΟ(ΣΟΥ,Ι):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:ΣΟΥ[81],Ι,Κ,ΑΡ,ΦΟΡΕΣ,Θ,Θ1,ΠΕΡΙΟΧΗ[9],Χ
ΠΡΑΓΜΑΤΙΚΕΣ:Υ
ΛΟΓΙΚΕΣ:ΛΑΘΟΣ1,ΛΑΘΟΣ2,ΛΑΘΟΣ3
ΑΡΧΗ
ΛΑΘΟΣ1 <-- ΨΕΥΔΗΣ
ΛΑΘΟΣ2 <-- ΨΕΥΔΗΣ
ΛΑΘΟΣ3 <-- ΨΕΥΔΗΣ
!ΓΡΑΜΜΗ
Υ <-- Ι/9
ΑΝ Υ>Α_Μ(Υ) ΤΟΤΕ
Υ <-- Α_Μ(Υ)+1
ΤΕΛΟΣ_ΑΝ
Θ1 <-- (Α_Μ(Υ)-1)*9+1
Θ <-- (Α_Μ(Υ)-1)*9
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Θ <-- Θ+1
Κ <-- Θ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Κ <-- Κ+1
ΑΝ ΣΟΥ[Θ]=ΣΟΥ[Κ] ΚΑΙ ΣΟΥ[Θ]<>0 ΤΟΤΕ
ΛΑΘΟΣ1 <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Κ=Θ1+8 Η ΛΑΘΟΣ1=ΑΛΗΘΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Θ=Θ1+7 Η ΛΑΘΟΣ1=ΑΛΗΘΗΣ
!ΤΕΛΟΣ ΓΡΑΜΜΗ
!ΣΤΗΛΗ
ΑΝ ΛΑΘΟΣ1=ΨΕΥΔΗΣ ΤΟΤΕ
Χ <-- Ι-(Α_Μ(Υ)-1)*9-9
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Χ <-- Χ+9
Κ <-- Χ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Κ <-- Κ+9
ΑΝ ΣΟΥ[Χ]=ΣΟΥ[Κ] ΚΑΙ ΣΟΥ[Χ]<>0 ΤΟΤΕ
ΛΑΘΟΣ2 <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΛΑΘΟΣ2=ΑΛΗΘΗΣ Η Κ>=73 ΚΑΙ Κ<=81
ΜΕΧΡΙΣ_ΟΤΟΥ ΛΑΘΟΣ2=ΑΛΗΘΗΣ Η Χ>=64 ΚΑΙ Χ<=72
!ΤΕΛΟΣ ΣΤΗΛΗ
!ΠΕΡΙΟΧΗ
ΑΝ ΛΑΘΟΣ2=ΨΕΥΔΗΣ ΤΟΤΕ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 9
ΠΕΡΙΟΧΗ[Κ] <-- 0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ (Ι>=1 ΚΑΙ Ι<=3) Η (Ι>=10 ΚΑΙ Ι<=12) Η (Ι>=19 ΚΑΙ Ι<=21) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[1]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[2]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[3]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[10]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[11]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[12]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[19]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[20]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[21]
ΑΛΛΙΩΣ_ΑΝ (Ι>=4 ΚΑΙ Ι<=6) Η (Ι>=13 ΚΑΙ Ι<=15) Η (Ι>=22 ΚΑΙ Ι<=24) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[4]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[5]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[6]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[13]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[14]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[15]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[22]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[23]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[24]
ΑΛΛΙΩΣ_ΑΝ (Ι>=7 ΚΑΙ Ι<=9) Η (Ι>=16 ΚΑΙ Ι<=18) Η (Ι>=25 ΚΑΙ Ι<=27) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[7]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[8]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[9]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[16]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[17]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[18]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[25]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[26]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[27]
ΑΛΛΙΩΣ_ΑΝ (Ι>=28 ΚΑΙ Ι<=30) Η (Ι>=37 ΚΑΙ Ι<=39) Η (Ι>=46 ΚΑΙ Ι<=48) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[28]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[29]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[30]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[37]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[38]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[39]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[46]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[47]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[48]
ΑΛΛΙΩΣ_ΑΝ (Ι>=31 ΚΑΙ Ι<=33) Η (Ι>=40 ΚΑΙ Ι<=42) Η (Ι>=49 ΚΑΙ Ι<=51) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[31]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[32]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[33]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[40]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[41]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[42]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[49]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[50]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[51]
ΑΛΛΙΩΣ_ΑΝ (Ι>=34 ΚΑΙ Ι<=36) Η (Ι>=43 ΚΑΙ Ι<=45) Η (Ι>=52 ΚΑΙ Ι<=54) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[34]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[35]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[36]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[43]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[44]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[45]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[52]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[53]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[54]
ΑΛΛΙΩΣ_ΑΝ (Ι>=55 ΚΑΙ Ι<=57) Η (Ι>=64 ΚΑΙ Ι<=66) Η (Ι>=73 ΚΑΙ Ι<=75) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[55]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[56]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[57]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[64]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[65]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[66]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[73]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[74]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[75]
ΑΛΛΙΩΣ_ΑΝ (Ι>=58 ΚΑΙ Ι<=60) Η (Ι>=67 ΚΑΙ Ι<=69) Η (Ι>=76 ΚΑΙ Ι<=78) ΤΟΤΕ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[58]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[59]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[60]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[67]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[68]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[69]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[76]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[77]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[78]
ΑΛΛΙΩΣ
ΠΕΡΙΟΧΗ[1] <-- ΣΟΥ[61]
ΠΕΡΙΟΧΗ[2] <-- ΣΟΥ[62]
ΠΕΡΙΟΧΗ[3] <-- ΣΟΥ[63]
ΠΕΡΙΟΧΗ[4] <-- ΣΟΥ[70]
ΠΕΡΙΟΧΗ[5] <-- ΣΟΥ[71]
ΠΕΡΙΟΧΗ[6] <-- ΣΟΥ[72]
ΠΕΡΙΟΧΗ[7] <-- ΣΟΥ[79]
ΠΕΡΙΟΧΗ[8] <-- ΣΟΥ[80]
ΠΕΡΙΟΧΗ[9] <-- ΣΟΥ[81]
ΤΕΛΟΣ_ΑΝ
Ι <-- 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Ι <-- Ι+1
Κ <-- Ι
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Κ <-- Κ+1
ΑΝ ΠΕΡΙΟΧΗ[Ι]=ΠΕΡΙΟΧΗ[Κ] ΚΑΙ ΠΕΡΙΟΧΗ[Ι]<>0 ΤΟΤΕ
ΛΑΘΟΣ3 <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Κ=9 Η ΛΑΘΟΣ3=ΑΛΗΘΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Ι=8 Η ΛΑΘΟΣ3=ΑΛΗΘΗΣ
ΑΝ ΛΑΘΟΣ1=ΛΑΘΟΣ2 ΚΑΙ ΛΑΘΟΣ2=ΛΑΘΟΣ3 ΚΑΙ ΛΑΘΟΣ1=ΨΕΥΔΗΣ ΤΟΤΕ
ΑΠΟΔΕΚΤΟ <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΑΠΟΔΕΚΤΟ <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
!ΤΕΛΟΣ ΠΕΡΙΟΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΕΠΙΤΡΕΠΕΤΕ(Ι,ΠΙΑΣΜΕΝΕΣ):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι
ΛΟΓΙΚΕΣ:ΠΙΑΣΜΕΝΕΣ[81]
ΑΡΧΗ
ΑΝ ΠΙΑΣΜΕΝΕΣ[Ι]=ΑΛΗΘΗΣ ΤΟΤΕ
ΕΠΙΤΡΕΠΕΤΕ <-- ΨΕΥΔΗΣ
ΑΛΛΙΩΣ
ΕΠΙΤΡΕΠΕΤΕ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΕΜΦΑΝΙΣΗ(ΣΟΥ,ΠΙΑΣΜΕΝΕΣ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΣΟΥ[81],Κ,Ν,Υ
ΧΑΡΑΚΤΗΡΕΣ:Χ,Χ2
ΛΟΓΙΚΕΣ:ΠΙΑΣΜΕΝΕΣ[81]
ΑΡΧΗ
ΚΑΘΑΡΙΣΕ_ΟΘΟΝΗ
ΓΡΑΨΕ ' '
ΓΡΑΨΕ 'Λυση'
Ν <-- 1
Υ <-- 4
ΓΡΑΨΕ '==+====+====++===+====+====++===+====+====++'
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 81
Χ2 <-- '==+====+====++===+====+====++===+====+====++'
ΠΗΓΑΙΝΕ_ΧΥ Ν,Υ
ΑΝ ΠΙΑΣΜΕΝΕΣ[Κ]=ΨΕΥΔΗΣ ΤΟΤΕ
Χ <-- '|'
ΑΛΛΙΩΣ
Χ <-- '<'
ΤΕΛΟΣ_ΑΝ
ΑΝ Κ MOD 3=0 ΤΟΤΕ
Χ <-- Χ+'|'
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ_ ΣΟΥ[Κ],Χ
Ν <-- Ν+5
ΑΝ Κ MOD 9=0 ΤΟΤΕ
Υ <-- Υ+2
Ν <-- 1
ΠΗΓΑΙΝΕ_ΧΥ Ν-5,Υ-1
ΑΝ Υ=10 Η Υ=17 ΤΟΤΕ
ΓΡΑΨΕ Χ2
Υ <-- Υ+1
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ Χ2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ