Урок 13.1 (Решенная задача номер 22)
Primary tabs
(Урок 13.1) (Решенная задача номер 22)
22)Пользователь передает целые положительные число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
var N,M, KLM, a,c,b,v: integer;
begin
writeln('vvedite cislo N');
readln(N);
M := 2;
KLM := M;
a := 1;
c := 1;
b := 0;
for N:= 1 to N do
begin
write(N, ' ');
if (v = 1) then
begin
a := a + 1;
if (a >= KLM) then
begin
writeln();
a := 1;
KLM := KLM - 1;
if (KLM = 1) then
begin
M := M;
KLM := M;
v := 0;
c := 2;
end;
end;
end
else
if (v = 0) then
begin
b := b + 1;
if (b = c) then
begin
writeln();
c := c + 1;
b := 0;
if (c > M) then
begin
M := M + 1;
c := 1;
v := 1;
end;
end;
end;
end;
end.
- Log in to post comments
- 2235 reads
vedro-compota
Sat, 10/03/2020 - 20:41
Permalink
используйте булевские
используйте булевские переменные для бинарных значений
_____________
матфак вгу и остальная классика =)
Romakip
Mon, 10/05/2020 - 15:47
Permalink
Исправленное решение
var N,M, KLM, ShetTrue,OzidaenayStroka,ShetFalse: integer; Flag : boolean; begin writeln('vvedite cislo N'); readln(N); M := 2; KLM := M; ShetTrue := 1; OzidaenayStroka := 1; ShetFalse := 0; for N:= 1 to N do begin write(N, ' '); if (Flag = True) then begin ShetTrue := ShetTrue + 1; if (ShetTrue >= KLM) then begin writeln(); ShetTrue := 1; KLM := KLM - 1; if (KLM = 1) then begin M := M; KLM := M; Flag := false; OzidaenayStroka := 2; end; end; end else begin ShetFalse := ShetFalse + 1; if (ShetFalse = OzidaenayStroka) then begin writeln(); OzidaenayStroka := OzidaenayStroka + 1; ShetFalse := 0; if (OzidaenayStroka > M) then begin M := M + 1; OzidaenayStroka := 1; Flag := True; end; end; end; end; end.