Как на координатной плоскости, где заданы 15 произвольных точек с координатами, не превышающими по модулю 50, определить, сколько и какие из этих точек попадают внутрь окружностей с заданными центрами и радиусами? Нужно оформить процедуры для ввода и вывода массивов координат, а также функцию для определения координат и количества точек, попавших внутрь окружности. Напишите программу на Паскале.
Информатика 11 класс Геометрические алгоритмы и работа с массивами координатная плоскость произвольные точки окружности центры и радиусы программа на Паскале массивы координат определение точек информатика 11 класс алгоритмы геометрия задачи по информатике программирование на паскале
Для решения задачи, описанной вами, мы можем использовать язык программирования Pascal. Мы создадим программу, которая будет включать процедуры для ввода и вывода массивов координат, а также функцию для определения, сколько и какие точки попадают внутрь окружностей с заданными центрами и радиусами.
Давайте разберем шаги, необходимые для реализации этой программы.
Теперь давайте напишем код программы:
program CirclePoints;
type
    Point = record
        x, y: integer;
    end;
    Circle = record
        center: Point;
        radius: integer;
    end;
const
    MAX_POINTS = 15;
var
    points: array[1..MAX_POINTS] of Point;
    circle: Circle;
    i: integer;
procedure InputPoints(var pts: array of Point);
begin
    for i := 1 to MAX_POINTS do
    begin
        writeln('Введите координаты точки ', i, ' (x y):');
        readln(pts[i].x, pts[i].y);
    end;
end;
procedure InputCircle(var c: Circle);
begin
    writeln('Введите координаты центра окружности (x y) и радиус:');
    readln(c.center.x, c.center.y, c.radius);
end;
function IsInsideCircle(pt: Point; c: Circle): boolean;
var
    distance: real;
begin
    distance := sqrt(sqr(pt.x - c.center.x) + sqr(pt.y - c.center.y));
    IsInsideCircle := distance < c.radius;
end;
procedure OutputPointsInsideCircle(pts: array of Point; c: Circle);
var
    count: integer;
begin
    count := 0;
    writeln('Точки, попадающие внутрь окружности:');
    for i := 1 to MAX_POINTS do
    begin
        if IsInsideCircle(pts[i], c) then
        begin
            count := count + 1;
            writeln('Точка ', i, ': (', pts[i].x, ', ', pts[i].y, ')');
        end;
    end;
    if count = 0 then
        writeln('Нет точек, попадающих внутрь окружности.');
end;
begin
    InputPoints(points);
    InputCircle(circle);
    OutputPointsInsideCircle(points, circle);
end.
В этом коде:
Запустив программу, вы сможете ввести координаты 15 точек и параметры окружности, после чего программа выведет все точки, которые находятся внутри указанной окружности.