Урок 13.1 Задача 21
Primary tabs
Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
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
Решение:
program u13z21;
var i,j,k,N,M,t:integer;
begin
writeln('Vvedite chislo - N');
readln(N);
M:=2;
i:=1; //номер элемента по порядку
j:=1; //номер строки
k:=1;
t:=1;//номер элемента в строке
for i:=1 to N do
begin
write(i,' ');
if j=k then
begin
writeln();
j:=0;
if k=M then
begin
t:=0;
M:=M+1;
end;
if k=1 then
t:=1;
if t=1 then
k:=k+1;
if t=0 then
k:=k-1;
end;
j:=j+1;
end;
readln();
end.
Консоль:
Vvedite chislo - N 51 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 51
- Log in to post comments
- 1879 reads
vedro-compota
Wed, 06/01/2022 - 21:10
Permalink
if k=M then
-- выяснить какие условия выполняются одновременно, а какие нет - если непонятно см. задача 11 урок 9 http://fkn.ktu10.com/?q=node/8539
_____________
матфак вгу и остальная классика =)
avast36
Sat, 06/04/2022 - 13:26
Permalink
немного исправил
program u13z21; var i,j,k,N,M:integer; t:boolean; begin writeln('Vvedite chislo - N'); readln(N); writeln(); M:=1; // максимальное количество элементов в елочке i:=1; // номер элемента по порядку j:=1; // номер элемента в строке k:=1; // количество элементов в строке t:=TRUE; // переключатель возрастания/убывания for i:=1 to N do begin write(i,' '); if j=k then begin writeln(); j:=0; if k=M then begin t:=FALSE; M:=M+1; end; if k=1 then t:=TRUE; if t then k:=k+1 else k:=k-1; end; j:=j+1; end; readln(); end.vedro-compota
Sun, 06/05/2022 - 12:08
Permalink
if k=M then
-- не нужен ли тут else?
_____________
матфак вгу и остальная классика =)