var i,imax,imin:integer; a:array[1..10] of integer; begin Randomize; imax:=1; imin:=1; for i:=1 to 10 do begin a[i]:=Random(21)-10; Write(a[i],' '); if a[i]<a[imin] then imin:=i else if a[i]>a[imax] then imax:=i end; Writeln; i:=a[imax]; a[imax]:=a[imin]; a[imin]:=i; for i:=1 to 10 do Write(a[i],' '); Writeln end.
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(10,-10,10); a.Println;
Swap(a[a.IndexMax],a[a.IndexMin]); a.Println;
end.
Пример
-4 4 5 9 8 -3 -10 -9 -2 -2
-4 4 5 -10 8 -3 9 -9 -2 -2
2. Решение в стиле "ТурбоПаскаль 1983г."
var
i,imax,imin:integer;
a:array[1..10] of integer;
begin
Randomize;
imax:=1;
imin:=1;
for i:=1 to 10 do begin
a[i]:=Random(21)-10;
Write(a[i],' ');
if a[i]<a[imin] then imin:=i
else
if a[i]>a[imax] then imax:=i
end;
Writeln;
i:=a[imax]; a[imax]:=a[imin]; a[imin]:=i;
for i:=1 to 10 do
Write(a[i],' ');
Writeln
end.