Задача 21 урок 13.1
Primary tabs
Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами.
program zadacha21;
var i, j, n, m, p: integer;
x: boolean;
begin
writeln('Vvedite chislo N:');
readln(n);
m:=1;
i:=1;
p:=2;
x:=false;
repeat //цикл, который прогоняет строки
j:=1; //j - cчетчик коллчества символов в строке, обнуляем каждый проход цикла
while (j<=m) and (i<=n) do //цикл, печатающий строки
begin
write(i, ' ');
i:=i+1;
j:=j+1;
end;
writeln();
If x then //проверяем, увеличиваем строку или уменьшаем
m:=m-1
else
m:=m+1;
if m = p then //провряем, дошли до пользовательского значния или вернулись к 1
begin
x := true;
p:=p+1; //увеличивем максимальную строку каждой новой "елочки"
end;
if m = 1 then
x := false;
until i>=n;
readln();
end. - Log in to post comments
- 3525 reads
vedro-compota
Sun, 12/05/2021 - 13:40
Permalink
решить через 1 цикл for
решить через 1 цикл for
_____________
матфак вгу и остальная классика =)
Denisyndi
Tue, 12/07/2021 - 16:20
Permalink
Решение в один for
program zadacha21; var i, j, n, m, p: integer; x: boolean; begin writeln('Vvedite chislo N:'); readln(n); m:=1; j:=2; x:=false; for i:=1 to n do begin write(i,' '); p:=p+1; //считем коллисетсво напечатаных символов в строке if p=m then //делаем проверку, все ли символы введены в строке begin writeln(); p:=0; //обнуляем счетчик строки if x then // проверем, нужно добвить колличество символов в строку или уменьшить m:=m-1 else m:=m+1; end; if m=j then //проверяем когда строка достигла "вершины елки" begin x:=true; //меняем направленность j:=j+1; //увеличиваем "вершину" end; if m=1 then //проверяем если дошли до низа и меняем направеность x:=false; end; readln(); end.vedro-compota
Sun, 12/12/2021 - 13:14
Permalink
исправить форматирование
исправить форматирование
_____________
матфак вгу и остальная классика =)
Denisyndi
Wed, 12/15/2021 - 00:18
Permalink
Исправленное форматирование
program zadacha21; var i, j, n, m, p: integer; x: boolean; begin writeln('Vvedite chislo N:'); readln(n); m:=1; j:=2; x:=false; for i:=1 to n do begin write(i,' '); p:=p+1; //считем коллисетсво напечатаных символов в строке if p=m then //делаем проверку, все ли символы введены в строке begin writeln(); p:=0; //обнуляем счетчик строки if x then // проверем, нужно добвить колличество символов в строку или уменьшить m:=m-1 else m:=m+1; end; if m=j then //проверяем когда строка достигла "вершины елки" begin x:=true; //меняем направленность j:=j+1; //увеличиваем "вершину" end; if m=1 then //проверяем если дошли до низа и меняем направеность x:=false; end; readln(); end.vedro-compota
Sun, 12/19/2021 - 13:27
Permalink
форматирование
форматирование
_____________
матфак вгу и остальная классика =)