Разветвляющая структура (ветвление) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разветвляющая структура (ветвление)



Разветвляющийся алгоритм предполагает выполнение вычислений по одному из возможных направлений в зависимости от исходных данных или промежуточных результатов. Ветвление в таких алгоритмах производится при проверке некоторых условий.

Условный оператор

Условный оператор позволяет выбрать и выполнить один из двух входящих в него операторов в зависимости от значения логического выражения. Он имеет следующий вид:

IF < логическое выражение> then

<Оператор 1>

[ Else

<Оператор 2>;]

Здесь IF, then, Else – зарезервированные слова языка, означающие соответственно ЕСЛИ, ТО, ИНАЧЕ, квадратные скобки означают, что конструкция Else <Оператор 2> может отсутствовать. Например, оператор

if X<>0 then

Y:= A/X

Else

Y:= A;

Соответствует следующий ход вычислений:

Если в момент выполнения программы окажется, что X ≠ 0, то будет вычислено Y = A/X. Если же окажется, что X = 0, то будет вычислено Y = А.

Оператор IF, then, Else – это один оператор, поэтому "; " после оператора 1, т.е. перед Else, не ставится.

Порядок выполнения условного оператора приведен на рисунке 4.1.

Рисунок 4.1 – Схема полного условного оператора

Если условный оператор не имеет конструкции Else, то тогда он называется сокращенным условным оператором. Если логическое выражение принимает значение ЛОЖЬ, сразу выполняется оператор, следующим за условным (рисунок 4.2). Например, оператор

If X>0 Then

K:= K+1; {увеличение К на 1 (подсчет числа положительных Х)}

Рисунок 4.2 –Схема неполного условного оператора

Оператор выбора (варианта)

Оператор If позволяет выбрать один из двух возможных путей решения. В ряде случаев таких путей бывает гораздо больше. При этом также необходимо выбрать один из них. Применение оператора If для таких задач неэффективно.

В Паскале для выбора одного из нескольких путей решения используется оператор Case (вариант из) – обобщение условного оператора. В общем виде он записывается так:

Case выражение Of

Значения1: Оператор1;

Значения2: Оператор2;

..........

ЗначенияN: ОператорN;

End; { Конец списка выбора }

Выражение записывается относительно специальной переменной выбора (селектора), которая может быть любого перечисляемого типа (Integer, Char).

Значения1,..., Значения N – значения выражения, при которых выполняются Оператор1,..., Оператор N соответственно.

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

Например:

Case Num Mod 2 Of

0: Writeln('Четное');

1: Writeln('Нечетное');

End;

или

Case Month Of

1,2,3: Writeln('Первый квартал');

4,5,6: Writeln('Второй квартал');

End;

Если после Значений i необходимо выполнять несколько операторов, они заключаются в блок:

Значенияi: Begin

операторы_i

End;

Пример 4.3 Перевести цифру римской системы счисления в ее десятичный эквивалент. Римская цифра вводится c клавиатуры (в виде похожей на нее латинской буквы), а затем на экране должен появиться ее десятичный эквивалент.

Программа будет иметь вид

Program Rim;

Var

R: Char;

N: Integer;

Begin

Writeln('Введите римскую цифру');

Readln(R);

Case R Of

'M': N:= 1000;

'D': N:= 500;

'C': N:= 100;

'L': N:= 50;

'X': N:= 10;

'V': N:= 5;

‘I': N:= 1

End; { Case }

Write ('Десятичное число:', N);

End.



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 171; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.242.165 (0.004 с.)