Студопедия — 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; просмотров: 352. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Постинъекционные осложнения, оказать необходимую помощь пациенту I.ОСЛОЖНЕНИЕ: Инфильтрат (уплотнение). II.ПРИЗНАКИ ОСЛОЖНЕНИЯ: Уплотнение...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

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