Алгоритмическая задача №2 IFF 2020
Primary tabs
В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:
---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++
Задание: визуализируйте на счетах введенное пользователем число. Примеры:
Пользователь вводит: 7
Получаем:
---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ +++++++---+++
Пользователь вводит: 28
Получаем:
---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ---++++++++++ ++---++++++++ ++++++++---++
Пользователь вводит: 2021
А наша программа отвечает:
---++++++++++ ---++++++++++ ---++++++++++ ++---++++++++ ---++++++++++ ++---++++++++ +---+++++++++
program abacus_virt;
var numb_input : string;
i,j,k,numb,count,fix_numb,rows,code: integer;
begin
writeln('input value: ');
readln(numb_input); // считываем строку типа string
k := 1; // индекс строки
Val(numb_input[k], numb, code); // преобразуем элемент строки в число
count:= 13;
fix_numb:= 3;
rows:= 7;
j:= 1;
{ цикл от 1 до 91 , где 91 общее количество элементов в счетах }
for i:=1 to 91 do
begin
// блок вывода строк стандартного вида '---++++++++++' если длина считываемой
// строки из readln(numb_input) меньше 7
if (rows - high(numb_input) <> 0) then
begin
if(i <= fix_numb) then
begin
write('-');
count -= 1;
j += 1;
end
else
begin
write('+');
count -= 1;
j += 1;
if(count = 0) then
begin
writeln();
count := 13;
fix_numb += 13;
rows -= 1;
end;
end;
end
else
// блок вывода строк, где в нужнoм месте подставляется или '+' или '-'
begin
if (0 < numb) then
begin
write('+');
count -= 1;
numb -= 1;
j += 1;
end
else
begin
if(i >= j + 3) then
begin
write('+');
count -= 1;
end
else
begin
write('-');
count -= 1;
end;
if(count = 0) and (k <> high(numb_input)) then
begin
count := 13;
fix_numb += 13 ;
k += 1;
j := i + 1;
writeln();
Val(numb_input[k], numb, code); // преобразуем в число
end;
end;
end;
end;
end. - Log in to post comments
- 967 reads