offline
- Springfield
- Moderator foruma
- 100%Milanista
- Information Technology
- Pridružio: 23 Avg 2008
- Poruke: 2634
- Gde živiš: Milan, Italy
|
Napisano: 31 Maj 2009 14:26
p0z svima... radim program u Turbo pascalu 7 i treba mi pomoc oko prepravljanja sledeceg koda, molim ako neko moze da mi pomogne u najkracem mogucem vremenu i da mi postavi citav kod kako treba ispravljen..... Hvala
Program radi za matrice reda n puta n. Treba da se ispravi kod da radi za matrice M puta N, tj. za bilo koju matricu koju korisnik unese.
program oblasti;
{nalazi kruzne putanje skakaca po sahovskoj tabli}
type niz1= array [1..8] of byte;
niz=array [1..8] of integer;
matrica= array [1..8] of niz;
var m,n,br,i,j:integer; x:matrica; v,k:niz; brres:longint;
procedure stampamatrice ( m,N:integer;x:matrica);
var i,j : integer;
begin
writeln;
for i:= 1 to m do
begin
for j:=1 to n do write (x[i,j]:3);
writeln;
end;
writeln;
end;
function inmat(i,j:integer):boolean;
begin
inmat:=(i>0)and(i<9)and(j>0)and(j<9);
end;
function brpolja(i,j:integer):integer;
var b,c:integer;
begin
b:=0;
for c:=1 to 8 do if inmat(i+v[c],j+k[c]) then
if x[i+v[c],j+k[c]]=0 then b:=b+1;
brpolja:=b;
end;
function krug(i,j:integer; x:matrica):boolean;
var kr:boolean; l:integer;
begin
kr:=false;
for l:=1 to 8 do if (x[i+v[l],j+k[l]]=1) then kr:=true;
krug:=kr;
end;
procedure skok(i,j,br:integer);
var l,h,w,a:integer; brsl,p:niz1;
begin
br:=br+1;x[i,j]:=br;
{stampamatrice(8,8,x);readln;}
if br<64 then
begin
for l:=1 to 8 do
begin
p[l]:=l;
if inmat(i+v[l],j+k[l]) then
if x[i+v[l],j+k[l]]=0
then brsl[l]:=brpolja(i+v[l],j+k[l]);
end;
for h:=1 to 7 do
for w:=h+1 to 8 do
if brsl[h]>brsl[w]
then begin
a:=p[h];p[h]:=p[w];p[w]:=a;
a:=brsl[h];brsl[h]:=brsl[w];brsl[w]:=a;
end;
for l:=1 to 8 do
begin
if (inmat(i+v[p[l]],j+k[p[l]]))
then if (x[i+v[p[l]],j+k[p[l]]]=0) then skok(i+v[p[l]],j+k[p[l]],br);
end;
x[i,j]:=0;
end
else
begin
brres:=brres+1;if (brres mod 20 =0) then writeln(brres);
if krug(i,j,x) then
begin
writeln(brres);
stampamatrice(8,8,x);readln;
end;
x[i,j]:=0;
end;
end;
begin
writeln('Pocetak');
br:=0;i:=1;j:=1;brres:=0;
v[1]:=-2;v[2]:=-1;v[3]:=1;v[4]:=2;v[5]:=2; v[6]:=1; v[7]:=-1;v[8]:=-2;
k[1]:=1; k[2]:=2; k[3]:=2;k[4]:=1;k[5]:=-1;k[6]:=-2;k[7]:=-2;k[8]:=-1;
skok(i,j,br);
stampamatrice(8,8,x);
readln;
end.
Puno bi mi znacilo ako bi mogao neko da mi pomogne i da prepravi kod
Dopuna: 03 Jun 2009 18:00
nema mi pomoci?
|