Advertisement
Guest User

Untitled

a guest
Feb 5th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. program Sudokuaaaaaa;
  2. type
  3. sd=1..9;
  4. sudoku=array[1..9,1..9] of sd;
  5. sk=set of 1..9;
  6. var
  7. sud:sudoku;
  8. p,q,r:integer;
  9. resen:boolean;
  10.  
  11. function IspravnaVrsta(var s:sudoku;p:integer):boolean;
  12. var
  13. br:sk;
  14. i:integer;
  15. begin
  16. br:=br-br;
  17. IspravnaVrsta:=true;
  18. for i:=1 to 9 do
  19. begin
  20. if (s[p,i] in br) then
  21. begin
  22. IspravnaVrsta:=false;
  23. break;
  24. end
  25. else
  26. br:=br+[s[p,i]];
  27. end;
  28. end;
  29.  
  30. function IspravnaKolona(s:sudoku;p:integer):boolean;
  31. var
  32. br:sk;
  33. i:integer;
  34. begin
  35. br:=br-br;
  36. IspravnaKolona:=true;
  37. for i:=1 to 9 do
  38. begin
  39. if (s[i,p] in br) then
  40. begin
  41. IspravnaKolona:=false;
  42. break;
  43. end
  44. else
  45. br:=br+[s[i,p]];
  46. end;
  47. end;
  48.  
  49. function IspravnaSubmatrica(s:sudoku;a,b:integer):boolean;
  50. var
  51. i,j:integer;
  52. br:sk;
  53. begin
  54. IspravnaSubmatrica:=true;
  55. br:=br-br;
  56. for i:=a to a+2 do
  57. for j:=b to b+2 do
  58. begin
  59. if (s[i,j] in br) then
  60. begin
  61. IspravnaSubmatrica:=false;
  62. break;
  63. end
  64. else
  65. br:=br+[s[i,j]];
  66. end;
  67. end;
  68.  
  69. procedure Unesisudoku(var s:sudoku);
  70. var
  71. i,j:integer;
  72. begin
  73. for i:=1 to 9 do
  74. for j:=1 to 9 do
  75. read(s[i,j]);
  76. end;
  77.  
  78. begin
  79. Unesisudoku(sud);
  80. resen:=true;
  81. for p:=1 to 9 do
  82. begin
  83. if (IspravnaVrsta(sud,p)=false) then
  84. begin
  85. resen:=false;
  86. writeln('Greska u vrsti: ', p);
  87. end;
  88. if (IspravnaKolona(sud,p)=false) then
  89. begin
  90. resen:=false;
  91. writeln('Greska u koloni: ', p);
  92. end;
  93. end;
  94. for p:=0 to 2 do
  95. for q:=0 to 2 do
  96. if (IspravnaSubmatrica(sud,3*p+1,3*q+1)=false) then
  97. begin
  98. resen:=false;
  99. writeln('Greska u submatrici: ',3*p+1,' & ',3*q+1);
  100. end;
  101. if resen=true then writeln('Sudoku je resen!');
  102. readln(p);
  103. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement