как выполняется условный переход в краткой форме
Простейшая (укороченная) форма оператора условного перехода if.
Простейшая форма оператора if имеет вид:
· if (условие) оператор
Наряду с простейшей или неполной формой оператора if существует еще полная форма оператора if. Ниже Вы можете увидеть ее формальное описание.
if (условие) оператор1 else оператор2;
Инструкция, записанная сразу вслед за оператором if, как было уже сказано ранее, выполняется только при выполнении логического условия. Это значит, что значение логического выражения будет не равно нулю.
Инструкция, записанная после else, выполняется только в том случае, если логическое условие не выполняется. Это значит, что будет равно нулю.
Обратим Ваше внимание на то, что в представленных Вашему взору двух формах инструкции if вне зависимости от исхода того или иного направления выбора всегда выполняется только один оператор.
Если же при соблюдении или несоблюдении условия надо выполнять несколько инструкций, то эти инструкции необходимо объединять фигурными скобками в отдельную группу операторов.
Оператор switch
Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:
Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимыми в языке СИ, значение которого должно быть целым. Отметим, что можно использовать явное приведение к целому типу, однако необходимо помнить о тех ограничениях и рекомендациях, о которых говорилось выше.
Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора smitch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным-выражением. Следует отметить, что использование целого константного выражения является существенным недостатком, присущим рассмотренному оператору.
Так как константное выражение вычисляется во время трансляции, оно не может содержать переменные или вызовы функций. Обычно в качестве константного выражения используются целые или символьные константы.
Все константные выражения в операторе switch должны быть уникальны. Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, фрагмент помеченный ключевым словом default.
Список операторов может быть пустым, либо содержать один или более операторов. Причем в операторе switch не требуется заключать последовательность операторов в фигурные скобки.
Отметим также, что в операторе switch можно использовать свои локальные переменные, объявления которых находятся перед первым ключевым словом case, однако в объявлениях не должна использоваться инициализация.
Схема выполнения оператора switch следующая:
— вычисляется выражение в круглых скобках;
— вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;
— если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;
— если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.
Отметим интересную особенность использования оператора switch: конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break.
Для того, чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор несколькими ключевыми словами case.
Рассмотрим ранее приведенный пример, в котором иллюстрировалось использование вложенных операторов if, переписанной теперь с использованием оператора switch.
Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора switch, путем передачи управления оператору, следующему за switch.
Отметим, что в теле оператора switch можно использовать вложенные операторы switch, при этом в ключевых словах case можно использовать одинаковые константные выражения.
Оператор for
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.
Организация условного перехода. Оператор IF.
Для программирования разветвляющихся процессов, содержащих две ветви, используется оператор IF условного перехода (ветвления), имеющий две конструкции.
Сокращенная форма (Алгоритм: блок-схема – рисунок 3.а, структурограмма – рисунок 4.а):
IF
THEN ;
В качестве условия можно использовать переменную или выражение логического типа. В этой конструкции оператор выполняется в том случае, когда логическое выражение принимает значение TRUE. Вторая ветвь процесса, содержащая пустой оператор и в явном виде не описываемая, соответствует значению условия FALSE.
Другая, полная форма этого оператора имеет синтаксическую структуру (Алгоритм: блок-схема – рисунок 3.б, структурограмма – рисунок 4.б):
IF
THEN
ELSE ;
Здесь обе ветви процесса значимы. При значении логического выражения (переменной) TRUE выполняется Оператор 1, который всегда располагается за ключевым словом THEN, при FALSE – выполняется Оператор 2 (ветвь ELSE). Если в одну из ветвей требуется включить более одного оператора, то их следует объединить составным оператором BEGIN. END.
Вложенная конструкция операторов условного перехода используется в случае, если существует более двух ветвей в вычислительном процессе. В случае вложенной конструкции Оператор 1, или Оператор 2, или оба вместе представляют собой также операторы условного перехода. В этих случаях легко запутаться при отладке программы. Но следует помнить, что ELSE всегда относится к ближайшему слева THEN.
Пример 9. Для заданного с клавиатуры значения X вычислить Y по формуле:
Эту задачу можно решить двумя способами. Первый способ предусматривает использование трех операторов IF сокращенной формы. Алгоритм решения достаточно прост (структурограмма на рисунке 5.а). Последовательно проверяется три взаимно исключающих друг друга условия, образующих полную группу событий. Для любого X только одно условие примет значение TRUE, остальные два условия равны FALSE. Таким образом, оператор присвоения выполнится только один раз и этот оператор будет соответствовать условию, имеющему значение TRUE. Программная реализация — PR9_1.
Второй способ предусматривает использование двух вложенных операторов IF полной формы. Алгоритм этого способа реализован в виде блок-схемы на рисунке 5.б. Программная реализация — PR9_2.
Сравнительный анализ этих двух способов показывает, что первый проще в понимании и легче в отладке. Второй способ более сложный, однако более компактный и более быстрый.
Конечно, при одной реализации вычислительного процесса это преимущество не столь существенно, но если таких реализаций десятки тысяч, то несколько секунд можно сэкономить.
PROGRAM PR9_1;
VAR X, Y: REAL;
BEGIN
WRITELN(‘ВВЕДИТЕ X’);
READLN(X);
IF X>= 1
THEN Y:= EXP(LN(X)/3)/2;
IF (X>0) AND (X
PROGRAM PR9_2;
VAR X, Y: REAL;
BEGIN
WRITELN(‘ВВЕДИТЕ X’);
READLN(X);
IF X = 1
THEN Y:= EXP(LN(X)/3)/2
ETSE Y:=X*X*0.33;
WRITELN(‘Y=’, Y)
END.
Пример 10. Составить программу, которая по введенному значению X вычисляет и выводит значение Y- F(X), где F(X) задана графически на рисунке 6.
Эта задача отличается от задачи, описанной в предыдущем примере, только тем, что нужно самому составить формулу для функции F(X). В предыдущей задаче эта формула была задана в качестве исходных данных. Таким образом, от вас требуют сделать формальную, математическую постановку задачи, которая в данном случае сводится к составлению по графику формулы.
Глядя на график, нетрудно увидеть, что на нем изображена кусочно-линейная функция, содержащая три прямых линии. Первая прямая имеет уравнение Y=-X-1 и определена для X 1. С учетом вышесказанного искомая формула будет иметь вид:
Текст программы составим по аналогии с программой PR9_2, которая подробно описана в предыдущем примере.
PROGRAM PR10;
VAR X,Y: REAL;
BEGIN
WRITELN(‘BBEДИTE X’); READLN(X);
IF X =1 THEN Y:= 0
ELSE Y:=X- 1;
WRITELN(Y=’, Y)
END.
Пример 11. Найти расстояние от внешней, произвольной точки М с координатами (X, Y) до контура геометрической фигуры, изображенной на рисунке 7.
В этом задании нужно рассмотреть чертеж геометрической фигуры. Нетрудно заметить, что во втором квадранте декартовой системе координат изображен сектор круга, центр которого расположен в центре системы координат. Радиус сектора равен R. Для решения поставленной задачи требуется выделить области и для каждой из них написать уравнение, с помощью которого можно вычислить расстояние D до контура фигуры. На чертеже выделено шесть областей, в каждой из которых поставлена одна произвольная точка Мк. Номер точки К соответствует номеру области. Любая точка в области М1, имеет кратчайшее расстояние до дуги сектора, вычисляемое по формуле:
Вторая область, помеченная точкой М2, имеет кратчайшее расстояние до точки с коорди-натами (-R, 0). Это расстояние можно найти по формуле:
Третья область, помеченная точкой М3, имеет кратчайшее расстояние равное расстоянию до оси абсцисс. Это расстояние легко найти по формуле:
Четвертая область, которой соответствует точка M4, имеет кратчайшее расстояние равное расстоянию до начала координат. Это расстояние находится по формуле:
Пятая область, помеченная точкой М5, имеет кратчайшее расстояние равное расстоянию до оси ординат. Это расстояние легко найти по формуле:
Последняя шестая область, помеченная точкой М6, имеет кратчайшее расстояние до верхней точки сектора с координатами (0, R). Это расстояние можно найти по формуле:
На основании вышесказанного, математическая постановка задачи будет такой. Если точка находится вне сектора, изображенного на рисунке 7, то будет ложно условие:
Учитывая приведенные выше формулы, можно найти кратчайшее расстояние до контура фигуры по формуле:
Теперь, когда формальная постановка задачи сделана и найдены формулы, можно перейти к этапу алгоритмизации (Самостоятельно) и написания программы:
PROGRAM PR11;
VAR
X, Y, R, D: REAL;
BEGIN
WRITELN(‘BBEДИТЕ РАДИУС СЕКТОРА R’);
READLN(R);
WRITELN(‘BBEДИТЕ КООРДИНАТЫ ТОЧКИ X, Y’);
READLN(X, Y);
IF (X 0) AND (SQRT(X*X + Y*Y) =0)
THEN D:= SQRT(X*X + Y*Y)-R;
IF (X =-R) AND (Y =0) AND (Y =0) AND (Y =0)
THEN D:= X;
IF (X>=0) AND (Y>=R)
THEN D:= SQRT(X*X + SQR(Y-R))
END;
WRITELN(‘PACCTOMHHE ДО КОНТУРА СЕКТОРА D=’, D:5:2)
END.
BestProg
Оператор условного перехода if
Содержание
Поиск на других ресурсах:
1. В каких случаях целесообразно применять оператор условного перехода?
Оператор условного перехода применяется в случаях, когда ход решения задачи зависит от выполнения (невыполнения) некоторого условия. В языке C# существует две формы оператора условного перехода:
⇑
Полная форма оператора условного перехода if :
После if и else может быть несколько операторов. В этом случае они берутся в операторные скобки:
⇑
3. Какой вид имеет сокращенная форма оператора условного перехода?
Сокращенная форма оператора условного перехода if :
Если, после выполнения условия, нужно выполнить несколько операторов, то эти операторы берутся в фигурные скобки:
⇑
Пример 1. Дано два числа x и y . Написать фрагмент кода, который находит максимальное значение между этими числами.
Пример 3. Определить, попадает ли значение целой величины a в отрезок [ x ; y ], где x , y – целые числа.
⇑
⇑
Написать фрагмент кода, который выводит в нисходящем порядке значения трех переменных x , y , z .
⇑
Часто в программах целесообразным есть применение многоступенчатой конструкции
Общая форма конструкции:
В такой конструкции условные выражения исчисляются по принципу вниз. Выполнение осуществляется до тех пор, пока не выполнится одно из условий.
⇑
Фрагмент кода, решающего данную задачу с использованием конструкции if-else-if :
BestProg
Оператор условного перехода if
Содержание
Поиск на других ресурсах:
1. Назначение оператора условного перехода if
Оператор условного перехода позволяет организовать разветвления процесса выполнения в программе.
Оператор условного перехода может быть составным, то есть содержать другие операторы. Это могут быть операторы, которые реализуют последовательное выполнение, циклический процесс а также условный переход.
Оператор условного перехода имеет две формы представления:
2. Какой общий вид имеет полная форма оператора условного перехода?
Общий вид оператора условного перехода в полной форме:
Если нужно выполнить несколько операторов, тогда они берутся в операторные скобки < >.
3. Какой общий вид имеет сокращенная форма оператора условного перехода?
Общий вид оператора условного перехода в сокращенной форме:
Если нужно выполнить несколько операторов, то они берутся в блок скобок < >.
4. Примеры использования оператора условного перехода, имеющего полную форму представления
Пример 1. Фрагмент программного кода, в котором находится максимальное значение между двумя числами.
Фрагмент программного кода, который решает данное выражение
5. Примеры использования оператора условного перехода, который имеет сокращенную форму представления
6. Пример использования вложенных операторов условного перехода
Операторы условного перехода могут иметь неограниченное количество уровней вложения. Следующий пример демонстрирует применение вложенных операторов условного перехода.
Операторы условного перехода
Операторы условного перехода.
Линейный алгоритм – это алгоритм, в котором от начала до конца можно пройти только 1 путем.
Для того чтобы алгоритм был разветвляющимся, используют операторы ветвления или по-другому, они называются «операторы условного перехода».
Оператор условного перехода – это оператор, в котором выбирается та или иная последовательность действий, в зависимости от выполнения или не выполнения условия.
Существует краткая и полная форма записи оператора условного перехода.
Краткая форма записи:
IF (условие) THEN (что выполнять)
Если условие не выполняется (ложно), то ЭВМ переходит к следующей строке программы.
Блок-схема краткой формы записи условного перехода.
IF (условие) THEN (что выполнять)
Полная форма записи:
IF (условие) THEN (что выполнять) ELSE (что выполнять)
Блок-схема полной формы записи условного перехода.
IF (условие) THEN (что выполн.) ELSE (что выполн.)
Решение задач с использованием операторов условного перехода.
В переменную А запросить данные с клавиатуры
переменной В присвоить число 15, если их сумма больше 20,
то переменной К присвоить 100, иначе К присвоить –50.
IF C > 20 THEN K=100;
IF C > 20 THEN K=100 ELSE K=-50;
При решении задач можно использовать любой из предложенных способов, и с краткой, и с полной формой записи.