Алгоритмическая задача №2 .Виртуальные счеты
Primary tabs
Алгоритмическая задача №2 -- и она же в уроке 13.2 под номером 4.
В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:
---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++Задание: визуализируйте на счетах введенное пользователем число.Примеры:
Пользователь вводит: 7
Получаем:---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ +++++++---+++Пользователь вводит: 28
Получаем:---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ++---++++++++ ++++++++---++Пользователь вводит: 1984
Получаем:---++++++++++ ---++++++++++ ---++++++++++ +---+++++++++ +++++++++---+ ++++++++---++ ++++---++++++
program abacus; type arr = array [1..10] of integer; var s: string; ls : arr; i,j,count,row,number,k : integer; begin // основная программа s:= '---++++++++++'; i:= 1; row:= 7; // кол-во строк count:= 0; // кол-во цифр в числе readln(number); // считываем число { разбиваем число на цифры } while(0 < number) do begin ls[i]:= number mod 10; i += 1; number := number div 10; count += 1; // кол-во цифр end; { выводим результат } for j:= 1 to row do begin if(j < row - count) then writeln(s) // выводим неизменненую строку else begin k:= 0; while(k < length(s)) do // обходим строку begin if(k < ls[count]) then // индекс массива считаем с последнего элемента write('+') else begin if(k >= ls[count]) and (k < 3 + ls[count]) then write('-') else write('+'); end; k += 1; // увеличиваем индекс строки end; count -= 1; // уменьшаем индекс массива writeln(); // перенос строки end; end; end. // завершение основной программы
- Log in to post comments
- 604 reads