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

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

Программа считывает коэффициенты из файла и записывает их в одномерные массивы 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.

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