program
HelloWorld;
var n:array
[1..10] of integer;
var c:
integer;
var i:
SmallInt;
begin
c:=1;
for i:=1 to 10 do
n[i] := random(10); //заполняем случайными данными
for i:=1 to
10 do
if n[i] > 0 then c:=c*n[i];
end.
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function InArea(p:(real,real)):boolean;
begin
var (x,y):=p;
Result:=(Abs(x)<=1) and (Abs(y)<=1) or
(y>=x-2) and (x>=0) and (y<=0)
end;
begin
var n:=ReadInteger('n=');
Randomize;
var P:=ArrGen(n,i->(Random(-11,22)/10,Random(-22,12)/10));
Writeln('Исходные точки (x,y)'); P.Println;
var R:=P.Where(x->InArea(x)).ToArray;
Writeln('Отобрано точек - ',R.Length);
Writeln('Отобранные точки (x,y)'); R.Println
end.
<u>Пример</u>
n= 20
Исходные точки (x,y)
(0,0.6) (1.1,1.1) (-0.9,0.3) (-0.7,-0.3) (1.3,-1.7) (-1,-1.6) (1.6,-1.5) (1.3,-0.2) (0.5,-0.7) (-0.7,-1.5) (1,-1.2) (1.9,0.6) (0.7,0.9) (1.3,-0.5) (1.6,0.4) (-0.8,0.2) (0.5,-1.8) (1.5,-1.1) (-0.6,-0.1) (0.9,0.1)
Отобрано точек - 10
Отобранные точки (x,y)
(0,0.6) (-0.9,0.3) (-0.7,-0.3) (1.3,-0.2) (0.5,-0.7) (0.7,0.9) (1.3,-0.5) (-0.8,0.2) (-0.6,-0.1) (0.9,0.1)