Задать вопрос
13 марта, 16:21

Помогите откорректировать программу - Паскаль. Структура программы как у меня.

Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти сумму элементов массива, расположенных до последнего положительного элемента.

program k;

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

i, n, p, v: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>=0) and (a[i]<=0) do i:=i-1;

if i<0 then writeln (0)

else p:=i;

s:=0;

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

writeln (s:0:0) ;

close (input) ;

close (output) ;

end.

+2
Ответы (2)
  1. 13 марта, 18:27
    0
    строку

    i:=1;

    нужно поменять на

    i:=n; (раз уж вы начинаете считать с конца)

    а строки

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

    if i<0 then writeln (0)

    на

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

    if i=0 then writeln (0) (поскольку нет 0-ого элемента массива, и может выдаваться ошибка)
  2. 13 марта, 19:44
    0
    var

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

    i, n, last:integer;

    s:real;

    input, output:text;

    begin

    assign (input,'input. txt') ;

    assign (output,'output. txt') ;

    reset (input) ;

    rewrite (output) ;

    readln (n) ;

    for i:=1 to n do begin

    read (input, a[i]) ;

    if (a[i] > = 0) then last:=i; end;

    for i:=1 to last-1 dos:=s+a[i];

    write (output, s:5:3) ;

    close (input) ;

    close (output) ;

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