
- •Огляд літератури
- •Формулювання задачі
- •Алгоритм розв’язання задачі
- •Програмні реалізації алгоритму
- •1.Загальна характеристика програми
- •2.Призначення програми
- •3.Вхідна інформація
- •4.Результуюча інформація
- •5.Таблиця ідентифікаторів прогрими
- •6.Структура програми
- •5. Інструкція користувачеві програми
- •Контрольні приклади та аналіз їх реалізації Висновки Література
6.Структура програми
Програма використовує такі заголовні файли:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
А також функції:
int TochkMatr(char mp[][N]);
int TochkiSpusok(char pm[][N],int pkz);
int VvidFile (char pm[][N]);
void Shljah (int *p, int poz);
void CPY (int *p, int *q, int poz);
void Print (int *p,int poz);
int NextToch (int *p, int i,int poz);
int main ()
Функція TochkMatr (char mp[][N]) – перетворює матрицю суміжності в зручну для програми форму та перевіряє правильність введених даних:
011
101
(1,2) ,(1,3),(2,1), (2,3) ,(3,1), (3,2) – масив ребер,
де (1,2)
110 вершини які з’єднює це ребро
вхідні дані – mp[][N] – масив у якому записана матриця суміжності
вихідні дані – програма повертає 1 якщо введені дані правильні і 0 якщо ні.
Функція int TochkiSpusok(char pm[][N],int pkz) – перетворює матрицю суміжності в зручну для програми форму та перевіряє правильність введених даних:
123
213 (1,2) ,(1,3),(2,1), (2,3) ,(3,1), (3,2) – масив ребер, де (1,2)
312 вершини які з’єднює це ребро
вхідні дані – pm[][N] – масив у якому записана список вершин, pkz – показник на спосіб задання даних: з клавіатури –"1", з фала –"2",
вихідні дані – програма повертає 1 якщо введені дані правильні і 0 якщо ні.
Функція int VvidFile (char pm[][N]) – зчитує дані з вказаного файлу.
вхідні дані – pm[][N] – масив у який буде записано дані відповідно до вибраного способу.
вихідні дані – програма повертає 1 якщо файл існує і 0 якщо ні.
Функція void Shljah (int *p, int poz) – рекурсивна функція, яка виконує пошук шляхів.
вхідні дані – *p – вказівник на масив у якому записано вже пройдений шлях, poz – кількість пройдених вершин.
вихідні дані – програма нічого не повертає.
Функція int NextToch (int *p, int i,int poz) – знаходить наступну можливу вершину через яку можна пройти.
вхідні дані – *p – вказівник на масив у якому записано вже пройдений шлях,
і – позиція ребра в масиві ребер яке ми перевіряємо, poz – кількість пройдених вершин.
вихідні дані – програма повертає наступну вершину по якій можна пройти або 0 якщо такої вершини немає.
Функція void Print (int *p,int poz) – виводить дані на екран та записує у файл.
вхідні дані – *p – вказівник на масив у якому записано вже пройдений шлях, poz – кількість пройдених вершин.
вихідні дані – програма нічого не повертає.
Функція void CPY (int *p, int *q, int poz) – копіює пройдений шлях.
вхідні дані – *p – вказівник на масив у якому записано вже пройдений шлях і з якого ми копіюємо,*q – вказівник на масив у який ми копіюємо,
poz – кількість пройдених вершин.
вихідні дані – програма нічого не повертає.
5. Інструкція користувачеві програми
Після виведення на екран повідомлення «Виберiть спосiб задання графа:» користувач змушений вибрати спосіб задання графа: якщо він хоче задати граф матрицею суміжності він має ввести «1» і натиснути «Enter», якщо користувач хоче задати граф списком вершин тоді ввести «2».
Після чого користувач зможе вибрати як ввести дані: для введення даних з клавіатури потрібно ввести «1», а для зчитування з файлу ввести «2». приклад введення даних показано у пункті 4.3(ст. 17).
Якщо користувач вибрав зчитування з файлу, йому потрібно ввести ім’я файлу. Формат файлу має бути «.txt», розширення файлу вводити не обов’язково. Якщо файл знаходиться у папці з якої було запущено програму то достатньо ввести тільки ім’я файлу, якщо ж файл не знаходиться у папці з якої було запущено програму то потрібно ввести шлях до файлу та ім’я розділених слешом «\». Приклад введення шляху до та ім’я файлу показано у пункті 4.3(ст. 17).
Також максимальна кількість вершин у графі – 9.