Задачи на тему «Геометрия».
Программирование на Си, С++ (консольные приложения).

Условие1:

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

Из школьного курса известно, что через любые три точки (если только они не лежат на одной прямой) можно провести окружность. Строится серединный перпендикуляр для первых двух точек, т.к. центр окружности будет лежать только на нем (обеспечена равноудаленность). А его пересечение со вторым серединным перпендикуляром даст точку - центр окружности, которая будет равноудалена до всех трех заданных точек.

Пусть пользователь задает только количество точек, а их координаты будут генерироваться случайно.

Впрочем, в тестовом варианте, надо дать возможность явно указывать координаты некоторых точек…

Окружность через три точки консольное приложение C++

Вот результат, после того как пользователь ввел число 25.

Кому интересно, Скачать ехе-файл для тестирования

Условие2:

На плоскости заданы множества точек A и множество окружностей B.
Найти две различные точки из A такие, чтобы проходящая через них прямая пересекалась с максимальным количеством окружностей из B.


Прямая пересекающая окружности консольное приложение C++

В цикле по каждым двум точкам находим уравнение прямой.
Затем, во вложенном цикле, определяем расстояние до этой прямой от каждого центра окружности и сравниваем с ее радиусом.
И становится понятно, пересекает прямая окружность или нет…

Кому интересно, Скачать ехе-файл для тестирования

Условие3:

На плоскости задано множество точек А и множество прямых В.
Найти две различные точки из А такие, чтобы проходящая через них прямая была параллельна наибольшему количеству прямых из В.


Параллельность прямых консольное приложение C++

Ну, здесь еще проще: после того как по паре точек определили уравнение прямой остается сравнить коэффициенты наклона полученной прямой со всеми прямыми из множества В.

Кому интересно, Скачать ехе-файл для тестирования

Условие4:

Среди треугольников с вершинами в заданном множестве точек на плоскости указать такой, стороны которого содержат максимальное число точек заданного множества.

Точки на треугольнике консольное приложение C++

Определить, лежит ли точка на «прямой» по уравнению прямой – задача считай дошкольная…
А сравнив координаты вершин треугольника и выбранной точки, можно однозначно сказать, лежит ли она на стороне треугольника или за пределами…
Остается подсчитать все это в циклах и запоминать наилучший вариант из просмотренных.

Кому интересно, Скачать ехе-файл для тестирования

Условие5:

На координатной плоскости заданы в порядке следования все N вершин выпуклого многоугольника (2 < N < 21). Найти площадь многоугольника или (в противном случае) сообщить, что многоугольник не является выпуклым.

Площадь выпуклого многоугольника консольное приложение C++

Количество вершин многоугольника можно запросить у пользователя до ввода координат этих вершин…
Затем заполнить массив точками (координатами) вершин многоугольника (тоже с участием пользователя)…
Остается :

  1. проверить многоугольник на выпуклость, посылая последовательно по 3 точки в матричный детектор направления поворота;
  2. разбить выпуклый многоугольник на треугольники;
  3. сложить площади треугольников, которые тоже легко вычисляются с помощью матричного аппарата.

Весь код главной функции не превышает 30 строк, а три вспомогательные функции не превышают 20 строк...

Кому интересно, Скачать ехе-файл для тестирования

И в завершение…

Однотипность этих задач видна невооруженным взглядом…
Поэтому, структуры данных и многие функции, несущие явную геометрическую направленность, выделены в отдельный модуль.
Не сомневаюсь, он пригодится мне еще не раз…
Да и Вам, наверное, тоже…


Условия получения кода?    Показать?


Другие примеры на языках «C»,«C++»,«C#»




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
Весь код по 49 руб


требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике