|
Операторы ветвления (условные операторы). ⇐ ПредыдущаяСтр 3 из 3 К операторам ветвления (условным операторам) относится условный оператор if, который позволяет создать такие алгоритмы, в которых при заданных условиях выполняются одни или другие блоки команд. Иными словами, в программном коде создаются точки ветвления, когда в зависимости от выполнения некоторого условия (или условий) выполняются разные фрагменты кода. Рассмотрим условный оператор if, использующий ключевые слова if (если), else (иначе), elseif (иначе если), end (конец всей конструкции). Наиболее простой синтаксис применения оператора if имеет вид:
где условие – произвольное выражение (чаще всего включающее в себя операции сравнения и логические операции), истинность или ложность которого понимается как отличие от нуля или равенство нулю, причем если условие истинно, то выполняются Инструкции (команды) после этого условия до ключевого слова end, которое является идентификатором окончания условного оператора. После этого управление передается оператору, следующему после условного. Если условие истинным не является, то управление сразу передается оператору, следующему после условного. Иными словами, при ложном условии, Инструкции после условия и до ключевого слова end не выполняются. Пример 1.3.1. Требуется найти максимальное из трех чисел x, y, z: u=max{x,y,z}. Напечатать значения x, y, z и u. Для выполнения создается М-файл. Ниже приведен текст М-файла.
Результаты расчета в командном окне (задано x=1, y=2 и z=3): x= y= z= u=max(x,y,z)= Помимо рассмотренного варианта синтаксиса, в условном операторе могут использоваться ключевые слова else и elseif. В частности, если синтаксис условного оператора имеет вид
то при истинном условии выполняются команды, расположенные между условием и ключевым словом else (т.е. блок Инструкции_1), а если условие ложно, то выполняются команды между ключевым словом else и инструкцией окончания условного оператора end. Пример 1.3.2. Требуется найти максимальное и минимальное из двух чисел x, y: u=max{x,y}; v=min{x,y}. Напечатать значения x, y и u, v. Для выполнения создается М-файл. Ниже приведен текст М-файла.
Результаты расчета в командном окне (задано x=1 и y=2): x= y= u=max(x,y)= v=min(x,y)= В более общем случае синтаксис оператора if следующий:
Поясним, что в такой конструкции может быть много ветвей с ключевым словом elseif, при этом если справедливо условие условие_1, то выполняется набор команд Инструкции_1, если справедливо условие условие_2, то выполняется набор команд Инструкции_2 и т.д. Если же все эти условия оказываются ложными, то выполняются команды, расположенные после слова else. Отметим, что с одной стороны число ветвей elseif неограниченно, с другой – ветви elseif могут отсутствовать вовсе. Рассмотренный условный оператор завершается ключевым словом end. Следует обратить внимание, что особенность приведенного оператора состоит в том, что каждое следующее условие проверяется только в том случае, если не выполнено ни одно из предыдущих условий. Пример 1.3.3. Требуется составить программу анализа значения температры t и характеристики типа погоды: Морозная погода (если значение температуры неположительно); Холодная погода (если значение температуры положительно, но не превосходит 10); Прохладная погода (если значение температуры больше 10, но не больше 18); Теплая погода (если значение температуры больше 18, но не больше 25); Жаркая погода (если значение температуры больше 25). Для выполнения создается М-файл. Ниже приведен текст М-файла.
Результаты расчета в командном окне (задано t=11): Прохладная погода Пример 1.3.4. Даны три числа: трех чисел x, y, z. Требуется найти сумму значений, по модулю меньших 5, остальные распечатать. Для выполнения создается М-файл. Ниже приведен текст М-файла.
Результаты расчета в командном окне (задано x=-3, y=5 и z=6): y= z= s= -3
Пример. Найти корни квадратного уравнения или , где , ,
Возможны три случая.
Пример текста программы для М-файла
t=input('введите t='); a=t-1;b=2*t;c=t+3; if a==0 x=-c/b; disp('уравнение имеет один корень:'); disp('x=');disp(x); else d=b^2-4*a*c; if d<0 disp('уравнение не имеет действительных корней: d<0'); else d=sqrt(d); x1=(-b+d)/(2*a); x2=(-b-d)/(2*a); disp('x1='); disp(x1); disp('x2='); disp(x2); end end
Результат счета при введите t=1 уравнение имеет один корень: x= -2 Результат счета при введите t=-3 x1= -3/2 x2=
Результат счета при введите t=2 уравнение не имеет действительных корней: d<0
Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|