IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Графы. Фундаментальная система циклов связного графа
Юлия92
сообщение 6.05.2012 14:25
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский
Реальное имя: Джули

Репутация: -  0  +


Написала программу по псевдокоду...Но результат работы процедур не выдается....Не пойму в чем проблема...Пседокод прилагаю..заранее благодарю за помощь))

uses crt;
const
max=50;
type
TMatrix = array [1..max,1..max] of byte;
TArray = array [1..max] of integer;

var
i,j,m,k,z : integer;
num,ftr,masQ: TArray;
Matrix : TMatrix; {матрица смежности}
n ,nz: integer; {количество вершин графа}

procedure save(i,j,nz:integer);
begin
z:=i;
while z<>j do
begin
masQ[nz]:=z;
z:=ftr[z];
masQ[nz]:=j;
masq[nz]:=i;
end;
end;
procedure cicle(i:integer);
var
j:integer;

begin
k:=k+1;
num[i]:=k;
for j:=1 to n do
begin
if (Matrix[i, j]<>0) and (num[j]=0) then
begin
ftr[j]:=i;
cicle(j);
end
else if ftr[i]<>j then
begin
nz:=nz+1;
save(i,j,nz);
end;
end;
end;

begin
clrscr;

writeln('=======Фундаментальная система циклов связного графа====');

write('Введите количество вершин графа:');
readln(n);
writeln('Заполнение матрицы смежности');
for i:=1 to n do
for j:=1 to n do
begin
Write('(',i,',',j,')=');
read(Matrix[i,j]);
if Matrix[i,j] <> 0 then Matrix[i,j]:=1;
end;
{$endif}
//вывод матрицы смежностиж;
writeln('Матрица смежности');
for i:=1 to n do
begin
for j:=1 to n do
write(Matrix[i,j],' ');
writeln;
end;
writeln;


writeln('Результат :');
n:=0; m:=0;
for i:=1 to n do
begin
num[i]:=0; {ни одна вершина не посещалась}
ftr[i]:=0;
n:=n+1;
m:=m+(n*n);
m:= round(m / 2);
k:=1;
end;
for i:=1 to m-n+1 do
begin
masQ[i]:=0;
k:=0;
nz:=0;
cicle(i);

//вывод массивов num ftr;
write('num: ');
for i:=1 to n do
write(num[i]:3);
writeln;
write('ftr: ');
for i:=1 to n do
write(ftr[i]:3);
writeln;
write('masQ: ');
for i:=1 to n do
write(masQ[i]:3);
writeln;
write('nz: ');
write(nz);
writeln;
readln;
end;
end.

Прикрепленное изображение


--------------------
ДЖУЛИ
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Юлия92   Графы. Фундаментальная система циклов связного графа   6.05.2012 14:25
Федосеев Павел   1. Обрати внимание, что в этой задаче граф предлаг...   6.05.2012 21:11
Юлия92   спасибо большое за помощь,просто мне преподаватель...   8.05.2012 20:41
Федосеев Павел   Если непонятно - задавай вопросы. Конечно, если во...   8.05.2012 21:33
Юлия92   Если быть честной непонятно мне вообще в процедуре...   9.05.2012 11:26
Федосеев Павел   Я вижу так:procedure Save(i, j, nZ : integer); var...   9.05.2012 13:52
Юлия92   спасибо за помощь...как отблагодарить не знаю... :...   9.05.2012 17:55
Федосеев Павел   Недорого - 3 месяца активной помощи (ответов) стра...   9.05.2012 18:47
Юлия92   Ой этим я и так занимаюсь....помогаю бедным и обез...   10.05.2012 15:28
Юлия92   uses crt; const max=50; type TMatrix = arra...   10.05.2012 15:59
Федосеев Павел   masQ? Он представляет из себя массив от 1 до nZ - ...   10.05.2012 18:47
Юлия92   Павел это снова я с вопросами...))))Почему n потом...   16.05.2012 14:28
Федосеев Павел   Юль, ты делаешь все механически, не вникая. Мне пр...   16.05.2012 18:42
Юлия92   Спасибо тебе большое,но я вникала я перерыла все у...   17.05.2012 18:21


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"