Входной формат текстового файла

Рис. 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
 
   
3
4  
n1    m1             n2   m2

     
2 0 5 3 40 2 0 2 0  0
 
 


Fо1                        Fо2

 

                                                 

 

 

Вывод сообщения по образцу 3
6 Проверка аномалии 4
 
   
3
4  
n1    m1             n2   m2

     
2 0 5 3 40 2 0 2  
 
 


Fо1                          Fо2

 

                                                 

 

 

Вывод сообщения по образцу 4

Продолжение табл. 4

Но-мер Назначение теста Входные данные

Результат

7     Проверка аномалии 7

3
4  
3
4  
n1    m1             n2   m2

 

2 0 1 3 40 2 0 2 0  0
Fо1                        Fо2

 

                                                 

 

 

Вывод сообщения по образцу 7  
8 Проверка аномалии 8

 n1

3
4  
3
4  
   m1             n2   m2

     
2 0 1 3 40 2 0 2 0  
 
2 0 1 3 40 2 0 2  


Fо1                          Fо2

 

                                                 

 

 

Вывод сообщения по образцу 8  
9 Нормальная работа

 n1

3
4  
3
4  
   m1             n2   m2

     
2 0 1 3 40 2 0 2 0  
 
2 0 1 3 40 2 0 2 0  


Fо1                          Fо2

 

                                                 

 

 

Вывод сообщения Графы эквивалентны  
10  Нормальная работа

 n1

3
4  
3
4  
   m1             n2   m2

     
2 0 1 3 0 2 40 3 0  
 
2 0 1 3 40 2 0 2 0  


Fо1                          Fо2

 

                                                 

 

 

Вывод сообщения Графы не эквивалентны  






Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: