PawelG

Z Lem
Skocz do: nawigacji, wyszukiwania

Poniżej znajdziesz niewielki program.

  1. Czy potrafisz odgadnąc co ten program robi i sformułować odpowiednie twierdzenie?
  2. Czy potrafisz je udowodnić?


program PawelG;\ \ (* autor Paweł Gburzyński, 1983, \cite{Zabo83}\ \ *)    
  var A: arrayof integer; 
  var n, k,   j, licz: integer ;  
  unit DrukujA:  procedure;  
     var j: integer 
begin  
     writeln  
end DrukujA;     
  unit F: \textbf{procedure};
     var i: integer;  
  \textbf{begin}  
     \textbf{if} k=n+1 \textbf{then}  
          \textbf{call} DrukujA; \ licz := licz+1  
     \textbf{else}  
        \textbf{for} i:= 1 \textbf{to} n  
        \textbf{do}  
          \textbf{if} A[i]=0 \textbf{then}  
             A[i] := k; k := k+1;  
             \textbf{call} F;             
             k := k-1; A[i]:=0  
          \textbf{fi};  
        \textbf{od};  
     \textbf{fi};\ \  \textbf{return} 
  \textbf{end} F;  

begin

  readln(n);  
  array A dim(1:n);  
  for j := 1 to n do A[j] := 0 od;  
  k :=1;
  licz:=0;  
  call F;  
  writeln(Bywaj``)  

end PawelG