Слайд 1Запись выражений на языке С++
Слайд 2Повторение пройденного материала
Слайд 3Три категории операций в зависимости от количества операндов:
1) Унарные операции –
выполняются над единственным операндом, например, –a.
2) Бинарные операции – предполагают наличие двух операндов, например, a+b.
3) Тернарная операция – работает с тремя операндами. Такая операция в языке С++ – единственная, называется «условная операция».
Слайд 4Операторы:
Оператор объявления, создает переменную. Например, int k;
В языке C++ принято объявлять
переменную как можно ближе к той строке, в которой она впервые используется.
Оператор объявляет, что программа требует объема памяти, достаточного для хранения целого числа, для которого в C++ используется метка int.
Слайд 52. Оператор присваивания
присваивает переменной определенное значение (присваивает значение ячейке памяти):
k=1;
carrots
= 25;
В C++ (как и С) можно использовать операцию присваивания несколько раз подряд.
Например:
int x, y, z;
z = y = x = 88;
Операция присваивания выполняется поочередно, справа налево. Сначала значение 88 присваивается переменной x, затем это же значение присваивается переменной y и, наконец, переменной z.
Слайд 6При выводе операция
объект сіn использует операцию >> для извлечения символов из потока ввода. Обычно в правой части операции указывается переменная, которой будут присваиваться извлеченные данные. (Символы << и » были выбраны для визуальной подсказки направления потока информации.)
Слайд 7
Например,
int i=2, j;
float d=3.55, r,s;
s=j=r=i+d; /* результат – вещественное значение
5.0 (r=5.55, j=5, s=5.0) */
Слайд 83. Объект cout
может принимать строки и числа для последующего их отображения.
cout<<“Текст”<
carrots=25;
cout <cout << "Now you have" << carrot << " carrots." << endl;
Слайд 94. Объект сіn
предназначен для ввода данных с клавиатуры.
cin>>x; cin>>a>>b;
Слайд 10Подгонка кода программы
Добавление оператора cin.get(), чтобы сохранить вывод программы видимым на
экране.
Слайд 11Первый оператор cin. get () будет читать символ новой строки, генерируемый
нажатием клавиши или после набора числа, а второй заставит программу приостановиться до нажатия клавиши или вновь.
Слайд 12Простые арифметические операции:
- — унарный минус;
+
— сложение;
- — вычитание (бинарный минус);
* — умножение;
/ — деление;
% — остаток от деления (только для целых чисел). Знак результата этой операции совпадает со знаком первого операнда. Например, 11%3=2, 11%-3=2, 11%3=-2, -11%-3=-2.
Слайд 13Особенность операции деления:
Результат деления целого числа на целое имеет целый тип,
причем дробная часть результата просто отбрасывается. Например: 16/3=5, 99/10=9
(9/4)*4=8
!!!
Слайд 14Язык С++ позволяет изменить тип любой переменной:
()
Или
<новый тип> (<переменная или выражение>)
int a, k=15;
a = k/2; //результат = 7
a = double (k/2); //результат = 7
a = (double) k/2; //результат = 7,5
a = double (k)/2; //результат = 7,5
Значит, double (9)/4*4=9
9.0/4*4=9
!!!
Слайд 15Для float гарантируется только шесть значащих цифр. Если 61.419998 округлить до
шести цифр, получим 61.4200, что является вполне корректным значением для гарантированной точности. Из этого следует, что когда нужна более высокая точность, необходимо использовать тип double или long double.
Слайд 16Порядок выполнения операций: приоритеты операций и ассоциативность
Арифметические операции выполняются в соответствии
с алгебраическими правилами, согласно которым умножение, деление и нахождение остатка от деления выполняются раньше операций сложения и вычитания.
Для изменения приоритета операций используют круглые скобки.
Слайд 17Различные результаты, получаемые после деления
Язык C++ довольно либерален, разрешая присваивание
числового значения одного типа переменной другого типа. Всякий раз, когда вы это делаете, значение преобразуется к типу переменной, которая его получает.
Слайд 18Унарные арифметические операции
1) префиксная форма: ++a, --a – увеличение и уменьшение
операнда на 1 соответственно (имеет самый высокий приоритет, т.е. выполняется в первую очередь)
2) постфиксная форма: a++, a-- - увеличение или уменьшение операнда на 1 соответственно (имеет самый низкий приоритет, выполняется в последнюю очередь после операций присвоения).
Слайд 19Например:
int i=2, j=5, I, J;
I= ++i; J= j++;
cout
I=3 i=3 J=5 j=6
Т.к. для I сначала – наращивание, потом – присвоение, а для J – указанные действия следуют в обратном порядке.
Слайд 20Бинарные арифметические операции
Например, a+=100 (увеличение a на 100), b-=delta (уменьшение b
на величину delta).
*= - умножает значение первого операнда на значение второго;
/= - делит;
%= - определяет остаток от деления (только для операндов целых типов).
Например, n*=3; m%=5.
Эти операции имеют только постфиксную форму, значит, являются низкоприоритетными.
Слайд 21Написать на языке С++ программу, вычисляющую следующие выражения:
Слайд 22 - Что такое унарные и бинарные операции?
- Для каких
типов данных определена операция «%»?
- В чем особенность выполнения операций целочисленного деления?
- Как получить вещественный результат операции целочисленного деления?
- Как выполняется операция присвоения?
- В какой последовательности выполняются операции присвоения?
- Чем отличаются префиксные операции от постфиксных?
- Что означает преобразование типов при выполнении различных операций?
- Приведите пример преобразования типов.