Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Sudokuaaaaaa;
- type
- sd=1..9;
- sudoku=array[1..9,1..9] of sd;
- sk=set of 1..9;
- var
- sud:sudoku;
- p,q,r:integer;
- resen:boolean;
- function IspravnaVrsta(var s:sudoku;p:integer):boolean;
- var
- br:sk;
- i:integer;
- begin
- br:=br-br;
- IspravnaVrsta:=true;
- for i:=1 to 9 do
- begin
- if (s[p,i] in br) then
- begin
- IspravnaVrsta:=false;
- break;
- end
- else
- br:=br+[s[p,i]];
- end;
- end;
- function IspravnaKolona(s:sudoku;p:integer):boolean;
- var
- br:sk;
- i:integer;
- begin
- br:=br-br;
- IspravnaKolona:=true;
- for i:=1 to 9 do
- begin
- if (s[i,p] in br) then
- begin
- IspravnaKolona:=false;
- break;
- end
- else
- br:=br+[s[i,p]];
- end;
- end;
- function IspravnaSubmatrica(s:sudoku;a,b:integer):boolean;
- var
- i,j:integer;
- br:sk;
- begin
- IspravnaSubmatrica:=true;
- br:=br-br;
- for i:=a to a+2 do
- for j:=b to b+2 do
- begin
- if (s[i,j] in br) then
- begin
- IspravnaSubmatrica:=false;
- break;
- end
- else
- br:=br+[s[i,j]];
- end;
- end;
- procedure Unesisudoku(var s:sudoku);
- var
- i,j:integer;
- begin
- for i:=1 to 9 do
- for j:=1 to 9 do
- read(s[i,j]);
- end;
- begin
- Unesisudoku(sud);
- resen:=true;
- for p:=1 to 9 do
- begin
- if (IspravnaVrsta(sud,p)=false) then
- begin
- resen:=false;
- writeln('Greska u vrsti: ', p);
- end;
- if (IspravnaKolona(sud,p)=false) then
- begin
- resen:=false;
- writeln('Greska u koloni: ', p);
- end;
- end;
- for p:=0 to 2 do
- for q:=0 to 2 do
- if (IspravnaSubmatrica(sud,3*p+1,3*q+1)=false) then
- begin
- resen:=false;
- writeln('Greska u submatrici: ',3*p+1,' & ',3*q+1);
- end;
- if resen=true then writeln('Sudoku je resen!');
- readln(p);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement