Решить в паскале. даны три массива: a = {17.2, 9.3, 14.5, -11.7, 4.3, 5.9, -11.9, 12.3, -14.1, -15.3}, b = {-1.2, 4.2, 5.9, -18.1, 21.2, -3.1, -5.3, -12.2, 21.4, -4.5, 8.2, 9.4}, c = {3.5, 8.4, -3.2, 4.5, -8.4, -9.5, 1.5,9.3}. для каждого из массивов найти суммы положительных элементов. использовать подпрограмму.
V = array of real;
function SumPos(a:V): real;
var
i: integer;
s: real;
begin
s := 0;
for i := 0 to Length(a, 0) - 1 do
if a[i] > 0 then s := s + a[i];
Result := s
end;
var
A, B, C: V;
begin
A := new real[10] (17.2, 9.3, 14.5, -11.7, 4.3, 5.9, -11.9, 12.3, -14.1, -15.3);
B := new real[12] (-1.2, 4.2, 5.9, -18.1, 21.2, -3.1, -5.3, -12.2, 21.4, -4.5, 8.2, 9.4);
C := new real[8] (3.5, 8.4, -3.2, 4.5, -8.4, -9.5, 1.5, 9.3);
writeln('Сумма положительных элементов массива А ',SumPos(A));
writeln('Сумма положительных элементов массива B ',SumPos(B));
writeln('Сумма положительных элементов массива C ',SumPos(C));
end.
Тестовый прогон:
Сумма положительных элементов массива А 63.5
Сумма положительных элементов массива B 70.3
Сумма положительных элементов массива C 27.2
begin
foreach obj: real in a do
if (obj > 0) then
result += obj;
end;
var
a: array of real := (17.2, 9.3, 14.5, -11.7, 4.3, 5.9, -11.9, 12.3, -14.1, -15.3);
b: array of real := (-1.2, 4.2, 5.9, -18.1, 21.2, -3.1, -5.3, -12.2, 21.4, -4.5, 8.2, 9.4);
c: array of real := (3.5, 8.4, -3.2, 4.5, -8.4, -9.5, 1.5, 9.3);
begin
writeln('a => ', subprogram(a));
writeln('b => ', subprogram(b));
writeln('c => ', subprogram(c));
end.