Green-sell.info

Новые технологии
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое тип данных в программировании

Типы данных

Типы данных – это очень важная тема. Именно поэтому я рассматриваю её в начале теоретической части курса, так как не разобравшись с типами данных хотя бы в общих чертах, изучать программирование смысла нет.

Любая программа так или иначе выполняет обработку информации (потому наверно технологии и называются информационными :-). Информация – это какие-либо данные.

Зачем делить данные на типы? По большому счёту человеку всё равно, что складывать/делить/умножать. Он может одинаково легко поделить арбуз, сложить две доски или вычесть из числа 50 число 25. Однако компьютеры не так умны, как человек (хотя в некоторых случаях это утверждение может вызвать обоснованные сомнения :-).

Компьютер (точнее, компилятор) должен знать, с каким типом данных он имеет дело, и только после этого он может выполнить над этими данными какие-либо операции. Более того, компилятору недостаточно указать, что данные являются, например, числом. Ему ещё потребуется объяснить, какое это число – целое, вещественное, отрицательное или положительное и т.п. Именно по этой причине все данные, с которыми может работать программа, делятся на типы. Причём у разных языков программирования могут быть различные типы данных (даже если эти типы имеют одинаковые наименования).

С типом величины (значения) связаны три её свойства:

  1. Форма внутреннего представления
  2. Множество принимаемых значений (диапазон)
  3. Множество допустимых операций

Форма внутреннего представления определяет, как тот или иной тип представлен в памяти компьютера.

Множество принимаемых значений — это диапазон значений, которые может принимать конкретный тип данных. Например, в Паскале тип byte имеет диапазон 0. 255. То есть число типа byte может находиться в пределах от 0 до 255.

Множество допустимых операций – это набор операций, которые допускается выполнять с типом данных. То есть это операции сложения, умножения, деления, сравнения и т.п.

Этот набор операций может быть различным для различных типов данных.

Например, вы можете умножить число на число. Но вы не можете умножить (в Паскале) символ (тип Char) на число.

Следует понимать, что как сами типы данных, так и все перечисленные выше три свойства могут отличаться в зависимости от языка программирования. Например, такие языки как Паскаль или С являются довольно требовательными к выбору типа данных. В таких языках, как уже было сказано, вы не сможете умножить символ на число. Однако в других языка, таких как Visual Basic, это вполне допустимо.

С одной стороны, такие вольности облегчают программирование, с другой – могут привести к труднонаходимым ошибкам. Поэтому лично я всегда определяю для всех переменных типы данных и стараюсь не допускать ситуаций, когда результат может выйти за границы типа.

Ну да ладно. Я немного увлёкся, хотя хотел рассказать вам о другом – о видах типов данных. Так вот, основные виды типов данных следующие:

  1. Простые:
    1. Порядковые:
      1. Целые
      2. Логические
      3. Символьные
      4. Перечисляемые
      5. Интервальные
    2. Вещественные
  2. Пользовательские
  3. Структурированные:
    1. Массивы
    2. Множества
    3. Записи
    4. Файлы
  4. Указатели

Как видите, типов данных существует немало. И все их вам надо знать. Более подробно о каждом типе данных мы будем говорить в следующих уроках.

Я вам об этом ещё не рассказывал, но попробуйте включить логику и определить, к каким типам данных относятся следующие значения:

  • [1, 2, 5, 6, 10]
  • А
  • 1
  • 2,123
  • (Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь)
  • (Газ, Бензин, Дизтопливо)
  • ИСТИНА
  • ЛОЖЬ

Типы данных

Информация, поступающая в компьютер, состоит из определенного множества данных, относящихся к какой-то проблеме, — это именно те данные, которые относятся к конкретной задаче и из которых требуется получить желаемый ответ. В математике классифицируют данные в соответствии с некоторыми важными характеристиками. Принято различать целые, вещественные и логические данные, множества, последовательности, векторы, матрицы (таблицы) и т.д. В обработке данных на компьютере классификация играет даже боRльшую роль.

Любая константа, переменная, выражение или функция относятся к некоторому типу. Тип данных определяет диапазон допустимых значений и операций, которые могут быть применены к этим значениям. Кроме того, тип данных задает формат представления объектов в памяти компьютера, ведь в конце концов любые данные будут представлены в виде последовательности двоичных цифр (нулей и единиц). Тип данных указывает, каким образом следует интерпретировать эту информацию. Тип любой величины может быть установлен при ее описании, а в некоторых языках может выводиться компилятором по ее виду (Fortran, Basic).

Например, если переменная имеет целочисленный тип данных, то таким образом определен диапазон значений, которые могут быть сохранены в этой переменной (целые числа) и определены операции, которые могут быть применены к этой переменной (арифметические, логические, возможность ввода и вывода значений этой переменной). Каждый язык программирования поддерживает один или несколько типов данных. Наличие в языке программирования типизации означает жесткую связку операций и типов объектов, над которыми их можно выполнять. Не все языки обладают таким свойством. Например, в языке С практически любые операции можно выполнять над любыми данными (например, складывать два символа или число с логическим значением, но в большинстве случаев такие операции бессмысленны и соответствуют ошибке в программе, на которую компилятор указать не сможет).

Классификация типов данных

Любые данные могут быть отнесены к одному из двух типов: простому (основному), форма представления которого определяется архитектурой ЭВМ, или сложному, конструируемому пользователем для решения конкретных задач. Данные простого типа — это символы, числа и т.п. элементы, дальнейшее дробление которых не имеет смысла. Из таких элементарных данных формируются структуры (сложные типы) данных.

Принято различать следующие типы данных:

Рассмотрим перечисленные типы данных подробнее.

Простые типы

Числовые типы. Значениями переменных таких типов являются числа. К ним могут применяться обычные арифметические операции, операции сравнения (в результате получается логическое значение). Принципиально различны в компьютерном представлении целые и вещественные типы.

Целочисленные типы данных делятся, в свою очередь, на знаковые и беззнаковые. Целочисленные со знаком могут принимать как положительные, так и отрицательные значения, а беззнаковые — только неотрицательные значения. Диапазон значений при этом определяется количеством разрядов, отводимых на представление конкретного типа в памяти компьютера (см. “Представление чисел”).

Вещественные типы бывают: с фиксированной точкой, то есть хранятся знак и цифры целой и дробной частей (в настоящее время в языках программирования реализуются редко), и с плавающей точкой, то есть число приводится к виду m х 2 e , где m — мантисса, а e — порядок числа, причем 1/2 m 1, e — целое число. В данном случае хранятся знак, число e и двоичные цифры дробной части числа m, которые умещаются в отведенную для этого память. Говорят, что вещественные числа представимы с некоторой точностью.

Символьный тип. Элемент этого типа хранит один символ. При этом могут использоваться различные кодировки, которые определяют, какому коду (двоичному числу) какой символ (знак) соответствует. К значениям этого типа могут применяться операции сравнения (в результате получается логическое значение). Символы считаются упорядоченными согласно своим кодам (номерам в кодовой таблице).

Логический тип. Данные этого типа имеют два значения: истина (true) и ложь (false). К ним могут применяться логические операции. Используется в условных выражениях, операторах ветвления и циклах. В некоторых языках, например С, является подтипом числового типа, при этом ложь = 0, истина = 1 (или истинным считается любое значение, отличное от нуля).

Перечислимый тип. Отражает самый прямолинейный способ описания простого типа — перечисление всех значений, относящихся к этому типу. Каждая константа такого типа получает свой порядковый номер, что позволяет реализовать ряд простых операций над этим типом, таких, как получить следующее по порядку значение данного типа.

Множество как тип данных в основном совпадает с обычным математическим понятием множества. Допустимы стандартные операции с множествами и проверка на принадлежность элемента множеству. В некоторых языках рассматривается как составной тип (массив логических значений, i-й элемент которого указывает, находится ли i в множестве), однако эффективней реализовывать множество как машинное слово (или несколько слов), каждый бит которого характеризует наличие соответствующего элемента в множестве.

Указатель (тип данных). Если описанные выше типы данных представляли какие-либо объекты реального мира, то указатели представляют объекты компьютерного мира, то есть являются исключительно компьютерными терминами. Переменная-указатель хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — на другую переменную.

Читать еще:  Особенности системного программирования
Составные типы

Составные типы формируются на основе комбинаций простых типов.

Массив является индексированным набором элементов одного типа, простого или составного (см. “Операции с массивами”). Одномерный массив предназначен для компьютерной реализации такой структуры, как вектор, двухмерный массив — таблицы.

