Вопрос задан 25.06.2023 в 04:38. Предмет Информатика. Спрашивает Наливайко Анатолий.

Как построить матрицу инциденций на C++? ​

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бовырина Алина.

Ответ: вот готовый код

#include "stdafx.h"

#include <iostream>

#include <cstdlib>

#include <fstream>

#include <string>

using namespace std;

struct myStruct{  

   char temp[5];  

   int v1;  

   int v2;  

};

 

int main()

{

 

   char filename[50];

   ifstream inFile;

   cout << "Enter the directory of data file:\n";

   cin.getline(filename, 50);

   inFile.open(filename);

 

   if (!inFile.is_open())

   {

       cout << "Can't open the file. Terminating\n";

       exit(EXIT_FAILURE);

   }

 

   char a[5], b[5];

   int n = 0;

   int m = 0;

 

   inFile >> a >> b >> n >> m;

 

   cout << "Number of vertexes is " << n << endl;

   cout << "Number of edges is " << m << endl;

 

 

   myStruct edge[2100];

 

   int i = 0;

 

   while (!inFile.eof())

   {

       inFile >> edge[i].temp >> edge[i].v1 >> edge[i].v2;

       i++;

   }

   

   for (int j = 0; j < m; j++)

   {

       cout << edge[i].temp << " " << edge[i].v1 << " " << edge[i].v2 << " /n";

       j++;

   }

 

   inFile.close();

 

 

   system("pause");

}

0 0
Отвечает Князь Алексей.

Ответ:

Построить матрицу инцидентности и смежности.

Сформировать множество вершин, из которых исходят ребра заданной стоимости.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для построения матрицы инциденций в C++, вы можете использовать двумерный массив (например, вектор векторов) или структуру данных, представляющую граф. В данном ответе я представлю вам пример использования вектора векторов для создания матрицы инциденций для ориентированного графа.

Предположим, у вас есть ориентированный граф с N вершинами и M рёбрами. Матрица инциденций будет иметь размерность N x M, где N - количество вершин, а M - количество рёбер. Каждая строка матрицы будет представлять вершину, а каждый столбец - ребро. Значения в матрице будут 0, если вершина не инцидентен ребру, 1, если вершина начальная для ребра, и -1, если вершина конечная для ребра.

Пример кода на C++, который создаёт матрицу инциденций для ориентированного графа:

cpp
#include <iostream> #include <vector> using namespace std; int main() { int N, M; // Количество вершин и рёбер cin >> N >> M; vector<vector<int>> incidenceMatrix(N, vector<int>(M, 0)); for (int i = 0; i < M; i++) { int startVertex, endVertex; cin >> startVertex >> endVertex; // Заполняем матрицу инциденций incidenceMatrix[startVertex][i] = 1; incidenceMatrix[endVertex][i] = -1; } // Вывод матрицы инциденций for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cout << incidenceMatrix[i][j] << " "; } cout << endl; } return 0; }

Этот код сначала считывает количество вершин (N) и рёбер (M), затем создаёт матрицу инциденций и заполняет её значениями в соответствии с введёнными рёбрами.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос