Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011 / 2011 / UP_MODPR_.RTF
Скачиваний:
38
Добавлен:
12.03.2015
Размер:
541.34 Кб
Скачать

4.3. Отладочные средства

Перечень необходимых отладочных средств в соответствии с планом приведен в разделе 4.1. Драйвер dvvodg для первого этапа отладки модуля vvodg приведен в приложении 7. Несмотря на то, что планируются правильные входные данные, предусмотрено сообщение "Ошибка ввода" на случай, если ошибка все же появится в данных или неправильно сработает vvodg.

В приложении 6 приведена отладочная программа вывода матрицы смежности vyvmsm, включенная для удобства использования в качестве модуля в файл проекта pkrc.prj (см. приложение 1).

На первом этапе отладки вместо pkrc.prj должен использоваться файл проекта dvvodg.prj (приложение 1).

1. Отладка программы

Программа отлажена по плану на всех предусмотренных в нём тестах. Результаты тестирования приведены в приложении 7.

Во время отладки программы [1] обнаружены следующие основные ошибки.

1. Написано (kz > 2) вместо (kz > 1) в модуле main.

2. В модуле поиска минимального цикла pminc возникала ошибка типа "плюс-минус один" за счет неверного порядка выполнения операторов:

k--;

v[k]++;

3. Модуль ввода графа vvodg неверно определял момент конца входного файла. Использованная в нем функция feof обнаруживает конец файла не после чтения его последнего символа до попытки ввода отсутствующих данных за пределами файла, как предполагалось (и как сделано в языке Pascal), a только после этой попытки. Для данной задачи функция feof оказалась неудобной и ориентированный на нее алгоритм пришлось переделать, чтобы использовать более подходящую в данной ситуации функцию scanf. Ее значение равно количеству введенных аргументов и после ввода можно проверить, сколько чисел фактически удалось ввести [2]. Если не ввелось ни одного значения, scanf возвращает -1, а не 0, как можно было бы ожидать.

4. В модуле pminc номер начальной вершины v[0] меняется с шагом 2 вместо 1 за счет оператора v[k]++ внутри цикла for (не требуется v[0]++ в заголовке цикла for).

3. Заключение

Курсовая работа выполнена в соответствии с требованиями [5] в полном объёме.

Список литературы

1. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ.- М.: Наука, 1986. - 272 с.

2. Липский В. Комбинаторика для программистов.- М.: Мир, 1988. - 213 с.

3. Хохлов Д.Г. Основы технологии модульного программирования: Учебное пособие.- Казань: КГТУ (КАИ), 2003. – 62 с.

4. Белецкий Я. Энциклопедия языка Си.- М.: Мир, 1992. - 687 с.

5. Хохлов Д.Г. Методические указания к курсовой работе по программированию на языке высокого уровня для направления Т28 - информатика и вычислительная техника.- Казань: КГТУ, кафедра АСОИУ, 2003. - 5 с.

6. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы: Учебное пособие. – Казань: КГТУ (КАИ), Кафедра АСОИУ, 2003. – 102 с.

Приложение 1. Системные файлы проекта

1. Файл pkrc.prj - перечень модулей и библиотек проекта (указывается как имя проекта системе Turbo-C):

pkrc.c

vyvmsm.c

graf.lib

На первом этапе отладки вместо pkrc.prj должен использоваться файл проекта dvvodg.prj:

dvvodg.c

vyvmsm.c

graf.lib

2. Файл graf.h - определения для библиотеки graf.lib:

/* graf.h

Определения для функций обработки графов.

И.И. Иванов 06.03.95

*/

#ifndef _GRAFH

#define _GRAFH

#ifndef NMAX

#define NMAX 20 /* максимальное количество вершин графа */

#endif

/* Прототипы библиотечных функций */

int pminc (int n, char g[][NMAX], int *dcmin, int c[]);

int vvodg (int *n, char g[][NMAX]);

void vyvodp (int kvp, int p[]);

#endif

3. Файл graf.lib - библиотека функций над графами

Содержит объектные модули: pminc.obj, vvodg.obj, vyvodp.obj

Библиотека сформирована после компиляции указанных подпрограмм командой вызова библиотекаря:

tlib graf.lib +pminc +vvodg +vyvodp