C#
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 15
1

Найти кратчайший маршрут на графе

30.05.2012, 19:32. Показов 1896. Ответов 1
Метки нет (Все метки)

Помогите найти ошибку пожалуйста!
задан граф, найти кратчайший путь.
Задача на форме. 1я матрица - расстояния между вершинами. 2я матрица: 1й столбец - известен ли мин. путь (0-известен, 1-неизвестен), 2й с.-в какую вершину попали. 3я матрица (листбокс) - номер вершины = мин. путь = маршрут.

Ошибка связана со 2м столбцом (Column12), ну и соответственно листбокс выводит с ошибками.

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
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace Задача1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            A.RowCount = 1;
            B.RowCount = 1;
            B.Rows.Add('0', '0', '1');
            for (int i = 0; i < 9; i++)
                B.Rows.Add("-1", '0', '0');
            foreach (string S in File.ReadAllLines("G:\\TextFile1111111.txt"))
                A.Rows.Add(S.Split(' '));
 
 
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            int t = 0;
            for (int k = 0; k < 9; k++)
            {
                for (int i = 0; i < 10; i++)
                    if ((Convert.ToInt16(A.Rows[t].Cells[i].Value.ToString()) > 0) &&
                        (B.Rows[i].Cells[2].Value.ToString() == "0") &&
                        ((B.Rows[i].Cells[0].Value.ToString() == "-1") ||
                        (Convert.ToInt16(B.Rows[i].Cells[0].Value.ToString()) > Convert.ToInt16(B.Rows[t].Cells[0].Value.ToString()) + Convert.ToInt16(A.Rows[t].Cells[i].Value.ToString()))))
                    {
                        B.Rows[i].Cells[0].Value = Convert.ToInt16(B.Rows[t].Cells[0].Value.ToString()) + Convert.ToInt16(A.Rows[t].Cells[i].Value.ToString());
                        B.Rows[i].Cells[1].Value = t + 1;
 
                    }
                int m = 0;
                while (B.Rows[m].Cells[2].Value.ToString() == "1")
                    m++;
                for (int i = 1; i < 4; i++)
                    if ((Convert.ToInt16(A.Rows[i].Cells[0].Value.ToString()) < Convert.ToInt16(A.Rows[m].Cells[0].Value.ToString())) &&
                          (B.Rows[i].Cells[2].Value.ToString() == "0") &&
                          (B.Rows[i].Cells[0].Value.ToString() != "-1"))
                        m = i;
                t = m;
                B.Rows[t].Cells[2].Value = 1;
            }
 
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 9; i++)
            {
                string S = i.ToString() + "=" + B.Rows[i].Cells[0].Value.ToString() + "=";
                String S1 = i.ToString();
                int k = Convert.ToInt16(B.Rows[i].Cells[1].Value.ToString()) - 1;
                while (k > 0)
                {
                    S1 = B.Rows[k].Cells[1].Value.ToString() + "," + S1;
                    k = Convert.ToInt16(B.Rows[k].Cells[1].Value.ToString()) - 1;
                }
                    listBox1.Items.Add(S+S1);
                
            }
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
        
            }
}
Вложения
Тип файла: rar задача.rar (73.0 Кб, 31 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2012, 19:32
Ответы с готовыми решениями:

Кратчайший путь в графе: ошибка в программе
Подскажите, пожалуйста, что не так? Программная реализация алгоритма Форда-Беллмана, поиск...

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

Как найти кратчайший путь на графе?
Задана прямоугольная матрица размера M×N в которой заданы числа. Требуется написать программу,...

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

1
C#
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 15
04.06.2012, 00:19  [ТС] 2
Тема актуальна. помогите пожалуйста.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2012, 00:19
Помогаю со студенческими работами здесь

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

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

Найти кратчайший маршрут
Найти кратчайший маршрут, который начинается и завершается в заданной вершине ориентированному...

В двухмерном массиве найти кратчайший маршрут
Помогите с такой делимой,Задача на массивы. Пробовал пару разных вариантов но не 1 не подошел, ваще...

Найти кратчайший маршрут, и указать последовательности торговых точек. Графы
Условие: Программа должна найти длину кратчайшего маршрута, но и указать последовательность...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru