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

5. Объясните сущность операторов ветвления и выбора, изложите принципы работы и синтаксис описания. Приведите пример использования.



5. Объясните сущность операторов ветвления и выбора, изложите принципы работы и синтаксис описания. Приведите пример использования.

Оператор if

Стандартная форма оператора if следующая:

if (выражение) оператор;

[else оператор;]

где операто р может простым или составным. Надо помнить, что в языке С составной оператор – это группа операторов, заключенных в фигурные скобки. Оператор else не обязателен.

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

На схеме алгоритма:

Распространенная ошибка при записи условных операторовиспользование в выражениях вместо проверки на равенство (==) простого присваивания (=), например,

if(a=-l) b=0;

 

Вторая ошибка — неверная запись проверки на принадлежность диапазону. Например, чтобы проверить условие 0<х<1. нельзя записать его в условном операторе непосредственно, так как будет выполнено сначала сравнение 0<х, а его результат (true или false, преобразованное в int) будет сравниваться с 1. Правильный способ записи: if(0<x && х<1)

Лесенка if-else-if.

Типичной программистской конструкцией является лесенка if-else-if. Она выглядит следующим образом:

if(выражение)

оператор;

else if(выражение)

оператор;

else if(выражение)

оператор;

...

[else

оператор;]

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

Оператор выбора switch

Оператор switch имеет следующий вид:

switch (выражение) {

case константа_1:

последовательность_операторов

break;

case константа_2:

последовательность_операторов

break;

case константа_3:

последовательность_операторов

break;

.

.

[default:

последовательность_операторов]

}

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



Следует знать о трех важных моментах оператора switch:

1) switch отличается от if тем, что он может выполнять операции проверки строгого равенства, в то время как if может вычислять логические выражения и отношения;

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

3) если в операторе switch используются символьные константы, они автоматически преобразуются к числовым значениям.

4) если выход break из switch явно не указан, последовательно выполняются все остальные ветви.

Если необходимо выполнить одни и те же действия при нескольких различных значениях констант, метки перечисляются одна за одной:

Пример Вычислить значение выражения

При выполнении задания предусмотреть выбор вида функции f(x): sin(x), x2, ex.

#include <iostream.h>

#include <math.h>

 

int main(void)

{

double x,y,f,a,s; //объявление переменных

int k;// объявление переменных

cout<<"Vvedite x";

cin>>x; //ввод переменных

cout<<"Vvedite y";

cin>>y;/ /ввод переменных

cout<<"Viberite f:"<<endl<<"1-sin(x)" <<endl;

//вывод меню

cout<<"2 - x^2"<<endl<<"3 - exp(x)"<<endl;

cin>>k;

switch(k) //обработка пунктов меню

{

case 1: f=sin(x);break; //выбор 1 меню

case 2: f=pow(x,2); break;/ ///выбор 2 меню

case 3: f=exp(x); break; //выбор 3 меню

default: cout<<"Ne vibrana funkciya";

return 1; //если не выбрано меню

}

 

a=fabs(x*y);

if(a<5)

{

cout<<"Net resultata"<<endl;

return 1;

}

else

if(a>10)

s=fabs(f)+log(y);

else

if (a<=10&&a>5)

s=exp(f+y);

else

s=sin(x)+tan(y);

cout<<"RESULT"<<s<<endl; //вывод ответа

return 0;

}

 

 


Дата добавления: 2015-11-04; просмотров: 78 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
 | Расписание Весенней сессии проектного тренажёра Школы социального предпринимательства «НОВОТЕРРА» – 2013

mybiblioteka.su - 2015-2024 год. (0.011 сек.)