Составить на pascal программу с использованием процедуры и функции: "даны действительные числа a1, …, an, b1, …, bn. в последовательности a1, …, an, и в последовательности b1, …, bn все элементы, следующие за элементом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0,5."

TIPOcrytou TIPOcrytou    2   10.07.2019 13:50    0

Ответы
andrew120885p09zsu andrew120885p09zsu  06.08.2020 22:53
Var ar1:array of real;ar2:array of real;
n,i,maxi1,maxi2,seed:integer;
max1,max2:real;

function gener(var ar:array of real;i:integer; var seed:integer):real;
begin;
randomize(seed);
{В этой задаче я впервые столкнулся с неслучайным random(). Чтобы она генерировала новый ряд чисел, измените значение seed в начале основной программы}
seed:=random(-10,10);
ar[i]:=random(-10,10);
gener:=ar[i];
end;

procedure maxS(ar:array of real;var maxi,n:integer; var max:real);
var i:integer;
begin;
max:=-2147483648;
for i:=1 to n do  if max<ar[i] then
   begin;
    max:=ar[i];
    maxi:=i;
   end;
for i:=maxi+1 to n do
ar[i]:=0.5;
end;

begin;
randomize;
readln(n);
setlength(ar1,n+1);
setlength(ar2,n+1);
writeln('Array A:');
for i:=1 to n do
  write(gener(ar1,i,seed):4);
seed:=random(-10,10);
writeln;
writeln('Array B:');
for i:=1 to n do
  write(gener(ar2,i,seed):4);
maxS(ar1,maxi1,n,max1);
maxS(ar2,maxi2,n,max2);
writeln;
writeln('Final array A:');
for i:=1 to n do
write(ar1[i]:4);
writeln;
writeln('Final array B:');
for i:=1 to n do
write(ar2[i]:4);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика