Данные — это зафиксированные сведения, с которыми работает компьютер: получает, обрабатывает и передает. В программировании есть несколько типов данных. Новичкам нужно разбираться в них, чтобы быстрее научиться кодить и понимать алгоритмы.
Что такое тип данных в программировании
Тип данных — это как «ярлык» для переменной, который говорит компьютеру:
- какие значения можно хранить: числа, текст, даты и так далее;
- что с ними можно делать: складывать, сравнивать, выводить на экран.
Язык программирования сразу определяет тип новой переменной, чтобы избежать ошибок. Например:
age = 25 # тип "число" — можно умножать, делить
name = "Анна" # тип "текст" — можно соединять с другими словами
is_student = True # тип "логический" — можно проверять (да/нет)
Компьютер выдаст ошибку, если попробовать сложить age и name, потому что нельзя складывать числа с текстом.\
Вид типизации | Что делает | Плюсы | Минусы | Где используют |
Статическая (строгая) | Переменной заранее задают тип, который не меняется | Меньше ошибок, код работает быстрее | Нужно писать больше кода | Java, C++ |
Динамическая (гибкая) | Тип определяется сам, когда запускается программа | Программисты быстрее пишут код | Можно случайно допустить ошибку | Python, JavaScript |
Зачем нужна типизация:
- предотвращает ошибки: компьютер заранее проверяет, допустима ли операция;
- оптимизирует память и скорость: числа и текст обрабатываются по-разному;
- делает код понятнее: вы сразу видите, что хранится в переменной.
На курсах Skypro, например «Java-разработчик», учат писать чистый код, самостоятельно тестировать его, находить и исправлять ошибки. Соберете несколько приложений, которые можно положить в портфолио.
Какие бывают типы данных
В программировании данные бывают разных типов — от простых логических значений до сложных абстрактных структур. Разберем основные виды: как они устроены, где применяются и чем различаются.
Логические. Этот тип данных основан на логике и может иметь два значения: false (ложь) или true (правда). В языках С# и C++ это bool, а в Java — boolean.
Целочисленные. В программировании различают знаковые и беззнаковые данные. В первых хранятся действительные числа и ноль, а во вторых — только положительные числа. У беззнаковых данных диапазон в два раза больше, чем у знаковых. Это происходит из-за компьютерного восприятия. В знаковых типах данных бит отражает знак числа, где ноль — положительное значение, а единица — отрицательное.
В ячейке памяти из n бит может храниться и 2n-1 для знаковых типов, и 2n — для беззнаковых.
Еще одна классификация типов данных:
- Тип short, или короткий целый. Занимает в ячейке памяти 16 бит, то есть 2 байта (216 = 65 536).
- Тип long. Ему отводится 64 бита, то есть 8 байт (264 = 1,8 446 744 * 1019).
Числа с плавающей запятой. Плавающая запятая — форма действительных чисел, где число хранится в форме мантиссы и показателя степени. Каждое число может быть представлено в следующей форме:
Например: 1 592 916 = 1,592 916 ∗ 106; 0,00027,459 = 27,459 ∗ 10-5. На мониторе вы увидите следующие значения:
1,592916E+6; 27,459E–5.
В памяти хранится целое число фиксированной длины и последовательность вносимого значения.
Строковые. Строка (string) в JavaScript — это просто текст. Она состоит из букв, цифр или знаков, которые идут в определенном порядке. Их закавычивают.
Отдельные языки применяют специальный вид данных в программировании, с его помощью заносят символ. Например, в языке С — char.
Указатели. Указатель — это объект, который хранит определенный адрес в памяти компьютера. Значение указателя — это физический адрес определенных данных: указатель указывает на эти данные.
Разыменовать указатель — значит взять данные по адресу, который в нём записан. Указатель объявляют со * перед именем переменной. Он может быть нулевым и не обозначать ни один объект.
Идентификационные. Конечный набор значений определяет перечисляемый тип. Как правило, его представляет список идентификаторов в объявлении типа.
Разберем пример на языке С++ (в С# и Java — аналогично):
enum Season { Spring, Summer, Autumn, Winter };
Идентификатор превратится в константу этого типа, если его добавить в перечисление.
Абстрактные. У абстрактного типа данных (АТД) есть преимущества перед остальными типами:
- Инкапсуляция деталей реализации. Инкапсуляция — ограниченный доступ к компонентам, из которых состоит объект. Достаточно один раз инкапсулировать, чтобы пользователь смог самостоятельно взаимодействовать с АТД через интерфейс. Представления клиентов о работе не изменятся, если детали реализаций поменяют.
- Пониженный уровень сложности через абстрагирование от деталей реализации. Это значит, что детали скрывают и сосредотачивают на ключевых аспектах системы.
- Ограниченная область, где можно использовать данные. Все данные структуры АТД не зависят от других участков кода.
- Понятный интерфейс с большим количеством информации.
Примеры
Рассмотрим, как классифицируют данные в разных языках программирования.
В Python используют следующие типы:
- int — целочисленный;
- char — символьный;
- bool — логический;
- float — с плавающей запятой;
- double — с плавающей запятой двойной точности.
Освойте Python на курсе от Skypro. Вас ждут 400 часов теории и практики, достаточно десяти часов в неделю. Подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Язык программирования JavaScript содержит:
- string — тип данных «строка»;
- number — «число»;
- object — тип данных, который хранит свойства и методы;
- undefined — тип данных, значения которых не определены;
- boolean — логический;
- null — с «пустыми» значениями.
JavaScript можно изучить на курсе Skypro «Веб-разработчик». Программа построена от простого к сложному, в ней много практики. Уже к концу второго блока сможете самостоятельно сделать лендинг с играми на JavaScript.
Самоприменение типов данных
У типа данных может быть особенность параметризации с каким-либо другим типом, но строго подчиненная и соотнесенная с принципами абстракции и параметричности.
Под теорией типов понимают математически формализованную базу, которая служит как для проектирования и анализа, так и для изучения систем типов данных в теории языков программирования. За всё это отвечает специально выделенный раздел в информатике.
Пример. Не нужно разбирать, как устроена функция сортировки, чтобы ее использовать. Главное — получить доступ, чтобы сравнить и проанализировать данные. Тогда параметр «последовательности» станет параметрически полиморфным — сможет работать с разными видами. Такой тип определяют не для конкретных данных, а для параметров-типов. Но его можно применять как шаблон для других типов — он превращается в оператор над видами данных.
В программировании есть термины «отражение», «рефлексивность» или «интроспекция». Они означают, что программа может анализировать типы данных во время работы.
Представление в компьютере
Реальное программирование отличается от формальной теории информации. На практике иначе используют понятие «число». В ЭВМ это ячейка электронной памяти. Размер кластера зависит от архитектуры компьютера и диапазона значений числа. Он обязательно ограничен, а стоп-объем равен объему ячейки.
Целые и вещественные числа в ячейках представлены по-разному. Положительные или неотрицательные числа представляются непосредственно, а вот существенно отрицательные целые числа — в дополнительном коде.
Главное: что такое тип данных
- 🟩 Тип данных — это характеристика значений, которые принимает некоторая переменная или выражение.
- 🟩 Есть семь типов данных: логические, целочисленные, с плавающей запятой, строковые, указатели, идентификационные, абстрактные.
- 🟩 В языке Python используют пять типов, а в JavaScript — шесть типов данных.
Добавить комментарий