// PascalABC.NET 3.3, сборка 1634 от 14.02.2018 // Внимание! Если программа не работает, обновите версию!
procedure Fib(n:integer; var r:sequence of integer); begin if n<1 then exit; // нечего глупости задавать case n of 1: r:=Seq(1); 2: r:=Seq(1,1); else begin r:=Seq(1,1); var (p1,p2):=(1,1); var p:integer; loop n-2 do begin p:=p1+p2; r:=r+Seq(p); (p1,p2):=(p2,p) end end end end;
begin var s:sequence of integer; var n:=ReadInteger('n='); Fib(n,s); s.Println end.
begin repeat Writeln('*** очередной проход по циклу REPEAT'); Write('Введите натуральное число n: '); Readln(n); Writeln('*** введено ',n) until n>0; Writeln('*** вышли из REPEAT по условию ',n,' > 0 = ',n>0); m:=n; k:=10; Writeln('*** m=',m,', k=',k); Writeln ('*** проверка входа в цикл WHILE с условием ',m,' div 10<>0 = ', m div 10<>0); while m div 10<>0 do begin Writeln ('*** проход по циклу WHILE с условием ',m,' div 10<>0 = ', m div 10<>0); k:=k*10; m:=m div 10; Writeln('*** m=',m,', k=',k); end; Writeln('*** Цикл WHILE завершен'); m:=(2*k+n)*10+2; Writeln('Число с двойками = ',m); end.