Professional Documents
Culture Documents
Лаб №3
Лаб №3
Ігоря Сікорського»
Факультет інформатики та обчислювальної техніки
Кафедра інформаційних систем та технологій
Лабораторна робота №3
з дисципліни «СРМ-1. Дискретна математика»
на тему
Київ – 2021
Зміст
Зміст............................................................................................................................2
1 Постановка задачі..................................................................................................3
2 Результати виконання програми...........................................................................4
3 Лістинг програми.....................................................................................................5
1 Постановка задачі
69
15
16
21
23
34
46
54
56
61
2 Результат виконання програми
3 Лістинг програми
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <windows.h>
#pragma warning(disable:4996)
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
ifstream inputFile("graph.txt");
int n, m;
int multiply, mult = 0;
inputFile >> n >> m;
int** array;
array = new int* [m];
for (int i = 0; i < m; i++) {
array[i] = new int[0];
}
for (int i = 0; i < m; i++) {
inputFile >> array[i][0] >> array[i][1];
}
inputFile.close();
cout << "З файлу було зчитано такі значення: " << endl;
for (int i = 0; i < m; i++) {
cout << array[i][0] << " " << array[i][1] << endl;
}
//-----Матриця відстаней-----//
int** multi = new int* [n + 1];
for (int i = 0; i < n + 1; i++) {
multi[i] = new int[n + 1];
}
vidstan = symiznist;
multi = symiznist;
char choice;
cout << "Показати матрицю відстаней?(y/n) ";
cin >> choice;
if (choice == 'y') {
cout << endl << "Матриця відстаней (100 - нескінченність): " << endl;
cout << "_";
for (int j = 1; j < n + 1; j++) {
cout << setw(6) << "v" << j;
}
cout << endl;
for (int i = 1; i < n + 1; i++) {
cout << "v" << i;
for (int j = 1; j < n + 1; j++) {
cout << setw(6) << vidstan[i][j] << " ";
}
cout << endl;
}
}
//-----Матриця досяжності-----//
int** dosyaznist = new int* [n + 1];
for (int i = 0; i < n + 1; i++) {
dosyaznist[i] = new int[n + 1];
}
for (int i = 0; i < n + 1; i++) {
for (int j = 0; j < n + 1; j++) {
dosyaznist[i][j] = 0;
}
}
int p, t;
for (int i = 0; i < n + 1; i++) {
for (int j = 0; j < n + 1; j++) {
symiznist[i][0] = i;
symiznist[0][j] = j;
}
}
for (int i = 0; i < m; i++) {
p = array[i][0];
t = array[i][1];
symiznist[p][t] = 1;
}
return symiznist;
}
int** mnozennya(int **multi, int **symiznist, int size) {
int** multiplied = new int* [size + 1];
for (int i = 0; i < size + 1; i++) {
multiplied[i] = new int[size + 1];
}
}
}
if (flag == false) {
flag = true;
for (int i = 0; i < size + 1; i++) {
for (int j = 0; j < size + 1; j++) {
if (i != j) {
if (symiznist[i][j] != 1)
flag = false;
}
}
}
if (flag == false)
cout << endl << "Граф незв'язний" << endl;
else
cout << endl << "Граф слабко-зв'язний" << endl;
}
else cout << endl << "Граф однобiчно-зв'язний" << endl;
}
else cout << endl << "Граф сильно-зв'язний" << endl;
}