Задача 18 Урок 13.1
Primary tabs
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух):
8 10 3 10 12 14 3 16 18 20 22 3....3....и т.д.ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
Решите всеми тремя способами.
Вер1(вложенный цикл):
program task18v1;
var n,a,i,m: integer;
begin
a:=8;
writeln('Vvedite N bolwe ili ravno 8 u M');
readln(n);
readln(m);
if (n>=8) then
begin
while (a<=n) do
begin
for i:=1 to m do
begin
write (a,' ');
a:=a+2;
if (a>n) then
break
end;
if (a<=n) then
write (3,' ');
m:=m+1;
end;
end
else
writeln('owibka');
readln();
end. Вер2(используя делимость):
program task18v2;
var n,a,i,m: integer;
begin
a:=8;
i:=0;
writeln('Vvedite N bolwe ili ravno 8 u M');
readln(n);
readln(m);
if (n>=8) then
begin
while (a<=n) do
begin
write (a,' ');
a:=a+2;
i:=i+1;
if (i mod M=0) then
begin
write (3,' ');
M:=M+1;
i:=0;
end
end;
end
else
writeln('owibka');
readln();
end. Вер 3(без делимости одним циклом)
program task18v3;
var n,a,i,m: integer;
begin
a:=8;
i:=0;
writeln('Vvedite N bolwe ili ravno 8 u M');
readln(n);
readln(m);
if (n>=8) then
begin
while (a<=n) do
begin
write (a,' ');
a:=a+2;
i:=i+1;
if (i=M) then
begin
write (3,' ');
M:=M+1;
i:=0;
end
end;
end
else
writeln('owibka');
readln();
end. - Log in to post comments
- 666 reads
vedro-compota
Sun, 11/27/2022 - 13:27
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)