Var A: array [1..10] of integer; i, min, max, imin, imax: integer; Begin for i:=1 to 10 do read(A[i]); min:=A[1]; max:=A[1]; for i:=1 to 10 do begin if A[i] > max then begin max:=A[i]; imax:=i; end; if A[i] < min then begin min:=A[i]; imin:=i; end; end; if imin<imax then for i:=(imin+1) to (imax-1) do A[i]:=sqr(A[i]) else for i:=(imax+1) to (imin-1) do A[i]:=sqr(A[i]); writeln('Максимальное значение: ', max, ', минимальное: ', min); for i:=1 to 10 do write(A[i], ', '); end.
Немного пояснений: по условию, только элементы между минимумом и максимумом возводятся в квадрат, отсюда эти imax-1 и imin+1.
Const n=10; var a:array[1..n] of integer; max,min,imax,imin,i:integer; begin Randomize; for i:=1 to n do begin a[i]:=random(51); write(a[i],' '); end; writeln; max:=a[1]; imax:=1; min:=a[1]; imin:=1; for i:=2 to n do begin if a[i]>max then begin max:=a[i]; imax:=i; end; if a[i]<min then begin min:=a[i]; imin:=i; end; end; writeln('max = ',max,' min = ',min); if imax<imin then for i:=imax+1 to imin-1 do a[i]:=a[i]*a[i] else for i:=imin+1 to imax-1 do a[i]:=a[i]*a[i]; for i:=1 to n do write(a[i],' '); writeln; end.