задание в Lazarus
Графы. Генерируется текстовый файл в виде таблицы N*M, разделитель – табуляция. Здесь N – число строк. M – число столбцов. Т.е. это набор из N M-мерных векторов. Построить полный kNN граф, где число ближайших соседей k = N. Определить среднее расстояние до всех соседей по всем вершинам графа. Затем проредить граф, удаляя те рёбра (ссылки на соседей), если это расстояние превышает найденное среднее. В выходной текстовый файл вывести порядковые номера векторов и для каждого из них порядковые номера оставшихся соседей (в одну строку).
Дополнительные требования. Сделать графический пользовательский интерфейс с возможностью ввода чисел N и M, ввода имён файлов. Сделать проверку правильности ввода. Создать класс для графа с конструктором и деструктором. Главные методы:
1. генерация исходного графа;
2. прореживание графа;
3. запись графа в текстовый файл.
Приложение должно выполнить тестирование этих методов.