Слайд 2
![Переменная – это область в памяти, содержащая данные, к которой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-1.jpg)
Переменная
– это область в памяти, содержащая данные, к которой можно обращаться
по имени или другим способом.
Свойства переменной:
• Имя*
• Адрес
• Тип
• Значение
Слайд 3
![Модель виртуальной памяти](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-2.jpg)
Модель виртуальной памяти
Слайд 4
![Тип переменной Определяет: • Размер (в байтах) • Диапазон значений • Допустимые операции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-3.jpg)
Тип переменной
Определяет:
• Размер (в байтах)
• Диапазон значений
• Допустимые операции
Слайд 5
![Основные типы С++](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-4.jpg)
Слайд 6
![Типичные размеры типов С++](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-5.jpg)
Типичные размеры типов С++
Слайд 7
![Размеры типов удовлетворяют соотношениям: sizeof (char) = 1 2. sizeof](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-6.jpg)
Размеры типов удовлетворяют соотношениям:
sizeof (char) = 1
2. sizeof (char) ≤ sizeof
(short int) ≤ sizeof (int) ≤ sizeof (long int)
3. sizeof (float) ≤ sizeof (double) ≤ sizeof (long double)
Слайд 8
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-7.jpg)
Слайд 9
![Объявление константных переменных Ключевое слово const при объявлении: const char](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-8.jpg)
Объявление константных
переменных
Ключевое слово const при объявлении:
const char a; // Ошибка! Константную
переменную надо
// инициализировать при объявлении
const int b = 10; // Нет ошибки
b = 20; // Ошибка! Константную переменную нельзя изменить
Слайд 10
![Литералы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-9.jpg)
Слайд 11
![Стандартный вывод • cout – объект для вывода данных в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-10.jpg)
Стандартный вывод
• cout – объект для вывода данных в стандартный
выходной поток
•
cerr – для вывода данных в стандартный поток ошибок
• Необходимо подключить заголовочный файл
• Необходимо либо использовать директиву using namespace std; либо предварять каждое появление объектов cout, endl и др. префиксом std::
• Для вывода данных используется операция вывода в
поток <<
Слайд 12
![Манипуляторы потоков вывода](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-11.jpg)
Манипуляторы потоков вывода
Слайд 13
![Стандартный ввод • cin – объект для ввода данных из](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-12.jpg)
Стандартный ввод
• cin – объект для ввода данных из стандартного входного
потока.
• Определён в заголовочном файле
• Для ввода используется операция >> и набор других методов
• Ввод в С++ безопасен по типу данных
• По умолчанию операция >> игнорирует пробельные символы. Поведение изменяется с помощью манипуляторов потока skipws/noskipws
Слайд 14
![Операции • Пример: арифметические операции +, -, *, /, %](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-13.jpg)
Операции
• Пример: арифметические операции +, -, *, /, %
• Это специальный
способ записи некоторых действий
Сравните: sum(a, b) и a + b
• Арность операции – количество операндов:
- унарные: -b
- бинарные: b * c
- тернарные: b ? c : d
• Почти все операции имеют возвращаемое значение
• Некоторые операции имеют побочные эффекты – изменение операндов в процессе выполнения операции
Слайд 15
![Выражения • Это сочетание переменных, литералов, операций и функций, удовлетворяющее](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-14.jpg)
Выражения
• Это сочетание переменных, литералов, операций и функций, удовлетворяющее систаксису языка
•
Пример: a + 2 * b * sin(c)
• Операции в выражении вычисляются в соответствии с их приоритетом и ассоциативностью, которые можно изменить с помощью круглых скобок
• Выражения, как и операции, возвращают некоторое значение
Слайд 16
![Целочисленное деление и взятие остатка от деления 1) Выделение полного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-15.jpg)
Целочисленное деление и
взятие остатка от деления
1) Выделение полного количества и остатка
int
kop = 378; // число копеек
int rub = k / 100; // число полных рублей
int kopLeft = kop % 100; // останется копеек после
// изъятия всех полных рублей
2) Делится ли число нацело на другое число: Если n % k равно 0, то n делится на k без остатка
3) Отображение больших чисел в небольшой диапазон
Пример.
Диапазон чисел [0 … 4294967295]. Желаемый диапазон [0 … 49].
150 % 50 = 0
2147483388 % 50 = 38
Слайд 17
![Операции модификации с присваиванием](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-16.jpg)
Операции модификации с
присваиванием
Слайд 18
![Операции инкремента и декремента • ++x – преинкремент • x++](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-17.jpg)
Операции инкремента и декремента
• ++x – преинкремент
• x++ – постинкремент
• --x
– предекремент
• x-- – постдекремент
Все варианты увеличивают/уменьшают значение переменной на 1.
Отличаются возвращаемым значением:
- «пре»-варианты возвращают новое значение
- «пост»-варианты возвращают старое значение
Слайд 19
![Операция sizeof Позволяет определить размер в байтах: • типа данных:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-18.jpg)
Операция sizeof
Позволяет определить размер в байтах:
• типа данных:
sizeof(long double)
• переменной:
sizeof(a)
• выражения:
sizeof(a
+ b/c)
2. Не является функцией
3. Вычисляется на этапе компиляции
4. Рекомендуется использовать для переносимости
Слайд 20
![Неявное приведение типов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-19.jpg)
Слайд 21
![Неявное приведение типов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-20.jpg)
Слайд 22
![Неявное приведение типов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-21.jpg)
Слайд 23
![Неявное приведение типов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-22.jpg)
Слайд 24
![Неявное приведение типов в арифметических выражениях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-23.jpg)
Неявное приведение типов
в арифметических выражениях
Слайд 25
![Неявное приведение типов в арифметических выражениях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-24.jpg)
Неявное приведение типов
в арифметических выражениях
Слайд 26
![Операция явного приведения типов Синтаксис: • (тип)выражение приведение в стиле](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-25.jpg)
Операция явного приведения типов
Синтаксис:
• (тип)выражение
приведение в стиле языка С
• тип(выражение)
приведение в
стиле вызова конструктора типа
• static_cast<тип>(выражение)
- специфичное для С++ приведение типов
Слайд 27
![Управляющие конструкции • Условный оператор if • Оператор выбора switch • Операторы циклов for while do-while](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-26.jpg)
Управляющие конструкции
• Условный оператор if
• Оператор выбора switch
• Операторы циклов
for
while
do-while
Слайд 28
![Оператор if if (условие_1) операторы_1 else if (условие_2) операторы_2 else if (условие_3) операторы_3 … else операторы_n](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-27.jpg)
Оператор if
if (условие_1)
операторы_1
else if (условие_2)
операторы_2
else if (условие_3)
операторы_3
…
else
операторы_n
Слайд 29
![Условие в операторе if](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-28.jpg)
Слайд 30
![Оператор switch](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-29.jpg)
Слайд 31
![Оператор for](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-30.jpg)
Слайд 32
![Оператор while](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-31.jpg)
Слайд 33
![Оператор do-while](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/332781/slide-32.jpg)