Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3(прогр.).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.47 Mб
Скачать

Реализация разветвяляющихся процессов с использованием оператора if

Для реализации алгоритмов разветвляющейся структуры в Delphi предусмотрены две формы оператора IF: полная и сокращенная.

Полная форма оператора IF предназна для реализации разветвляющегося процесса, алгоритм которого в графическом виде можно описать так, как представлено на рис.1.

Синтаксическая конструкция полной формы оператора IF, соответсвующая алгоритму, представленному на рис.1.

IF Условие THEN

Оператор 1

ELSE

Оператор 2;

Следующий оператор

Рис.1. Схема алгоритм полного разветвляющегося процесса

Сокращенная форма оператора IF предназначена для реализации разветвляющегося процесса, алгоритм которого представлен на рис.2.

Рис.2. Схема алгоритма выполнения оператора IF в сокращенной форме

Синтаксическая конструкция сокращенной формы оператора IF:

IF Условие THEN

Оператор 1;

Следующий оператор

Согласно синтаксической конструкции опеартора IF, после ключевых слов, then и else, можно писать только один оператор. Если же вычислительный процесс требует выполнения нескольких операторов по ветви then и/или else, то эти операторы надо заключить в оператор begin …. End.

Синтаксическая конструкция оператора IF, когда в ветвях разветвления требуется выполнения нескольких операторов:

IF Условие THEN

Begin

Оператор

Оператор

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

Оператор

end

ELSE

Begin

Оператор

Оператор

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

Оператор

End;

Следующий оператор

Операторами в ветвях разветвления оператора IF могут быть так же операторы IF, вторые операторы IF называют вложенными. Вложенные оператоы используются при реализации сильно ветвящихся вычислительных процессов.

Пример вложенной конструкции оператора IF.

IF Условие THEN

Begin

IF Условие THEN

Begin

Операторы

end

ELSE

Begin

Операторы

end;

Операторы

end

ELSE

Begin

Операторы

End;

Реализация разветвяляющихся процессов с использованием оператора Case

Оператор Case используется для более компактного представления в программе сильно ветвящихся вычислительных процессов. Он имеет более ограниченное применение по сравнению с оператором IF. Оператор Case называют оператором выбора.

Синтаксическая конструкция оператора

Case индикатор выбора of

Альтернатива 1;

Альтернатива 2;

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

Альтернатива N

Else

Оператор

End;

Где:

Индикатор выбора – это выражение простого порядкового типа.

Альтернатива имеет следующую синтаксическую конструкцию (описание приведено в виде диаграммы Вирта):

В данной диаграмме Конст. – это константа выбора.

Пример использования оператора Case.

По введенному номеру дня недели, вывести одну из фраз: Этот день выходной; Этот день рабочий; Такого номера дня недели нет.

Program Ex_Case;

Var

Num:byte;

Begin

Write(‘Введите номер дня недели’);

Readln(Num);

Case Num of

1..5:writeln(‘Этот день недели рабочий’);

6,7 : writeln(‘Этот день недели выходной’);/

Else

writeln(‘Такого номера дня недели нет’);

End;

End.

Правила использования оператора Case.

  1. Индикатор выбора – это выражение простого порядкового типа.

      1. Константы выбора должны быть совместимы с типом индикатора.

      2. В пределах одного оператора все константы должны быть уникальными.

      3. Оператором в альтернативе может быть так же оператор Case.

      4. Если требуется в альтернативе указать более одного оператора, то надо использовать оператор Begin ….End.

Алгоритм выполнения оператора.

  1. Путем последовательного просмотра констант альтернатив, отыскивается альтернатива, константа которой равна значению индикатора.

  2. Если такая альтернатива найдена, то выполняется оператор этой альтернативы и управление передается оператору, следующему за оператором Case.

  3. Если альтернатива не найдена и оператор Case имеет ветвь Else, то выполняется оператор, следующий за Else.

  4. Если альтернатива не найдена и оператор Case не имеет ветви Else, то управление передается оператору следующему за Case.