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

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

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

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

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

program u132z5;
var a,b,d,e,f,n,i: integer;
begin
  writeln('Vvedite chislo');
  readln(n);
  while (n>0) do         //переворачиваем число и записываем в "b"
  begin
    a:=n mod 10;
    b:=b*10+a;
    n:=n div 10;
    f:=f+1;             //"f" считаем кол-во чисел в числе
  end;
  while (f<7) do            //заполняем пустые(всего 7)
  begin
    writeln('---++++++++++');
    f:=f+1;
  end;
  repeat
    d:=b mod 10;            //"d" кол-во знаков в левой части
    e:=10-d;                //"e" кол-во знаков в правой части
    for i:=1 to d do        //заполняем левую часть
      write('+');
    write('---');          //заполняем пробел
    for i:=1 to e do       //заполняем правую часть
      write('+');
    b:=b div 10;
    writeln();
  until b=0;
  readln();
end.        
vedro-compota's picture

прокомментировать назначение переменных

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

program u132z5v2;
var a: integer;   //вспомогательная для переворачивания числа
  b: integer;     //хранит число справа налево
  d: integer;     //кол-во + в левой части
  e: integer;     //кол-во + в правой части
  f: integer;     //считает сколько нижних строк занимает число на счетах
  n: integer;     //вспомогательная для переворачивания числа(остаток от деления)
  i: integer;     //счетчик цикла

begin
  writeln('Vvedite chislo');
  readln(n);
  while (n>0) do         //переворачиваем число и записываем в "b"
  begin
    a:=n mod 10;
    b:=b*10+a;
    n:=n div 10;
    f:=f+1;             //"f" считаем кол-во чисел(символов) в числе
  end;
  while (f<7) do            //заполняем пустые строки(всего 7)
  begin
    writeln('---++++++++++');
    f:=f+1;
  end;
  repeat
    d:=b mod 10;
    e:=10-d;
    for i:=1 to d do        //заполняем левую часть
      write('+');
    write('---');          //заполняем "пробел"
    for i:=1 to e do       //заполняем правую часть
      write('+');
    b:=b div 10;
    writeln();
  until b=0;
  readln();
end.  
vedro-compota's picture

засчитано

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