Выдает ошибку :Переменная цикла for должна описываться в том же блоке, что и цикл for - PascalABC.NET
Формулировка задачи:
Решение задачи: «Выдает ошибку :Переменная цикла for должна описываться в том же блоке, что и цикл for»
textual
Листинг программы
program Ford_Bellman; uses crt; const inf=100000; Vmax=1000; Emax=Vmax*(Vmax-1) div 2; type Edges=record u, v, w: integer; end; Var e, n, w, start: integer; edge: array[1..Emax] of Edges; d: array[1..Vmax] of integer; {алгоритм Беллмана-Форда} procedure FB(n, s: integer); var i,j:integer; begin for i:=1 to n do d[i]:=inf; d[s]:=0; for i:=1 to n-1 do for j:=1 to e-1 do if d[edge[j].v]+edge[j].w<d[edge[j].u] then d[edge[j].u]:=d[edge[j].v]+edge[j].w; for i:=1 to n do if d[i]=inf then writeln(start, '->', i, '=', 'Not') else writeln(start, '->', i, '=', d[i]); end; {основной блок программы} var i,j:integer; begin clrscr; write('Количество вершин > '); read(n); e:=1; for i:=1 to n do for j:=1 to n do begin write('Вес ', i, '->', j, ' > '); read(w); if w<>0 then begin edge[e].v:=i; edge[e].u:=j; edge[e].w:=w; e:=e+1; end; end; write('Стартовая вершина > '); read(start); writeln('Список кратчайших путей:'); FB(n, start); end.
Объяснение кода листинга программы
- Программа Ford_Bellman.
- Используется для решения задачи о кратчайшем пути во взвешенном графе.
- Задается количество вершин графа (n), стартовая вершина (start) и веса ребер (w) между вершинами.
- В основной блок программы записывается количество вершин (n), затем в цикле с помощью функции read() с клавиатуры читаются веса ребер (w) между вершинами.
- В цикле формируется массив edge[] из ребер графа.
- Затем вызывается процедура FB(n, start), которая находит кратчайшие пути от стартовой вершины до всех остальных вершин графа.
- В процедуре FB(n, start) в цикле считаются расстояния от стартовой вершины до всех остальных вершин графа с помощью алгоритма Беллмана-Форда.
- Если расстояние до какой-либо вершины равно бесконечности (inf), то это означает, что до этой вершины нет пути из стартовой вершины.
- В конце процедуры FB(n, start) выводятся на экран все найденные кратчайшие пути.
- В конце программы выводится на экран список кратчайших путей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д