Форум программистов, компьютерный форум CyberForum.ru

Определить вид графа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Для каждой строки заданной матрицы А найти столбцы с нулями http://www.cyberforum.ru/cpp-beginners/thread1210007.html
Для каждой строки заданной матрицы A размером 8х5 найти и напечатать номера столбцов, которые содержат нулевые элементы, и их количество. Плз помогите.
C++ Ошибка в коде. Почему не правильно вызываю функцию? Собственно вот код ошибки. 18 8 D:\C++\Task7.1.1.cpp case label value is less than minimum value for type Прошу не обращать внимания на каракули. Это русская раскладка в редакторе... Не пойму почему пишет, что функция не правильно объявляться. вот код #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1209989.html
Что за ошибка ?! C++
Не могу понять почему не компилится проект?!
C++ Литература по GDI+
Поискал какую-нибудь литературу (желательно русскоязычную), но ничего не нашел, кроме обзорных статей и отдельных примеров. А есть ли в сети что-нибудь более глобальное на данную тему?
C++ Разница в обращении к массиву по индексу и по указателю http://www.cyberforum.ru/cpp-beginners/thread1209961.html
Дочитал до главы "Указатели" и возникли вопросы, если у кого найдется время подскажите Вот пример: #include <iostream> using namespace std; int main() { int mas={31,54, 77, 52, 93};
C++ Из двухмерного массива сформировать одномерный по определенной схеме дано двухмерный массив A необходимо создать одномерный массив B располагая в нем элементы по данной схеме подробнее

