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

Признаком разветвляющегося алгоритма является наличие операций проверки условия. Чаще всего для проверки условия используется условный оператор if .

Условный оператор if

Условный оператор if может использоваться в форме полной или неполной развилки.

Неполная развилкаПолная развилка

В случае неполной развилки если Условие истинно, то БлокОпераций1 выполняется, если Условие ложно, то БлокОпераций1 не выполняется.

В случае полной развилки если Условие истинно, то выполняется БлокОпераций1 , иначе выполняется БлокОпераций2 .

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

Результат выполнения

Оператор if может быть вложенным.

Результат выполнения


При использовании вложенной формы оператора if опция else связывается с последним оператором if . Если требуется связать опцию else с предыдущим оператором if , внутренний условный оператор заключается в фигурные скобки:

Тернарные операции

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

Если выполняется Условие , то тернарная операция возвращает Выражение1 , в противном случае — Выражение2 .

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

Приведенный выше пример с использованием тернарных операций можно представить в виде

Оператор ветвления switch (оператор множественного выбора)

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

Общая форма записи

Оператор ветвления switch выполняется следующим образом:

  • вычисляется ЦелоеВыражение в скобках оператора switch ;
  • полученное значение сравнивается с метками ( Константами ) в опциях case , сравнение производится до тех пор, пока не будет найдена метка, соответствующая вычисленному значению целочисленного выражения;
  • выполняется БлокОпераций соответствующей метки case ;
  • если соответствующая метка не найдена, то выполнится БлокОперацийПоУмолчанию , описанный в опции default .

Альтернатива default может отсутствовать, тогда не будет произведено никаких действий.
Опция break; осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии опции break будут выполняться все операторы, начиная с помеченного данной меткой и кончая оператором в опции default .

Константы в опциях case должны быть целого типа (могут быть символами).

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Оператор ветвления языка Си If

Оператор ветвления if (англ. «если») необходим в тех случаях, когда надо решить, должна ли быть выполнена конкретная инструкция программы .
Рассмотрим синтаксис условного оператора:

Самый простой вариант оператора:

If (условие) оператор1;

