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

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

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

> Формирование списка ребер
senya
сообщение 5.04.2011 15:39
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

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


Помогите пожалуйста!
Вот программа:
Uses crt;
Type
T_zap=Record
n_r: byte;
k_r: byte;
end;
T_adress=^T_elem;
T_elem=Record
info:T_zap;
adress: T_adress;
end;
Var first: T_adress; n,m:byte;
matr_incidentnosty:array[1..10,1..10] of byte;
Procedure Input_matr_incidentnosty_i_ee_vyvod;
Var f_input:text; file_name:string;
i,j:byte;
Begin
writeln('Vvedite name of file: ');
readln(file_name);
assign(f_input,file_name);
reset(f_input);
n:=0; m:=0; i:=0;
while not Eof(f_input) do
begin
inc(i); j:=0;
while not Eoln(f_input) do
begin
inc(j);
read(f_input,matr_incidentnosty[i,j]);
end;
readln(f_input);
n:=i; m:=j;
end;
writeln ('Chislo_strok = ',n,'; Chislo_stolb = ',m);
close(f_input);
write('Vershina\Rebro');
for j:=1 to m do
write(' ',j:2);
writeln;
for i:=1 to n do
begin
write(i,' ');
for j:=1 to m do
write (matr_incidentnosty[i,j]:3);
writeln;
end;
End;
Procedure Formir_spiska_reber_grafa_i_ego_vyvod;
Var p_u,t_u:T_adress; i,j,key,k:byte;
Begin
New(t_u); first:=t_u;
for j:=1 to m do
begin
for i:=1 to n do
begin
key:=0;
if matr_incidentnosty[i,j]=1 then
t_u^.info.n_r:=i;
for k:=i+1 to n do
if matr_incidentnosty[k,j]=1 then
begin
t_u^.info.k_r:=k;
key:=1;
break;
end
else if key=0 then
begin
t_u^.info.k_r:=i;
break;
end;
end;
p_u:=t_u;
New(t_u);
p_u^.adress:=t_u;
end;
p_u^.adress:=nil;
readkey;
writeln('Spisok reber grafa');
t_u:=first;
While t_u^.info.n_r<=t_u^.info.k_r do
begin
with t_u^.info do
writeln(n_r,' - ',k_r);
readkey;
t_u:=t_u^.adress;
end
End;
{ Procedure Opredelenie_step_vershin_grafa;
Var stepen:byte; p_u,t_u:T_adress;
Begin
stepen:=0;
p_u:=first;
t_u:=p_u^.adress;
while t_u<>nil do
begin
if p_u=t_u then stepen:=stepen+1;

p_u:=t_u;
t_u:=p_u^.adress;
end

End; }
Begin
clrscr;
Input_matr_incidentnosty_i_ee_vyvod;
Formir_spiska_reber_grafa_i_ego_vyvod;
readkey;
End.

Ошибка в формировании списка ребер. Выдает левые значения! Я грешу на вывод. Кто нибудь посмотрите где ошибка!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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