Вопрос задан 30.07.2023 в 15:08. Предмет Информатика. Спрашивает Николаева Виктория.

На координатной плоскости заданы 15 произвольных точек, координаты которых не превосходят по

модулю число 50 и записаны в целочисленные массивы Х и У (массив Ч содержит абсциссы, а массив У – ординаты заданных точек). Определить, сколько и какие из этих точек попадут внутрь каждой из следующих окружностей: а) центр в точке (10,15), радиус 10; б) центр в точке (0,0), радиус 50; и) центр в точке (30, -20), радиус 30. Оформить процедурами ввод и вывод массивов координат. Оформить функцией определение координат и количества точек, попавших внутрь окружности.Составить программу на Паскале. Только правильно всё пожалуйста, не мало баллов же даю.Заранее всем спасибо за помощь))).
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Туктамышева Гузелия.
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программа не работает, обновите версию!

procedure ReadArray(prompt:string; var a:array of integer);
begin
  var n:=a.Length;
  Writeln('Введите через пробел значения ',prompt);
  a:=ReadArrInteger(n)
end;

function Inside(x0,y0,r,x,y:integer):boolean;
// попадает ли точка (x,y) внутрь круга, описанного уравнением
// (x-x0)^2+(y-y0)^2=r^2
begin
  Result:=Sqr(x-x0)+Sqr(y-y0)<r*r
end;

procedure Output(x,y:array of integer; x0,y0,r:integer);
begin
  Writeln('Точки,попавшие внутрь окружности');
  var k:=0;
  for var i:=0 to x.Length-1 do
    if Inside(x0,y0,r,x[i],y[i]) then begin
      k+=1;
      Write($'({x[i]},{y[i]}) ')
      end;
  if k>0 then Writeln;
  Writeln('Общее количество точек равно ',k)
end;

begin
  var n:=15;
  var x:=new integer[n]; ReadArray('абсцисс',x);
  var y:=new integer[n]; ReadArray('ординат',y);
  Writeln('Окружность радиуса 10 с центром (10;15)');
  Output(x,y,10,15,10);
  Writeln('Окружность радиуса 50 с центром (0;0)');
  Output(x,y,0,0,50);
  Writeln('Окружность радиуса 30 с центром (30;-20)');
  Output(x,y,30,-20,30);
end.

Пример
Введите через пробел значения абсцисс
-46 30 18 38 22 6 16 -11 -45 -42 -5 -5 10 11 35
Введите через пробел значения ординат
-26 -10 -15 21 45 30 1 47 32 -16 -20 41 -25 -49 -41
Окружность радиуса 10 с центром (10;15)
Точки,попавшие внутрь окружности
Общее количество точек равно 0
Окружность радиуса 50 с центром (0;0)
Точки,попавшие внутрь окружности
(30,-10) (18,-15) (38,21) (6,30) (16,1) (-11,47) (-42,-16) (-5,-20) (-5,41) (10,-25)
Общее количество точек равно 10
Окружность радиуса 30 с центром (30;-20)
Точки,попавшие внутрь окружности
(30,-10) (18,-15) (16,1) (10,-25) (35,-41)
Общее количество точек равно 5
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Хорошо, вот программа на Паскале, которая решает данную задачу:

pascal
program CirclePoints; const MAX_POINTS = 15; type CoordArray = array[1..MAX_POINTS] of Integer; function IsPointInsideCircle(x, y, centerX, centerY, radius: Integer): Boolean; begin // Функция определяет, лежит ли точка с координатами (x, y) внутри окружности с заданным центром и радиусом. Result := Sqr(x - centerX) + Sqr(y - centerY) <= Sqr(radius); end; procedure ReadCoordinates(var X, Y: CoordArray; var n: Integer); var i: Integer; begin WriteLn('Введите координаты точек:'); WriteLn('(Каждая точка задается двумя числами - абсциссой и ординатой.)'); for i := 1 to MAX_POINTS do begin Write('Точка ', i, ' (x y): '); ReadLn(X[i], Y[i]); end; n := MAX_POINTS; end; procedure CountPointsInsideCircle(X, Y: CoordArray; n, centerX, centerY, radius: Integer; var count: Integer); var i: Integer; begin count := 0; for i := 1 to n do begin if IsPointInsideCircle(X[i], Y[i], centerX, centerY, radius) then Inc(count); end; end; procedure PrintPointsInsideCircle(X, Y: CoordArray; n, centerX, centerY, radius: Integer); var i: Integer; begin WriteLn('Точки, попавшие внутрь окружности с центром (', centerX, ',', centerY, ') и радиусом ', radius, ':'); for i := 1 to n do begin if IsPointInsideCircle(X[i], Y[i], centerX, centerY, radius) then WriteLn('(', X[i], ',', Y[i], ')'); end; end; var X, Y: CoordArray; n, count: Integer; begin ReadCoordinates(X, Y, n); // Определение и вывод точек, попавших внутрь окружности с центром (10, 15) и радиусом 10. CountPointsInsideCircle(X, Y, n, 10, 15, 10, count); WriteLn('Количество точек внутри окружности (10, 15), радиус 10: ', count); PrintPointsInsideCircle(X, Y, n, 10, 15, 10); // Определение и вывод точек, попавших внутрь окружности с центром (0, 0) и радиусом 50. CountPointsInsideCircle(X, Y, n, 0, 0, 50, count); WriteLn('Количество точек внутри окружности (0, 0), радиус 50: ', count); PrintPointsInsideCircle(X, Y, n, 0, 0, 50); // Определение и вывод точек, попавших внутрь окружности с центром (30, -20) и радиусом 30. CountPointsInsideCircle(X, Y, n, 30, -20, 30, count); WriteLn('Количество точек внутри окружности (30, -20), радиус 30: ', count); PrintPointsInsideCircle(X, Y, n, 30, -20, 30); end.

Эта программа позволяет вам ввести координаты 15 точек и определить, сколько и какие из этих точек попадают внутрь каждой из трех окружностей с заданными центрами и радиусами.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос