Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2016, 13:16   #11
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Если например maldon под индексом 0
А ferring под 1, то в массиве елементы [0,1] и [1,0] должны быть равны 1. как у меня на скрине и у Вас на листике.
Потом в цикле по строке прошлись, найденные 1-цы - смежные вершины для конкретной вершины
я понял это все. но как мне написать if (именно код) для : то в массиве елементы [0,1] и [1,0] должны быть равны 1
if (.... == 1)(там где точки я не знаю как написать, туплю жостко)

Последний раз редактировалось pashaEx; 06.12.2016 в 13:18.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 13:33   #12
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

исходник с кибера
Код:
#include<iostream>
 
void main( void )
{
    setlocale( LC_ALL, "Russian" );
    
    unsigned m[6][6] = { { 1, 1, 0, 0, 1, 0 },
                         { 1, 0, 1, 0, 1, 0 },
                         { 0, 1, 0, 1, 0, 0 },
                         { 0, 0, 1, 0, 1, 1 },
                         { 1, 1, 0, 1, 0, 0 },
                         { 0, 0, 0, 1, 0, 0 } };/*Какая-то матрица смежности. 
     не булева ибо m[0][0] может считаться равным либо единице (как у меня), либо двум.*/
    const unsigned l = 6; //кол-во элеменов графа.
 
    std::cout << "смежные вершины матрицы смежности:\n";
    for(unsigned int i = 0; i != l; ++i)
        for(unsigned int j = i; j != l /*пользуясь симетричностью относительно главной диагонали матрицы*/; ++j)
            if(m[i][j])
                std::cout << i + 1 << " - " << j + 1 << '\n';
}
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 06.12.2016 в 13:35.
Aleksandr H. вне форума Ответить с цитированием
Старый 06.12.2016, 13:56   #13
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
исходник с кибера
в моем случаи:
Код:
unsigned m[7][7] = { { 1, 1, 0, 0, 0, 1, 0 },
                         { 1, 1, 1, 0, 0, 0, 1},
                         { 0, 1, 1, 1, 1, 0, 0 },
                         { 0, 0, 1, 1, 1, 0, 0 },
                         { 0, 0, 1, 1, 1, 1, 1 },
                         { 1, 0, 0, 0, 1, 1, 1 },
                         { 1, 1, 0, 0, 1, 1, 1 } };
но мне ж нужно знать это meldon , feering или еще что то . И именно это я не знаю как сделать
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 14:21   #14
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
Сообщение от pashaEx Посмотреть сообщение
в моем случаи:
но мне ж нужно знать это meldon , feering или еще что то . И именно это я не знаю как сделать
Да просто сам себе скажи что meldon это 0, feering это 1 и т.д.

ну или используй перечисляемы тип
Код:
enum versh{ meldon = 0, feering =1, ну и т.д. };
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 14:42   #15
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от netpolice Посмотреть сообщение
Да просто сам себе скажи что meldon это 0, feering это 1 и т.д.

ну или используй перечисляемы тип
Код:
enum versh{ meldon = 0, feering =1, ну и т.д. };
я так сделал:
Код:
enum node
{ 
	Meldon = 0, 
	Feering = 1, 
	Blaxhall = 2,
	Dunwich = 3,
	Harwich = 4,
	Clacton = 5,
	Tiptree = 6
};
int main()
{
	unsigned m[node][node] = {{ 1, 1, 0, 0, 0, 1, 0 },
						  { 1, 1, 1, 0, 0, 0, 1 },
						  { 0, 1, 1, 1, 1, 0, 0 },
						  { 0, 0, 1, 1, 1, 0, 0 },
					      { 0, 0, 1, 1, 1, 1, 1 },
						  { 1, 0, 0, 0, 1, 1, 1 },
						  { 1, 1, 0, 0, 1, 1, 1 } };
	const unsigned l = 7;
	std::cin >> node;// тут я ввожу  название вершину смежные вершины которой нужно искать
	std::cout << "Adjacent peaks:\n";
	for (int index = 0; index != l; ++index)
	for (unsigned int j = index; j != l; ++j)
	if (m[index][j])
		std::cout << index + 1 << " - " << j + 1 << '\n'; // и тут  мне  нужно node использовать,  но я не вижу как
	
	return 0;
}
но понимаю что так нельзя:
Код:
unsigned m[node][node]

Последний раз редактировалось pashaEx; 06.12.2016 в 14:55.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 14:58   #16
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
Сообщение от pashaEx Посмотреть сообщение
я так сделал:

но понимаю что так нельзя:
Код:
unsigned m[node][node]
Конечно так нельзя.
Здесь ты жестко указываешь 7 (ну или через #define).

Тем более node это не переменная, а тип
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 15:20   #17
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от netpolice Посмотреть сообщение
Конечно так нельзя.
Здесь ты жестко указываешь 7 (ну или через #define).

Тем более node это не переменная, а тип
так:
Код:
unsigned m[7][7]
Тогда вопрос: как мне использовать струтуру что я сделал в этом коде?
Код:
std::cin >> node;// тут я ввожу  название вершину смежные вершины которой нужно искать
	std::cout << "Adjacent peaks:\n";
	for (int index = 0; index != l; ++index)
	for (unsigned int j = index; j != l; ++j)
	if (m[index][j])
		std::cout << index + 1 << " - " << j + 1 << '\n'; // и тут  мне  нужно node использовать,  но я не вижу как
я тут не вижу как использовать.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 15:28   #18
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Понял, что ты хочешь...

Тебе нужно создать строковый массив, где в будут описаны твои названия вершин

Что то типа:
Код:
          char nazvani[7][256] = {"Meldon", 
	                                    "Feering", 
                                             ...
                                             ...};
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 15:32   #19
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от netpolice Посмотреть сообщение
Понял, что ты хочешь...

Тебе нужно создать строковый массив, где в будут описаны твои названия вершин

Что то типа:
Код:
          char nazvani[7][256] = {"Meldon", 
	                                    "Feering", 
                                             ...
                                             ...};
Да. Мне нужно: я ввожу Feering и мне выводит названия всех векторов которые смежные с сним

Последний раз редактировалось pashaEx; 06.12.2016 в 15:35.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 15:34   #20
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

содал
Код:
char nameNode[7][256] =
	{
		"Meldon",
		"Feering",
		"Blaxhall",
		"Dunwich",
		"Harwich",
		"Clacton",
		"Tiptree"
	};
pashaEx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не связанные (не смежные) диапазоны в UDF Demetros Microsoft Office Excel 2 08.11.2016 21:09
C++ смежные матрицы! Евгеша777 Помощь студентам 1 01.11.2013 21:41
Выделить смежные ячейки. solnce60 Microsoft Office Excel 8 19.05.2013 19:55
Смежные протоколы Federal Помощь студентам 0 21.10.2010 23:26