Задача 5 Урок 13.2
Primary tabs
Задача 5 Урок 13.2
Предварительная справка: настоящие счеты выглядят как-то так (кости, с помощью которых отсчитывают число разрядов, нанизаны на спицы):
счеты
В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
Задание: визуализируйте на счетах введенное пользователем число.
Примеры:
Пользователь вводит: 7
Получаем:
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
+++++++---+++
Пользователь вводит: 28
Получаем:
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
++---++++++++
++++++++---++
Пользователь вводит: 1984
Получаем:
---++++++++++
---++++++++++
---++++++++++
+---+++++++++
+++++++++---+
++++++++---++
++++---++++++
Пользователь вводит: 2021
А наша программа отвечает:
---++++++++++
---++++++++++
---++++++++++
++---++++++++
---++++++++++
++---++++++++
+---+++++++++
var chislo, n, digit, i, j, kf, max_digit, count, number, a: integer; begin chislo:= 1234567; n:= chislo; digit:= 0;//разрядность текущего числа max_digit:= 7;//max разрядность kf:= 1;//коэффициент деления count:= 1; while n > 0 do begin n:= n div 10; digit:= digit + 1; end; max_digit:= max_digit - digit; for i:= 1 to max_digit do writeln('- - - + + + + + + + + + +'); for j:= 1 to (digit - 1) do kf:= kf * 10; while (count <= digit) do begin number:= chislo div kf; chislo:= chislo mod kf; kf:= kf div 10; for a:= 0 to 10 do begin if(a < number) then write('+ ') else if (a = number) then write('- - - ') else write('+ '); end; writeln(); count:= count + 1; end; readln(); end.
- Log in to post comments
- 831 reads
vedro-compota
Sun, 08/29/2021 - 12:58
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)