 
        
        - •Курсовая работа
- •Аннотация
- •Формулировка задания
- •Цель работы
- •Математическая постановка задачи
- •Теоретические положения
- •Организация диалога с пользователем
- •Анализ задания и контрольный пример
- •Постановка задачи для решения на компьютере
- •Определение внутреннего формата представления данных
- •Функции программы:
- •Основные переменные:
- •Описание алгоритма
- •Блок – схемы
- •Текст программы
- •Примеры работы программы
- •Список литературы
Определение внутреннего формата представления данных
Программа считывает коэффициенты из файла и записывает их в одномерные массивы a[MaxLines], b[MaxLines], c[MaxLines] соответственно, где MaxLines = 100. Также используется двумерный массив mass_points[rows][colls] для хранения координат для каждой точки пересечения.
Функции программы:
| 
 Имя функции | 
 Назначение | Параметры | 
 Внешние эффекты | ||||
| Входные | Выходные | Модифицируемые | Транзитные | ||||
| 
 quotients | Считывание Коэффициентов и построение Прямых. | &SIZE, count, MaxLines, *a, *b, *c. | 
 - | 
 &SIZE, count. | 
 | 
 | |
| 
 points | Нахождение точек пересечения. | &SIZE, &count, *a, *b, *c. | 
 - | 
 &count. | 
 | 
 | |
| 
 extra | Поиск и анализ уникальных точек. | 
 &count, &count_points. | 
 - | 
 &count, &count_points. | 
 | 
 | |
| 
 main | Управляющая функция. | 
 - | 
 - | 
 | 
 | 
 | |
Основные переменные:
В следующей таблице указаны все основные переменные, используемые в программе. В таблице не рассматриваются временные переменные и переменные счетчиков, не выходящих за пределы одной функции.
| Название | Тип | Назначение | 
| count | int | Счётчик точек пересечения | 
| SIZE | int | Размер считанного массива | 
| a[], b[], c[] | long double | Массивы коэффициентов | 
| MaxLines | const unsigned int | Макс. кол-во прямых | 
| count_points | int | Счётчик уникальных точек | 
| check | bool | Переменная для разных проверок | 
| MAX | int | Макс. кол-во считанных прямых | 
| symbol | char | Переменная для пропуска символов при считывании | 
| rows | int | Количество строк | 
| colls | int | Количество столбцов | 
| mass_points[][] | double | Массив координат точек пересечения | 
| x3, y3 | float | Переменные действий по поиску точек | 
| opr1, opr2 | float | Определители для нахождения параллельных и совпадающих прямых | 
Описание алгоритма
Сначала программа обращается к функции quotients, где с помощью первых элементов входных массивов ищет минимально возможный, и записывает его значение в переменную MAX. Циклично считываются коэффициенты для прямых. Далее в функции проверяется возможность существования считанной прямой, если условие не выполняется, то выводится найденная прямая с присвоенным номером. После мы переходим в функцию points. С помощью двойного цикла и некоторых условий, программа математическими действиями считает точку пересечения для каждой пары прямых. Если такой не существуют, программа вновь обращается к методу Крамера и определяет параллельны прямые или совпадают. Все найденные точки пересечения выводятся матрицей в файл points.txt под своим номером. Переходим к функции extra. Считываем массив mass_points из вышеупомянутого файла. Сравниваем строки. При нахождении одинаковых, программа выводит сообщение о нахождении совпадающих точек, и указывает их номера. Если точки не совпадают, то уникальные точки выводятся в текстовый документ extra_points.txt. Далее, еще раз пробежавшись по массиву mass_points, считаем указываем количество неповторяющихся точек, и считаем их за уникальные. Далее программа выводит, сколько уникальных точек было найдено. Программа завершается. Также, при каждом выводе или важном действии, информация поступает в файл протокола protocol.txt.
