Задать вопрос
8 февраля, 08:07

Помогите откорректировать середину программы. Необходимо найти сумму элементов массива, расположенных между первым и вторым положительными элементами.

Моя программа:

var a:array[1 ... 100]of real;

i, n, k, p:integer;

s:real;

begin

assign (input,'input. txt') ;

assign (output,'output. txt') ;

reset (input) ;

rewrite (output) ;

readln (n) ;

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:=n;

while (i>=1) and (a[i]<=0) do i:=i-1;

if i<1 then writeln ('0')

else begin

for i:=k+1to p-1 do s:=s+a[i];

writeln (s:0:3) ;

end;

end;

close (input) ;

close (output) ;

end.

+3
Ответы (1)
  1. 8 февраля, 09:23
    0
    readln (n) ;

    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 - у Вас она вовсе не инициализировалась.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Помогите откорректировать середину программы. Необходимо найти сумму элементов массива, расположенных между первым и вторым положительными ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы
Похожие вопросы по информатике
Помогите отредактировать программу - Паскаль. Где-то ошибка. Необходимо удалить первый кратный 3 элемент массива. program udalenie; var i, n, k:integer; a:array[1 ... 1000] of integer; begin assign (input,'input. txt') ; assign (output,'output.
Ответы (1)
Найти сумму чисел в текстовом документе. Почему пишет неизвестный идентификатор. var a, b:integer; begin assign (input,'input. txt') ; reset (input) ; assign (output,'output.
Ответы (1)
Помогите откорректировать программу - Паскаль. Структура программы как у меня. Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти сумму элементов массива, расположенных до последнего положительного элемента.
Ответы (2)
Очень нужна помощь! Целый день ломаю голову. Программа на Паскале. Найти максимальное среди элементов массива кратных 3. Структура программы надо как у меня, но Паскаль ругается на 15 строку на несовместимость типов - не понимаю свою ошибку.
Ответы (1)
Нужна помощь в отредактировании программы Паскаль. Нужно, чтобы выводилось максимальное среди двузначных элементов массива.
Ответы (1)