Строковый тип. Хранит строку символов. Вообще говоря, может рассматриваться как массив символов, но иногда рассматривается в качестве простого типа. Часто используется для хранения фамилий людей, названий предметов и т.п. К элементам этого типа может применяться операция конкатенации (сложения) строк. Обычно реализованы также операции сравнения над строками, в том числе операции “ ”, которые интерпретируются как сравнение строк согласно алфавитному порядку (алфавитом здесь является набор символов соответствующей кодовой таблицы). Во многих языках реализованы и специальные операции над строками: поиск заданного символа (подстроки), вставка символа, удаление символа, замена символа.

Запись. Наиболее общий метод получения составных типов из простых заключается в объединении элементов произвольных типов. Причем сами эти элементы могут быть, в свою очередь, составными. Так, человек описывается с помощью нескольких различных характеристик, таких, как имя, фамилия, дата рождения, пол, и т.д. Записью (в языке С — структурой) называется набор различных элементов (полей записи), хранимый как единое целое. При этом возможен доступ к отдельным полям записи. К полю записи применимы те же операции, что и к базовому типу, к которому это поле относится (тип каждого поля указывается при описании записи).

Последовательность. Данный тип можно рассматривать как массив бесконечного размера (память для него может выделяться в процессе выполнения программы по мере роста последовательности). Зачастую такой тип данных обладает лишь последовательным доступом к элементам. Под этим подразумевается, что последовательность просматривается от одного элемента строго к следующему, формируется же она путем добавления элементов в ее конец. В языке Pascal подобному типу соответствуют файловые типы данных.

Преимущества от использования типов данных

Типы данных защищают программы по крайней мере от следующих ошибок:

1. Некорректное присваивание. Пусть переменная объявлена как имеющая числовой тип. Тогда попытка присвоить ей символьное или какое-либо другое значение приведет к ошибке еще на этапе компиляции. Такого рода ошибки трудно отследить обычными средствами.

2. Некорректная операция. Типизация позволяет избежать попыток применения выражений вида “Hello world” + 1. Поскольку, как уже говорилось, все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима (и могла дать результат вроде “Hello worle”!). С использованием типов такие ошибки отсекаются опять же на этапе компиляции.

3. Некорректная передача параметров в процедуры и функции (см. “Подпрограммы”). Если функция “синус” ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки “Hello world” может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции или приводят к ошибкам выполнения программы, если значения параметра вводятся с клавиатуры или файла.

Кроме того, типы данных позволяют программисту абстрагироваться от машинного представления информации в виде наборов нулей и единиц и строить программы, основываясь на знакомых понятиях, таких, как числа, множества, последовательности, и т.п. В конечном итоге это приводит к получению более надежных программ.

Методические программы

При изучении данной темы самое главное — разделить следующие понятия:

данные — тип данных — абстрактная структура данных — структура данных

Типом данных переменной называют множество значений, которые может принимать эта переменная, и множество операций, которые применимы к этим значениям.

Абстрактная структура данных (см. “Структуры данных”) — это некоторая математическая модель данных (см. выше), включающая различные операции, определенные в рамках этой модели. Для реализации абстрактной структуры в том или ином языке программирования используются структуры, которые представляют собой набор переменных, возможно различных типов данных, объединенных определенным образом. При этом одна и та же абстрактная структура данных может быть реализована через различные структуры языка программирования. Например, такая абстрактная структура данных, как список, может быть реализована с использованием массива, файла или списка динамических переменных. Примеры различных структур данных, реализующих абстрактную структуру граф, приведены в статье “Табличные модели” 2.

Изучение конкретных типов данных производится в процессе рассмотрения определенного языка программирования в курсе информатики. При этом нельзя совсем не касаться таких вопросов, как представление определенного типа данных в памяти компьютера и диапазон значений, которые могут принимать переменные каждого из типов. Рассказывать стоит и о преобразованиях типов, как автоматических, выполняемых компилятором при анализе операции присваивания, например, вещественной переменной целочисленного выражения, так и производимых программистом, например, при переводе текстовой информации в числовую и т.д.

Изучение особенностей представления целых чисел (а именно этот тип данных встречается в учебных задачах по программированию чаще всего) полезно проиллюстрировать следующим примером.

Пример. С помощью программы на языке Borland Pascal вычислим значение n! (факториал числа n). Версия языка в данном случае указана потому, что ею определяется количество разрядов, отводимых на переменные определенного типа. В данном случае на переменные типа integer отводится 16 бит, что определяет диапазон значений этого знакового типа от –32 768 до 32 767.

var a,i,n: integer;

При запуске этой программы для n = 7, 8 и 10 мы получим 5040, –25 216 и 24 320 соответственно. Первое полученное значение является верным, второе (отрицательное) может натолкнуть программиста на мысль, что в результате арифметических действий произошел выход за границу диапазона значений типа, а вот третье число само по себе может показаться верным, хотя, конечно, это не так.

На этом примере можно показать, что правильный алгоритм решения задачи при неправильном выборе типов данных может привести к абсурдному результату. И при разработке программы одним из важных этапов является оценка возможных значений (в том числе промежуточных) используемых переменных и выбор подходящих типов данных.

Следует подчеркнуть, что для целого типа выход за диапазон значений не приводит к прерыванию работы процессора (компьютер выдает неверные результаты), а для вещественных чисел (переполнение порядка) — это аварийная ситуация (floating point error), которая не пройдет незамеченной.

Тип данных

Тип данных

Тип данных (встречается также термин вид данных) — фундаментальное понятие теории программирования. Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам.

Содержание

История

Ещё в 1960-х г.г. Р. Хиндли (Roger Hindley) исследовал типизацию в комбинаторной логике. Его проблемной областью была типизация в языках, основаных на теории лямбда-исчисления. Позднее, в конце 1960-х годов, тот же учёный исследовал полиморфные системы типов. Позже, в 1970-х годах, Робин Милнер предложил практическую реализацию расширенной системы полиморфной типизации для языка функционального программирования ML.

Определение

Тип (сорт) — относительно устойчивая и независимая совокупность элементов, которую можно выделить во всём рассматриваемом множестве (предметной области). [1]

Полиморфный тип — представление набора типов как единственного типа.

Математически тип может быть определён двумя способами:

  1. Множеством всех значений, принадлежащим типу.
  2. Предикатной функцией, определяющей принадлежность объекта к данному типу

Необходимость использования типов данных

Типы данных различаются начиная с нижних уровней системы. Так, например, даже в Ассемблере х86 различаются типы «целое число» и «вещественное число». Это объясняется тем, что для чисел рассматриваемых типов отводятся различные объёмы памяти, используются различные регистры микропроцессора, а для операций с ними применяются различные команды Ассемблера и различные ядра микропроцессора.

Концепция типа данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора.

Читать еще:  Организация безопасности корпоративных сетей

Практическое применение

Как правило, типы языков программирования не всегда строго соответствуют подобным математическим типам. Например, тип «целое число» большинства языков программирования не соответствует принятому в математике типу «целое число», так как в математике указанный тип не имеет ограничений ни сверху, ни снизу, а в языках программирования эти ограничения есть. Как правило, в языках и системах имеется множество целых типов, отличающихся допустимым диапазоном значений (определяемым объёмом занимаемой памяти). Стоит отметить, что в большинстве реализаций языков и систем выход за границу целого типа (переполнение) не приводит к исключительной ситуации.

Современные языки программирования (включая Ассемблер) поддерживают оба способа задания типа (см. Определение). Так, в С++ тип enum является примером задания типа через набор значений. Определение класса (если рассматривать класс как тип данных) фактически является определением предиката типа, причём возможна проверка предиката как на этапе компиляции (проверка соответствия типов), так и на этапе выполнения (полиморфизм очень тесно связано с полиморфными типами). Для базовых типов подобные предикаты заданы создателями языка изначально.

Языки без типов

Теоретически не может существовать языков, в которых отсутствуют типы (включая полиморфные). Это следует из того, что все языки основаны на машине Тьюринга или на лямбда-исчислении. И в том, и в другом случае необходимо оперировать как минимум одним типом данных — хранящимся на ленте (машина Тьюринга) или передаваемым и возвращаемым из функции (лямбда-исчисление). Ниже перечислены языки программирования по способу определения типов данных:

