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

Int main()

{

int a = 1;

int b = 2;

int с = -3;

float D;

float xl, x2;

D = b*b-4*a*c;

if(D < 0)

{

cout « "Уравнение не имеет корней";

return 0;

}

if(D = 0)

{

xl = x2 = -b / (2 * a);

cout « "Уравнение имеет 1 корень:";

cout « " х = " « xl;

return 0;

}

else

{

xl = (-b + sqrt(D)) / (2 * a);

x2 = (-b - sqrt(D)) / (2 * a);

cout « "Уравнение имеет 2 корня:";

cout « "\nxl = " « xl;

cout « "\nx2 = " « x2;

}

return 0;

}

Типичной ошибкой программистов, переходящих на C++ является использование в условных конструкциях оператора присваивания(=) вместо оператора сравнения (==).Здесь следует быть особенно внимательным — в больших проектах подобные ошибки локализуются с трудом.

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

if(!x)

{

// если х == 0

}

if (х)

}

// если х!= 0

...

}

Например, можно было бы написать:

if(!D = b*b-4*а*с)

{

...

}

что означало бы: присвоить переменной D вычисленное значение (b2-4ас), и если переменная D приняла ненулевое значение, выполнить блочный оператор {...}. Обычно в подобных случаях компилятор выдает предупреждение о вероятно ошибочном использовании оператора присвоения вместо сравнения.

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

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

условие ? выражение1 : выражение2;

По аналогии с оператором if, данный условный оператор работает так: если условие приняло истинное значение, выполняется выражение1, а если ложное - выражение2. Обычно возвращаемое значение присваивается какой-либо переменной.

Например, решим задачу нахождения максимума из двух целочисленных переменных:

#include <iostream.h>

Int main ()

{

int a = 10;

int b = 20;

int max;

max = (a > b) ? a : b;

cout « max;

return 0;

}

Оператор switch

Оператор ветвления switch является альтернативой управляющей конструкции if-else и имеет следующий синтаксис:

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

{

case константное_выражение :

группа операторов;

break;

case константное_выражение :

группа операторов;

break;

............

default константное_выражение :

группа операторов;

}

Конструкция switch-case представляет собой своеобразный "переключатель" и работает следующим образом.

При передаче управления на switch анализируется значение выражения и осуществляется переход к той ветви программы, для которой его значение совпадает с указанным константным_выражением. Далее следует выполнение оператора или группы_операторов до тех пор, пока не встретится ключевое слово break.При этом происходит выход из тела оператора switch-case. Если же значение выражения не совпадет ни с одним из константных_выражений, указанных в case,то выполнится группа операторов, определенная с помощью ключевого слова default.

Приведенный ниже фрагмент иллюстрирует работу конструкции switch-case:

#include <iostream.h>

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