Графы: Проверка смежности вершин - Pascal

Узнай цену своей работы

Формулировка задачи:

Ребят помогите пожалуйста,просто выручите очень сильно ,вариант в самом низу описан. Нужно сделать на паскале абц нэт. Реализуйте в виде функций (и/или процедур) следующие операции: 1.проверка смежности вершин v и w; 2.перечисление всех вершин смежных с v; 3.определение веса ребра (v, w); 4.определение веса вершины v; 5.перечисление всех ребер (v, w); 6.перечисление ребер, инцидентных вершине v; 7.перечисление вершин, инцидентных ребру s. Варианты задания 1) Матрица смежности.

Решение задачи: «Графы: Проверка смежности вершин»

textual
Листинг программы
const
  N = 6; //Число вершин
  a: array[1..6, 1..6] of integer = //Матрица смежности
  ((0, 1, 0, 0, 1, 0),
   (1, 0, 1, 0, 1, 0),
   (0, 1, 0, 1, 0, 0),
   (0, 0, 1, 0, 1, 1),
   (1, 1, 0, 1, 0, 0),
   (0, 0, 0, 1, 0, 0));
   
function proverka_smezhnosti(v, w: integer): boolean := a[v, w] > 0;
 
procedure perechislenie_smezhnih_vershin(v: integer);
begin
  write('Вершины, смежные с ', v, '-той вершиной: ');
  for var w := 1 to N do
    if proverka_smezhnosti(v, w) then print(w);
  writeln;
end;
 
function ves_rebra(v, w: integer): integer := a[v, w];
 
function stepen_vershini(v: integer): integer;
begin
  Result := 0;
  for var w := 1 to N do
    if proverka_smezhnosti(v, w) then Result += 1;
end;
 
procedure perechislenie_vseh_reber;
begin
  write('Ребра графа: ');
  for var v := 1 to N do
    for var w := v + 1 to N do
      if proverka_smezhnosti(v, w) then print('(', v, '; ', w, ')');
end;
 
procedure perechislenie_incidentnih_reber(v: integer);
begin
  write('Ребра, инцидентные с ', v, '-той вершиной: ');
  for var w := v + 1 to N do
    if proverka_smezhnosti(v, w) then print('(', v, '; ', w, ')');
end;
 
procedure perechislenie_incidentnih_vershin(v, w: integer) := writeln('Вершины, инцидентные ребру (', v, '; ', w, '): ', v, ' ', w);

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

  1. Определение константы N равной 6, представляющей количество вершин в графе.
  2. Создание массива a размером 6x6 для представления матрицы смежности графа.
  3. Создание функции proverka_smezhnosti(v, w: integer): boolean, которая проверяет смежность вершин v и w в графе с помощью матрицы смежности.
  4. Создание процедуры perechislenie_smezhnih_vershin(v: integer), которая выводит вершины, смежные с заданной v вершиной.
  5. Создание функции ves_rebra(v, w: integer): integer, которая возвращает вес ребра между вершинами v и w в графе.
  6. Создание функции stepen_vershini(v: integer): integer, которая определяет степень вершины v в графе.
  7. Создание процедуры perechislenie_vseh_reber, которая выводит все рёбра графа.
  8. Создание процедуры perechislenie_incidentnih_reber(v: integer), которая выводит все рёбра, инцидентные с вершиной v.
  9. Создание процедуры perechislenie_incidentnih_vershin(v, w: integer), которая выводит вершины, инцидентные с ребром между вершинами v и w. Код представляет набор функций и процедур для работы с графом, таких как проверка смежности вершин, поиск смежных вершин, определение веса ребра, поиск степени вершины, перечисление всех рёбер, перечисление инцидентных рёбер, а также перечисление инцидентных вершин.

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


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

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

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