procedure Work (var M:mas; N:integer); {М-сам массив, N-длина массива(вычисляется в д.р. процед.)}
var i,b,sym,ost:integer; f:boolean; {i-кол. повторов для for, b-буфер для m[i], sym-сумма цифр числа m[i], ost-цифры числа, f-"флажок" четносли или нечотности sym}
begin {бэгин №1}
for i:=1 to N do {открывает цикл for}
begin f:=true; sym:=0; ost:=0; {бэгин №2,обнуляем все}
b:=m[i]; {b присваеваем значение m[i]}
while b=0 do {завадим "цикл внутри цикла" который считает сумму цифр в числе m[i]}
begin {бэгин №3}
ost:=b mod 10; {находим последнюю цифру в числе}
sym:=sym + ost; {добавляеь ее к сумме всех чисел}
b:=b div 10; {убираем эту цифру из числа}
end; {енд №3}
if sym mod 2=0 then f:=false; {если sym четное тогда флажок опустить}
if (f=true) and (sqrt(m[i]) in integer) then m[i]:=m[i+1]; {весь косяк тут, не знаю как записать "если число является полным квадратом то его удалить"}
end; {енд №2}
end; {енд №1}

отступы зделать нельзя, т.к. они автоматичесли убираются и текст выравнивается по левому краю

ну, жду помощи?!

P.S. если кто то пришол на этот форум чтобы заработать thumbdown.gif , а не "помочь за спасибо" я думаю он не туда пришол.