Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/329: Рейтинг темы: голосов - 329, средняя оценка - 4.97
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493

Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер

04.02.2014, 13:54. Показов 65413. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!!!
Передо мной стоит задача: написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер, а также должен быть нарисован сам граф.
Пользователь должен вводить:
1) кол-во вершин (например: 1, 2, 3, 4);
2) кол-во ребер (например: 4);
3) название самих рёбер (например: 1 2, 2 3, 3 4, 4 1);
Дальше должен строиться граф (видимо с помощью графики visual studio) и выводиться сама матрица смежности.

Так получилось, что я смог реализовать всё, кроме вот этой самой графики, то есть нет построения графа, как реализовать, не знаю. Если кто знает, будьте добры, помогите пожалуйста.
Код для вывода матрицы смежности был написан в Visual Studio 2008 в консольном приложении. Может быть можно как-то графику связать с консолькой, или как-то уж по другому, к сожалению я не знаю, подскажите))
Код представлен ниже.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "locale.h"
 
using namespace std;
 
int main()
{
    int n, m, x, y, a[80][80];
    setlocale(LC_ALL, "rus");
    cout << "Введите количество вершин: ";
    cin >> n;
    cout << "Введите количество рёбер: ";
    cin>> m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            a[i][j]=0;
        }
        cout << endl;
    cout << "Введите рёбра: " << endl;
    for(int i=1;i<=m;i++)
    {
        cin >> x >> y;
        a[x][y]=1;
        a[y][x]=1;
    }
    cout << endl;
    cout << "Матрица смежности: " << endl;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    _getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2014, 13:54
Ответы с готовыми решениями:

По данной матрице смежности графа нужно найти количество ребер и степени вершин
Здравствуйте! Мне нужно найти по данной матрице смежности графа нужно найти количество ребер и степени вершин этого графа. Имею два...

По заданной матрице смежности ребер неориентированного графа построить матрицу
По заданной матрице смежности ребер неориентированного графа построить матрицу B, у которой элемент, стоящий на пересечении I-ой строки и...

Составить матрицу инцидентности, смежности и список ребер для графа
Помогите пожалуйста Составить матрицу инцидентности, смежности и список ребер для графа:

22
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 14:13
Alexandr1966, я бы написал на C# Win Forms так, располагал точки графа по окружности и соединял отрезками
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
04.02.2014, 14:25  [ТС]
в Visual Studio на C# ???

Добавлено через 6 минут
Если можете написать на C#, чтоб все условия задачи были учтены, то напишите пожалуйста а, и объясните как правильно создать проект там, то сё, а то я вообще не шарю(
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 14:39
Alexandr1966, можно и на c++, но мне легче в C#.
Если не лень будет, вечером попишу
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
04.02.2014, 16:00  [ТС]
Спасибо тебе большое, друг. Если напишешь, буду тебе очень благодарен)

Добавлено через 1 час 7 минут
Может быть еще кто нибудь в курсе, как сделать, какие нибудь варианты?)
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 19:45
Alexandr1966,

