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

Матрицы инцидентнности и смежности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа со звуком в C++ http://www.cyberforum.ru/cpp-beginners/thread780639.html
В общем сабж таков : В системе , играется какой либо файл , на каком либо плеере , либо вообще без него ...(Система - шиндоуз 32 - хп).. Надо получить данные частот , играемые в данный момент ... Вопрос , в какую сторону рыть ????Dsound :??
C++ Что делать?(учу C++ и кое что ни понимаю может стоит начать с более "низких языков" например basic) Всем привет народ вот я учу C++ и кое что ни понимаю может стоит начать с более "низких языков" например basic? http://www.cyberforum.ru/cpp-beginners/thread780635.html
C++ объясните задание. не понимаю формулировку
вот собственно оно: 1. Разработать класс "большое десятичное число" в соответствии со следующим заданием: Состояние класса - Целое число определяется его длиной (количество цифр в числе, например, до 47) и массивом значений десятичных цифр (типа char). Число со знаком хранится в прямом коде. При выполнении арифметических операций использовать дополнительный код. Память под массив выделяется...
C++ создал "circle.h" файл. При компиляции Cpp файла выдаёт unable to open include file 'circle.h'
Помогите разобраться в чём проблема? Был создан circle.h, а при компиляции cpp файла ругается. Может где путь какой нужно прописать. А где не знаю #include <stdio.h> #include "circle.h" void main() { circle(10,10,5,4); }
C++ Embarcadero C++, C OpenCL http://www.cyberforum.ru/cpp-beginners/thread780594.html
Доброго времени суток! Предистория: программирую на Delphi, среда Embarcadero отсюда выбор среды Разработки Задача: изучить OpenCL. Что сделано: Скачанна книга Open Cl in Action, частично дочитана хочется попробовать написать что-либо Скачаны Заголовочные файлы Для Open CL 1.2
C++ Среднее арифметическое элементов массива 2) Реализовать функцию, определяющую среднее арифметическое элементов переданного ей массива; подробнее

Показать сообщение отдельно
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,363
Записей в блоге: 4
07.02.2013, 23:54     Матрицы инцидентнности и смежности
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
#include <fstream>
 
using namespace std;
 
int main()
{
    int n, m, i1, i2, i, j;
    ifstream inf("infile.txt");
    ofstream outf("outfile.txt");
    inf >> n >> m;
    char *a, *b;
    a=new char[n*n];
    for(i=0; i<n*n; i++) a[i]='0';
    b=new char[n*m];
    for(i=0; i<n*m; i++) b[i]='0';
    for(i=0; i<m; i++) {
        inf >> i1 >> i2;
        a[(i1-1)*n+i2-1]='1';
        a[(i2-1)*n+i1-1]='1';
        b[(i1-1)*m+i]='1';
        b[(i2-1)*m+i]='1';
    }
    outf << "Матрица смежности\n";
    for(i=0; i<n; i++) {
        for(j=0; j<n; j++) outf << a[i*n+j] << ' ';
        outf << '\n';
    }
    outf << "Матрица инцидентности\n";
    for(i=0; i<n; i++) {
        for(j=0; j<m; j++) outf << b[i*m+j] << ' ';
        outf << '\n';
    }
    delete a;
    delete b;
    return 0;
}
infile.txt
Код
5 7
1 2
2 3
3 4
4 5
5 1
1 3
2 4
outfile.txt
Код
Матрица смежности
0 1 1 0 1 
1 0 1 1 0 
1 1 0 1 0 
0 1 1 0 1 
1 0 0 1 0 
Матрица инцидентности
1 0 0 0 1 1 0 
1 1 0 0 0 0 1 
0 1 1 0 0 1 0 
0 0 1 1 0 0 1 
0 0 0 1 1 0 0
Добавлено через 14 минут
Извините, сейчас еще раз прочитал задачу и увидел, что граф ориентированный. Тогда нужно внести следующие исправления в программу. центральный цикл
C++
1
2
3
4
5
6
7
    for(i=0; i<m; i++) {
        inf >> i1 >> i2;
        a[(i1-1)*n+i2-1]='1';
        a[(i2-1)*n+i1-1]='1';
        b[(i1-1)*m+i]='1';
        b[(i2-1)*m+i]='1';
    }
надо заменить на
C++
1
2
3
4
5
6
    for(i=0; i<m; i++) {
        inf >> i1 >> i2;
        a[(i1-1)*n+i2-1]='1';
        b[(i1-1)*m+i]='-';
        b[(i2-1)*m+i]='+';
    }
Добавлено через 22 минуты
Еще одна версия. Теперь поддерживаются кратные ребра
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
#include <fstream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    int n, m, i1, i2, i, j;
    ifstream inf("infile.txt");
    ofstream outf("outfile.txt");
    inf >> n >> m;
    int *a, *b;
    a=new int[n*n];
    for(i=0; i<n*n; i++) a[i]=0;
    b=new int[n*m];
    for(i=0; i<n*m; i++) b[i]=0;
    for(i=0; i<m; i++) {
        inf >> i1 >> i2;
        a[(i1-1)*n+i2-1]++;
        b[(i1-1)*m+i]--;
        b[(i2-1)*m+i]++;
    }
    outf << "Матрица смежности\n";
    for(i=0; i<n; i++) {
        for(j=0; j<n; j++) outf << a[i*n+j] << ' ';
        outf << '\n';
    }
    outf << "Матрица инцидентности\n";
    for(i=0; i<n; i++) {
        for(j=0; j<m; j++) outf << setw(3) << b[i*m+j];
        outf << '\n';
    }
    delete a;
    delete b;
    return 0;
}
 
Текущее время: 10:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru