Урок 6. Алгоритм Дейкстры (Цикл Дейкстры)


#1

Циклы с несколькими охраняемыми ветвями. Цикл Дейкстры и «Паук».

Цикл Дейкстры состоит из одной или нескольких ветвей (охраняемых выражений), каждая, ветвь представляет собой пару из охраняющего условия и охраняемой команды.

Цикл Дейкстры:

При выполнении цикла Дейкстры в каждой итерации происходит вычисление охраняемых условий.

Если хотя бы одно из них истинно, выполняется соответствующая охраняемая команда, после чего начинается новая итерация (если истинны несколько охраняемых условий, выполняется только одна охраняемая команда).

Если все охраняемые условия ложны, цикл завершается.

Цикл Дейкстры с одним охраняющим условием и одной охраняемой командой представляет собой, по сути, обычный цикл с предусловием (цикл «while»).

Классическое описание цикла Дейкстры:

 do
   P1 → S1,
     …
   Pn → Sn
 od

где:

  • do — маркер начала конструкции цикла,
  • od — маркер завершения конструкции цикла,
  • Pii-тое охраняющее условие (логическое выражение, которое может иметь значение «истинно» или «ложно»),
  • Sii-я охраняемая команда.

Цикл состоит из одной или нескольких ветвей (охраняемых выражений), каждая из которых представляет собой пару из охраняющего условия и охраняемой команды.

Пример реализации цикла Дейкстры:

static void Main()
{
    char character = '\0';

    for (; ; )
    {
    
        character = Console.ReadKey().KeyChar;
         
        switch (character)
        {
            case 'l': // 'l' - охраняющее условие 1.
                {
                    Console.WriteLine("Go left");    // охраняемая команда.
                   continue; 
                }
            case 'r': // 'r' - охраняющее условие 2.
                {
                    Console.WriteLine("Go right");   // охраняемая команда.
                    continue;
                }
        }
        break;  // Прерывание цикла.
    }

    // Delay.
    Console.ReadKey();
}

Его работа:

11

Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №6. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ".

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202


Содержание справочника С# Starter
Урок 6. Вложенные циклы