WindowsFormsApplication1.rar вот исходники
2
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
04.02.2014, 23:52
Alexandr1966, где-то год-два назад решал похожую задачу, исходники вроде остались, если будут нужны.
Только за качество кода не отвечаю, писал быстро ради "автомата". Плюс часто с поправками от препода ради удовлетворения его капризов. Много мусора и лишнего функционала может быть ))
Пример упрощенной версии здесь: Редактор графов [Решение + Исходник]
Потом добавлял еще различные алгоритмы. Последнюю версию исходников могу выложить, если будет интересно. Всё на чистом WinAPI, правда.
Миниатюры
Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер  
1
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
05.02.2014, 09:15  [ТС]
Enotniy, а вот скажите пожалуйста, можете ли вы так сделать да, чтоб допустим если ввожу кол-во вершин 3 да, а в ребрах указываю вот так 1 2, 2 3, 3 4, 1 4 - чтоб выдавалось сообщение об ошибке, что нет вершины то четвертой как бы, реально так сделать?
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 09:27
Alexandr1966, никаких проблем, но опять же только вечером, после работы
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
05.02.2014, 13:38  [ТС]
Спасибо большое, буду ждать) И если можно, объясните пожалуйста, какой файл является исходником, сам код программы весь (с каким расширением в папке проекта), просто я вообще не сталкивался с формами(((
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 14:04
файл проекта sln,
мой код (обработка событий нажатий на кнопки) - Form1.cs
Form1.Designer.cs и Program.cs - автоматически сгенерированный код

Добавлено через 8 минут
специально для вас перекомпилировал под Framework 3,5
1
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
05.02.2014, 14:35  [ТС]
всё понял)) обработчик бы вот ошибок еще, о которых я выше говорил(
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 14:49
Alexandr1966, на самом деле надо много ошибок отловить, но не лень будет сделаю... Давно на C# не развлекался
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
05.02.2014, 14:59  [ТС]
ахахаха не развлекался)))
Ошибки надо только вот касаемые вершин, если их там 3, а при вводе их больше, наверное только это и нужно в основном)) А можно так еще сделать, чтоб на рисунке где граф подписывались названия вершин?
0
 Аватар для Enotniy
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 17:42
Alexandr1966, ну уж извиняй, я не для себя делал, мне интересно только решить задачу, а не защиту от дурака клепать, мне этого и на работе хватает
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
06.02.2014, 08:22  [ТС]
ну так ты мне поможешь сделать так, чтоб ошибка то вылазила при вводе лишней вершины?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
06.02.2014, 10:54
Alexandr1966, так вы на чем пишете ее уже теперь? На C++ или на C#?
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
06.02.2014, 12:27  [ТС]
выше в теме есть архив от пользователя, который на C# сделал
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
15.02.2014, 14:31  [ТС]
Друзья, кто может, помогите отловить ошибки в этой программе.
В общем, если вводишь кол-во вершин в верхнем правом поле формы например 3, то ниже ты должен вводить название рёбер 1 2, 2 3, 1 3 и всё, но никак не должна быть 4-я вершина какая-нибудь (например, не должно быть 1 4, если ввел и потом нажимаешь построение матрицы или вывод графа чтоб выдавалось сообщение об ошибке).
Потом должна быть кнопка на форме, чтоб очищала поля ввода, чтоб по новой программу не перезапускать.
Потом надо сделать следующее:
когда строится граф должно выдаваться сообщение о том, какой это граф: связанный или нет. Если он связанный, то просто сообщение "Граф связанный". Но если же он не связанный, то кроме сообщения "граф несвязанный" должно выдаваться количество компонент связанности. Архив программы ниже, выполнена в VS 2008 в Visual C#.
Вложения
Тип файла: rar WindowsFormsApplication1.rar (54.1 Кб, 254 просмотров)
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
15.02.2014, 16:01  [ТС]
Ребята подскажите пожалуйста)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2014, 16:01
Помогаю со студенческими работами здесь

С матрицы смежности в матрицу инцидентности, список рёбер и вершин, диаграмма
Помогите, пожалуйста. На C# или C++ нужна такая программа, что когда задается матрица смежности (5 на 5 можно) и выводились: 1) матрица...

Получить матрицу смежности и напечатать для каждой вершины номера смежных вершин графа
1,задан граф в виде количества вершин n&lt;=10 последовательности ребер . получить матрицу смежности.2, напечатать для каждой вершины номера...

Разработать программу обхода графа вглубь, поданного матрицу смежности
Разработать программу обхода графа вглубь, поданного матрицу смежности

По списку рёбер графа построить матрицы смежности и инцидентности
Здравствуйте, помогите пожалуйста решить такую задачу: Задать граф односвязным списком* ребер. По этому списку построить матрицы...

Является ли матрица смежности ребер Q представлением в ЭВМ графа G


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru