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

Приложение 4. Текст программы модуля vvodg

/********************************************************/

/* Ввод количества вершин n и перечня ребер графа */

/* из файла stdin в матрицу смежности g. */

/* Значение: */

/* 0 - ввод завершен без ошибок; */

/* 1 - было повторение ребер (игнорировалось); */

/* 2 - входной файл пуст; */

/* 3 - недопустимое количество вершин; */

/* 4 - недопустимый номер вершины; */

/* 5 - только одна вершина в ребре. */

/* При значениях 2 - 5 ввод прерывается. */

/* И.И. Иванов 17.03.95 */

/********************************************************/

#include <stdio.h>

#include "graf.h"

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

{

. . .

}

Примечание. Текст программы в пособии полностью не приводится, чтобы стимулировать самостоятельную разработку студентами этого модуля.

Приложение 5. Текст программы модуля vyvmsm

/**************************************************************/

/* Вывод матрицы смежности g графа с количеством вершин n */

/* в файл stdout. */

/* И.И. Иванов 13.03.95 */

/**************************************************************/

#include <stdio.h>

#include "graf.h"

void vyvmsm (int n, char g[][NMAX])

{

int i, j;

printf ("\nМатрица смежности графа\n");

for (i=0; i<n; i++)

{ for (j=0; j<n; j++)

printf (" %d", g[i][j]);

putchar ('\n');

}

}

Приложение 6. Текст программы модуля vyvodp

/**************************************************/

/* Вывод в файл stdout номеров вершин */

/* пути графа из массива p; */

/* kvp - количество вершин пути. */

/* И.И. Иванов 03.03.95 */

/**************************************************/

#include <stdio.h>

void vyvodp (int kvp, int p[])

{

int i; /* индекс текущей вершины пути */

for (i=0; i<kvp; i++)

printf (" %d", p[i]);

printf ("\n");

}

Приложение 7. Текст программы модуля vyvsoob

/**************************************************/

/* Вывод i-го сообщения в файл stdout */

/* И.И. Иванов 13.03.95 */

/**************************************************/

#include <stdio.h>

void vyvsoob (int i)

{

char *t[] = { " ",

/* 1 */ "\nКратчайший цикл длиной ",

/* 2 */ "\nВ графе нет циклов\n",

/* 3 */ "\nВведите граф (колич.вершин от 1 до 20 и ребра, \

конец Ctrl-Z).\n",

/* 4 */ "\nОшибка: нет исходных данных\n",

/* 5 */ "\nОшибка: количество вершин должно быть от 1 до ",

/* 6 */ "\nОшибка: номер вершины должен быть от 0 до ",

/* 7 */ "\nОшибка: ребро должно содержать две вершины\n",

/* 8 */ "\nРешение прекращено\n",

/* 9 */ "\nПредупреждение: было дублирование ребер \

(игнорировалось)\n",

/* 10 */ "\nПредупреждение: граф содержит петли \

(игнорируются)\n" };

printf ("%s", t[i]);

}