Выдает ошибку :Переменная цикла 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.

Объяснение кода листинга программы

  1. Программа Ford_Bellman.
  2. Используется для решения задачи о кратчайшем пути во взвешенном графе.
  3. Задается количество вершин графа (n), стартовая вершина (start) и веса ребер (w) между вершинами.
  4. В основной блок программы записывается количество вершин (n), затем в цикле с помощью функции read() с клавиатуры читаются веса ребер (w) между вершинами.
  5. В цикле формируется массив edge[] из ребер графа.
  6. Затем вызывается процедура FB(n, start), которая находит кратчайшие пути от стартовой вершины до всех остальных вершин графа.
  7. В процедуре FB(n, start) в цикле считаются расстояния от стартовой вершины до всех остальных вершин графа с помощью алгоритма Беллмана-Форда.
  8. Если расстояние до какой-либо вершины равно бесконечности (inf), то это означает, что до этой вершины нет пути из стартовой вершины.
  9. В конце процедуры FB(n, start) выводятся на экран все найденные кратчайшие пути.
  10. В конце программы выводится на экран список кратчайших путей.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы