Тип данных
Это понятие впервые встречается на программе «Электроника, программирование и инженерная практика» — примерно 13-14 лет (7-8 класс).
«Сорт» значения в программе: число, текст или «да/нет». От типа зависит, сколько места занимает значение и что с ним можно делать.
Посуда разного объёма и формы: литр воды в стакан перельёшь, но лишнее прольётся; а монету в бутылочное горлышко не просунешь.
Разложить по типам данные проекта «умный дом»: 23.5 (температура), 13 (номер вывода), «кухня» (название), включён ли свет (да/нет).
Вид значения, определяющий допустимые операции и место в памяти. В скетчах Arduino (C++): int — целые, float — дробные, bool — истина или ложь, String — текст; тип указывают при объявлении переменной, и он не меняется. Положишь 2.7 в int — дробная часть отбросится, останется 2.
Объявить в скетче int t = 2.7; и вывести t в монитор порта; исправить тип на float и сравнить результат.
Множество допустимых значений вместе с операциями и представлением в памяти. Статическая типизация (C++): типы известны до запуска, несовпадения ловит компилятор; динамическая (Python): тип принадлежит самому значению и проверяется на ходу. Краевой случай — границы типов: int на Arduino UNO занимает 2 байта, диапазон от −32 768 до 32 767; шаг за границу искажает значение (переполнение).
Выполнить в скетче int x = 32767; x = x + 1; и вывести x в монитор порта; повторить с типом long и объяснить разницу через размер типов.
Частое заблуждение
«Тип — формальность: компьютер сам разберётся». Нет: от типа зависит результат — деление 7 / 2 в целых числах даёт 3, в дробных — 3.5.