Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами - Pascal (4605)

Узнай цену своей работы

Формулировка задачи:

Дан одномерный массив, состоящий из N вещественных элементов. Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. Формат входных данных В первой строке входного файла содержится число N (1\le N\le 100). Во второй строке даны N вещественных чисел через пробел. Формат выходных данных Выведите в выходной файл искомую сумму с 3 знаками после десятичной точки или 0, если в заданном массиве меньше 2 отрицательных элементов. Примеры: Вход 5 -2.364 -4.564 0 3.46 -3.57 Выход -1.104
Var A:array[1..100] of real;
    f,f1:text;
    i,n,ind1,ind2:integer;
    
    s:real;
Begin
    Assign(f,'C:\Program Files (x86)\PascalABC.NET\input.txt');
assign (f1,'C:\Program Files (x86)\PascalABC.NET\output.txt');
Reset(f);
rewrite(f1);
    readln(f,n);

    For i:=1 to n do
    Begin
      read(f,A[i]);
      if (A[i]<0)and(ind1<0) then ind1:=i;
      if (A[i]<0) then ind2:=i;
    End;
   
      if (ind1=ind2) then writeln(f1,'0')
    else begin
 
     s:=0;
      For i:=ind1 to ind2 do
       s:=s+A[i];
      writeln(f1,s:0:3);
 
    Close(f);
    close(f1);
     
     end;
End.

Решение задачи: «Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами»

textual
Листинг программы
Var A:array[1..100] of real;
    f,f1:text;
    i,n,ind1,ind2:integer;
    s:real;
Begin
Assign(f,'input.txt');
assign (f1,'output.txt');
Reset(f);
rewrite(f1);
read(f,n);
ind1:=0;
ind2:=0;
For i:=1 to n do
 Begin
  read(f,A[i]);
  if A[i]<0 then
   begin
    if ind1=0 then ind1:=i
    else ind2:=i;
   end; 
 end;  
if (ind1=0)or(ind2=0) then writeln(f1,'0')
else
 begin
  s:=0;
  For i:=ind1+1 to ind2-1 do
  s:=s+A[i];
  writeln(f1,s:0:3);
 end;
close(f);
close(f1);
End.

Объяснение кода листинга программы

В данном коде объявлены следующие переменные:

  • A: массив из 100 элементов типа real (числа с плавающей точкой).
  • f: файл для чтения и записи.
  • f1: файл для записи результата.
  • i, n: переменные для чтения и записи чисел из файла.
  • ind1, ind2: переменные для отслеживания индексов первого и последнего отрицательных элементов массива A.
  • s: переменная для хранения суммы элементов массива A между первым и последним отрицательными элементами. Код открывает файлы input.txt и output.txt, считывает число элементов массива A из первого файла, а затем записывает результат в второй файл. Если первый или второй элемент массива A отрицательные, то переменные ind1 и ind2 соответственно устанавливаются равными i, где i - это текущий индекс. Если оба элемента отрицательные, то в файл output.txt записывается число 0. В противном случае, сумма элементов массива A между ind1 и ind2 записывается в файл output.txt. После этого файлы закрываются.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы