Рис. 19
Выходные данные
В зависимости от полученного результата сравнения графов пользователю будет выдано текстовое сообщение. Если графы эквивалентны, то результатом будет сообщение (рис. 20):
«Графы эквивалентны».
В противном случае результатом работы программы будет сообщение:
«Графы не эквивалентны».
Выходные формы
Рис. 20
Метод решения
В зависимости от значения переключателя на форме осуществляется ввод данных с клавиатуры или из текстового файла, с контролем корректности ввода данных. При вводе графов строят матрицы смежности (MS). Для получения радиуса графа необходимо вначале вычислить матрицу расстояний графа (MR).Максимальное значение в этой матрице и будет диаметром графа. Ниже приведен алгоритм получения матрицы MR.
Пусть r - вычисленные значения расстояний в матрице MR. Используем две вспомогательные матрицы В1 и В2:
1) r=1, В1= MS, MR= MS;
2) В2=В1* MS, r=r+1;
3) если (MR[I,j]=0 и B2[I,j] <>R[I,j]) то MR[I,j]= r;
4) если в п.3) матрица расстояний не изменялась, то конец вычислений, иначе
|
|
5) В1=В2 и повторить п.2).
Аномалии
В нашей программе аномалии в основном связаны с контролем входных данных.
Все возможные аномалии указаны в табл.3.
Таблица 3
Номер п/п | Наименование | Условия возникновения | Реакция |
1 | Некорректный ввод количества вершин 1-го графа (при вводе с файла) | (n1>20) или (n1<0) | Вывод сообщения: ”Ошибка ввода количества вершин 1-го графа! “ (Образец 1) |
2 | Некорректный ввод количества ребер 1-го графа (при вводе с файла) | (m1>50) или (m1<0) | Вывод сообщения: ”Ошибка ввода количества ребер 1-го графа!” (Образец 2) |
3 | Элемент массива Fо 1-го графа недопустим (при вводе с экрана) | (Fо1i<0) или (Fo1i>n1) | Вывод сообщения: ”Элемент Fо1 1-го графа недопустим!“ (Образец 3) |
4 | Количество элементов массива Fо1 1-го графа неверно (при вводе с экрана) | K<>2m1+n1 | Вывод сообщения: ” Количество элементов массива Fо1 1-го графа неверно!“ (Образец 4) |
5 | Элемент массива Fо 2-го графа недопустим (при вводе с экрана) | (Fо2i<0) или (Fo2i>n1) | Вывод сообщения: ”Элемент Fо2 2-го графа недопустим!“ (Образец 5) |
6 | Количество элементов массива Fо2 2-го графа неверно (при вводе с экрана) | K<>2m2+n2 | Вывод сообщения: ” Количество элементов массива Fо2 2-го графа неверно!“ (Образец 6) |
Окончание таблицы 3
Номер п/п | Наименование | Условия возникновения | Реакция |
7 | Некорректный ввод кол-ва вершин графа (при вводе с файла) | (n >20) или (n <0) | Вывод сообщения: ”Ошибка ввода количества вершин графа!” (Образец 7) |
8 | Некорректный ввод кол-ва ребер графа (при вводе с файла) | (m>50) или (m<0) | Вывод сообщения: ”Ошибка ввода количества ребер графа! “ (Образец 8) |
Функциональные тесты
|
|
Функциональные тесты приведены в табл.4:
Таблица 4
Но-мер п/п | Назначение теста | Входные данные | Результат |
1 | Проверка аномалии 1 | 21 3 …… | Вывод сообщения по образцу 1 |
2 | Проверка аномалии 2 | 4 51 ……. | Вывод сообщения по образцу 2 |
3 | Проверка аномалии 5 | 4 3 2 0 1 3 4 0 2 0 2 0 21 3 …. | Вывод сообщения по образцу 5 |
4 | Проверка аномалии 6 | 4 3 2 0 1 3 4 0 2 0 2 0 4 51 …. | Вывод сообщения по образцу 6 |
Продолжение табл. 4
Но-мер | Назначение теста | Входные данные | Результат | ||||||||||||||||||||
5 | Проверка аномалии 3 |
Fо1 Fо2
| Вывод сообщения по образцу 3 | ||||||||||||||||||||
6 | Проверка аномалии 4 |
Fо1 Fо2
| Вывод сообщения по образцу 4 |
Продолжение табл. 4
Но-мер | Назначение теста | Входные данные | Результат | |||||||||||||||||||||
7 | Проверка аномалии 7 |
| Вывод сообщения по образцу 7 | |||||||||||||||||||||
8 | Проверка аномалии 8 | n1
Fо1 Fо2
| Вывод сообщения по образцу 8 | |||||||||||||||||||||
9 | Нормальная работа | n1
Fо1 Fо2
| Вывод сообщения Графы эквивалентны | |||||||||||||||||||||
10 | Нормальная работа | n1
Fо1 Fо2
| Вывод сообщения Графы не эквивалентны |