Задать вопрос
23 октября, 11:32

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

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

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. 23 октября, 12:22
    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)
Помогите откорректировать программу - Паскаль. Структура программы как у меня. Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти сумму элементов массива, расположенных до последнего положительного элемента.
Ответы (2)
Найти сумму чисел в текстовом документе. Почему пишет неизвестный идентификатор. var a, b:integer; begin assign (input,'input. txt') ; reset (input) ; assign (output,'output.
Ответы (1)
Очень нужна помощь! Целый день ломаю голову. Программа на Паскале. Найти максимальное среди элементов массива кратных 3. Структура программы надо как у меня, но Паскаль ругается на 15 строку на несовместимость типов - не понимаю свою ошибку.
Ответы (1)
Нужна помощь в отредактировании программы Паскаль. Нужно, чтобы выводилось максимальное среди двузначных элементов массива.
Ответы (1)