а програми показана на малюнку 3.1.
В
Рис. 3.1. Модульна структура програми
Програма складається з п'яти модулів: main - головна програма, vvod - введення графа, vyvod - виведення матриці, poisk - пошук вершин, messages - повідомлення.
Сполучення модулів програми описані в табл. 3.1. Всі дані між модулями передаються тільки у вигляді параметрів, глобальних змінних в програмі немає. p align="justify"> Всі модулі транслювалися окремо. Їх імена перераховані разом з розробленою для даної програми бібліотекою my.lib у файлі проекту myprojec.prj. Модулі vvod, vyvod, poisk, messages поміщені до бібліотеки об'єктивних модулів my.lib і для їх використання потрібно включити в програму створений в курсовій роботі файл заголовків my.h командою:
# include my.h
Таблиця 3.1.
Сполучення модулів
НомерВходВиход1Колічество вершин, список ребер графа-2Колічество вершин, матриця суміжності-3Колічество та номери вершінПрізнак, чи знайдені вершіни4Номер повідомлення-
Тексти файлу my.h і програм всіх модулів в алфавітному порядку наведено в додатку, а їх опису - у розділі 3.3.
.3 Опис модулів
.3.1. main - головний модуль
ЗВЕРНЕННЯ ІЗ MS-DOS: myprojec
ЗАГОЛОВОК: void main ()
ФУНКЦІЯ: Введення графа, побудова матриці суміжності, введення виділених вершин, пошук вершин, висновок результату і повідомлень про помилки.
ВХІДНІ ДАНІ:
n - кількість вершин
ВИХІДНІ ДАНІ: Ні.
ЗНАЧЕННЯ: Ні.
РОБОЧІ ДАНІ:
i - змінна циклу;
j - змінна циклу;
n - кількість вершин;
gr - матриця суміжності;
A, B - виділені вершини;
p - ознака вершини;
flag - ознака правильності введення кількості вершин;
АЛГОРИТМ: див. алгоритм 3.2.
Алгоритм 3.2. Алгоритм модуля main. p align="justify"> do
{Висновок повідомлення 1; ("% d", & n);// Введення кількості вершин
flag = 0;
if (n <2 | | n> NMAX) {Висновок повідомлення 3; flag = 1;}// Якщо n введено правильно, то flag = 1
} (flag == 1); (n, gr);// Введення графа
Висновок повідомлення 2; (n, gr);// Висновок матриці суміжності
Висновок повідомлення 7;
do
{scanf ("% d", & A);// Введення вершини A
scanf ("% d", ...