- •3.Концепция типов данных.
- •Целый тип:
- •Вещественный тип
- •Логический тип: bool
- •Символьный тип: char
- •2)Оператор вывода данных на экран дисплея.
- •3)Оператор присваивания.
- •4)Составной оператор. Блок.
- •6)Условный оператор. Переключатель .Оператор перехода.
- •If (выражение) оператор1; else оператор2 ;
- •If (выражение) { оператор; … оператор;} еlse { оператор;… оператор; }
2)Оператор вывода данных на экран дисплея.
Вывод данных на экран выполняется с помощью объекта cout, связанного со стандартным потоком вывода. Поток – это некоторая абстракция, отражающая перемещение данных от источника к приёмнику. Стандартный поток вывода обычно направлен на на экран. Оператор выглядит так:
сout << <выражение>;
Можно вывести несколько значений сout <<x<<y;
Операция << называется операцией вставки, она копирует значение выражения в правой части в объект сout. Операция << и объект cout знают, каким образом отличать целое число от строки и как обрабатывать каждое из них. Если мы выводим на печать целое число, то оно отображается в числовом формате. Если мы печатаем строку, то она выводится в виде текста. Это кажется очевидным, но за этими действиями стоит механизм перегрузки операций, типичный для C++. Например,
сout<<”vvedite a,b,c\n”;//это вывод строки-подсказки для ввода. cin>>a>>b>>c; //\n обеспечит перевод курсора на // экране в начало следующей строки.
3)Оператор присваивания.
<переменная> = <выражение>;
=сначала вычисляется значение выражения в правой части;
=если тип значения выражения не совпадает с типом переменной в левой части, то это значение преобразуется к типу переменной;
=значение выражения присваивается переменной, т.е. записывается в память, отведённую для переменной.
В С++ любое выражение с ; в конце рассматривается как оператор. Выполнение его – вычисление значения.
i++; a*=b+c;
4)Составной оператор. Блок.
Часто возникает необходимость поместить несколько операторов там, где по синтаксису должен стоять один оператор. Чтобы сделать группу операторов одним оператором, её заключают в фигурные скобки и называют составным оператором.
{оператор; оператор;…. оператор;}
В ряду операторов могут стоять и описания переменных, тогда эта конструкция называется блок. Некоторые авторы отождествляют эти два понятия.
5)Пустой оператор, т.е. пусто; – иногда полезен, чтобы сохранить соответствие синтаксису.
Разветвляющиеся алгоритмы. – алгоритмы, в которых в зависимости от некоторого условия выполняется один из предусмотренных вариантов действий. Для описания таких алгоритмов в языке предусмотрены операторы if, goto, switch.
6)Условный оператор. Переключатель .Оператор перехода.
Условный оператор:
If (выражение) оператор1; else оператор2 ;
Если значение выражения истинное, выполняется оператор1, иначе оператор2.,а затем оператор , стоящий за if, т.е.if задаёт альтернативу: выполнить оператор1 или оператор2, это полный if.
Возможен и короткий: if (выражение) оператор1 ; он задаёт альтернативу: выполнить или нет оператор1.Если на месте оператора1 или оператора2 нужно поставить группу операторов, их заключают в фигурные скобки и синтаксически группа становится одним оператором.
If (выражение) { оператор; … оператор;} еlse { оператор;… оператор; }
Если вместо оператора1 стоит условный оператор, то необходимо разрешить возникающую иногда коллизию; для этого есть правило: else всегда относится к ближайшему if.
If (a>b) if (x>c)m=0; else m=1;
Возможны 2 толкования этого оператора:
If (a>b) if (x>c)m=0; else m=1; (1) – по правилу это работает.
If (a>b) if (x>c)m=0; else m=1; (2)
Если нужен (2), можно If (a>b) { if (x>c)m=0; } else m=1;
Примеры.
Int a,b,m;
a)if (a>b) m=a; else m=b;
b)m=a; if (b>m) m=b;
c)m=(a+b)/2 + fabs(a-b)/2;
Все три примера решают такую задачу m=max(a,b); ,
но вариант a) более наглядный.
Переключатель реализует развилку на несколько направлений.
Общий вид оператора:
Switch (выражение)
{Case константное_выражение1 :[оператор; … оператор;]
Case константное_выражение2 :[оператор; … оператор;]
………………………………………………………………………………………Case константное_выражениеN :[оператор; … оператор;]
[default : оператор; … оператор;]
}
Переключающее выражение – селектор – целого типа или символьного. Константные выражения приводятся к типу селектора. Все константные выражения в одном переключателе должны иметь различные значения.
Switch передает управление тому из операторов, помеченных с помощью case, у которого значение константного выражения совпадает со значением селектора. Если же оно не совпадает ни с одним из константных выражений, то управление получает оператор, помеченный меткой default. Если нет группы default, то оператор Switch не выполнит ничего. Если выбран некоторый вариант и группа его операторов выполняется, последним в этой группе часто стоит оператор break, который выполняет выход из переключателя на оператор, следующий за ним. Если группа операторов варианта не заканчивается оператором break и никуда не передаёт управление, то выполняется группа операторов следующего варианта.
#include <iostream> using namespace std; int main() {int n=10,c; cin>> c; {switch (c%n) {case 0:cout <<"monday\n"; break; case 1:cout <<"tusday\n"; break; |
case 2:cout <<"wednesday\n"; break; case 3:cout <<"thursday\n"; break; case 4:cout <<"friday\n"; break; case 5:cout <<"saturday\n"; break; case 6:cout <<"sunday\n"; break; default:cout <<"noday\n"; }} return 0; }
|
Замечание. Оператор break в составе другого оператора выполняет выход из этого другого оператора на оператор, следующий за ним.
Основные операции языка С++
(по убыванию приоритетов, в группе приоритеты одинаковые)
Олерация. |
Действие |
Унарные операции |
|
++ -- Sizeof ! - + & * new delete (тип) |
Увеличение на 1 Уменьшение на 1 Размер Поразрядное отрицание Логическое отрицание Унарный минус (арифметическое отрицание) Унарный плюс Взятие адреса Разыменование Выделение динамической памяти Освобождение динамической памяти Преобразование типа |
Бинарные и тернарная операции |
|
* / % |
Умножение Деление Остаток от деления |
+ - |
сложение вычитание |
<< >> |
Сдвиг влево Сдвиг вправо |
< <= > >= |
Меньше Меньше или равно больше Больше или равно |
== != |
Равно Не равно |
& |
Поразрядная конъюнкция (И) |
^ |
Поразрядная исключающее ИЛИ |
| |
Поразрядная дизъюнкция (ИЛИ) |
&& |
Логическое И |
|| |
Логическое ИЛИ |
? : |
Условная операция (тернарная) |
= *= /= %= += -= <<= >>= &= |= ^= |
Присваивание Умножение с присваиванием Деление с присваиванием Остаток от деления с присваиванием Сложение с присваиванием Вычитание с присваиванием Сдвиг влево с присваиванием Сдвиг вправо с присваиванием Поразрядное И с присваиванием Поразрядное ИЛИ с присваиванием Поразрядное исключающее ИЛИ с присваиванием |
, |
Последовательное вычисление |