В текстовом файле хранятся координаты n точек на плоскости.
Составить программу для:
подсчета количества точек, попадающих в заданную область;
формирования массива из координат точек, попадающих в заданную область;
полученный массив дописать в созданный ранее текстовый файл.
(на паскале)

Запишем каноническое уравнение эллипса:
displaystyle  frac{x^2}{a^2}+ frac{y^2}{b^2} =1;  frac{x^2}{4}+ frac{y^2}{1} =1;  x^2=4(1-y^2)
Теперь составим критерий принадлежности точки А(x,y) заштрихованной области:
begin {cases} x^2leq 4(1-y^2)  left | x right | geq 1 end {cases} to qquad (x^2leq 4(1-y^2))  land  (left | x right | geq 1)

Вспомогательная программа, создающая файл:
const
  n=50;
var
  i:integer;
  f:Text;
begin
  Assign(f,xy.txt);
  Rewrite(f);
  Randomize;
  for i:=1 to n do Writeln(f,6*Random-3, ,5*Random-2.5);
  Close(f);
end.

Программа, выполняющая задание:
const
  n=50;
var
  x,y:real;
  i,k:integer;
  a:array[1..n,1..2] of real;
  f:Text;
begin
  Assign(f,xy.txt);
  Reset(f);
  k:=0;
  Writeln(Отобранные точки);
  while not Eof(f) do begin
    Readln(f,x,y);
    if (sqr(x)<=4*(1-sqr(y))) and (abs(x)>=1) then
    begin
      Writeln(x, ,y);
      Inc(k); a[k,1]:=x; a[k,2]:=y
    end
  end;
  Writeln(Количество точек = ,k);
  Close(f);
  Append(f);
  for i:=1 to k do Writeln(f,a[i,1], ,a[i,2]);
  Close(f)
end.




Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку
×