Студопедия — ELSE оператор12;
Студопедия Главная Случайная страница Обратная связь

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

ELSE оператор12;






Ниже рассмотрены примеры применения условного оператора.

Пример1. (Применение полной формы условного оператора). Пусть требуется вычислить функциюY, принимающую значение –3(Х+2) при Х<0 и значение 5X при Х>=0. Такое вычисление можно выполнить с помощью одного условного оператора:

IF X<=0 THEN Y:= -3*(X+2) ELSE Y:= 5*X;

Пример2. (Применение составного оператора). Пусть требуется вычислить площадь круга S и длину окружности L по заданному радиусу R при выполнении некоторого условия А > D:

IF A>D THEN {далее – составной оператор, включающий два простых оператора:}

Begin S:=pi*R*R; L:=2*pi*R End;

Примечание. Этот оператор записан синтаксически правильно, так как в языке Паскаль допускается произвольное расположение операторов по строкам. Однако в соответствии с принципами структурирования программ (см. главу 4) для наглядности лучше записать так:

IF A>D THEN

Begin

S:=pi*R*R; L:=2*pi*R

{перед End знак «точка с запятой» в Паскале можно не cтавить}

End;

Очевидно, что для корректного вычисления S и L необходимо провести проверку еще одного условия “R>=0” и в случае невыполнения его выдать на монитор соответствующее сообщение.

Ниже приводится два варианта программирования этой задачи:

{ Вариант первый: два условия объединены в одно логической операцией And(И), которая означает «одновременно, и то и другое»:}

IF (A>D) and (R>=0) THEN

Begin

S:=pi*R*R; L:=2*pi*R

End

ELSE write(‘Вычисления невозможны, так как условие

ложно’);{объединение двух условий в одно не позволяет выявить точную причину невозможности вычисления, так как результатом логического умножения будет значение False при получении значения False любым из сомножителей, то есть при нарушении любого из отдельных условий, входящих в логическое произведение, или при нарушении обоих условий одновременно }

{ Вариант второй: условия разделены и проверяются разными условными операторами:}

IF (A>D) THEN

BEGIN

If (R>0) then

Begin

S:=pi*R*R; L:=2*pi*R

End

Else write(‘Вычисления невозможны, так как радиус R<=0’)

END

ELSE write(‘Вычисления невозможны, так как условие A>D не выполнено’);

ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА (по метке) – имеет структуру GOTO metka; и служит для безусловного (обязательного) изменения направления последовательности выполнения операторов программы. Здесь metka – код (целое без знака) или слово, указывающие на оператор, который будет выполняться после оператора GOTO metka.

Примечание. Согласно принципам структурного программирования оператор безусловного перехода использовать не рекомендуется.

ОПЕРАТОР ВЫБОРА CASE

 

ОПЕРАТОР ВЫБОРА CASE позволяет выбрать одно из нескольких направлений дальнейшего выполнения программы. Структура оператора:

CASE kv OF

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

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

Значk: операторk

[ ELSE оператор]

END;

Здесь kv – ключ выбора или выражение для вычисления значения ключа.

Примечание. Тип ключа выбора – любой порядковый тип (целый, символьный, логический, перечислимый).

Знач1, Знач2,…, Значk – значения, которые может принимать ключ kv (константы того же типа, что и ключ kv).

Работа оператора Case состоит в следующем: значение ключа kv последовательно сравнивается с каждой из констант и при их равенстве выполняется соответствующий этой константе оператор. После выполнения выбранного оператора действие Case завершается. Если значение kv не равно ни одной из перечисленных констант, то выполняется оператор, записанный после ELSE. В частности, раздел ELSE может быть опущен и в этом случае оператор выбора эквивалентен пустому оператору.

 

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

Program long_m;

Var n_m:byte;

Begin

write(‘Введи номер месяца:’);readln(n_m);

Case n_m of {ключ n_m – целое число без знака, которое согласно типу byte может принимать значения из диапазона (0,255)}

1,3,5,7,8,10,12: writeln(‘В этом месяце 31 день’);

4,6,9,11: writeln(‘В этом месяце 30 дней’);

2: begin

writeln(‘в феврале невисокосного года 28 дней, ’);

writeln(‘ а в феврале високосного года 29 дней’)

end

else writeln(‘номер месяца задан неверно’)

end{Case};

writeln(‘Для завершения работы нажми enter’);readln

end.

 

Пример 2. Для заданного значения температуры по Цельсию определяется температура по шкале Фаренгейта, Кельвина или Ренкина.

Program Scale_T;

Var tc:real;­

S:char;

Begin writeln(‘Соответствие между температурными шкалами ’);

Writeln(‘Цельсия, Фаренгейта, Кельвина и Ренкина: ’);

Write(‘Задайте значение температуры по Цельсию Tc= ’);

Readln(tc);

If tc >= -273 then

Begin

Writeln(‘Температура по какой шкале Вас интересует? – ‘);

Write(‘Фаренгейта – нажать F, Кельвина – K, Ренкина – R;‘);

Readln(S);

Case S of {ключ – символьное значение}

‘F’,’f’: writeln(‘По Фаренгейту температура равна ’,

(1.8*tc+32));

‘K’,’k’: writeln(‘По Кельвину температура равна ’,

(tc+273.15));

‘R’,’r’: writeln(‘По Ренкину температура равна ’,

(1.8*tc+492))

Else writeln(‘Программа не знает такой шкалы’);

End

Else writeln(‘Некорректно: заданная Tc ниже температуры абсо-

лютного нуля’);

writeln(‘Для завершения работы нажми enter’);readln

end.

 







Дата добавления: 2015-10-19; просмотров: 359. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Studopedia.info - Студопедия - 2014-2024 год . (0.015 сек.) русская версия | украинская версия