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