- •Арифметические операции с числами
- •Хорошо забытое старое…
- •Инкремент и декремент.
- •Пример 1.
- •Применение арифметических операций
- •Пример №1. Игра.
- •Преобразование типов
- •Классификация по способу осуществления преобразования.
- •Преобразование типов в выражении.
- •Пример, использующий преобразование типов.
- •Унифицированная инициализация
- •Сужение и списковая инициализация
- •Логические операции
- •Операторы сравнения.
- •Операторы равенства.
- •Логические операции объединения и отрицательная инверсия.
- •Логическое И (&&)
- •Логическое ИЛИ (||)
- •Логическое НЕ (!)
- •Конструкция логического выбора if
- •Основные принципы работы оператора if.
- •Правильный пример.
- •Пример с ошибкой.
- •Фрагмент кода с ошибкой.
- •Тернарный оператор.
- •Лесенка if - else if
- •Вариант решения № 1.
- •Вариант решения № 3.
- •Оптимизация кода.
- •Практический пример: создание текстового квеста
- •Постановка задачи
- •Код реализации.
- •Практический пример на принадлежность точки кольцу
- •Постановка задачи
- •Решение задачи
- •Структура множественного выбора switch
- •Общий синтаксис и принцип действия.
- •Для начала рассмотрим общий синтаксис оператора:
- •Оптимизация примера.
- •Распространенная ошибка.
- •Пример ошибки.
- •Домашнее задание
Компьютерная Академия Шаг Урок №2. C
Вне зависимости от направления преобразования, оно может быть осуществлено одним из двух способов.
1. Неявное преобразование. Все вышеописанные примеры относились к этому типу преобразования. Такой вид преобразования также называют автоматическим, т. к. оно происходит автоматически без вмешательства программиста, другими словами, мы ничего не делаем для того, что бы оно произошло.
float A=23,5; - double стал float без каких-либо дополнительных действий
2. Явное преобразование. (второе название – приведение типов). В данном случае, преобразование производится программистом, тогда, когда это необходимо. Давайте рассмотрим простой пример такого действия:
double z=37.4; float y=(int) z;
cout<<z<<”*** ”<<y; // на экране 37.4 ***37
(int)z – есть явное сужающее преобразование от типа double к типу int. В этой же строке происходит расширяющее неявное преобразование от полученного типа int к типу float. Следует запомнить, что любое преобразование носит временный характер и действует только в пределах текущей строки. То есть переменная z как была double, так и останется на протяжении всей программы, а ее преобразование в int носило временный характер.
Преобразование типов в выражении.
И вот мы наконец-то подошли к тому, о чем говорили в самом начале данного раздела урока, как выяснить какого типа будет результат какого-то выражения. Давайте попробуем это вычислить, пользуясь полученными знаниями. Предположим у нас есть следующие переменные:
int I=27; short S=2; float F=22.3; bool B=false;
Пользуясь этими переменными, мы собираемся составить такое выражение:
I-F+S*B
В переменную какого типа данных нам следует записать результат? Решить это просто, если представить выражение в виде типов данных:
int-float+short*bool
Напоминаем, что short и bool сразу же примут тип int, так что выражение будет выглядеть так:
int-float+int*int, при этом false станет 0
Умножение int на int даст, несомненно, результат типа int. А вот сложение float с int, даст на выходе float, так как, здесь вступает в игру новое правило:
10