Code:
program varijacije_sa_pon;
type niz=array[1..10] of integer;
var
x,y,z:niz;
nn,kk,i,br:integer;
procedure stampaniza(n:integer;a:niz);
var
i:integer;
begin
for i:=1 to n do
write(a[i]);
writeln;
end;
function jednaki (n:integer;x,y:niz):boolean;
begin
jednaki:=true;
for i:=1 to n do
if x[i]<>y[i] then
begin
jednaki:=false;
break;
end;
end;
procedure sledeca_var(n,k:integer;var x:niz);
var
i,j:integer;
begin
i:=k;
while ((x[i]=n)and(i>0)) do
i:=i-1;
x[i]:=x[i]+1;
for j:=i+1 to n do
x[j]:=1;
end;
begin
write('n=');
readln(nn);
write('k=');
readln(kk);
br:=1;
for i:=1 to kk do
begin
x[i]:=1;
y[i]:=nn;
end;
while not jednaki(kk,x,y) do
begin
stampaniza(kk,x);
sledeca_var(nn,kk,x);
br:=br+1;
end;
stampaniza(kk,x);
writeln('Broj varijacija sa ponavljanjem: ',br);
readln;
end.
program varijacije_sa_pon;
type niz=array[1..10] of integer;
var
x,y,z:niz;
nn,kk,i,br:integer;
procedure stampaniza(n:integer;a:niz);
var
i:integer;
begin
for i:=1 to n do
write(a[i]);
writeln;
end;
function jednaki (n:integer;x,y:niz):boolean;
begin
jednaki:=true;
for i:=1 to n do
if x[i]<>y[i] then
begin
jednaki:=false;
break;
end;
end;
procedure sledeca_var(n,k:integer;var x:niz);
var
i,j:integer;
begin
i:=k;
while ((x[i]=n)and(i>0)) do
i:=i-1;
x[i]:=x[i]+1;
for j:=i+1 to n do
x[j]:=1;
end;
begin
write('n=');
readln(nn);
write('k=');
readln(kk);
br:=1;
for i:=1 to kk do
begin
x[i]:=1;
y[i]:=nn;
end;
while not jednaki(kk,x,y) do
begin
stampaniza(kk,x);
sledeca_var(nn,kk,x);
br:=br+1;
end;
stampaniza(kk,x);
writeln('Broj varijacija sa ponavljanjem: ',br);
readln;
end.