В одномерном массиве, состоящем из n вещественных элементов, вычислить произведение элементов массива, расположенных перед максимальным по модулю элементом — Pascal(Паскаль)

program prog;
const n=5;
var m:array[1..n]of real;
    max,p:real;
    i:byte;
begin
p:=1;
for i:=1 to n do
read(m[i]);
max:=m[1];
for i:=2 to n do
if abs(m[i])>max then max:=abs(m[i]);
writeln(max);
i:=1;
while m[i]<>max do
begin
p:=p*m[i];
inc(i);
end;
writeln(p);
end.

Следующий вариант

Uses
 CRT;
Var
 max,imax,i,n:integer;
 pr:real;
 a:array[1..20] of integer;
begin
Clrscr;
repeat
 write('- ');
 readln(n);
until n in [1..20];
randomize;
max:=abs(a[1]);
imax:=1;
 for i:=1 to n do
 begin
  a[i]:=random(10)-5;
  write(a[i],' ');
   if abs(a[i])>max then
   begin
    max:=abs(a[i]);
    imax:=i;
   end;
 end;
writeln;
writeln('MAX[',imax,']:=',max);
  if imax<>1 then
  begin
   pr:=1;
    for i:=1 to imax-1 do
    begin
     pr:=pr*a[i];
    end;
writeln('PR:=',pr:1:0);
end
 else writeln('-');
 readln;
end.

Leave a Comment

75 + = 82