Здравствуйте, Гришко Максим Сергеевич!
Вот решение вашей задачи. Реализовано по принципу 3-в-одном
Поскольку при помощи разных циклов нужно было ОБРАБАТЫВАТЬ последовательности, процедуры ГЕНЕРАЦИИ последовательности и ПЕЧАТИ едины для всех трех случаев и основаны на цикле FOR. Хотя при необходимости можно поправить и это.
Приложение:
uses crt;
const n = 12;
m = 10;
var a: array[1..n] of real;
b: array[1..m] of real;
i,na,nb:integer;
procedure fillArrays;
var i: integer;
begin
for i:=1 to n do a[i] := 10*random;
for i:=1 to m do b[i] := 10*random;
end;
procedure printArrays;
var i:integer;
begin
writeln ('posledovatelnost a:');
for i:=1 to n do write (a[i]:6:2);
writeln;
writeln ('posledovatelnost b:');
for i:=1 to m do write (b[i]:6:2);
writeln;
end;
procedure findMaxFOR;
var i:integer;
begin
na:=1;
for i:=2 to n do
if a[i]>a[na] then na:=i;
nb:=1;
for i:=2 to m do
if b[i]>b[nb] then nb:=i
end;
procedure replaceAfterMaxFOR;
var i:integer;
begin
if na<n then
for i:=na+1 to n do
a[i]:=0.5;
if nb<m then
for i:=nb+1 to m do
b[i]:=0.5;
end;
procedure findMaxWHILE;
var i:integer;
begin
na:=1;
i:=2;
while i<=n do
begin
if a[i]>a[na] then na:=i;
i:=i+1;
end;
nb:=1;
i:=2;
while i<=m do
begin
if b[i]>b[nb] then nb:=i;
i:=i+1;
end;
end;
procedure replaceAfterMaxWHILE;
var i:integer;
begin
if na<n then
begin
i:=na+1;
while i<= n do
begin
a[i]:=0.5;
i:=i+1;
end;
end;
if nb<m then
begin
i:= nb+1;
while i<=m do
begin
b[i]:=0.5;
i:=i+1;
end;
end;
end;
procedure findMaxREPEAT;
var i:integer;
begin
na:=1;
i:=2;
repeat
if a[i]>a[na] then na:=i;
i:=i+1;
until i>m;
nb:=1;
i:=2;
repeat
if b[i]>b[nb] then nb:=i;
i:=i+1;
until i>m;
end;
procedure replaceAfterMaxREPEAT;
var i:integer;
begin
if na<n then
begin
i:=na+1;
repeat
a[i]:=0.5;
i:=i+1;
until i>n;
end;
if nb<m then
begin
i:= nb+1;
repeat
b[i]:=0.5;
i:=i+1;
until i>m;
end;
end;
BEGIN
clrscr;
randomize;
WRITELN('ISPOLZUEN FOR.');
fillArrays;
writeln('DO:');
printArrays;
findMaxFOR;
replaceAfterMaxFOR;
writeln('POSLE:');
printArrays;
readln;
WRITELN('ISPOLZUEN WHILE.');
fillArrays;
writeln('DO:');
printArrays;
findMaxWHILE;
replaceAfterMaxWHILE;
writeln('POSLE:');
printArrays;
readln;
WRITELN('ISPOLZUEN REPEAT');
fillArrays;
writeln('DO:');
printArrays;
findMaxREPEAT;
replaceAfterMaxREPEAT;
writeln('POSLE:');
printArrays;
readln;
END.