<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)
<u>Цифры- знаки для записи чисел (числовые знаки)</u>
<span>// PascalABC.NET 3.3, сборка 1562 от 02.11.2017
</span>
var
a:array[1..1000000] of integer;
i, n, x, y, cnt : integer;
begin
writeln('Введите кол-во элементов массива');
readln(n);
writeln('Введите ', n, ' чисел');
for i:= 1 to n do read(a[i]);
Writeln('Введите промежуток от X до Y');
readln(x, y);
for i:= x to y do
if (a[i] < 0) then cnt:= cnt + 1;
Write('Отрицательных элементов: ', cnt);
end.