Задача 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
- 315 reads
vedro-compota
Sun, 11/27/2022 - 13:27
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)