
- •Ввод-вывод в символьные массивы.
- •8) Использование указателей на структуры
- •10) Условный оператор
- •Оператор switch
- •16) Логические операции. Инкремент и декремент. Арифметические операции.
- •20) Оператор break. Оператор continue. Совместное использование операторов break и continue. Оператор break
- •Оператор continue
16) Логические операции. Инкремент и декремент. Арифметические операции.
В С++ существует три логические операции:
Логическая операция И &&
Логическая операция ИЛИ ||;
Логическая операция НЕ ! или логическое отрицание.
Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз. Да, можно обойтись и без них, но тогда количество ифов увеличивается в несколько раз, в зависимости от условия. В следующей таблице кратко охарактеризованы все логические операции в языке программирования С++, для построения логических условий.
Инкремент ++ – это увеличение на единицу. Декремент -- – это уменьшение на единицу. Операции декремента и инкремента с лёгкостью заменяются арифметическими операциями или операциями присваивания. Но использовать операции инкремента и декремента намного удобнее.
1 2 3 4 5 |
//синтаксис операций инкремента и декремента ++/*имя переменной*/; // префиксный инкремент (преинкремент) /*имя переменной*/++; // постфиксный инкремент (постинкремент) --/*имя переменной*/; // префиксный декремент (предекремент) /*имя переменной*/--; // постфиксный декремент (постдекремент) |
Синтаксис использования операций инкремента и декремента таков, что перед или после имени переменной ставится операция инкремента или декремента. Когда операция инкремента или декремента ставится перед именем переменной, то такая операция называется префиксным инкрементом (сокращённо — преинкрементом) или префиксным декрементом (сокращённо — предекрементом). А если операция инкремента или декремента ставится после имени переменной, то такая операция называется операцией постфиксного инкремента (сокращённо — постинкремент) или постфиксного декремента (сокращённо — постдекремент). При использовании операции преинкремента значение переменной, сначала, увеличивается на 1, а затем используется в выражении. При использовании операции постинкремента значение переменной сначала используется в выражении, а потом увеличивается на 1. При использовании операции предекремента, значение переменной, сначала, уменьшается на 1, а затем используется в выражении. При использовании операции постдекремента, значение переменной, сначала, используется в выражении, а потом уменьшается на 1. В таблице 1 показаны примеры выражений с использованием операций инкремента и декремента, а также приведена их краткая характеристика.
Таблица: Арифметические операторы
Оператор |
Действие |
- |
Вычитание, а также унарный минус |
+ |
Сложение |
* |
Умножение |
/ |
Деление |
% |
Взятие по модулю (остаток) |
|
Приоритет этих операции такой же как и в математике. Операции умножения, деления выполняются раньше чем операции суммы, вычитания.
Для операции умножения в C++ используется знак *.
Кроме того сюда же относится операция взятия остатка %. Данная операция делит первый операнд на второй и берёт остаток от деления:
int x = 3;
int y = 10;
int z;
z = x % y; // z = 3
Мы делим три на десять. Результат - 0,3. Отбрасываем ноль и берём остаток. Результат - 3.
Данная операция хоть и не так распространена как например другие арифметические операции, но тем не менее используется довольно часто. И иногда бывает просто незаменима.
18) Объекты стандартного предопределенного потокового ввода-вывода cin, cout, cerr, clog.
Выполнение любой программы С++ начинаются с четырьмя предопределенными открытыми потоками, объявленными как объекты классов _withassign в iostream.h следующим образом:
extern istream_withassign cin; extern ostream_withassign cout; extern ostream_withassign cerr; extern ostream_withassign clog;
Их конструкторы вызываются всякий раз при включении iostream.h, но фактическая инициализация выполняется только один раз.
Все эти предопределенные стандартные потоки по умолчанию связаны с терминалом.
Четыре стандартных потока предназначены для:
cin - стандартного ввода; cout - стандартного вывода; cerr - стандартного вывода ошибок; clog - полностью буферизованного вывода ошибок.
В табл. 5 приведено назначение классов потокового ввода-вывода.
Таблица 5
Назначение классов потокового ввода-вывода
ios |
Потоковый базовый класс |
Потоковые классы ввода |
|
istream |
Потоковый класс общего назначения для ввода, являющийся базовым классом для других потоков ввода |
ifstream |
Потоковый класс для ввода из файла |
istream with assign |
Потоковый класс ввода для cin |
istrstream |
Потоковый класс для ввода строк |
Потоковые классы вывода |
|
ostream |
Потоковый класс общего назначения для вывода, являющийся базовым классом для других потоков вывода |
ofstream |
Потоковый класс для вывода в файл |
ostream_withassign |
Потоковый класс ввода для cout, cerr, and clog |
ostrstream |
Потоковый класс для вывода строк |
Потоковые классы ввода-вывода |
|
iostream |
Потоковый класс общего назначения для ввода-вывода, являющийся базовым классом для других потоков ввода-вывода |
fstream |
Потоковый класс для ввода-вывода в файл |
strstream |
Потоковый класс для ввода-вывода строк |
stdiostream |
Класс для ввода-вывода в стандартные файлы ввода-вывода |