Показать сообщение отдельно
AskeRik
0 / 0 / 0
Регистрация: 13.06.2014
Сообщений: 4
17.06.2014, 12:00  [ТС]     Определить вид графа
Цитата Сообщение от Mr.X Посмотреть сообщение
Кликните здесь для просмотра всего текста
/////////////////////////////////////////////////////////////////////////////////////////
//Написать программу, которая будет определять вид графа, а именно : транзитивен\не транзитивен\
//частично транзитивен. граф задается матрицей смежности, матрица считывается из текстового файла.
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string * * * * * * * * T_str;
typedef int * * * * * * * * * * * * T_vertex;
typedef std::vector < T_vertex *> * T_adj_row;
typedef std::vector < T_adj_row > * T_adj_matr;
/////////////////////////////////////////////////////////////////////////////////////////
struct *T_generate_int
{
* * //-----------------------------------------------------------------------------------
* * int * * left_adj_val_boud_;
* * int * * right_adj_val_boud_;
* * //-----------------------------------------------------------------------------------
* * T_generate_int
* * * * (
* * * * * * int * * left_adj_val_boud,
* * * * * * int * * right_adj_val_boud
* * * * )
* * * * :
* * * * left_adj_val_boud_ * * *( left_adj_val_boud * * ),
* * * * right_adj_val_boud_ * * ( right_adj_val_boud * *)
* * {}
* * //-----------------------------------------------------------------------------------
* * int *operator() ()
* * {
* * * * int *res * *= * get_rand_val();
if( res != 0 )
* * * * {
* * * * * * res * * = * get_rand_val();
* * * * }
* * * * return *res;
* * }
* * //-----------------------------------------------------------------------------------
* * int *get_rand_val()
* * {
* * * * return *rand() % ( right_adj_val_boud_ - left_adj_val_boud_ + 1 ) + left_adj_val_boud_;
* * }
* * //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
struct *T_generate_rand_adj_row
{
* * //-----------------------------------------------------------------------------------
* * int * * left_adj_val_boud_;
* * int * * right_adj_val_boud_;
* * int * * vertices_total_;
* * //-----------------------------------------------------------------------------------
* * T_generate_rand_adj_row
* * * * (
* * * * * * int * * left_adj_val_boud,
* * * * * * int * * right_adj_val_boud,
* * * * * * int * * vertices_total
* * * * )//IRF
* * * * :
* * * * left_adj_val_boud_ * * *( left_adj_val_boud * * ),
* * * * right_adj_val_boud_ * * ( right_adj_val_boud * *),
* * * * vertices_total_ * * * * ( vertices_total * * * *)
* * {}
* * //-----------------------------------------------------------------------------------
* * T_adj_row * operator() *()//IRF
* * {
T_adj_row * adj_row;
std::generate_n
* * * * * * (
* * * * * * * * std::back_inserter( adj_row ),
* * * * * * * * vertices_total_,
* * * * * * * * T_generate_int
* * * * * * * * * * (
* * * * * * * * * * * * left_adj_val_boud_,
* * * * * * * * * * * * right_adj_val_boud_
* * * * * * * * * * )//-//
* * * * * * );
return *adj_row;
* * }
* * //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
void *generate_rand_adj_matr
* * (
* * * * int * * * * * * left_adj_val_boud,
* * * * int * * * * * * right_adj_val_boud,
* * * * int * * * * * * vertices_total,
* * * * T_adj_matr *& * adj_matr
* * )//IRF
{
* * std::generate_n
* * * * (
* * * * * * std::back_inserter( adj_matr ),
* * * * * * vertices_total,
* * * * * * T_generate_rand_adj_row
* * * * * * * * (
* * * * * * * * * * left_adj_val_boud,
* * * * * * * * * * right_adj_val_boud,
* * * * * * * * * * vertices_total
* * * * * * * * )//-//
* * * * );
}
/////////////////////////////////////////////////////////////////////////////////////////
void *print_adj_row( T_adj_row *const * *& * adj_row )//I
{
* * std::copy
* * * * (
* * * * * * adj_row.begin * (),
* * * * * * adj_row.end * * (),
* * * * * * std::ostream_iterator<int>(std::cout, "\t")
* * * * );
std::cout * << *std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void *print_adj_matr( T_adj_matr *const * *& * adj_matr )//IRF
{
* * std::cout * << *"Матрица смежности графа."
* * * * * * * * << *std::endl;
std::for_each
* * * * (
* * * * * * adj_matr.begin *(),
* * * * * * adj_matr.end * *(),
* * * * * * print_adj_row//-//
* * * * );
}
/////////////////////////////////////////////////////////////////////////////////////////
T_str * get_path_mess
* * (
* * * * T_vertex * *A,
* * * * T_vertex * *B,
* * * * T_vertex * *C
* * )
{
* * T_str * const * DELIM * = * "->";
* * std::ostringstream *sout;
* * sout * *<< *"путь "
* * * * * * << *A + 1
* * * * * * << *DELIM
* * * * * * << *B + 1
* * * * * * << *DELIM
* * * * * * << *C + 1;
return *sout.str();
}
/////////////////////////////////////////////////////////////////////////////////////////
void *check_transitivity_of_graph_and_print_result( T_adj_matr * *& * adj_matr )//I
{
* * int * * vertices_total * * *= * adj_matr.size();
T_str * trans_mes;
* * T_str * not_trans_mes;
for( T_vertex * v1 * = * 0; v1 < vertices_total; ++v1 )
* * {
* * * * for( T_vertex v2 = 0; v2 < vertices_total; ++v2 )
* * * * {
* * * * * * if( adj_matr[v1][v2] == *0 )
* * * * * * {
* * * * * * * * continue;
* * * * * * }
for( T_vertex *v3 = 0; v3 < vertices_total; ++v3 )
* * * * * * {
* * * * * * * * if( adj_matr[v2][v3] == 0 )
* * * * * * * * {
* * * * * * * * * * continue;
* * * * * * * * }
* * * * * * * * //Утверждение. Существуют ребра v1v2 и v2v3.
* * * * * * * * if *(
* * * * * * * * * * * * adj_matr[v1][v3] != 0
* * * * * * * * * * )
* * * * * * * * {
* * * * * * * * * * if *(
* * * * * * * * * * * * * * trans_mes.empty()
* * * * * * * * * * * * )
* * * * * * * * * * {
* * * * * * * * * * * * trans_mes * * * = * get_path_mess( v1, v2, v3 );
* * * * * * * * * * }
* * * * * * * * }
* * * * * * * * else
* * * * * * * * {
* * * * * * * * * * if *(
* * * * * * * * * * * * * * not_trans_mes.empty()
* * * * * * * * * * * * )
* * * * * * * * * * {
* * * * * * * * * * * * not_trans_mes * = * get_path_mess( v1, v2, v3 );
* * * * * * * * * * }
* * * * * * * * }//else
* * * * * * }//for
* * * * }//for
* * }//for
if *(
* * * * * * * * trans_mes * * * .empty()
* * * * * * && *not_trans_mes * .empty()
* * * * )
* * {
* * * * std::cout * << *"Граф транзитивен, так как не существует путей из двух ребер."
* * * * * * * * * * << *std::endl;
* * }
* * else
* * {
* * * * if *(
* * * * * * * * * * !trans_mes * * * .empty()
* * * * * * * * && *!not_trans_mes * .empty()
* * * * * * )
* * * * {
* * * * * * std::cout * << *"Граф частично транзитивен:"
* * * * * * * * * * * * << *std::endl
* * * * * * * * * * * * << *"\tтранзитивность\t\t- "
* * * * * * * * * * * * << *trans_mes
* * * * * * * * * * * * << *std::endl
* * * * * * * * * * * * << *"\tнетранзитивность\t- "
* * * * * * * * * * * * << *not_trans_mes
* * * * * * * * * * * * << *"."
* * * * * * * * * * * * << *std::endl;
* * * * }
* * * * else if (
* * * * * * * * * * trans_mes.empty()
* * * * * * * * )
* * * * {
* * * * * * std::cout * << *"Граф нетранзитивен, например "
* * * * * * * * * * * * << *not_trans_mes
* * * * * * * * * * * * << *"."
* * * * * * * * * * * * << *std::endl;
* * * * }
* * * * else
* * * * {
* * * * * * std::cout * << *"Граф транзитивен, например "
* * * * * * * * * * * * << *trans_mes
* * * * * * * * * * * * << *"."
* * * * * * * * * * * * << *std::endl;
* * * * }
* * }//else
}
/////////////////////////////////////////////////////////////////////////////////////////
int *main()//IRF
{
* * int * * const * LEFT_ADJ_VAL_BOUND * * *= * 0;
* * int * * const * RIGHT_ADJ_VAL_BOUND * * = * 1;
* * int * * const * VERTICES_TOTAL * * * * *= * 3;
srand(unsigned(time(0)));
* * std::locale::global(std::locale(""));
for(;
* * {
* * * * T_adj_matr *adj_matr;
generate_rand_adj_matr
* * * * * * (
* * * * * * * * LEFT_ADJ_VAL_BOUND,
* * * * * * * * RIGHT_ADJ_VAL_BOUND,
* * * * * * * * VERTICES_TOTAL,
* * * * * * * * adj_matr
* * * * * * );//-//
std::cout * << *"\n\n\n\n\n\n";
* * * * print_adj_matr( adj_matr );
* * * * std::cout * << *std::endl;
* * * * check_transitivity_of_graph_and_print_result( adj_matr );//-//
* * * * std::cout * << *std::endl;
* * * * system( "pause" );
* * }//for
}
Спасибо Вам большое, но не могли бы Вы немного изменить код, чтобы матрица не заполнялась рандомно, а считывалась из текстового файла такого содержания:
3

A
B
C

0 1 0
1 0 1
0 1 0
 
Текущее время: 11:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru