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

Построить матрицу смежности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразование строки в столбец http://www.cyberforum.ru/cpp-beginners/thread1142759.html
Здравствуйте. Не могли бы Вы мне помочь, дело в том, что у меня в 0-ю строку StringList заносится длинное значение, например: 1||Россия||наша||страна..., а мне надо переписать в другой StringList1...
C++ Оператор взятия адреса (&) while (true) { int *temp = new int(13); std::cout << temp << " "; std::cout << &temp << std::endl; } Создаю каждый раз указатель, его не удаляю. Там где выводится "temp" всегда разное... http://www.cyberforum.ru/cpp-beginners/thread1142750.html
Шифрование для 4-грамм C++
Нужно зашифровать текст для 4-грамм. Я полагаю, нужно разбить открытый текст на 4 буквы: the man in black fled across the desert and the gunslinger followed будет так: |the |man |in b|lack| fle|d...
Std::map <string, class> ОШИБКА C2512 C++
Есть следующий код: #include <vector> #include <map> class Aluy { public: Aluy (int x, int y) { int z = x+y; }
C++ Метод Крылова http://www.cyberforum.ru/cpp-beginners/thread1142717.html
#include <iostream> #include <math.h> using namespace std; void main() {setlocale(LC_ALL,""); int n,i,j,k,p,N; double q,l,a,b,xs,xm,xn,xm1,xn1,eps=0.01; cout<<"Введите размерность матрицы: ";...
C++ Сортировка в TMemo Составьте программу, которая расставляет заданные слова в алфавитном порядке. Для ввода и вывода наборов слов используйте многострочное поле ввода (TMemo), отводя на каждое слово по одной строчке. подробнее

Показать сообщение отдельно
Myptuk
1 / 1 / 0
Регистрация: 01.05.2013
Сообщений: 43

Построить матрицу смежности - C++

08.04.2014, 19:52. Просмотров 253. Ответов 0
Метки (Все метки)

Задаем поле с единицами и нулями (где 1-пустая клетка, 0-препятствие).
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    int n, m, x, y, k, l, nkol, razmer;
    cout<<"Введите количество строк: ";
    cin>>n;
    cout<<"Введите количество столбцов: ";
    cin>>m;
 
    //создание массива, заполнение 1-ми
 
    int** a = new int* [n];
    for(int i=0; i<n; i++)
    {
        a[i] = new int[m];
        for(int j=0; j<m; j++)
        {
        a[i][j]=1;
        }
    }
 
    // вывод массива
 
    for(int i = 0; i < n; i++)
    {
        cout<<endl;
        for(int j = 0; j < m; j++)
        {            
            cout<<a[i][j]<<" ";
        }
    }
    cout<<endl;
    cout<<endl;
 
    //ввод препятствий, коррекция массива
 
    cout<<"Ввод препятствий (координаты x и y задают левый верхний угол препятствия):"<<endl;
    cout<<endl;
 
 
    cout<<"Введите количество препятствий: ";
    cin>>nkol;
 
    for (int g=1; g<=nkol; g++)
    {
        cout<<"Введите x"<<g<<": ";
        cin>>x;
        cout<<"Введите y"<<g<<": ";
        cin>>y;
        cout<<"Введите длину препятствия: ";
        cin>>k;
        cout<<"Введите ширину препятствия: ";
        cin>>l;
 
        for(int i=x; i<x+l; i++)
        {
            for(int j=y; j<y+k; j++)
            {
                a[i][j]=0;
            }
        }
        x=0;
        y=0;
        k=0;
        l=0;
    }
 
    // вывод скорректированного массива
 
    for(int i = 0; i < n; i++)
    {
        cout<<endl;
        for(int j = 0; j < m; j++)
        {            
            cout<<a[i][j]<<" ";
        }
    }
 
    cout<<endl;
    cout<<endl;
    system("pause");
}
Нужно проанализировать полученное поле и построить по нему матрицу смежности неориентированного графа (симметричную). Очень нужна помощь, сидим весь день не можем ничего путного придумать. Заранее спасибо!

P.S. Каждая клетка является вершиной графа, т.е если поле размером n*m, то размер матрицы смежности k*k, где k=n*m. Исполнить надо на С++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru