Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 22.10.2011
Сообщений: 54
1

Граф. Недостижимые вершины из данной.

22.03.2012, 19:26. Показов 1266. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти все вершины графа, недостижимые из заданной вершины.
Помогите. Прошу очень!
Есть уже скелет программы. нужны процедуры, которые то как раз и отвечают на вопрос задачи.. Желательно по-простому...
Pascal
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
uses crt;
type matr=array[1..100,1..100] of integer;
var s,incin:matr;
i,j,n,m,k,i1,j1:integer;
 
procedure matr_smezh;
begin
randomize;
for i:=1 to n do
begin
     for j:=1 to n do
     begin
     s[i,j]:=random(2);
     incin[i,j]:=-1+random(2);
     end;
end;
for i:=1 to n do
begin
for j:=1 to n do
begin
s[i,i]:=0;
s[j,i]:=s[i,j];
end;
end;
end;
 
procedure matr_inc;
begin
randomize;
for i:=1 to n do
begin
     for j:=1 to n do
     begin
     incin[i,j]:=-1+random(2);
     end;
end;
for i:=1 to n do
begin
for j:=1 to n do
begin
incin[i,i]:=0;
incin[j,i]:=incin[i,j];
end;
end;
end;
 
procedure vuvod(s:matr);
begin
for i:=1 to n do
begin
     for j:=1 to n do
     begin
     write(s[i,j],'   ');
     end;
writeln;
end;
end;
 
procedure poisk;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
 
end;
end;
end;
 
begin
clrscr;
writeln ('Введите количество вершин графа');
readln(n);
writeln('Введите номер вершины');
readln(m);
matr_smezh;
matr_inc;
writeln('матрица смежности');
vuvod(s);
writeln('матрица инцидентности');
vuvod(incin);
//poisk;
 readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2012, 19:26
Ответы с готовыми решениями:

Графы. Найти все вершины заданного графа, недостижимые от заданной его вершины
Найти все вершины заданного графа, недостижимые от заданной его вершины. Помогите решить...

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

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

Найти все вершины графа, недостижимые из заданной вершины
Найти все вершины графа, недостижимые из заданной вершины. Нужен алгоритм!! Я запутался!

2
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
23.03.2012, 06:06 2
Pascal
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
uses crt;
type matr=array[1..100,1..100] of integer;
type matr1=array[1..100] of boolean;
type matr2=array[1..100] of integer;
var s:matr;
mf:matr1;
Q:matr2;
n,m:integer;
 
procedure matr_smezh;
var i, j:integer;
begin
randomize;
for i:=1 to n do
begin
     for j:=i+1 to n do
     begin
     s[i,j]:=random(2);
     s[j,i]:=s[i,j];
     end;
end;
end;
 
procedure vuvod(s:matr);
var i, j:integer;
begin
for i:=1 to n do
begin
     for j:=1 to n do
     begin
     write(s[i,j],'   ');
     end;
writeln;
end;
end;
 
procedure poisk;
var i_st, i_end, i: integer;
fl:boolean;
begin
mf[m]:=true;
Q[1]:=m; i_st:=1; i_end:=2;
while i_st<i_end do
begin
  for i:=1 to n do
  if (s[Q[i_st],i]=1) and (mf[i]=false) then
  begin
    Q[i_end]:=i;
    mf[i]:=true;
    inc(i_end);
  end;
  inc(i_st);  
end;
fl:=true;
writeln('недостижимые вершины');
for i:=1 to n do
  if mf[i]=false then
  begin
  write(i, ' ');
  fl:=false;
  end;
if fl=true then
writeln('таких нет');
end;
 
begin
clrscr;
writeln ('Введите количество вершин графа');
readln(n);
writeln('Введите номер вершины');
readln(m);
matr_smezh;
writeln('матрица смежности');
vuvod(s);
poisk;
readln;
end.
процедура poisk и находит такие вершины и выводит их на экран. Если хотите можете разбить ее на 2 процедуры.
1
1 / 1 / 1
Регистрация: 22.10.2011
Сообщений: 54
23.03.2012, 08:16  [ТС] 3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
процедура poisk и находит такие вершины и выводит их на экран. Если хотите можете разбить ее на 2 процедуры.
БЛАГОДАРЮ!!!!
0
23.03.2012, 08:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2012, 08:16
Помогаю со студенческими работами здесь

Описать граф, найти маршруты длинной 4 и 5 вершины А до вершины С. Найти циклы и их длинну с вершины Е
Описать граф, найти маршруты длинной 4 и 5 вершины А до вершины С. Найти циклы и их длинну с...

Устранить бесполезные и недостижимые символы из данной грамматики.
Здравствуйте. Помогите кто-нибуть выполнить задание на экзамен. Заранее благодарен за помощь. ...

Найти вершины графа, находящихся на заданном расстоянии от данной вершины
Найти вершины графа, находящихся на заданном расстоянии от данной вершины. Абсолютно безвыходная...

Найти вершины графа, находящихся на заданном расстоянии от данной вершины
Есть неориентированный граф задан матрицей смежности, нужно найти вершины графа находящихся на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru