Задача 4 Урок 13.2
Primary tabs
В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:
---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++Задание: визуализируйте на счетах введенное пользователем число.
Примеры:
Пользователь вводит: 7
Получаем:---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ +++++++---+++Пользователь вводит: 28
Получаем:---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ++---++++++++ ++++++++---++ользователь вводит: 1984
Получаем:---++++++++++ ---++++++++++ ---++++++++++ +---+++++++++ +++++++++---+ ++++++++---++ ++++---++++++Пользователь вводит: 2021
А наша программа отвечает:--++++++++++ ---++++++++++ ---++++++++++ ++---++++++++ ---++++++++++ ++---++++++++ +---+++++++++
var B, A, i, N, k: integer;
begin
writeln('vvedi ');
readln(i);
B := 0; // записывается остаток на итерации для IF (для числа 302 набор остатков 0.0.0.0.3.0.2)
N := i;
for A := 7 downto 1 do // цикл перебора 7ми спиц на счетах
begin
k := 0; //счетчик по перебору остатков в репите(по результату последнего отрисовка)
i := N; // восстанавливаем введеное пользователем число
repeat // перебираем остатки от введеного числа. с каждой итерацией FOR, цикл репит уменьшается.
B := i mod 10;
i := i div 10 ;
k := k + 1;
until(k = A) ; // А - уменьшается с каждым циклом не давая оставаться одному и тому же остатку постоянно.
if(B = 0) then
write('---++++++++++')
else if(B = 1) then
write('+---+++++++++')
else if(B = 2) then
write('++---++++++++')
else if(B = 3) then
write('+++---+++++++')
else if(B = 4) then
write('++++---++++++')
else if(B = 5) then
write('+++++---+++++')
else if(B = 6) then
write('++++++---++++')
else if(B = 7) then
write('+++++++---+++')
else if(B = 8) then
write('++++++++---++')
else if(B = 9) then
write('+++++++++---+');
writeln();
end;
readln();
end.
- Log in to post comments
- 4661 reads
vedro-compota
Tue, 08/03/2021 - 10:15
Permalink
проверить форматирование
проверить форматирование
_____________
матфак вгу и остальная классика =)
sergio
Tue, 08/03/2021 - 13:40
Permalink
не обьявлена переменная "с"
не обьявлена переменная "с"
наверное ,бесконечный цикл будет
vedro-compota
Tue, 08/03/2021 - 18:55
Permalink
if(B = 0) then
-- можно на цикл, зависящий от B
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Wed, 08/04/2021 - 20:53
Permalink
RE
var B, A, i, N, k, j, m: integer; begin writeln('vvedi '); readln(i); B := 0; // записывается остаток на итерации для IF (для числа 302 набор остатков 0.0.0.0.3.0.2) N := i; for A := 7 downto 1 do // цикл перебора 7ми спиц на счетах begin k := 0; //счетчик по перебору остатков в репите(по результату последнего отрисовка) i := N; // восстанавливаем введеное пользователем число repeat // перебираем остатки от введеного числа. с каждой итерацией FOR, цикл репит уменьшается. B := i mod 10; i := i div 10 ; k := k + 1; until(k = A) ; // А - уменьшается с каждым циклом не давая оставаться одному и тому же остатку постоянно. for j:=1 to 11 do begin if(j<=b) then // отвечает за + перед --- write('+') else if((j > B) and ( j = (B + 1))) then write('---') else if(j > B) then // отвечает за + после --- write('+'); end; writeln(); end; readln(); end.vedro-compota
Sun, 08/08/2021 - 13:36
Permalink
else if((j > B) and ( j = (B
-- есть лишнее подвыражение
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 08/08/2021 - 18:30
Permalink
RE
var B, A, i, N, k, j, m: integer; begin writeln('vvedi '); readln(i); B := 0; // записывается остаток на итерации для IF (для числа 302 набор остатков 0.0.0.0.3.0.2) N := i; for A := 7 downto 1 do // цикл перебора 7ми спиц на счетах begin k := 0; //счетчик по перебору остатков в репите(по результату последнего отрисовка) i := N; // восстанавливаем введеное пользователем число repeat // перебираем остатки от введеного числа. с каждой итерацией FOR, цикл репит уменьшается. B := i mod 10; i := i div 10 ; k := k + 1; until(k = A) ; // А - уменьшается с каждым циклом не давая оставаться одному и тому же остатку постоянно. for j := 1 to 11 do begin if(j <= b) then // отвечает за + перед --- write('+') else if(j = (B + 1)) then write('---') else if(j > B) then // отвечает за + после --- write('+'); end; writeln(); end; readln(); end.vedro-compota
Sun, 09/05/2021 - 13:05
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)