Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Оператор 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 завершит свою работу без выполнения каких-либо операторов.
|