Если условие истинно, то будет выполняться следующий за ним оператор. Если условие не выполняется (ложно), то компилятор пропускает инструкцию, записанную после if, и переходит к следующим командам программы.

  • непосредственно условие заключается в круглые скобки;
  • точка с запятой ставится не после условия, а только в конце всей конструкции;
  • Си — язык программирования свободного формата, поэтому условие и инструкцию можно помещать в одной строке. Разделяя их, программа выглядит более удобной для чтения.
  • Операторы отношения, используемые в условии:

    Данную конструкцию целесообразно использовать, когда необ­ходимо задать выполнение одного из двух блоков операторов (или одного из двух операторов), в зависимости от результата проверки условия выбора. Конструкция имеет следующий вид записи.

    // Если условие выбора истинно, то будут выполняться

    // оператор или операторы блока 1.

    // В противном случае (иначе)

    // если условие выбора ложно, то будут выполнять­ся

    // оператор или операторы блока 2.

    // Записанные далее операторы будут выполняться

    // в любом случае, независимо от условия выбора.

    Если результатом проверки условия выбора является значе­ние true (истина), то будут выполнены операторы блока 1. Далее будет выполняться первый оператор, следующий за послед­ней фигурной скобкой. Операторы блока 2 выполняться не бу­дут. Если проверка условия выбора даст результат false (ложь), то операторы блока 1 будут пропущены, и будут выпол­нены операторы блока 2. Далее будет выполняться первый

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

    // Эти операторы будут выполняться, min = b;

    // Эти операторы будут выполняться, min = a;

    // Записанные далее операторы будут выполняться

    // в любом случае, независимо от условия выбора.

    Если a > b, то переменной max будет присвоено значении a, переменной min значение b, в противном случае наоборот переменной max присваивается значение b, а переменной min — значение a. Рассмотренную конструкцию допускается записывать в одной строке, как в следующем примере 5.

    Если в фигурных скобках записано по одному оператору, то скобки можно опустить, как в примере 6.

    Вложенные конструкции оператора if

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

    If (Условие 1 выбора)

    // Если условие 1 выбора истинно будут выполняться,

    // записанные в скобках операторы блока 1.

    // В противном случаи будет выполняться

    // вложенная конструкция оператора

    // Начало вложенной конструкции оператора

    If (условие 2 выбора)

    // Если условие 2 выбора истинно будут выполняться,

    // записанные здесь в скобках операторы блока 2.

    // В противном случае, если условие 2 выбора ложно

    // будут выполняться, записанные здесь в скобках

    // Конец вложенной конструкции оператора if

    Если условие 1 выбора истинно, то выполняются опера­торы блока 1, и далее первый оператор, который следует за пос­ледней фигурной скобкой, концом вложенной конструкции опера­тора В противном случае выполняется вложенная конструкция оператора if. Если условие 2 выбора вложенного оператора if истинно, то выполняются записанные в фигурных скобках опера­торы блока 2, и далее первый оператор, который следует за пос­ледней фигурной скобкой, концом вложенной конструкции опе­ратора if. В противном случае, если условие 2 выбора ложно выполняются операторы блока 3. Рассмотрим пример записи вложенной конструкции оператора if.

    // Конец вложенной конструкции if.

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

    Поскольку фигурные, операторные скобки являются обязате­льными только в случае записи в них нескольких операторов, поэ­тому в данном случае они могут быть отпущены.

    Операторы логического сравнения

    Эти операторы называются логическими сравнениями (logical comparisons), поскольку они возвращают результат сравнения в виде значения true (истина) или false (ложь) имеющие тип bool. Для записи и проверки условия равенства двух выражений, в алгоритмическом язык C# используется символ ==. Аналогично: символ > используется для проверки условия «больше»; символ = — «больше или равно»; -1 && x 1)

    В условии оператора if записаны алгебраические неравенства x 1.

    Оператор проверки выбирает одно из двух выражений в зави­симости от проверки значения логического условия. Его синтаксис:

    Имя переменной = (условие выбора)?Значение1:значение2

    Графическое изображение блока

    Операторы и функции эквивалентные блоку

    Операторы ввода, функция InputВох и другие

    Операторы вывода, функция MsgBox и другие

    Условный оператор if

    Разветвляющиеся программы это — такие программы, в кото­рых на определённых этапах происходит анализ значений тех или иных параметров и в зависимости от этого выбирается один из воз­можных вариантов дальнейшего хода программы. Практически все более или менее сложные программы являются разветвляющимися. Для их написания используются рассмотренные конструкции уп­равляющих операторов принятия решения.

    При написании разветвляющих программ предварительно сос­тавляется блок-схема алгоритма решения задачи. Блок-схема это — графическое изображение алгоритма или последовательности ре­шения задачи программирования.

    Для составления блок-схем используются стандартизованные графические изображения (блоки) определённых операторов алго­ритмического языка. Некоторые из них представлены в таблице 3.1.

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

    Составить блок-схему и написать программу для определения наибольшей из трёх заданных величин X , Y и Z. Полученное значение присвоить переменной F, т. е. вычисляет F = max(X, Y, Z). Замечание: Данный пример является тренировочным, на прак­тике подобные задачи решаются с помощью соответствующих встроенных функций.

    Пояснения к блок-схеме. После ввода численных значений для переменных X ,У и Z производиться их последовательное срав­нение друг с другом на предмет выявления наибольшего из них. Первоначально сравниваются значения переменных X и У. Если ус­ловие X > У выполняется (истинно), то далее переменная с наибо­льшим значением, а именно X сравнивается с Z. Если поставлен­ное в блоке сравнения условие X > Z верно, то переменной F будет присвоено значение переменной X в противном случае — значение переменной Z. Аналогично поступаем в случае если условие X > У, не выполняется (ложно).

    После составления блок-схемы по ней пишется программа, при этом каждый блок описывается соответствующим оператором алгоритмического языка.

    m1: Console.WriteLine(" Введите значение X");

    float x = float.Parse((Console.ReadLine()));

    Console.WriteLine(" Введите значение Y");

    float y = float.Parse((Console.ReadLine()));

    Console.WriteLine(" Введите значение Z");

    float z = float.Parse((Console.ReadLine())); if (x > y)

    Console.WriteLine(‘
    ‘ + " Дано: X= " + x + " y= " + y + " z= " +

    z + ‘
    ‘+ " Результат: F= " + f);

    Console.WriteLine(‘
    ‘ + "Для повторного ввода" + "набрать

    любую клавишу." + ‘
    ‘+ "Для завершения программы

    string p = Console.ReadLine();

    Рассмотренный алгоритм решения задачи примера 14 не явля­ется единственным. Ниже представлена блок-схема другого вари­анта алгоритма и основной фрагмент программы, с использовани­ем оператора проверки

    Блок-схема Основной фрагмент программы

    Задание. Составить блок-схему и написать программу, которая определяет номер N области, в которой находиться точка М(х, у) с заданными координатами (см. рисунок 3.1). Границы области относить к области с наибольшим номером.

    Пояснения к блок-схеме. В первом блоке производиться ввод численных значений для переменных X и Y, которые являются координатами точки М. Далее целесообразно сравнить переменную Y (координата по оси Y) с нулём. В блок-схеме это первый блок срав-нения, если его условие Y > 0 не выполняется (ложно), то координата по оси Y точки М отрицательна или равна нулю, а это значит, что она расположена ниже оси X или на ней, т. е. в области с номером N = 4. Если условие Y > 0 первого блока сравнения выполняется (истинно), то точка М расположена выше оси X, а это значит, что она может находиться в одной из областей с номером N = 1, N = 2 или N = 3. Далее для определения номера области X 2 + Y 2 2 + Y 2 = R 2 , где радиус окружности. Если заданное условие выполняется, то точка расположена внутри окружности , а так как Y > 0, то внутри полу­окружности. Согласно условию задачи внутри полуокружности точка может находиться либо в области с номером N = 1, либо в области с N = 2. Если условие X > 0 третьего блока сравнения выполняется (истинно), то точка расположена в области с N = 2, в противном случае с N = 1. После чего идёт печать результата.

    Если условие X 2 + Y 2 0 т. е. в области N = 3. Далее представлена программа, составленная по рассмотренной блок-схеме.