Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор CASE

УСЛОВНЫЙ ОПЕРАТОР

1. КРАТКАЯ ФОРМА

где IF, THEN – служебные слова (если, то), < условие> – логическое выражение, < оператор1> – любой оператор ТП.

Порядок выполнения:

1) вычисляется < условие>.

2) Если результат есть TRUE, то выполняется < оператор1>.

3) Если результат есть FALSE, то < оператор1> не выполняется.

Пример 1. If (a> b) THEN s: =a+b;

Пример 2. If (a> b+c) THEN

Begin a: =a+1; b: =b+1; c: =c+1; end;

Полная форма

IF< условие> THEN < оператор1> ELSE < оператор2>;

Порядок выполнения:

1) вычисляется < условие>.

2) Если результат есть TRUE, то выполняется < оператор1>, < оператор2> не выполняется.

3) Если результат есть FALSE, то < оператор1> не выполняется, выполняется < оператор2> после ELSE.

Пример 1. If (a> b) THEN s: =a+b ELSE p: =a*b;

Пример 2. If (a> b+c) THEN

Begin a: =a+1; b: =b+1; c: =c+1; end

ELSE

Begin a: =a-1; b: =b-1; c: =c-1; end;

3. Вложенная форма.

IF < условие 1> THEN

IF< условие 2> THEN < оператор1>

ELSE < оператор2>

ELSE

IF< условие 3> THEN < оператор3>

ELSE < оператор4>;

Правило! Любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THEN условного оператора, не имеющего начинающегося с ELSE продолжения.

Если после слова THEN или ELSE по смыслу алгоритма следуют не один, а несколько операторов, то их следует объединить в один составной оператор с помощью операторных скобок BEGIN и END.

 

 

Задача 1. Дано а, b, c. Вычислить среднее арифметическое чисел, кратных 3, и количество чисел, лежащих в интервале [1, 15].

 

PROGRAM PRIMER1;

{ РАЗДЕЛ ОПИСАНИЯ ПЕРЕМЕННЫХ}

VAR S, K, T, A, B, C: INTEGER; SR: REAL;

 

{ РАЗДЕЛ ОПЕРАТОРОВ}

BEGIN

READLN(A, B, C);

S: =0; K: =0; T: =0;

IF (AMOD3=0) THEN

BEGIN

S: =S+A;

K: =K+1;

END;

IF (BMOD3=0) THEN

BEGIN

S: =S+B;

K: =K+1;

END;

IF (CMOD3=0) THEN

BEGIN

S: =S+C;

K: =K+1;

END;

IF (A> =1) AND(A< =15) THEN T: =T+1;

IF (B> =1) AND(B< =15) THEN T: =T+1;

IF (C> =1) AND(C< =15) THEN T: =T+1;

SR: =S/K;

WRITELN(‘СРЕДН. ЗНАЧЕНИЕ=’, SR);

WRITELN(‘T=’, T);

END.

 

Оператор CASE

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

Формат записи:

CASE< ключ выбора > OF

< список выбора>;

[ELSE< оператор> ] END;

Здесь CASE, OF, ELSE, END – служебные слова (англ. случай, из, иначе, конец).

< список выбора> – одна или более конструкций вида < константа выбора>: < оператор>;

< константа выбора> – константа того же типа, что и выражение < ключ выбора>; < оператор> – произвольный оператор.

Порялок выполнения.

1) Вычисляется значение выражения < ключ выбора>.

2) В последовательности операторов, < списка выбора> отыскивается такой, которому предшествует константа выбора, равная вычисленному значению ключа выбора.

3) Найденный оператор выполняется.

4) Оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, то управление передается оператору, стоящему после слова ELSE.

Пример. CASE NOMER OF

2: Y: =G;

4: Y: =G*X;

6: Y: =G*EXP(X)+H

8: Y: =G*SQR(SIN(X)+H);

ELSE Y: =G*SQRT(ABS(X));

END;

 

Правило! перед словом ELSE необходимо ставить разделительный символ – точку с запятой (;).

Часть “ELSE < оператор> ” структуры оператора CASE может и отсутствовать. Тогда при отсутствии в списке выбора константы выбора, соответствующей вычисленному значению ключа выбора, оператор CASE завершит свою работу без выполнения каких-либо операторов.

 

<== предыдущая лекция | следующая лекция ==>
Противопожарные мероприятия | Динамометр ручной плоскопружинный




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.