PawelG: Różnice pomiędzy wersjami
Z Lem
Linia 9: | Linia 9: | ||
'''unit''' DrukujA: '''procedure'''; | '''unit''' DrukujA: '''procedure'''; | ||
'''var''' j: integer | '''var''' j: integer | ||
− | + | '''begin''' | |
writeln | writeln | ||
− | + | '''end''' DrukujA; | |
− | + | '''unit''' F: '''procedure'''; | |
'''var''' i: integer; | '''var''' i: integer; | ||
− | + | '''begin''' | |
'''if''' k=n+1 '''then''' | '''if''' k=n+1 '''then''' | ||
'''call''' DrukujA; licz := licz+1 | '''call''' DrukujA; licz := licz+1 | ||
Linia 28: | Linia 28: | ||
'''fi'''; | '''fi'''; | ||
'''return''' | '''return''' | ||
− | + | '''end''' F; | |
'''begin''' | '''begin''' | ||
readln(n); | readln(n); |
Wersja z 12:05, 16 mar 2020
Poniżej znajdziesz niewielki program.
- Czy potrafisz odgadnąc co ten program robi i sformułować odpowiednie twierdzenie?
- 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: procedure; var i: integer; begin if k=n+1 then call DrukujA; licz := licz+1 else for i:= 1 to n do if A[i]=0 then A[i] := k; k := k+1; call F; k := k-1; A[i]:=0 fi; od; fi; return 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