UniLecs #Task. Цифровое табло

Albert Davletov
UniLecs
Published in
2 min readOct 20, 2019

Задача: недавно мы разрабатывали алгоритм цифрового табло для электронной очереди в больнице. Теперь у нас менее серъезная задача: необходимо написать алгоритм вывода числа на дисплее цифрового табло.

Входные данные: x — натуральное число от 0 до (2⁶³ — 1).

Вывод: число, представленное на дисплее цифрового табло.

Пример: x = 123

Output:

Пример вывода числа

Примечание: каждая цифра в цифровом табло представлена 7-ми сегментным индикатором. Например, все 7 сегментов горят для цифры 8 и всего 2 сегмента для единицы.

Разбор

Итак, нам нужно смоделировать работу 7ми сегментного индикатора, который представляет одну цифру. Каждый сегмент индикатора — линия, горизонтальная или вертикальная.
В качетсве вертикальной линии будем использовать символ ‘|’, в качестве горизонтальной — ‘_’.
Например цифра 9 будет выглядеть так:

Если представить эту цифру в виде строки, то получим “ _\n|_|\n _|”. Условно мы можем разделить каждую цифру на три слоя: верхний, средний и нижний и будем выводить сначала все верхние слои, потом все средние, потом все нижние.

Наглядный пример для осознания идеи. Выводим число 123:

1 строчка, которую мы выводим: _ _

2 строчка, которую мы выводим: | _| _|

3 строчка, которую мы выводим: ||_ _|

Реализация

C#: functions
C#: Main()

https://gist.github.com/unilecs/6300b7eba53bd7d8412c8c5cb2c14a17

Play-test

https://dotnetfiddle.net/CNDprp

--

--