Предмет: Информатика,
автор: Lena5681
Составить на Pascal программу с использованием процедуры и функции:
"Даны действительные числа a1, …, an, b1, …, bn. В последовательности a1, …, an, и в последовательности b1, …, bn все элементы, следующие за элементом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0,5."
Ответы
Автор ответа:
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<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.
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.
Интересные вопросы
Предмет: Биология,
автор: famikyotasi
Предмет: Геометрия,
автор: medcentrekon
Предмет: Математика,
автор: ilamudrec350
Предмет: История,
автор: nikitashirobok
Предмет: Литература,
автор: 78799