Другие языки программирования и технологии

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

Решение задачи одним проходом по массиву (одновременно производится поиск минимального и суммирование положительных элементов) :

program N76855959;
соnst
Sum: double = 0;
s: double = 0;
var
a: array of double;
min: double;
n, i: word;
begin
randomize;
n := random(91) + 10;
setlength(a, n);
writeln('Дан массив A[1..', n, ']:');
for i := Low(a) to High(a) do
begin
a[і] := random * 100 - 50;
write(a[і]:8:3)
end;

min := a[Low(a)];
for i := Low(a) to High(a) do
begin
if a[і] < min then
begin
Sum := Sum + s;
s := 0;
min := a[і]
end;
if a[і] > 0 then
s := s + a[і]
end;
writeln(#13#10'Минимальный элемент массива = ', min:0:3);
writeln('Сумма положительных до минимального элемента = ', Sum:0:3);
readln;
finalize(a)
end.

Артём Самсонян
Артём Самсонян
51 590
Лучший ответ
MinN := 1; for N := 2 to ArrSize do if Arr[N] < Arr[MinN] then MinN := N;
Sum := 0; for N := 1 to MinN - 1 do Sum := Sum + Arr[N];
WriteLn(Sum);
Кирилл Читин можно поподробнее пожалуйста?
500 руб на телефон
скайп fbi3097 пиши
Илья Федорец
Илья Федорец
3 999
Вот полностью готовая программа ))))
Uses crt;
var sum,min,i:integer;
a:array[1..10] of integer;
Begin
clrscr;
randomize;
for i:=1 to 10 do begin
a:=random(100)-40;
write(a:4); end;
min:=a[1];
for i:=1 to 10 do
if a<min>;
i:=1;
while not(a=min) do begin
if (a>0) then sum:=sum+a;
i:=i+1; end;
writeln;
write('sum = ',sum);
readkey;
end.
IM
Igor Mhc(Pk)
1 249

Похожие вопросы