- •Обзорные лекции по курсу
- •Арифметические операции
- •Int main()
- •Int main ()
- •Логические операции
- •Операторы сравнения
- •Int main ()
- •If(проверяемое_условие)
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •Int.Main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main ()
- •If(проверяемое_условие)
- •If(проверяемое_условие)
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>