Задача 22 Урок 13.1
Primary tabs
Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
var N, M, i ,c ,k :integer; f: boolean; begin writeln('vvedi massu elki N '); readln(N); M := 2; i := 1; // начало отсчета последовательности k := 1; // динамический построчный ограничитель ширины елки от одного до N c шагом +1 и -1 while(i <= N) do begin if((k <= M) and (not f) )then // увеличение елки. (not f) чтобы не вернуться в это условие при уменьшении елки begin c := 0; //внутриусловный посимвольный счетчик ширины елки repeat if(i <= N) then // когда достигнут максимум по массе елки закончить begin write(i, ' '); i := i + 1; // увеличиваем последовательность чисел c := c + 1; // увеличиваем ширину ветки елки на 1 (не мах) end; until (c = k); // условие выхода по отресовке ветки writeln(); k := k + 1; //увеличиваем ограничительную ширину строки на 1 end else // уменьшение елки begin c := 0; //внутриусловный посимвольный счетчик ширины елки repeat if(i <= N) then // когда достигнут максимум по массе елки закончить begin write(i, ' '); i := i + 1; // увеличиваем последовательность чисел c := c + 1; // увеличиваем ширину ветки елки на 1 (не мах) end; until (c = (k-2)); // (к-2) из за особеностей кода. условие выхода по отресовке ветки writeln(); k := k - 1; //уменьшаем ограничительную ширину строки на 1 f := true; // флаг чтобы не вернуться в условие по увеличению елки if(k=2) then // условие чтобы начать снова ёлку увеличивать(выйдя из уменьшения) begin f := false; M := M + 1; // увеличение елки на 1 после спуска end; end; end; readln(); end.
- Log in to post comments
- 5216 reads
jl8qy9kd_pro
Fri, 08/06/2021 - 13:16
Permalink
одним циклом
vedro-compota
Sun, 08/08/2021 - 12:53
Permalink
ждем решения задачки 21: http
ждем решения задачки 21: http://fkn.ktu10.com/?q=node/12709#comme...
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sat, 08/21/2021 - 17:04
Permalink
RE
jl8qy9kd_pro
Sat, 08/21/2021 - 17:06
Permalink
результат
vedro-compota
Sun, 08/22/2021 - 13:30
Permalink
if((k = c) and (f = true))
-- избежать дублирования, см. урок 9 задача 11 http://fkn.ktu10.com/?q=node/8539
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 08/22/2021 - 17:17
Permalink
RE
vedro-compota
Sun, 08/29/2021 - 13:19
Permalink
if((c > M) and (f = true))
-- нет зависимости от флага, перепроверить блок весь:
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Fri, 09/03/2021 - 12:58
Permalink
RE
vedro-compota
Sun, 09/05/2021 - 13:13
Permalink
попытать переписать блок:
попытать переписать блок:
перенеся его внутрь блока:
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 09/06/2021 - 16:09
Permalink
RE
vedro-compota
Wed, 09/08/2021 - 19:56
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)