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

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

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

var a, b, j, i: integer;  // а - введенное число, b - количество костей на спице, j - уменьшатель зарзрядов, i - счетчик цикла спицы
begin                     // счеты заполняем сверху вниз
  j:= 1000000;            // 7 спиц (разрядов), поэтому 7-значный "уменьшатель разрядов"
  write ('Введите число: ');
  readln(a);
  while (j>=1)do  // цикл действует, пока уменьшатель разрядов не спустится до разряда единиц
  begin
    b:= a div j;  {получаем крайнее левое число, пишем его в b
                   начинает работать, когда j спустится до а (сравняется по разрядам)
                   когда j еще не спустился до а, получаем 0}
    a:= a mod j;  {отсекаем крайнее левое число
                   тоже начинает работать, когда j спустится до а (сравняется по разрядам)
                   когда j еще не спустился до а, а не меняется}
    for i:=1 to 13 do     // цикл спицы, счетчик до 13: 10 костей и 3 пустых места
    begin
      if (i <= b){- это само число} or (i > b+3){- это оставшиеся кости в конце спицы} then
        write('+ ')       // прописываем кости
      else                // условие не сработало, значит это одно из 3 пустых мест
        write('- ');      // заполняем пустые места
    end;                  // конец цикла спицы
    j:= j div 10;     //  спускаемся на спицу (разряд) ниже
    writeln ();       // новая строка
  end;
  readln();
end. 

Вывод в консоли:

Введите число: 7352
- - - + + + + + + + + + +
- - - + + + + + + + + + +
- - - + + + + + + + + + +
+ + + + + + + - - - + + +
+ + + - - - + + + + + + +
+ + + + + - - - + + + + +
+ + - - - + + + + + + + +

vedro-compota's picture

засчитано

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