1) Языки с полиморфным типом данных. Одни языки не связывают переменные, константы, формальные параметры и возвращаемые значения функций с определёнными типами, поддерживая единственный полиморфный тип данных. В чистом виде таких языков не встречается, но близкие примеры — MS Visual Basic — тип variant, Пролог, Лисп — списки. В этих языках переменная может принимать значение любого типа, в параметры функции можно передавать значения любых типов, и вернуть функция также может значение любого типа. Сопоставление типов значений переменных и параметров с применяемыми к ним операциями производится непосредственно при выполнении этих операций. Например, выражение a+b , может трактоваться как сложение чисел, если a и b имеют числовые значения, как конкатенация строк, если a и b имеют строковые значения, и как недопустимая (ошибочная) операция, если типы значений a и b несовместимы. Такой порядок называют «динамической типизацией» (соответствует понятию полиморфизм в ООП, полиморфный тип в теории типов). Языки, поддерживающие только динамическую типизацию, называют иногда «бестиповыми». Это название не следует понимать как признак отсутствия понятия типов в языке — типы данных всё равно есть.

2) Языки с неявным определением типов. Казалось бы, BASIC является примером языка без типов. Однако это строго типизированый язык: в нём различаются строковые типы (добавляется символ $), массивы (добавляется []) и числовые типы (ничего не добавляется).

3) Языки с типом, определяемым пользователем. Также хорошо известны языки, в которых типы данных определяются автоматически, а не задаются пользователем. Каждой переменной, параметру, функции приписывается определённый тип данных. В этом случае для любого выражения возможность его выполнения и тип полученного значения могут быть определены без исполнения программы. Такой подход называют «статической типизацией». При этом правила обращения с переменными, выражениями и параметрами разных типов могут быть как очень строгими (С++), так и весьма либеральными (Си). Например, в классическом языке Си практически все типы данных совместимы — их можно применять совместно в любых выражениях, присваивать значение переменной одного типа переменной другого почти без ограничений. При таких операциях компилятор генерирует код, обеспечивающий преобразование типов, а логическая корректность такого преобразования остаётся на совести программиста. Подобные языки называют «языками со слабой типизацией». Противоположнось им — «языки с сильной типизацией», такие как Ада. В них каждая операция требует операндов строго заданных типов. Никакие автоматические преобразования типов не поддерживаются — их можно выполнить только явно, с помощью соответствующих функций и операций. Сильная типизация делает процесс программирования более сложным, но даёт в результате программы, содержащие заметно меньше труднообнаруживаемых ошибок.

На практике языки программирования поддерживают несколько моделей определения типов одновременно.

Базовые типы

Каждый язык программирования поддерживает один или несколько встроенных типов данных (базовых типов) (см. классификацию типов данных), кроме того, развитые языки программирования предоставляют программисту возможность описывать собственные типы данных, комбинируя или расширяя существующие.

Преимущества от использования типов данных

  • Надёжность. Типы данных защищают от трёх видов ошибок:
  1. Некорректное присваивание. Пусть переменная объявлена как имеющая числовой тип. Тогда попытка присвоить ей символьное или какое-либо другое значение в случае статической типизации приведёт к ошибке компиляции и не даст такой программе запуститься. В случае динамической типизации код программы перед выполнением потенциально опасного действия сравнит типы данных переменной и значения и также выдаст ошибку. Всё это позволяет избежать неправильной работы и «падения» программы.
  2. Некорректная операция. Позволяет избежать попыток применения выражений вида «Hello world» + 1. Поскольку как уже говорилось все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима (и могла дать результат вроде «ello worldǼ»). С использованием типов (см. далее «Контроль типов») такие ошибки отсекаются опять же на этапе компиляции.
  3. Некорректная передача параметров. Если функция «синус» ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки «Hello world» может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции.
  • Стандартизация. Благодаря соглашениям о типах, поддерживаемых большинством систем программирования, сложилась ситуация, когда программисты могут быстро менять свои рабочие инструменты, а программы не требуют больших переделок при переносе исходных текстов в другую среду. К сожалению, стандартизации по универсальным типам данных ещё есть куда развиваться.

Классификация типов данных [2] [3]

