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

Алгоритм Флойда - Уоршелла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнение методов сортировок массивов. Семестровая работа http://www.cyberforum.ru/cpp-beginners/thread210105.html
Пишу семестровую по методам сортировки массивов. В моем варианте метод прямого выбора и метод Шейкера. Надо сравнить количество перестановок для различного числа элементов массива. n = 20, 40,60,...,10000. с- количество сравнений m - количество перестановок t - время работы функции сортировки Сравнение идет на 3 видах массивов почти упорядоченный, плохо упорядоченный и случайный. Я...
C++ При чтении файла последний элемент повторяется дважды появилась необходимость выучить работу с файлами за 9 часов #include <iostream> #include <time.h> #include <stdio.h> #include <stdlib.h> int main() { http://www.cyberforum.ru/cpp-beginners/thread210099.html
Расчет средневзвешенной оценки C++
Написать программу для расчёта средневзвешенной оценки по предмету, средневзвешенной называетсяоценка, складывающаяся из 5 текущих оценок, но каждая из оценок имеет "вес" (коэффициент от 0 до 1). сумма коэффициенттов равна 1! Оценки и коэффициенты вводятся пользователем.
C++ Структура / системы координат
Здраствуйте уважаемые знатоки! Есть задача по структурам: Надо описать структуры для декартовых (x,y) и полярных (r,pi) координат. Определить функцию для перевода из полярных в декартовы координаты. В ходе решения, на сколько я понимаю, нужны будут формулы переходов с одной системы координат в другую. Заранее спасибо! Добавлено через 3 часа 27 минут куку ? =)
C++ Завернутые векторы http://www.cyberforum.ru/cpp-beginners/thread210085.html
Нужно написать програму, которая складывает два завернутых вектора фиксированной длинны. Вообщем прграма из трех файлов, выдает ошибку Linking... main.obj : error LNK2001: unresolved external symbol "public: static unsigned int w_v::sz" (?sz@w_v@@2IA) realization.obj : error LNK2001: unresolved external symbol "public: static unsigned int w_v::sz" (?sz@w_v@@2IA) C:\Documents and...
C++ Таблица лексем и таблица идентификаторов Помогите пожалуйста найти ошибку в коде. Прога строит ТИ и ТЛ. К таблице идентификаторов претензий нет, а вот в таблице лексем возникают ошибки: почему то оператор if записывает как =f и определяет его тип как:"знак". И еще когда переменной второй раз присваиваешь значение, то знак присваивания определяется почему то как знак равно "=". Ну вот допустим входной текст такой: begin i:=0x14;... подробнее

Показать сообщение отдельно
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
13.12.2010, 23:40  [ТС]     Алгоритм Флойда - Уоршелла
нашла тут один код реализации, только не понимаю его вывод кто нить может пояснить каким образом там так считается
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
#include <iostream.h>
#define MaxNodes 4
#define B 1000
 
class Warshall
{
  private:
    unsigned Adj[MaxNodes][MaxNodes]; //Матрица смежностей.
    unsigned C[MaxNodes][MaxNodes];   //Матрица достижимости.
  public:
    void Vvod();
    void MinDlin();
    void Vyvod();
};
 
void Warshall::Vvod()
//Ввод матрицы смежностей заданного графа и ее "исправление".
{
  //Ввод матрицы смежностей заданного графа.
  cout <<"Вводите элементы матрицы смежностей по строкам:\n";
  for (int i=0;i<MaxNodes;i++)
    for (int j=0;j<MaxNodes;j++)
     {
       cout <<"Введите Adj["<< (i+1) << "]["<< (j+1) << "]: ";
       cin >> Adj[i][j];
       if (Adj[i][j]==0) C[i][j] = B;
       else  C[i][j] = Adj[i][j];
     }
}
 
void Warshall::MinDlin()
//Вычисление матрицы минимальных длин путей.
{
  for (int k=0;k<MaxNodes;k++)
   for (int i=0;i<MaxNodes;i++)
    for (int j=0;j<MaxNodes;j++)
       if ( C[i][j]>C[i][k]+C[k][j] ) 
              C[i][j] = C[i][k]+C[k][j];
}
 
void Warshall::Vyvod()
//Вывод матрицы минимальных длин путей.
{
  cout << "Матрица минимальных длин путей:\n";
  for (int i=0;i<MaxNodes;i++)
  {
    for (int j=0;j<MaxNodes;j++)
      cout << C[i][j] << " ";
    cout << endl;
  }
}
 
void main()
{
  Warshall A;
  A.Vvod();
  A.MinDlin();
  A.Vyvod();
}
Добавлено через 6 минут
Из-за чего получается такая матр нижняя
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Вводите элементы матрицы смежностей по строкам:
Введите Adj[1][1]: 0
Введите Adj[1][2]: 1
Введите Adj[1][3]: 2
Введите Adj[1][4]: 2
Введите Adj[2][1]: 6
Введите Adj[2][2]: 0
Введите Adj[2][3]: 4
Введите Adj[2][4]: 3
Введите Adj[3][1]: 2
Введите Adj[3][2]: 6
Введите Adj[3][3]: 0
Введите Adj[3][4]: 6
Введите Adj[4][1]: 9
Введите Adj[4][2]: 6
Введите Adj[4][3]: 6
Введите Adj[4][4]: 0
Матрица минимальных длин путей:
4 1 2 2
6 7 4 3
2 3 4 4
8 6 6 9
 
Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru