![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 14.04.2012
Сообщений: 1
|
![]()
Доброго времени суток!
Прошу помочь найти ошибки в коде. Вводится матрица смежности, проходит проверку на принадлежность к орграфу (неографу), вывод матрицы инцидентности. Результат: при вводе матрицы неографа выдается матрица инцидентности и в ней правильная только первая строка, при вводе матрицы ографа выдается только один столбец. Код: Program Matrix; Uses Crt; var A : Array[1..50,1..50] of integer; {* матрица смежности *} B : Array[1..50,1..100] of integer; {* матрица инцидентности *} orgraph : boolean; lines: integer; n,i,j,k: integer; inputIsCorrect: boolean; Begin ClrScr; lines:=0; Write('Введите количество строк матрицы= '); ReadLN(n); Write('Введите количество столбцов матрицы= '); ReadLN(n); WriteLN('Введите ',n*n,' элементов матрицы построчно через пробел, Enter, вводим очередную строку:'); For i:=1 to n Do For j:=1 to n Do Read(A[i,j]); inputIsCorrect:=true; for i:=1 to n do for j:=1 to n do begin if (A[i,j]<>1) and (A[i,j]<>0) then inputIsCorrect:=false; if A[i,j]<>A[j,i] then inputIsCorrect:=false; if A[i,j]=1 then lines:=lines+1; end; if inputIsCorrect=true then orgraph := false; for i := 1 to n do if A[i,i]<>0 then orgraph := true; if orgraph=true then begin for i:=1 to n do for k:=1 to n do B[i,k]:=0; k:=0; for i:=1 to n do for j:=1 to n do if (A[i,j]=1) and (i<>j) then else if (A[i,j]=1) and (i=j) then begin k:=k+1; B[i,k]:=1; B[j,k]:=-1; B[i,k]:=2; end; end else if orgraph=false then begin for i:=1 to n do for k:=1 to n do B[i,k]:=0; k:=0; for i:=1 to n do for j:=1 to i do if (A[i,j]=1) and (i<>j) then begin k:=k+1; B[i,k]:=1; B[j,k]:=1; end; end; WriteLN('Матрица инцидентности:'); {* выводим матрицу таблицей *} For i:=1 to n Do Begin For j:=1 to k Do Write(B[i,j],' '); WriteLN; End; Writeln(' Нажмите любую клавишу для окончаня работы...'); readkey; end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определение центра графа заданной матрице инцидентности | emsisem | Помощь студентам | 3 | 27.10.2011 13:19 |
Определение центра графа заданной матрице инцидентности | emsisem | Общие вопросы C/C++ | 2 | 27.10.2011 13:09 |
Определение центра графа заданной матрице инцидентности | emsisem | C++ Builder | 0 | 27.10.2011 12:48 |
TurboPascal: графы, матрицы смежности и матрицы инцидентности. | ulala | Помощь студентам | 1 | 03.03.2011 19:28 |