Задача 21 Урок 13.1
Primary tabs
Пользователь передает целые положительные число N и M, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M чисел, то уменьшалась до 1. Например, для M=3 и N=25 получим:
var N, M, i ,c ,k :integer; f: boolean; begin writeln('vvedi massu elki N '); readln(N); writeln('vvedi shiriny M '); readln(M); 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 // условие чтобы начать снова ёлку увеличивать(выйдя из уменьшения) f := false; end; end; readln(); end.
- Log in to post comments
- 4484 reads
vedro-compota
Tue, 08/03/2021 - 18:36
Permalink
первый цикл отвечает за
перепишите чтобы внутри основного цикла был один цикл, а не два.
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Fri, 08/06/2021 - 13:10
Permalink
Сразу сделал одним циклом
vedro-compota
Sun, 08/08/2021 - 12:52
Permalink
1) форматирование
1) форматирование
2) переменные одни и те же должны быть записаны в одном регистре
3) проверить комментарии
4) комментарии ко всем переменным
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 08/08/2021 - 20:34
Permalink
RE
vedro-compota
Tue, 08/17/2021 - 20:40
Permalink
if(k
1)
не очень ясный комментарий
-- на самом деле условие для дальнейшего уменьшения длины строки это:
или
2) k := L * 2; -- усложнение.
3) Печать числа на каждой итерации, без условий
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sat, 08/21/2021 - 15:32
Permalink
RE
vedro-compota
Sun, 09/05/2021 - 13:08
Permalink
if((k = c) and (f = true))
-- переписать оптимальнее (перейти на вложенные блоки)
-- условно засчитана, решаем: http://fkn.ktu10.com/?q=node/12724
_____________
матфак вгу и остальная классика =)