Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //za datu shemu 1-smjer puteva napisati program pomocu koga se odredjuje
- //moze li se iz grada i u grad j doci, i ako moze, naci duzinu puta
- program jednosmjerni;
- {
- aij= 1 ako postoji direktan put; 0 ako ne
- 1 0 0 0 1 0 0 1
- 2 0 0 0 0 0 1 0
- 3 0 1 0 0 1 0 0
- 4 0 0 1 0 0 0 0
- 5 0 1 0 0 0 0 0
- 6 1 0 0 0 0 0 0
- 7 0 0 0 0 1 0 0 (zanemarujemo glavnu dijagonalu)
- 1 0 0 2 1 2 0 1
- 2 0 0 0 0 0 1 0
- 3 0 1 0 0 1 0 0
- 4 0 0 1 0 0 0 0
- 5 0 1 0 0 0 0 0
- 6 1 0 0 0 0 0 0
- 7 0 0 0 0 1 0 0
- }
- type
- niz=array[1..20]of integer;
- matrica=array[1..20]of niz;
- var
- m,n,i,j,k:integer;
- // x,y,z:niz;
- a,b,c:matrica;
- procedure UnosMatrice(var m,n:integer; var a:matrica);
- var i,j:integer;
- begin
- write('Broj vrsta: ');
- readln(m);
- write('Broj kolona: ');
- readln(n);
- for i:=1 to m do
- begin
- for j:=1 to n do
- begin
- write('A[',i,';',j,']= ');
- readln(A[i,j]);
- writeln;
- end;
- end;
- end;
- procedure StampaMatrice(m,n:integer; A:matrica);
- var i,j:integer;
- begin
- writeln;
- for i:=1 to m do
- begin
- for j:=1 to n do
- begin
- write(A[i,j]:4);
- end;
- writeln;
- end;
- writeln;
- end;
- procedure noveVeze(n:integer; a:matrica;var b:matrica);
- //n broj gradova
- // a matrica direktnih puteva
- //b matrica puteva sa presjedanjima
- var broj:integer; nastavi:boolean;
- begin
- broj:=2;
- nastavi:=true;
- while nastavi do
- begin
- nastavi:=false;
- for i:=1 to n do
- begin
- for j:=1 to n do
- begin
- if(i<>j) and (b[i,j]=0)
- then
- begin
- for k:=1 to n do
- begin
- if (a[i,k]=1)and(b[k,j]=broj-1) then
- begin
- b[i,j]:=broj;
- nastavi:=true;
- end;
- end;
- end;
- end;
- end;
- broj:=broj+1;
- end;
- end;
- begin
- UnosMatrice(m,n,a);
- StampaMatrice(m,n,a);
- b:=a;
- noveVeze(n,a,b);
- StampaMatrice(n,n,b);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement