Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 семестр Калмычков / Записка 1 сем..docx
Скачиваний:
57
Добавлен:
08.12.2019
Размер:
630.27 Кб
Скачать

Минобрнауки РФ

Санкт-Петербургский государственный электротехнический университет

им. В.И. Ульянова (Ленина) «ЛЭТИ»

(СПбГЭТУ)

Факультет компьютерных технологий и информатики

Кафедра САПР

Курсовая работа

По дисциплине «Программирование»

На тему «Решение геометрических задач на плоскости»

Преподаватель: ______________________ Калмычков В. А.

Студент гр. 8309: ______________________ Янтиков Д. А.

Санкт-Петербург

2018

Аннотация

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

Summary

In the course work considered the solution of a geometric problem using arrays and reading from a file. Descriptions are given both for the mathematical solution of this problem and for the algorithm for solving the problem on the computer. The task is to analyze the lines and their points of intersection.

Оглавление

Аннотация 2

Summary 2

Формулировка задания 4

Цель работы 4

Математическая постановка задачи 4

Теоретические положения 4

Организация диалога с пользователем 6

Анализ задания и контрольный пример 6

Постановка задачи для решения на компьютере 9

Определение внутреннего формата представления данных 9

Функции программы: 9

Основные переменные: 10

Описание алгоритма 10

Блок – схемы 11

Int quotients: 11

Int points: 12

Int extra: 13

Int main: 15

Текст программы 16

Примеры работы программы 21

Вывод 23

Список литературы 24

Формулировка задания

Задано множество прямых на плоскости (коэффициентами уравнений Ax + By + C = 0). Подсчитать количество разных точек пересечения этих прямых. Определить все пары пересекающихся прямых, а также совпадающие прямые. Для каждой точки пересечения указать, какому количеству прямых она принадлежит.

Цель работы

Обобщить знания и практические навыки по программированию, полученные за первый семестр.

Математическая постановка задачи

Дано: Три текстовых файла (A.txt, B.txt, C.txt), содержащие три одномерных массива с коэффициентами A, B и C прямой, соответственно.

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

Способ решения: Считывать прямые, проверяя полученное уравнение каждой на корректность. Для каждой пары прямых найти точку пересечения, либо доказать, что ее не существует с помощью метода Крамера. Записать в массив координаты точек пересечения. Проанализировать массив, находя количество уникальных точек. Вывести уникальные точки. «Пробежаться» по массиву, указывая какое количество раз встретилась та или иная точка.

Теоретические положения

Пусть нам даны две прямые, заданные своими коэффициентами и . Если две прямые не параллельны, то они пересекаются. Чтобы найти точку пересечения, достаточно составить из двух уравнений прямых систему и решить её:

Пользуясь формулой Крамера, сразу находим решение системы, которое и будет искомой точкой пересечения:

Если знаменатель нулевой, т.е.

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

Соседние файлы в папке 1 семестр Калмычков