
Перевести с С++ на паскаль. #define _CRT_SECURE_NO_WARNINGS#include #include #define SIZE 6int
main(){ int a[SIZE][SIZE]; // матрица связей int d[SIZE]; // минимальное расстояние int v[SIZE]; // посещенные вершины int temp, minindex, min; int begin_index = 0; system("chcp 1251"); system("cls"); // Инициализация матрицы связей for (int i = 0; i 0) { temp = min + a[minindex][i]; if (temp < d[i]) { d[i] = temp; } } } v[minindex] = 0; } } while (minindex < 10000); // Вывод кратчайших расстояний до вершин printf("\nКратчайшие расстояния до вершин: \n"); for (int i = 0; i = 0; i--) printf("%3d ", ver[i]); getchar(); getchar(); return 0;}

Ответы на вопрос

Ответ:
просто перевод строк на паскаль. Логики тут искать не стоит. Первоначальное задание не полностью дано.
Объяснение:
const
size = 6
var
a : array [0..size, 0..size] of integer;
d, v : array [0..size] of integer;
i, temp, minindex, min, begin_index : integer;
begin
begin_index := 0;
for i:=0 to size-1 do begin
temp := min + a[minindex][i]
if temp < d[i] then
d[i] := temp
end;
v[minindex] := 0;
writeln('Кратчайшие расстояния до вершин')
for i := 0 to size-1 do
writeln(ver[i])
end.



Вот перевод данного кода на язык Pascal:
program Dijkstra; const size = 6; var a: array[1..size, 1..size] of Integer; // матрица связей d: array[1..size] of Integer; // минимальное расстояние v: array[1..size] of Integer; // посещенные вершины temp, minindex, min: Integer; begin_index: Integer = 1; i: Integer; begin // Инициализация матрицы связей for i := 1 to size do begin for j := 1 to size do begin a[i, j] := // значение элемента в матрице связей end; end; // Инициализация массива минимальных расстояний for i := 1 to size do begin d[i] := // начальное значение минимального расстояния end; // Инициализация массива посещенных вершин for i := 1 to size do begin v[i] := 0; end; repeat minindex := 10000; min := 10000; for i := 1 to size do begin if (v[i] = 0) and (d[i] < min) then begin min := d[i]; minindex := i; end; end; if minindex <> 10000 then begin for i := 1 to size do begin if a[minindex, i] > 0 then begin temp := min + a[minindex, i]; if temp < d[i] then begin d[i] := temp; end; end; end; v[minindex] := 1; end; until minindex = 10000;
// Вывод кратчайших расстояний до вершин Writeln('Кратчайшие расстояния до вершин:'); for i := 1 to size do begin Writeln(d[i]); end; Readln; end.


Похожие вопросы
Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili