Лекция 3
-
Upload
vernon-mcclure -
Category
Documents
-
view
61 -
download
0
description
Transcript of Лекция 3
Лекция 3
Основные операции
Базовые управляющие конструкции
Приоритет выполнения операций Унарные операции Бинарные и тернарная операции
Арифметические операции Операции сравнения Побитовые операции Логические операции Условная операция Операции присваивания Последовательное вычисление
Унарные операции++ увеличение на 1– – уменьшение на 1sizeof размер~ поразрядное отрицание! логическое отрицание– унарный минус+ унарный плюс& взятие адреса* разадресацияnew выделение памятиdelete освобождение памяти(<тип>) преобразование типа
Арифметические операции Мультипликативные операции
* умножение/ деление% остаток от деления
Аддитивные операции+ сложение– вычитание
Операции сдвига>> сдвиг вправо<< сдвиг влево
Операции сравнения Сравнение на «больше-меньше»
>>=<<=
Сравнение на «равенство-неравенство»== //равно!= //не равно
Побитовые операции Поразрядная конъюнкция (И)
& Поразрядное исключающее ИЛИ
^ Поразрядная дизъюнкция (ИЛИ)
|
Логические операции
Логическое И&&
Логическое ИЛИ||
Условная операция (тернарная)
<условие> ? <выр.1> : <выр.2>
Операции присваивания=*=/=%=+=–=<<=>>=&=^=|=
Последовательное вычисление
,
Как выполнять операции одинакового приоритета?
Слева направо () все операции кроме…
Справа налево () Унарные операции
Тернарная операция
Операции присваивания
Задача: поменять местами значения переменных a и b
Используем дополнительную переменную (tmp).
tmp = a;a = b;b = tmp;
Без использования дополнительной переменной.
a = a + b;b = a – b;a = a – b;
Вычислить min(a,b)
if (a<b) min=a; else min=b;
min = a<b ? a : b;
min = (a < b)*a + (a >= b)*b;
Еще способы ???
Математические функции#include <math.h>
|x| fabs(x)sin x sin(x)cos x cos(x)tg x tan(x)ex
exp(x)ln x log(x)xy pow(x,y)
sqrt(x)
Возможности округления:
ceil(x) округление вверх (ceil(4.3) =5,
ceil(- 4.3)=-4)floor(x) округление
вниз (floor(4.9) =4, floor(- 4.9) = -5)(int)x приведение к
типу int, дробная часть отбрасывается
(int)4.7 = 4, int(-4.7) = -4
x
Каков тип результата при вычислении выражения? Если все аргументы одного типа, то и
результат будет того же типа.
Если аргументы имеют разные типы, то происходит преобразование типов: более короткие типы преобразовываются в более длинные.
Базовые конструкции структурного программирования
Оператор ветвления if
if (<условие>)
<оператор1>;
else
<оператор2>;
Задача
Даны три целых числа различных между собой: a,b и с.
Перераспределить их значения таким образом, чтобы в переменной а оказалось самое маленькое из значений, в с – самое большое, в переменную b поместить оставшееся.
Разрешается использовать только одну дополнительную переменную.
Оператор switchswitch (<выражение>) { case конст.выр.1: [<список операторов 1>] case конст.выр.2: [<список операторов 2>] … case конст.выр.n: [<список операторов n>] [default: <операторы>] }