Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.07.2020, 00:02   #1
Сyberbitch
 
Регистрация: 09.12.2019
Сообщений: 9
По умолчанию построение минимального дерева остова

Доброго времени суток. Значится имеется программа для подсчёта минимального дерева остова по алгоритму краскаля, но вот беда. Программа почему-то не считает до конца, и в итоге выводит неправильное значение. Помогите исправить данную ошибку. Буду очень благодарен.
Код:
const
n = 9;
type
vekt = array[0..n,0..n] of boolean;
const
GR: array [0..n, 0..n] of integer = (
(0,1,0,3,0,0,0,0,0,0),
(1,0,5,0,2,0,0,4,0,2),
(0,5,0,0,0,1,0,0,0,3),
(1,0,0,0,0,0,0,5,3,0),
(0,2,0,0,0,4,0,0,0,0),
(0,0,1,0,4,0,4,0,0,5),
(0,0,0,0,0,4,0,2,0,0),
(0,4,0,5,0,0,2,0,1,0),
(0,0,0,3,0,0,0,1,0,0),
(0,2,3,0,0,5,0,0,0,0));
 
 
var
a:array of integer;
x, sum, c, i1, i, j: integer;
b:array[0..n] of boolean;
v:vekt;
 
begin
for i:= 0 to n do begin
write('Вершиина: ',i,' - ');
for j:= 0 to n do begin
write(gr[i,j],' ');
if (v[i,j] = false) and (gr[i,j] <> 0) then begin
v[i,j]:=true;
v[j,i]:=true;
inc(c);
SetLength(a,c);
a[i1]:=gr[i,j];
inc(i1);
end; end;
writeln;
end;
 
writeln;
writeln;
 
for i:=0 to c-1 do for j:=0 to c-2 do
if a[j] > a[j+1] then begin
x:=a[j];
a[j]:=a[j+1];
a[j+1]:=x;
end;
 
for i1:=0 to c-1 do
for i:=0 to n do
for j:=0 to n do
if (a[i1] = gr[i,j]) and (b[j] = false) then
begin
v[i,j]:=true;
v[j,i]:=true;
b[j]:=true;
b[i]:=true;
writeln(i+1,'->',j+1);
sum:= sum + gr[i,j]; end;
 
writeln;
writeln('Вес дерева остов: ', sum); writeln;
end.
Изображения
Тип файла: jpg краскаль.jpg (76.7 Кб, 0 просмотров)
Сyberbitch вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение минимального остового дерева /ann/ Помощь студентам 0 14.01.2014 16:58
Построение Б-дерева MariaD Помощь студентам 2 25.10.2013 14:23
Алгоритм Прима,вес минимального остовного дерева 3dg_fan Помощь студентам 0 03.12.2011 16:08
Построение дерева TzX Компоненты Delphi 2 20.07.2010 14:20


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840