Ошибка 215. Арифметическое переполнение - Turbo Pascal (28976)
Формулировка задачи:
Подскажите в чем ошибка?
Матрица в файле txt
0 10 17 8 0 12 19
10 0 1 0 7 0 21
17 1 0 0 3 11 0
8 0 0 0 16 3 5
0 7 3 16 0 4 0
12 0 11 3 4 0 10
19 21 0 5 0 10 0
Решение задачи: «Ошибка 215. Арифметическое переполнение»
textual
Листинг программы
const inf=50000; var C: array ... of word; D: array ... of word; ... ... C[i,j]:=inf; ... D[act,i]:=inf; if D[act,i]>D[pr,j]+C[j,i] then D[act,i]:=D[pr,j]+C[j,i];
Объяснение кода листинга программы
В данном коде используется массив слов C и массив слов D. Переменная inf имеет значение 50000.
В строке C[i,j]:=inf; мы инициализируем каждый элемент массива C значением inf.
В строке D[act,i]:=inf; мы инициализируем каждый элемент массива D значением inf.
В строке if D[act,i]>D[pr,j]+C[j,i] then D[act,i]:=D[pr,j]+C[j,i]; происходит проверка условия. Если значение D[act,i] больше суммы D[pr,j] и C[j,i], то значение D[act,i] заменяется на сумму D[pr,j] и C[j,i].
Таким образом, данный код выполняет проверку и обновление значения в массиве D на основе значений массивов C и D.