Писал в блокноте, возможны ошибки синтаксиса.
type Mas=array[1..30]of integer;
var i,Value:integer;
begin
for i:=1 to 30 do //заполняем последовательность
readln(Mas[i]);
//ищем максимальное значение
Value:=Mas[1];
for i:=2 to 30 do
if Mas[i]>Value then
Value:=Mas[i];
//умнажаем на максималку все положительные числа
for i:=1 to 30 do
if Mas[i]>0 then
Mas[i]:=Mas[i]*Value;
//вывод значений массива
for i:=1 to 30 do
write(Mas[i]," ");
readln;
end.