<span>uses graphABC;
function ris(x,y,r,n:integer):integer;
begin
if n=0 then ris:=0
else
begin
circle(x,y,r); dec(n);
ris:=ris(x+round((r-r/3)*cos(pi/3)),y-round((r-r/3)*sin(pi/3)),r div 3,n);
ris:=ris(x+round((r-r/3)*cos(2*pi/3)),y-round((r-r/3)*sin(2*pi/3)),r div 3,n);
ris:=ris(x+round((r-r/3)*cos(pi)),y-round((r-r/3)*sin(pi)),r div 3,n) ris:=ris(x+round((r-r/3)*cos(4*pi/3)),y-round((r-r/3)*sin(4*pi/3)),r div 3,n);
ris:=ris(x+round((r-r/3)*cos(5*pi/3)),y-round((r-r/3)*sin(5*pi/3)),r div 3,n);
ris:=ris(x+round((r-r/3)*cos(2*pi)),y-round((r-r/3)*sin(2*pi)),r div 3,n);
end
end;
var x,y:integer;
begin
x:=windowwidth div 2; y:=windowheight div 2;
ris(x,y,200,5);
end.</span>
Линейный алгоритм -- это описание действий, которые выполняются однократно в заданном порядке.
Циклический алгоритм -- это описание действий, которые повторяются указанное число раз или пока не выполнено заданное условие. (Перечень повторяющихся действий -- тело цикла)
Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо та, либо другая последовательность действий. Смешанный алгоритм -- это алгоритм, в котором могут соединиться разные виды алгоритмов. (Например, циклический и линейный)
Var A: Array of Integer; N: Integer; i: Integer; sum: Integer; Begin Randomize; Write('N = '); ReadLn(N); SetLength(A, N + 1); WriteLn('Массив:'); For i := 1 To N Do Begin A[i] := Random(50) - 25; Write(A[i] + ' '); End; WriteLn; WriteLn('Без отрицательных:'); For i := 1 To N Do Begin If A[i] >= 0 Then Write(A[i] + ' '); End; sum := 0; WriteLn; WriteLn('Среднее арифметическое:'); For i := 1 To N Do Begin sum := sum + A[i]; End; WriteLn(sum / N); <span>End.</span>
Const n=10; {Можно подставить любое число} var a:array[1..n] of integer; i,s:integer; begin randomize; for i:=1 to n do begin a[i]:=random(8)+1; {Массив заполняется числами от 1 до 9} write(a[i],' '); end; writeln; s:=0; for i:=1 to n do if (i mod 2)=0 then s:=s+a[i]; writeln(s); end.