Алгоритмическая задача №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
- 920 reads