Последовательное построение алгоритма
Существуют различные методы конструирования (разработки, построения) алгоритмов. Один из них — методпоследовательного построения (уточнения) алгоритма. Иначе он называется методом разработки «сверху вниз», нисходящим методом или методом пошаговой детализации.
Суть метода:
• задачу разбивают на несколько частей, каждая из которых проще всей задачи;
• решение каждой части задачи формулируют в отдельной команде, которая также может выходить за рамки системы команд исполнителя;
• при наличии в алгоритме предписаний, выходящих за пределы возможностей исполнителя, такие предписания вновь представляются в виде совокупности ещё более простых предписаний.
Процесс продолжается до тех пор, пока все предписания не будут понятны исполнителю.
Вс алгоритм делает структуру алгоритма более понятной.
При конкретном обращении к вс алгоритму формальные параметры заменяются фактическими параметрами, т. е. именно теми величинами, для которых будет исполнен вс алгоритм. Типы, количество и порядок следования формальных и фактических параметров должны совпадать.
Алгоритм, в котором прямо или косвенно содержится ссылка на него же как на вс алгоритм, называют рекурсивным.
for i := 1 to n do
read (a[i]);
i := 1;
while (i <= n) and (a[i] <= 0) do
i := i + 1;
if i > n then writeln ('0')
else
begin
k := i;
i := i + 1;
while (i <= n) and (a[i] <= 0) do
i := i + 1;
if i > n then writeln ('0')
else
begin
p := i;
for i := k + 1 to p - 1 do
s := s + a[i];
writeln(s:0:3);
end;
end;
Что я сделал: после нахождения первого элемента не надо идти в конец и с конца перебирать в другую сторону. Надо просто продолжить в том же направлении с того же места. И надо не забыть найденное значение сохранить в P - у Вас она вовсе не инициализировалась.