Типы данных бывают следующие:

  • Простые.
    • Перечислимый тип. Может хранить только те значения, которые прямо указаны в его описании.
    • Числовые. Хранятся числа. Могут применяться обычные арифметические операции.
      • Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.
      • Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*b e , где m — мантисса, b — основание показательной функции, e — показатель степени (порядок) (в англоязычной литературе экспонента), причём в нормальной форме 0

      Wikimedia Foundation . 2010 .

      Смотреть что такое «Тип данных» в других словарях:

      тип данных — Множество величин, объединенных определенной совокупностью допустимых операций. [ИСО/МЭК 2382 15] [ГОСТ Р 52292 2004] тип данных тип Множество значений вместе с множеством допустимых над ними операций [ГОСТ 28397 89] тип данных В программировании … Справочник технического переводчика

      Тип данных — характеристика набора данных, которая определяет: диапазон возможных значений данных из набора; допустимые операции, которые можно выполнять над этими значениями; способ хранения этих значений в памяти. Различают: простые типы данных: целые,… … Финансовый словарь

      тип (данных) — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN type … Справочник технического переводчика

      тип данных — 2.35 тип данных (data type): Поименованная совокупность данных с общими статическими и динамическими свойствами, устанавливаемыми формализованными требованиями к данным рассматриваемого типа. Источник: ГОСТ Р ИСО/МЭК ТО 10032 2007: Эталонная… … Словарь-справочник терминов нормативно-технической документации

      тип данных — duomenų tipas statusas T sritis automatika atitikmenys: angl. data type vok. Datenart, f; Daten Bauart, f; Datentyp, m rus. тип данных, m pranc. type de données, m … Automatikos terminų žodynas

      тип данных VARCHAR — Стандартный тип данных Oracle, используемый для хранения символьных (алфавитно цифровых) данных, аналогичный типу данных CHAR. В СУБД Oracle V6 типы данных CHAR и VARCHAR полностью эквивалентны. В сервере Oracle тип данных CHAR имеет… … Справочник технического переводчика

      тип данных элемента данных — 3.1.6 тип данных элемента данных (Data Element Datatype; DE datatype): Спецификация множества различных значений для элемента данных, характеризуемая свойствами этих значений и возможными операциями над этими значениями. Примечание 1 Множество… … Словарь-справочник терминов нормативно-технической документации

      тип данных объекта — 3.1.3 тип данных объекта (entity data type): Представление объекта. Тип данных объекта устанавливает область значений, определяемую общими атрибутами и ограничениями. Источник … Словарь-справочник терминов нормативно-технической документации

      тип данных выражения — 3.3.6 тип данных выражения (expression data type): Область, в которой должны находиться значения результата выражения. Примечание В настоящем стандарте контроль типа и синтез типа проводят только для схемы ISO13584 expressions schema. Контроль… … Словарь-справочник терминов нормативно-технической документации

      Алгебраический тип данных — в теории программирования любой тип, значения которого являются значениями некоторых иных типов, «обёрнутыми» конструкторами алгебраического типа. Другими словами, алгебраический тип данных имеет набор конструкторов типа, каждый из которых… … Википедия

      #3 — Типы данных

      Этот видеоурок мы посвятим типам данных в языках программирования, которые будут рассмотрены на примерах языков python и javascript.

      Виды типов данных

      Данные в языках программирования бывают разные.

      Язык программирования python имеет типы данных:

      • a) char — символьный тип данных;
      • b) int — целочисленный тип данных;
      • c) float — тип данных с плавающей запятой;
      • d) double — тип данных с плавающей запятой двойной точности;
      • e) bool — логический тип данных.

      В языке javascript используются следующие типы данных:

      • a) srting — тип данных «строка»,
      • b) number — тип данных «число»,
      • c) boolean — логический тип данных,
      • d) undefined — тип данных, значения которых не определены,
      • e) null — тип данных с «пустыми» значениями,
      • f) object — тип данных, хранящих свойства и методы.

      Рассмотрим некоторые из них.

      Тип данных — «строка»

      В javascript строкой — string — называют фрагмент текста (последовательность символов). Строка может состоять из букв, чисел, знаков(например, точки и запятые) или пробелов, то есть из символов. Обычно их записывают в одинарных кавычках (но в js можно и в двойных), начинаться и заканчиваться строка должна кавычками одного вида.

      Строки можно склеивать вместе или вырезать из них выбранные части. Подобно тому как сложение двух чисел дает новое число, можно сложить две строки. Получится строка, состоящая из исходных строк, склеенных вместе. У каждого символа в строке есть номер, который соответствует его позиции. Этот номер можно использовать, чтобы узнать отдельный символ или чтобы вырезать его из строки. Отсчет ведется с нуля.

      В некоторых языках программирования есть специальный тип данных для одного символа. Например, в языке С это «char».

      Тип данных — «число»

      Единый тип «число» используется как для целых, так и для дробных чисел.

      В языках программирования есть следующие типы числовых данных:

      • a) int — целые, то есть числа без дробной части,
      • b) float — вещественные, дробные числа с десятичной точкой,
      • c) double — тип данных с плавающей запятой двойной точности,
      • d) number — числовые данные в js.

      Целые числа хороши для подсчета чего-либо, а вещественные — для измерения таких свойств, как вес.

      Булевый (логический) тип данных — boolean.

      Истина или ложь? Компьютеры принимают решения о том, что делать дальше, задавая вопросы и анализируя ответы — «да» или «нет». Вопросы, на которые есть лишь два варианта ответа, называют булевыми (логическими) выражениями.

      Булевый тип может принимать одно из двух значений — true (истина) или false (ложь). Программы принимают решения о том, что делать дальше, сравнивая переменные, числа и строки с помощью булевых выражений — тех, что возвращают либо true, либо false.

      Бывают также такие типы данных, как null, undefined, object (объект) — в javascript или list (список), tuple (кортеж), dict (словарь) — в python. Но для понимания общих основ программирования вам будет достаточно знания трех типов данных: «число», «строка» и булево значение.

      Преобразование типов данных

      Не все типы данных в программе совместимы. Порой один тип нужно преобразовать в другой, иначе возникнет ошибка.
      В javascript оператор typeof возвращает тип аргумента. В python, чтобы узнать тип, применяют команду type.

      Приятного всем просмотра! Учитесь с удовольствием!

      Pascal. Типы данных

      Понятие данных является одним из ключевых в программировании, да и вообще в компьютерных науках. Грубо говоря, данные в информатике это информация, находящиеся в состоянии хранении, обработки или передачи, в какой-то отрезок времени. В машинах Тьюринга информация имеет тип, а он в свою очередь, зависит от рода информации.

      Типы данных в Паскале определяют возможные значения переменных, констант, выражений и функций. Они бывают встроенными и пользовательскими. Встроенные типы изначально присутствуют в языке программирования, а пользовательские создаются программистом.

      По способу представления и обработки типы данных бывают:

      • простые
      • структурированные
      • указатели
      • объекты
      • процедуры

      В этой статье будут рассмотрены лишь, наиболее простые типы данных, так как на начальных этапах обучения, вашей программе будет проще обойтись, например, без файлов и записей, чем без целочисленных или строковых переменных.

      Целочисленный тип

      Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.

      Объявить целочисленную переменную можно в разделе Var, например:

      Над переменными этой категории можно выполнять все арифметические и логические операции за исключением деления (/), для него нужен вещественный тип. Также могут быть применены некоторые стандартные функции и процедуры.

      Вещественный тип

      В Паскале бывают следующие вещественные типы данных:

      Над ними может быть выполнено большее количество операций и функций, чем над целыми. Например, эти функции возвращают вещественный результат:

      ln(x) – натуральный логарифм;

      sqrt(x) – квадратный корень;

      Логический тип

      Переменная, имеющая логический тип данных может принимать всего два значения: true (истина) и false (ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю. Объявить булеву переменную можно так:

      Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.

      Символьный тип

      Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):

      1. как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
      2. указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
      3. при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.

      К величинам символьного типа данных применимы операции отношения и следующие функции:

      Succ(x) — возвращает следующий символ;

      Pred(x) — возвращает предыдущий символ;

      Ord(x) — возвращает значение кода символа;

      Chr(x) — возвращает значение символа по его коду;

      UpCase(x) — переводит литеры из интервала ‘a’..’z’ в верхний регистр.

      Для плодотворной работы с символьным типом рекомендую пользоваться таблицей ASCII.

      Строковый тип

      Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:

      Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S[1]=s;. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.

      Перечисляемый тип данных

      Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми.

      Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

      Переменная A может принимать лишь значения определенные в разделе Type. Также можно объявить переменную перечисляемого типа в разделе Var:

      Var A: (Monday, Tuesday);

      К данному типу применимы операции отношения, при этом заранее определенно, что Monday = .. ;

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector