- •3.8. Упражнения 49
- •Введение
- •1. Базовые элементы
- •1.1. Комментарии
- •1.2. Функция «main»
- •1.3. Идентификаторы и пространства имен
- •1.4. Типы
- •1.5. Переменные
- •1.7. Константы
- •1.6. Преобразование типов
- •1.8. Потоковый ввод – вывод
- •1.9. Операции
- •1.9.1. Арифметические операции
- •1.9.2. Поразрядные операции
- •1.9.3. Условный оператор
- •1.9.4. Операции отношения
- •1.9.5. Логические операции
- •1.10. Стандартные математические функции
- •1.11. Упражнения
- •2. Базовые конструкции
- •2.1 Ветвление
- •2.1.1. Конструкция «if – else»
- •2.1.2. Конструкция «switch»
- •2.2. Циклы
- •2.2.1. Цикл «for»
- •2.2.2. Цикл «while»
- •2.2.3. Цикл «do – while»
- •2.2.4. Операторы циклов
- •2.2.5. Вложенность
- •2.3. Упражнения
- •2.3.1. Ветвления
- •2.3.2. Циклы
- •2.3.3. Вложенность
- •3. Указатели. Массивы. Структуры
- •3.1. Указатели
- •3.2. Массивы
- •3.2.1. Статические массивы
- •3.2.2. Динамические массивы
- •3.4. Ссылки
- •3.5. Структуры
- •3.6. Объединение
- •3.7. Переопределение типов
- •3.8. Упражнения
- •3.8.1. Статические и динамические массивы
- •3.8.2. Многомерные массивы
- •3.8.3. Строки
- •4. Функции
- •4.1. Простые функции
- •4.2. Рекурсия
- •4.3. Указатели и ссылки
- •4.3.1. Передаваемые параметры
- •4.3.2. Возвращаемые значения
- •4.3.3. Ссылки и структуры в функциях
- •4.3.4. Указатели и массивы в функциях
- •4.3.5. Указатели и ссылки на функцию
- •4.4. Шаблоны функций
- •4.5. Упражнения
- •4.5.1. Простые функции
- •4.5.2. Параметры – ссылки и параметры — указатели
- •5. Стандартные классы
- •5.1. Класс «pair»
- •5.2. Класс «complex»
- •5.3. Класс «string»
- •5.4. Контейнеры. Алгоритмы. Итераторы
- •5.5. Класс «vector»
- •5.6. Упражнения
- •5.6.1. Класс «string»
- •5.6.2. Класс «vector»
- •6. Файловый ввод – вывод
- •6.1. Операции
- •6.2. Методы
- •6.3. Флаги
- •6.4. Двоичный режим
- •6.5. Упражнения
- •Ллитература
1.9.3. Условный оператор
В С++ существует условный оператор, являющийся тернарным: « a ? b : c ». Этот оператор, в зависимости от значения первого операнда «a», стоящего перед символом «?», выполняет одну из двух операций. Первый операнд интерпретируется, как имеющий логический тип, и, если он имеет значение «true», выполняется операция перед символом двоеточия «:» – «b», иначе – операция после данного символа – «c». В случае, если выполняемых операций несколько, они должны следовать через запятую, а сами операнды можно записывать в скобках при явном задании следования выполнения операций в составных операторах или просто для большей наглядности.
Листинг 1.11. Условный оператор.
#include <iostream>
using namespace std;
int main (void)
{
bool x;
cout << "Enter bool x (0 or 1): ";
cin >> x;
cout << (x ? "true" : "false") << endl;
int y;
cout << "Enter int y: ";
cin >> y;
y ? (cout << "not", cout <<" 0" << endl) : (cout << "0" << endl);
return 0;
}
1.9.4. Операции отношения
Операциями отношения являются исключительно бинарные: «>», «<», «>=», «<=», «==» и «!=», а их результат имеет тип «bool». Данные операции могут, к примеру, использоваться в первом операнде тернарного оператора.
Листинг 1.12. Операции отношения.
#include <iostream>
using namespace std;
int main (void)
{
double x;
cout << "Enter x: ";
cin >> x;
double y;
cout << "Enter y: ";
cin >> y;
cout << ((x == y) ? "x == y" : "x != y") << endl;
cout << "max(x,y): ";
cout << ((x >= y) ? (cout << "x = ", x) : (cout << "y = ", y)) << endl;
cout << "x " << ((x < 0) ? "< 0" : ">= 0") << endl;
cout << "y " << ((y >= 0) ? ">= 0" : "< 0") << endl;
return 0;
}
Таблица 1.7. Операции отношения.
Знак |
Синтаксис |
Описание |
< |
a < b |
Сравнение a меньше b |
> |
a > b |
Сравнение a больше b |
<= |
a <= b |
Сравнение a меньше или равно b |
>= |
a >= b |
Сравнение a больше или равно b |
== |
a == b |
Сравнение a равно b |
!= |
a != b |
Сравнение a не равно b |
1.9.5. Логические операции
Существует и еще одна группа операторов, называемых логическими, среди них как бинарные: «&&» и «||», так и унарный «!». Их операнды имеют булевый тип. Логическая операция «&&» соответствует союзу «и» при построении логического вывода, операция «//» – союзу «или», а «!» – частице «не».
Таблица 1.8. Логические операции.
Знак |
Синтаксис |
Описание |
&& |
a && b |
Логическая конъюнкция а и b |
|| |
a || b |
Логическая дизъюнкция а и b |
! |
!a |
Логическое отрицание a |
Листинг 1.13. Логические операции.
#include <iostream>
using namespace std;
int main (void)
{
bool x = true;
bool y = false;
cout << ((x && y) ? "true" : "false") << endl;
cout << ((x || y) ? "true" : "false") << endl;
cout << ((!x || y) ? "true" : "false") << endl;
y = true;
cout << ((x && y) ? "true" : "false") << endl;
x = y = false;
cout << ((x || y) ? "true" : "false") << endl;
cout << (!(x || y) ? "true" : "false") << endl;
return 0;
}
