Составить ** Pascal программу с использованием процедуры и функции: "Даны действительные...

0 голосов
51 просмотров

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


Информатика (31 баллов) | 51 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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   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.

(38.6k баллов)