Задача 21 Урок 13
Primary tabs
Пользователь передает целое положительное число N, выведете на экран
последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например,
для N=49 получим (смотри консоль):
var n, m, c, d, k : integer;
e : boolean;
begin
c := 1;
writeln('Vvedite celoe polozhitelnoe chislo');
readln(n);
m := 1;
d := 0;
e := true;
k := 2;
if n > 0 then
begin
for c := 1 to n do
begin
write(c, ' ');
d := d + 1;
if d > (m - 1) then
begin
writeln();
if e and (m = k) then
e := not e
else if not e and (m = 1) then
begin
e := not e;
k := k + 1;
end;
if e then
m := m + 1
else if not e then
m := m - 1;
d := 0;
end;
end;
end
else
writeln ('Error!');
end.
КОНСОЛЬ
Vvedite celoe polozhitelnoe chislo 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
- Log in to post comments
- 1943 reads
vedro-compota
Wed, 11/03/2021 - 18:47
Permalink
if d > (m - 1) then
логичнее было бы написать
-- проверить
_____________
матфак вгу и остальная классика =)
Vitaliy123
Wed, 11/03/2021 - 18:51
Permalink
Проверил d = m - всё работает
var n, m, c, d, k : integer; e : boolean; begin c := 1; writeln('Vvedite celoe polozhitelnoe chislo'); readln(n); m := 1; d := 0; e := true; k := 2; if n > 0 then begin for c := 1 to n do begin write(c, ' '); d := d + 1; if d = m then begin writeln(); if e and (m = k) then e := not e else if not e and (m = 1) then begin e := not e; k := k + 1; end; if e then m := m + 1 else if not e then m := m - 1; d := 0; end; end; end else writeln ('Error!'); end.КОНСОЛЬ