Задание 5 Урок 13.2

Задание 5 Урок 13.2

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

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

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

Примеры:

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

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

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

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

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

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

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

---++++++++++
---++++++++++
---++++++++++
++---++++++++
---++++++++++
++---++++++++
+---+++++++++
var a,b,c,c1,i,k: integer;
begin
write('Vvedite chislo: ');
readln(c);
c1:=c;//запомнили
for i:=7 downto 1 do
begin
  k := 0;//сброс цикла спицы
  c:=c1;//восстановили
  repeat
    b:= c mod 10;//получили остаток
    c:= c div 10;//обрезка на 1
    k := k + 1;
  until(k=i);//цикл для перебора остатка для нужной спиццы
  for a:=0 to 10 do
    if(a<b) then
      write('+')
    else if (a=b) then
      write('---')
    else if (a>b) then
      write('+');
      writeln();
end;
readln();
end.
vedro-compota's picture

c1:=c;//запомнили
-- переписать без первого присваивания, можно просто не менять переменную "c"

_____________
матфак вгу и остальная классика =)

var a,b,c,c1,i,k: integer;
begin
write('Vvedite chislo: ');
readln(c);
for i:=7 downto 1 do
begin
  k := 0;//сброс цикла спицы
  c1:=c;//восстановили
  repeat
    b:= c1 mod 10;//получили остаток
    c1:= c1 div 10;//обрезка на 1
    k := k + 1;
  until(k=i);//цикл для перебора остатка для нужной спиццы
  for a:=0 to 10 do
    if(a<b) then
      write('+')
    else if (a=b) then
      write('---')
    else if (a>b) then
      write('+');
      writeln();
end;
readln();
end.
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)