Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОП_Сем.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
339.14 Кб
Скачать

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.