Задача 4 Урок 13.2

Задача 4 Урок 13.2:

Предварительная справка: настоящие счеты выглядят как-то так (кости, с помощью которых отсчитывают число разрядов, нанизаны на спицы):
счеты
В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:

---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++

Задание: визуализируйте на счетах введенное пользователем число.

Примеры:

1. Пользователь вводит: 7
Получаем:

---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
+++++++---+++

2. Пользователь вводит: 28
Получаем:

---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
++---++++++++
++++++++---++

3. Пользователь вводит: 1984
Получаем:

---++++++++++
---++++++++++
---++++++++++
+---+++++++++
+++++++++---+
++++++++---++
++++---++++++

4. Пользователь вводит: 2021
А наша программа отвечает:

---++++++++++
---++++++++++
---++++++++++
++---++++++++
---++++++++++
++---++++++++
+---+++++++++

ПРИМЕЧАНИЕ: задача была предложена участником @math2 для соревнований IFF 2020.

var i, j, n, l, k: integer;
begin
  writeln('Введите целое число от 1 до 9999999:');
  readln(k);
  n := k mod 10;
  while k > 9 do
   begin
      k := k div 10;
      n := n * 10 + k mod 10;
      l += 1;
   end;
  for i := 1 to 7 do
   begin
      if i < 7 - l then writeln('---++++++++++')
      else
       begin
        for j := 1 to 11 do
         if j = n mod 10 + 1 then write('---')
         else write('+');
        writeln();
        n := n div 10;
       end;
   end;
  readln();
end.