Решение задачи № 21 из главы 13.1.Выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M
Primary tabs
Пользователь передает целые положительные число N и M, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M чисел, то уменьшалась до 1.
program pascal_piramid_more_less;
var start_length_string
,max_length_string,last_carry_string,i,fix_number,piramid_length :integer;
begin
start_length_string := 1; // начальная длинна строки до переноса
last_carry_string := 0; // выведено с последнего переноса
max_length_string := 3; // максимальная длинна строки
fix_number := 1; // учитываем , что начальная длинна строки равна 1
piramid_length := 76; // количество элементов
for i:=1 to piramid_length do // выведем значения от 1 до 76
begin
write( i , ' ' );
last_carry_string +=1; // учтем что выведено один символ
if( max_length_string > fix_number ) then // выполняем блок 1 пока верно условие
begin
if ( last_carry_string >= start_length_string ) then // пора переносить строку
begin
writeln();// перенос строки
last_carry_string := 0; // после переноса сбрасываем счетчик
start_length_string +=1; // в следующий раз длинна строки увеличится на 1
fix_number +=1; // увеличиваем на 1
end;
end;
if( fix_number = max_length_string ) then // выполняем блок 2 пока верно условие
begin
if ( last_carry_string >= start_length_string ) then // пора переносить строку
begin
writeln(); // перенос строки
last_carry_string:= 0; // выведено с последнего переноса
start_length_string-=1; // уменьшаем ширину пирамиды на 1
if( start_length_string = 1 ) then // длинна достигла начального значения
fix_number := 1; // присваиваем начальное значение
end;
end;
end;
writeln();
readln();
end.- Log in to post comments
- 3324 reads
sergio
Sun, 05/03/2020 - 15:24
Permalink
Пользователь передает целые
.
sergio
Sun, 05/03/2020 - 15:25
Permalink
Вложенные циклы в Pascal
.