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

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

Укороченный оператор условного перехода





Укороченный оператор условного перехода используется для реализации структуры неполного ветвления (табл. 4.1).

Структуры оператора:

if(P) ветвь_ДА или if(P)

ветвь_ДА

где if – ключевое слово (если);

P – выражение, соответствующее проверяемому условию;

() – ограничители выражения P;

ветвь_ДА – выполняемый оператор (простой или составной).

Выражение P, как и проверяемое условие, может быть логическим или арифметическим. В большинстве случаев в качестве P применяются логические выражения.

Логическое выражение– совокупность операндов, соединённых знаками логических действий.

В простейшем варианте логическое выражение имеет структуру операции отношения:

, где а и b – операнды (арифметические выражения), подлежащие сравнению;

– символ операции отношения.

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

Таблица 2

Обозначение в математике < = >
Обозначение в Си/Си++ < = = > <= != >=

Примеры записи некоторых логических выражений выполнены в табл. 3.

Таблица 3

Запись в математике Запись на Си/Си++
sin x > 0,351 sin(x) > 0.351
log(a) <= pow(c, 2)
cos(b) – 0.6 * d!= 0
fabs(t-2.) = = 7.65 – pow(d,1./3.)

 

Операции отношения по приоритету выполнения ниже всех арифметических, но между собой делятся на группы с большим и меньшим приоритетом:

операции <, >, <=, >= имеют одинаковый больший приоритет и выполняются после арифметических операций;

операции = =,!= имеют одинаковый меньший приоритет и выполняются после отношений, принадлежащих к старшей группе.

Внимание! Результатом вычисления логического выражения является логическая константа true (ИСТИНА), если условие выполняется, либо false (ЛОЖЬ), в противном случае.

Так, результат вычисления выражения с<2. при с=3.0 есть false (ЛОЖЬ), а при с=1.5 – true (ИСТИНА).

Арифметические выражения в операторе if используются относительно редко.

Результат вычисления арифметического выражения есть константа. Если полученная константа равна нулю – результат проверки есть false (ЛОЖЬ). Если значение константы не равно нулю – результат проверки есть true (ИСТИНА).

Так, проверка выражения 4-z2 сводится к анализу его результата. Если переменная z целочисленная и имеет значение 2 то результат проверки (4 - 22 = 0) – false (ЛОЖЬ). При любом другом значении z получаемая константа не равна нулю, следовательно, результат проверки – true (ИСТИНА).

Внимание! Проверка равенства нецелых операндов, как правило, безрезультатна, ввиду особенности представления вещественных констант в ЭВМ с использованием многоразрядной дробной мантиссы. Попытка выполнения над ними операции = = приводит к не идентичности результатов за счет погрешности в младших разрядах мантиссы.

Таким образом, анализ на ноль не целых операндов не будет давать устойчивых результатов при проверке ().

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

вычисляется логическое (арифметическое) выражение P;

результат вычисления анализируется. Если он не равен нулю (ИСТИНА), выполняется ветвь_ДА, а затем управление передаётся оператору, следующему за if. Если результат равен нулю (ЛОЖЬ) – ветвь_ДА не выполняется и управление передаётся оператору, следующему за if.

ИСТИНА   if(P) ветвь_ДА ИСТИНА
 
 


if(P)

ветвь_ДА

ЛОЖЬ   if(P) ветвь_ДА ЛОЖЬ if(P) ветвь_ДА

Так, фрагменты программ

... if(t<=0.5) x1=g; x2=1.7; ... ... if(t<=0.5) x1=g; x2=1.7; ... ... if(t<=0.5) {x1=g; n=1;} x2=1.7; ... if(t<=0.5) { x1=g; n=1; } x2=1.7;

работают следующим образом:

вычисляется логическое выражение (t <= 0.5);

если результат ИСТИНА (например, при t=0.4), то будет выполнен оператор ветви ДА (простой x1=g; или составной {x1=g; n=1;}), а затем следующий за if (x2=1.7;);

если результат ЛОЖЬ (например, при t = 0.6) оператор ветви ДА (простой x1 = g; или составной {x1 = g; n = 1;}) игнорируется и управление передаётся следующему за if оператору (x2 = 1.7;).

Следовательно, стандартная структура укороченного оператора if позволяет реализовать неполное ветвление при расположении ветви «ДА» непосредственно под проверяемым условием.

Возможно использование укороченного if для реализации второго варианта структуры неполного ветвления (расположение ветви «НЕТ» под проверяемым условием). При этом в качестве ветви ДА применяется goto m; и оператор if принимает вид:

if(Р) goto m;







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




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


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

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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

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

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

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