arsen86, в коде твоем я запутался, но принцип довольно-таки прост
ты правилно переводишь символьный лабиринт в числовой, а вот дальше ошибка какая-то
смотри, что делать дальше:
запрашиваешь у пользователя начальное и конечное значение пути, затем начальной ячейке присваиваешь значение 2, потом сканируешь матрицу и если у какой-то ячейки есть соседняя ячейка содержащая значение 2, присваиваешь текущей значение 2+1, затем снова сканируешь митрицу, если у текущей ячейки соседка 3, присваиваешь текущей значение 3+1 и т.д. я думаю суть понял
как найти наикратчайший путь: начиная от конечной ячейки ишещь среди ее соседей ячейку со значением на 1 меньше, помечаешь(напр. -1) и т.д. потом переводишь в символьный массив
также посмотри
http://forum.pascal.net.ru/index.php?showtopic=3041я давно тоже решал такую задачку(только без перевода из символьного массива), вот: