На мобильном телефоне можно писать простые программы. Процессор держит в памяти команду стека (на английском stack) и команду счетчика (ks) которого значение исполняется командным номером. Поэтому начиная
исполнять от первой команды ks в начале равно 1, а стек пустой В программе команды считаются от единицы.
В программе есть только две команды:
ZAVUT X. KS начинается с единицы и его значение вкладывается в конец стека.Потом KS значение становится X
PYPT. Процессор распространяет одной секунды сигнал (гудка). Потом процессор стирает последнего стека сохраненное значение и значение присваивается команде счетчика. Если стек был пустой то программа кончает работа.
Задание Напишите программу которая напечатала команды телефонные последовательные, по таким требованиям
1 ее выполнив былабы выполнен точно k секунд сигнал гудка,
2 в телефонной программе былабы не больше 100 команд,
3 Команда PYPT должна быть один и последний раз.
Начальные данные хранятся в файле duom.txt. На первой и единственной строчке записано целое число
K (0 < K < 10000) - желаемой звуковой продолжительности секундами.
Результат записываем в файл rez.txt. На каждой строчке должна быть написано по одной команде (с начала).
Если возможны несколько вариантов подходящий под требования то тогда любой вариант запишите. Конечно такую программу сделать всегда возможна.
Пример
Первичные данные
4
результат
ZAVUT 4
ZAVUT 4
ZAVUT 4
PYPT
Обьяснение
После первой команды (ZAVUT 4) стек пополняется другой команды номером 1+1=2 становится [2] о ks становится 4
Тогда выполняется 4-тая команда (PYPT) производит звуковой сигнал - гудка одну секунду и тогда стек становится пустой о ks становится 2
Тогда выполняется 2-тая команда (ZAVUT 4) стек пополняется другой команды номером 2+1=3 становится [3] о ks становится 4
Тогда выполняется 4-тая команда (PYPT) гудок второй секунду и тогда стек становится пустой о ks становится 3
Тогда выполняется 3-тая команда (ZAVUT 4) стек пополняется другой команды номером 3+1=3 становится [3] о ks становится 4
Тогда выполняется 4-тая команда (PYPT) гудок третию секунду и тогда стек становится пустой о ks становится 4
Тогда снова выполняется 4-тая команда (PYPT) и тогда четвертую секунду гудок, но уже стек пустой и команды больше не выполняется то тогда завершает программа работу.
Выполняя эту программу всего было гудков 4 раза поэтому всего получено черырех секундный звуковой сигнал.
Я чегото запутался что от меня в задачке хотет при этом проходим мы рекурсию и еще стека небрали в этом году да и незнаю я надо ставить звуковой сигнал но это тоже не проходили
Вот написал простую программу и так и с рекурсией но без стека
program Bevarde0;
var duom,rez:text;
k{,ks}:integer;
Procedure Zavut(n:integer);
begin
if n<>1 then zavut(n-1);
if n<>k then writeln(rez,'ZAVUT ',k)
else Writeln(rez,'PYPT');
end;
begin
Assign (duom,'duom.txt');
Reset (duom);
Assign (rez,'rez.txt');
rewrite(rez);
readln(duom,k);
Zavut(k);
{ ks:=1;
repeat
writeln(rez,'ZAVUT ',k);
inc(ks)
until ks=k;
Writeln(rez,'PYPT');
}
Close (duom);
Close (rez);
end.