Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами - 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
. После этого файлы закрываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д