Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Курсовой 18_06_12.docx
Скачиваний:
9
Добавлен:
09.11.2019
Размер:
829.5 Кб
Скачать
    1. Входные данные

Входные данные приведены в табл.2, входные формы изображены на рис. 18, входной формат текстового файла показан на рис. 19:

Таблица 2

Номер п/п

Наименование

Тип

Диапазон

Назначение

1

n1

Целый

1<n1<=20

Количество вершин

1-го графа

2

m1

Целый

1<m1<=50

Количество ребер

1-го графа

3

Fo1={ fo1[i]}

Массив целых чисел

0<=fo1[i]<=n1

1<=i<=2m1+n1

Fo-представление

1-го графа

4

n2

Целый

0<n2<=20

Количество вершин

2-го графа

5

m2

Целый

1<m2<=50

Количество ребер

2-го графа

6

Fo2={ fo2[i]}

Массив целых чисел

0<=fo2[i]<=n2

1<=i<=2m2+n2

Fo-представление

2-го графа

    1. Входные формы

Рис. 15

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

Рис. 16

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

В зависимости от полученного результата сравнения графов пользователю будет выдано текстовое сообщение. Если графы эквивалентны, то результатом будет сообщение (рис. 20):

«Графы эквивалентны».

В противном случае результатом работы программы будет сообщение:

«Графы не эквивалентны».

    1. Выходные формы

Рис. 20

    1. Метод решения

В зависимости от значения переключателя на форме осуществляется ввод данных с клавиатуры или из текстового файла, с контролем корректности ввода данных. При вводе графов строят матрицы смежности (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).

    1. Аномалии

В нашей программе аномалии в основном связаны с контролем входных данных.

Все возможные аномалии указаны в табл.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)