Рассмотрим подробнее структуру алгоритма «развилка».
Разветвляющимся называется такой алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. Каждый подобный путь называется ветвью алгоритма .
Признаком разветвляющегося алгоритма является наличие операций проверки условия. Чаще всего для проверки условия используется условный оператор 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. Далее представлена программа, составленная по рассмотренной блок-схеме.