Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
16.02.2016
Размер:
558.59 Кб
Скачать

Int main ()

{

int x = 0, у = 0;

int a = 3, b = 34, с = 82;

х = а * b + с;

у = (а * (b + с) ) ;

cout « "х = " « х « '\n';

cout « "у = " « у « '\n';

return 0;

}

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

Результат работы программы:

х = 184

у = 348

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

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

Операторы if

Оператор if производит ветвление программы в зависимости от результата проверки некоторого условия на истинность:

If(проверяемое_условие)

оператор1;

оператор2;

Проверяемое условие может быть любым выражением, но чаще всего оно содержит операторы сравнения.

Если проверяемое_условие принимает истинное значение (true), выполняется оператор1. В противном случае (false) выполнение программы переходит к оператору2.

В конструкциях языка C++ операторы могут быть блочными, т.е. выполняется не один, а целый блок операторов.

Блок начинается с открывающейся фигурной скобки { и заканчивается закрывающейся фигурной скобкой }. Все содержимое блока рассматривается компилятором как единый оператор.

Следующий пример иллюстрирует использование оператора if.

#include <iostream.h>

Int main ()

{

int b;

if(b > 0)

{

// Если условие b > 0 выполнено

cout « "b - положительное" ;

}

if(b < 0)

cout « "b - отрицательное";

return 0;

}

В приведенном фрагменте объявляется целочисленная переменная b, а затем следует сравнение ее значения с нулем. Если величина b больше нуля, выводится сообщение "b -положительное", а если b меньше нуля - сообщение "b -отрицательное".

Одной из типичных ошибок при использовании оператора if является пропуск фигурных скобок для обозначения блока выполняемых операторов:

#include <iostream.h>

Int main()

{

int x = 0;

int у = 8;

int z = 0;

if(x != 0)

z++;

у /= x; // Ошибка! Деление на 0

cout « "x = " << x << endl;

return 0;

}

В этом примере следует проверка значения переменной х на неравенство нулю. Если значение х отлично от нуля, производится увеличение на единицу значения переменной z. Однако далее осуществляется действие вида у = у / х, независимо от того, какое значение имеет переменная х.

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

if(х != 0)

{

z++;

y /= х;

cout « "x = " << x << endl;

}

В данном варианте вычисление выражения у = у / х будет производиться только для х, значение которого отлично от нуля.

Операторы if-else

Оператор if с ключевым словом else имеет следующий вид:

If(проверяемое_условие)

предложение1;

else

предложение2;

предложение3;

Если проверяемое_условие выполняется, осуществляется переход к предложению1 с последующим переходом к предложению3. В случае, когда проверяемое_условие принимает ложное значение, программа выполнит ветвь, содержащую предложение2, а затем перейдет к предложению3.

Следует отметить, что комбинация if-else позволяет значительно упростить код программы.

Для примера решим квадратное уравнение вида х2 + 2х - 3 = 0. Для решения поставленной задачи воспользуемся методом вычисления детерминанта вида D = (b2 - 4 * а * с) с последующим сравнением полученного результата с нулем:

#include <iostream.h>

#include <math.h>

Соседние файлы в папке ЛекцииКарасева