1. Современное решение
// PascalABC.NET 3.2, сборка 1367 от 20.12.2016// Внимание! Если программа не работает, обновите версию!begin var c:=ReadArrInteger('Введите элементы массива: ',10); c.Transform(x->x>0?x*x:x=0?x:20); c.Printlnend.
ПримерВведите элементы массива: 5 11 -7 0 3 -12 -8 1 9 -225 121 20 0 9 20 20 1 81 202. Традиционное "школьное" решениеconst n=10;var i:integer; c:array[1..n] of integer;begin Write('Введите элементы массива: '); for i:=1 to n do Read(c[i]); for i:=1 to n do if c[i]>0 then c[i]:=sqr(c[i]) else if c[i]<0 then c[i]:=20; for i:=1 to n do Write(c[i],' '); Writelnend.3. Улучшенное "школьное" решениеconst n=10;var i,t:integer; c:array[1..n] of integer;begin Write('Введите элементы массива: '); for i:=1 to n do begin Read(t); if t>0 then c[i]:=t*t else if t<0 then c[i]:=20 end; for i:=1 to n do Write(c[i],' '); Writelnend.