Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program tablica;
- //skupljati poene ako se krece samo dolje ili desno
- //cilj je skupiti najvise poena u jednoj putanji
- { 2 5(7) 20(27) 3(30) 1(31) 10(41)
- 1(3) 3(10) 2(29) 4(34) 8(42) 4(46)
- 6(9) ....
- -> r | down ((m+(n-2))!)/((n-1)!*(m-1)!)
- ˇ m+n-2 nad n-1
- }
- {procedura za unos, stampu, formiranje za nove vrijednosti
- for j:=2 to n do A[1,j]=a[1,j-1]+a[1,j];
- for i:=2 to n do a[i,1]=a[i-1,1]+a[i,1];
- for i:=2 to m do
- for j:=2 to n do
- ---
- if a[i-1,j]>a[i,j-1]
- then a[i,j]:=a[i,j]+a[i-1,j]
- else a[i,j]:=a[i,j]+a[i,j-1]
- rezultat treba da bude d,d,d,d,d,r,r,r,r,d,r,da
- procedura m,n stalno pozivati sebe i stampa put (odnazad)
- }
- type
- niz=array[1..20]of integer;
- matrica=array[1..20]of niz;
- var
- m,n,l,k,r,t: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 noveVrijednosti(m,n:integer;var a:Matrica);
- var i,j:integer;
- begin
- for j:=2 to n do A[1,j]:=a[1,j-1]+a[1,j];
- for i:=2 to m do a[i,1]:=a[i-1,1]+a[i,1];
- for i:=2 to m do
- begin
- for j:=2 to n do
- begin
- if (a[i-1,j]>a[i,j-1])
- then a[i,j]:=a[i,j]+a[i-1,j]
- else a[i,j]:=a[i,j]+a[i,j-1];
- end;
- end;
- end;
- procedure StampaNiza (n:integer; x:niz);
- var i:integer;
- begin
- write('Elementi niza: ');
- for i:=1 to n-1 do write (x[i],',');
- writeln(x[n]);
- end;
- procedure koraciNiz(m,n:integer;a:matrica; var r,t,k:integer; var x:niz);
- begin
- if (r>1) or (t>1) then
- begin
- if (a[r-1,t]>a[r,t-1])
- then begin
- x[k]:=1;
- r:=r-1;
- K:=k-1;
- end
- else begin
- x[k]:=2;
- t:=t-1;
- k:=k-1;
- end;
- //StampaNiza(l,x);
- koraciNiz(m,n,a,r,t,k,x);
- end;
- end;
- procedure slova(l:integer; x:niz);
- var i:integer;
- begin
- for i:=1 to l do
- begin
- if x[i]=1 then write('D ')
- else write ('R ');
- end;
- writeln;
- end;
- begin
- UnosMatrice(m,n,a);
- StampaMatrice(m,n,a);
- noveVrijednosti(m,n,a);
- //StampaMatrice(m,n,a);
- l:=m+n-2;
- k:=l;
- r:=m;
- t:=n;
- koraciNiz(m,n,a,r,t,k,x);
- slova(l,x);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement