Ошибка 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д