Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр6(геометрия).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
614 Кб
Скачать
☆

4. Анализ структур данных, выбранных для реализации алгоритма.

Входные данные.

Количество точек nN, поэтому в алгоритме представляется целым типом:

n:цел.

Прежде чем рассматривать представление множества точек, рассмотрим представление одной точки. Поскольку координаты точки принадлежат множеству R, то им соответствует вещественный тип данных. Координаты одной точки можно представить:

а) как две отдельные переменные:

х,у: вещ.;

б) как запись:

точка = запись (х,у:вещ.)

Множество точек можно представить следующим образом.

1. Для хранения используется набор отдельных переменных:

а) 2*n переменных вещественного типа:

х1,х2,х3...хn,у1,у2,у3...уn:вещ.

б) n переменных типа «точка»:

t1,t2,t3...tn:точка.

Недостаток этого способа – невозможность автоматизации обработки при большом количестве точек.

2. Для хранения используется один или несколько массивов, что позволяет автоматизировать обработку при большом количестве точек:

а) х,у: массив [n] вещ.

б) t: массив [n] типа «точка».

Достоинство способов а) и б)– мнемоничность переменных.

в) t: массив[n][2]вещ.

t[i][1] соответствует текущей координате х, t[i][2] – текущей координате у.

Недостаток этого способа– название элемента не отражает его смысл.

Недостаток представления множества в виде массива элементов – большой объем памяти, используемый для хранения элементов.

3. На каждом шаге обработки можно хранить только текущие три точки множества (либо в виде переменных вещественного типа, либо в виде записей типа «точка»). Достоинство – малый объем занимаемой памяти. Однако, поскольку обработка точек предполагает нелинейный перебор (каждая точка с каждой без учета повторений), то при обработке очередной тройки точек пришлось бы заново вводить ранее введенные значения, что ухудшает работу алгоритма, снижает быстродействие и повышает вероятность возникновения ошибок при вводе данных.

Выходные данные.

Количество треугольников N, поэтому в алгоритме представляется целым типом:

K: цел.

Промежуточные данные.

Согласно выбранному методу решения, для определения параметров текущего треугольника необходимо вычислить следующие величины:

- длины сторон треугольника;

- полупериметр треугольника;

- углы треугольника.

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

1. Эти данные можно хранить в виде соответствующих массивов из n элементов:

а,b,c: массив [n] вещ. { длины сторон треугольников };

p: массив [n] вещ. { полупериметры треугольников};

angle_A, angle_B, angle_C: массив [n] вещ. { углы треугольников }.

Недостаток – необходим большой объем памяти для хранения данных.

2. Поскольку при обработке текущего треугольника данные о параметрах предыдущих треугольников нам не нужны, то логично хранить только данные одного треугольника:

а,b,c: вещ. { длины сторон текущего треугольника };

p: вещ. { полупериметр текущего треугольника };

angle_A, angle_B, angle_C: вещ. { углы текущего треугольника }.

Достоинство – небольшой объем памяти, необходимый для хранения данных.