Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
1

написать программу с графом

23.04.2013, 09:24. Просмотров 2507. Ответов 7
Метки нет (Все метки)

В клубе N человек. Многие из них - друзья. Так же
известно, что друзья друзей так же являются друзьями. Требуется выяснить, сколько
всего друзей у конкретного человека в клубе.
Входные данные
В первой строке входного файла INPUT.TXT заданы два числа: N и S (1 <= N
<= 100; 1 <= S <= N), где N - количество человек в клубе, а S – номер конкретного
человека. В следующих N строках записано по N чисел - матрица смежности,
состоящая из единиц и нулей. Причем единица, стоящая в i-й строке и j-м столбце
гарантирует, что люди с номерами i и j – друзья, а 0 – выражает неопределенность.
Выходные данные
В выходной файл OUTPUT.TXT выведите количество гарантированных
друзей у человека с номером S, помня о транзитивности дружбы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 09:24
Ответы с готовыми решениями:

написать прогу с графом
По таблице рёбер построить списки инцидентности ориентированного графа, удалить из графа вершины с...

Реализовать программу, проверяющую цепочку действий на верность заданныму графом алгоритму
привет , в программировании я не бум-бум, и мне очень нужна ваша помощь в написании проги по графу...

Задача с графом
program prog; uses SysUtils; const n0 = 30; var ves : array of integer; L : array of...

Задача с графом
Написать программу,определяющую все маршруты из вершины v1 в вершину v3 для графа

7
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
23.04.2013, 12:26 2
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
#include <string>
#include <vector>
#include <fstream>
 
using namespace std;
 
int main()
{
    // read input data
    ifstream inp("input.txt");
    int n, s;
    inp >> n >> s;
    vector<vector<int> > m(n, vector<int>(n));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            inp >> m[i][j];
        }
    }
 
    // make symmetric
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (m[i][j])
                m[j][i] = 1;
        }
    }
 
    // transitive closure
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (m[i][j]) {
                for (int k = 0; k < n; ++k) {
                    if (m[j][k])
                        m[i][k] = 1;
                }
            }
        }
    }
 
    // count friends
    int count = 0;
    for (int i = 0; i < n; ++i) {
        if (m[s - 1][i])
            count++;
    }
 
    // write result
    ofstream out("output.txt");
    out << count;
}
Цитата Сообщение от input.txt
5
2
0 1 0 1 0
1 0 0 0 0
0 0 0 0 1
0 1 0 0 0
0 0 0 0 0
Цитата Сообщение от output.txt
3
1
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
23.04.2013, 22:20  [ТС] 3
программа не работает, я не могу понять почему
0
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
23.04.2013, 22:28 4
Цитата Сообщение от Alexandri Посмотреть сообщение
программа не работает, я не могу понять почему
На каком конкретно input.txt не работает?
0
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
23.04.2013, 22:55  [ТС] 5
начала с вашего примера, открывает консольное окно и ничего не выводит, кроме "Для продолжения..."
0
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
24.04.2013, 00:01 6
Цитата Сообщение от Alexandri Посмотреть сообщение
открывает консольное окно и ничего не выводит
Все правильно:

Цитата Сообщение от Alexandri Посмотреть сообщение
Входные данные
В первой строке входного файла INPUT.TXT...
Выходные данные
В выходной файл OUTPUT.TXT выведите...
Зачем что-то на экран выводить?
0
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
24.04.2013, 00:51  [ТС] 7
что то я протупила конкретно хD
я извиняюсь))

Добавлено через 18 секунд
все работает, спасибо вам большое)
0
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
29.04.2013, 22:57  [ТС] 8
наконец то дошла до этой задачи и перерешив у меня наконец то вышло все правильно))
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
#include<iostream>
 
using namespace std;
 
int main()
{
    freopen("input.txt","r",stdin);
    int T[100][100],N,S;
    cin>>N>>S;
    for(int i=0; i<N;i++)
{
for(int j=0;j<N;j++)
{
cin>>T[i][j]; 
}
}
    for(int i=0; i<N;i++)
{
    for(int j=0;j<N;j++)
{
cout<<T[i][j]<<" ";
}
cout<<endl;
}
 
    //count friends
    int count=0;
     for (int i = 0; i < N; i++)
     { 
        for (int j = 0; j < N; j++)
        {
            if (T[i][j]) 
            {
                for (int k = 0; k < N; k++) 
                {
                    if (T[j][k])
                        T[i][k] = 1;
                }
            }
        }
        if (T[S - 1][i])
            count++;
    }
     cout<<""<<count<<endl;
     freopen("output.txt","w",stdout);
 
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2013, 22:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Задание графом
Задан граф, вывести все пары вершин, между которыми нет пути. можете помочь???

Задача с графом
Здравствуйте! помогите написать программу на прологе, задание такое: Напишите программу, которая...

Работа с графом
Здравствуйте, у меня такая проблема ,по матрице смежности (7x7) со случайными числами я получил...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.