Матричный поиск путей между заданными узлами (CASIO fx-9750G Plus)

| рубрика «Программы» | автор basvic
Метки: ,

Программа матричным методом разыскивает все пути на не взвешенном направленном графе ведущие из исходящего узла во входящий. В начале программа в режиме диалога просит ввести все переходы между узлами сети (строит матрицу переходов графа). Когда все переходы заданы можно перейти к поиску решения. Программа сначала выводит матрицу переходов для контроля правильности заполнения, а затем запрашивает исходящий и входящий узел графа. После этого выполняется поиск решения, который также выводится в виде матрицы. Первый столбец соответствует исходному состоянию, а каждый следующий отделён от предыдущего одним переходом. Когда путь доходит до входящего узла, то он прерывается. Максимальное число переходов равно числу узлов. Если в матрице результатов через ячейку проходит 1 путь, то в ячейке цифра 1, если 2 пути, то 2 и т.д.

%Header Record
Format:TXT
Communication SW:0
Data Type:PG
Capacity:246
File Name:TRACK
Group Name:
Password:
Option1:NL
Option2:
Option3:
Option4:
%Data Record
"NODES"?\->N
{N,N}\->\Dim \Mat A
\Do
\ClrText
"SRC NODE"?\->X
"DST NODE"?\->Y
1\->\Mat A[X,Y]
"NEXT BRUNCH=1"?\->X
\LpWhile X>0
\Mat A\Disp{N,N+1}\->\Dim \Mat X
"FIRST NODE"?\->A
"END NODE"?\->B
1\->\Mat X[A,1]
\For 1\->I \To N
\For 1\->J \To N
\For 1\->K \To N
\If K\<>B
\Then \Mat X[K,I]*\Mat A[K,J]+\Mat X[J,1+I]\->\Mat X[J,1+I]
\IfEnd
\Next
\Next
\Next
\Mat X\Disp
%End