210 likes | 612 Views
Лекция 3. Основные операции Базовые управляющие конструкции. Приоритет выполнения операций. Унарные операции Бинарные и тернарная операции Арифметические операции Операции сравнения Побитовые операции Логические операции Условная операция Операции присваивания
E N D
Лекция 3 Основные операции Базовые управляющие конструкции
Приоритет выполнения операций • Унарные операции • Бинарные и тернарная операции • Арифметические операции • Операции сравнения • Побитовые операции • Логические операции • Условная операция • Операции присваивания • Последовательное вычисление
Унарные операции ++ увеличение на 1 – – уменьшение на 1 sizeof размер ~ поразрядное отрицание ! логическое отрицание – унарный минус + унарный плюс & взятие адреса * разадресация new выделение памяти delete освобождение памяти (<тип>) преобразование типа
Арифметические операции • Мультипликативные операции * умножение / деление % остаток от деления • Аддитивные операции + сложение – вычитание • Операции сдвига >> сдвиг вправо << сдвиг влево
Операции сравнения • Сравнение на «больше-меньше» > >= < <= • Сравнение на «равенство-неравенство» == //равно != //не равно
Побитовые операции • Поразрядная конъюнкция (И) & • Поразрядное исключающее ИЛИ ^ • Поразрядная дизъюнкция (ИЛИ) |
Логические операции • Логическое И && • Логическое ИЛИ ||
Условная операция (тернарная) <условие> ? <выр.1> : <выр.2>
Операции присваивания = *= /= %= += –= <<= >>= &= ^= |=
Как выполнять операции одинакового приоритета? • Слева направо () все операции кроме… • Справа налево () • Унарные операции • Тернарная операция • Операции присваивания
Используем дополнительную переменную (tmp). tmp = a; a = b; b = tmp; Без использования дополнительной переменной. a = a + b; b = a – b; a = a–b; Задача: поменять местами значения переменных 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 Математические функции
Каков тип результата при вычислении выражения? • Если все аргументы одного типа, то и результат будет того же типа. • Если аргументы имеют разные типы, то происходит преобразование типов: более короткие типы преобразовываются в более длинные.
Базовые конструкции структурного программирования
Оператор ветвления if if (<условие>) <оператор1>; else <оператор2>;
Задача Даны три целых числа различных между собой: a,b и с. Перераспределить их значения таким образом, чтобы в переменной а оказалось самое маленькое из значений, в с – самое большое, в переменную b поместить оставшееся. Разрешается использовать только одну дополнительную переменную.
Оператор switch switch (<выражение>) { caseконст.выр.1: [<список операторов1>] caseконст.выр.2: [<список операторов2>] … caseконст.выр.n: [<список операторов n>] [default: <операторы>] }