Заранее ! 21.ниже записан рекурсивный алгоритм f. procedure f(n: integer); begin writeln(n); if n < 4 then begin f(n + 1); f(n + 3) end end чему равна сумма всех чисел, напечатанных на экране при выполнении вызова f(1)?
Линейный алгоритм если в алгоритме присутствует условие,то это алгоритм называется разветвляющийся(ветвление), Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий алгоритм в котором действия повторяются многократно называется циклический Циклический алгоритм — описание действий, которые должны по вторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла.
//1 Var a,b,z:integer; function max(a,b:integer):integer; begin if a>b then max:=a else max:=b; end;
begin read(a,b); z:=max(a,2*b)*max(2*a-b,b); writeln(z); end.
//2(если имеются в виду чётные по индексу) Const n=5;
Var ar:array[1..n] of integer; i,r:integer; begin writeln('Array:'); for i:=1 to n do begin readln(ar[i]); if not(odd(i)) then r:=r+ar[i]; end; writeln(r); end.
//2(если имеются в виду чётные по значению) Const n=5; Var ar:array[1..n] of integer; i,r:integer; begin writeln('Array:'); for i:=1 to n do begin readln(ar[i]); if not(odd(ar[i])) then r:=r+ar[i]; end; writeln(r); end.
//3 Const n=2; m=3;
Var ar:array[1..n,1..m] of integer; i,j:integer; begin writeln('Matrix:'); for i:=1 to n do for j:=1 to m do begin readln(ar[i,j]); if ar[i,j]<0 then ar[i,j]:=0; end; writeln('Final matrix:'); for i:=1 to n do begin for j:=1 to m do write(ar[i,j]:4); writeln; end; end.
//4(не знаю на сколько это похоже на паркет) uses GraphABC; Const r=30; Var i,x,y:integer; begin x:=300; y:=300; maximizewindow; circle(x,y+r,r); floodfill(x,y+r,clPurple); circle(x,y-r,r); floodfill(x,y-r,clPurple); circle(x+r,y+r,r); floodfill(x+r,y+r,clPurple); circle(x-r,y-r,r); floodfill(x-r,y-r,clPurple); circle(x-r,y+r,r); floodfill(x-r,y+r,clPurple); circle(x+r,y-r,r); floodfill(x+r,y-r,clPurple); end.
//5 uses GraphABC;
Var i,x,y:integer; begin maximizewindow; Setbrushstyle(bsClear); setpencolor(clBlue); circle(300,300,15); setpencolor(clyellow); circle(315,315,15); setpencolor(clBlack); circle(330,300,15); setpencolor(clGreen); circle(345,315,15); setpencolor(clRed); circle(360,300,15); end.
//6 uses GraphABC;
Var x,y,i:integer; begin x:=0; y:=windowheight; window.Width:=windowheight; while x+10<windowwidth do begin line(x,y,x+5,y-5); line(x+5,y-5,x+10,y); line(x+10,y,x,y); sleep(10); clearwindow; inc(x); dec(y); end; line(x,y,x+5,y-5); line(x+5,y-5,x+10,y); line(x+10,y,x,y); end.
если в алгоритме присутствует условие,то это алгоритм называется разветвляющийся(ветвление), Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий
алгоритм в котором действия повторяются многократно называется циклический
Циклический алгоритм — описание действий, которые должны по вторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла.
Var
a,b,z:integer;
function max(a,b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
begin
read(a,b);
z:=max(a,2*b)*max(2*a-b,b);
writeln(z);
end.
//2(если имеются в виду чётные по индексу)
Const
n=5;
Var
ar:array[1..n] of integer;
i,r:integer;
begin
writeln('Array:');
for i:=1 to n do
begin
readln(ar[i]);
if not(odd(i)) then r:=r+ar[i];
end;
writeln(r);
end.
//2(если имеются в виду чётные по значению)
Const
n=5;
Var
ar:array[1..n] of integer;
i,r:integer;
begin
writeln('Array:');
for i:=1 to n do
begin
readln(ar[i]);
if not(odd(ar[i])) then r:=r+ar[i];
end;
writeln(r);
end.
//3
Const
n=2;
m=3;
Var
ar:array[1..n,1..m] of integer;
i,j:integer;
begin
writeln('Matrix:');
for i:=1 to n do
for j:=1 to m do
begin
readln(ar[i,j]);
if ar[i,j]<0 then ar[i,j]:=0;
end;
writeln('Final matrix:');
for i:=1 to n do
begin
for j:=1 to m do
write(ar[i,j]:4);
writeln;
end;
end.
//4(не знаю на сколько это похоже на паркет)
uses
GraphABC;
Const r=30;
Var
i,x,y:integer;
begin
x:=300;
y:=300;
maximizewindow;
circle(x,y+r,r);
floodfill(x,y+r,clPurple);
circle(x,y-r,r);
floodfill(x,y-r,clPurple);
circle(x+r,y+r,r);
floodfill(x+r,y+r,clPurple);
circle(x-r,y-r,r);
floodfill(x-r,y-r,clPurple);
circle(x-r,y+r,r);
floodfill(x-r,y+r,clPurple);
circle(x+r,y-r,r);
floodfill(x+r,y-r,clPurple);
end.
//5
uses
GraphABC;
Var
i,x,y:integer;
begin
maximizewindow;
Setbrushstyle(bsClear);
setpencolor(clBlue);
circle(300,300,15);
setpencolor(clyellow);
circle(315,315,15);
setpencolor(clBlack);
circle(330,300,15);
setpencolor(clGreen);
circle(345,315,15);
setpencolor(clRed);
circle(360,300,15);
end.
//6
uses
GraphABC;
Var
x,y,i:integer;
begin
x:=0;
y:=windowheight;
window.Width:=windowheight;
while x+10<windowwidth do
begin
line(x,y,x+5,y-5);
line(x+5,y-5,x+10,y);
line(x+10,y,x,y);
sleep(10);
clearwindow;
inc(x);
dec(y);
end;
line(x,y,x+5,y-5);
line(x+5,y-5,x+10,y);
line(x+10,y,x,y);
end.