Просмотров-1589
3

Как изучать типы данных языка программирования?

Что такое данные?

Решение большинства задач на ЭВМ сводится к обработке данных определенного типа с помощью программ, написанных на определенном языке программирования. Данные и их типы в языках программирования играют важнейшую роль и оказывают существенное влияние на качество программы.

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

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

Решение задач на ЭВМ выполняется, как правило, по заранее определенному алгоритму. Упорядоченная последовательность действий(алгоритм), как правило, описывается с помощью математических выражений, содержащих  переменные и константы. Математические переменные могут представлять отдельные значения и множество значений.

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

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

Известно, что для представления данных в памяти ЭВМ (как числовых, так и не числовых) используется двоичный способ кодирования. Элементарная ячейка памяти ЭВМ имеет длину 8 бит (1 байт). Каждый байт имеет свой номер (его называют адресом). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32, 64 битам.

Что такое типы данных?

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

Вот примеры некоторых из них, взятых из Википедии.

В соответствие со стандартом Института инженеров электроники и электротехники IEEE Std 1320.2-1998 Тип данных (тип) — множество значений и операций над этими значениями. Там же говорится(уточняется)  Тип данных — категоризация абстрактного множества возможных значений, характеристик и набор операций для некоторого атрибута.

В соответствие с международным стандартом ISO/IEC/IEEE 24765-2010 Тип данных — класс данных, характеризуемый членами класса и операциями, которые могут быть к ним применены. В стандарте ISO/IEC 19500-2:2003 дается следующее определение Тип данных — категоризация аргументов операций над значениями, как правило, охватывающая как поведение, так и представление.

Таким образом, тип данных характеризует одновременно:

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

Первое свойство можно рассматривать как теоретико-множественное определение понятия типа; второе — как процедурное (или поведенческое) определение.

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

Таким образом, тип данных определяет:

  • возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
  • внутреннюю форму представления данных в ЭВМ;
  • допустимые операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

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

Как изучать типы данных?

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

Простые данные и их типы в языках программирования

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

 Возможные значения переменных, констант и выражений, принадлежащих к данному типу, определяется формой представления в памяти ЭВМ. Знак числа определяется значением старшего разряда – нуль число положительнее, 1 – число отрицательное.

Диапазон значений при этом определяется количеством разрядов, отводимых на представление конкретного типа в памяти компьютера. Например, если  для хранения чисел отводится 2 байта(16 разрядов), то значения чисел данного типа лежат в диапазоне:  беззнаковых  от  0 до 65535 (216-1), знаковых – от 32768 (-215) до 32677 (215-1).

Целые данные и их типы в языках программирования

При выделении памяти в 32 разряда(4 байта) значение данных целого типа должны(могут) находиться в диапазоне от -231 до 231-1.

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

Вещественные типы с фиксированной точкой, когда хранятся знак и цифры целой и дробной частей (в настоящее время в языках программирования реализуются редко).  Вещественные типы с плавающей точкой, когда действительное число в памяти ЭВМ представляется в виде M*10p, где М называют мантиссой числа, а р — его порядком. Способ хранения мантиссы с плавающей точкой подразумевает, что двоичная запятая находится на фиксированном месте. Принимается, что двоичная запятая следует после первой двоичной цифры, т.е. нормализация мантиссы делает единичным первый бит, помещая тем самым значение между единицей и двойкой. Место, отводимое для числа с плавающей точкой, делится на два поля. Одно поле содержит знак и значение мантиссы, а другое содержит знак и значение порядка.

Если для действительного числа этого типа выделяется в памяти 8 байт, то поля мантиссы и порядка представляются так, как показано  рисунке. Мантисса занимает младшие 52 разряда(53 разряд – знак мантиссы), а порядок следующие 9 разрядов(62 разряд – знак порядка), знак числа определяется значением 63 разряда.

Размещение в памяти ЭВМ вещественного типа данных

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

Например, для наиболее распространенных типов данных диапазоны показаны в таблице на следующем рисунке.

Действительные данные и их типы в языках программирования

Вещественные числа представляются с некоторой точностью. Очевидно, что представление вещественных чисел в формате чисел с плавающей точкой – это компромисс между точностью и диапазоном представляемых значений.

Строковый тип. Хранит строку символов(символьный тип данных). Для кодирования символов в настоящее время выделяется 8(байт) или 16(два байта) разрядов. Если выделяется  один байт, то в этом случае можно представить 256 символов (с десятичными кодами от 0 до 255). Такой набор символов персональных компьютеров является стандартом ASCII (American Standart Code of Information Interchange — стандартный американский код для обмена информацией).

Набор кодов(кодовая страница) стандарта ASCII включают в себя буквенные символы только латинского алфавита. Символы национальных алфавитов занимают «свободные места» в таблицах кодов и, таким образом, одна таблица может поддерживать только один национальный алфавит. Этот недостаток преодолен во множестве UNICODE, которое находит все большее распространение прежде всего в UNIX-ориентированных системах. В UNICODE каждый символ кодируется двумя байтами(16 разрядами), что обеспечивает более 64 тыс. возможных кодовых комбинаций и дает возможность иметь единую таблицу кодов, включающую в себя все национальные алфавиты.

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

Логический тип. Данные этого типа имеют два значения: истина (true) и ложь (false). К ним могут применяться логические операции. Используется в условных выражениях, операторах ветвления и циклах. Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта. Например: false всегда в машинном представлении: 00000000; true может выглядеть таким образом: 00000001 или 00010001 или 10000000 (или истинным считается любое значение, отличное от нуля).

Над логическими типами возможны операции булевой алгебры — НЕ (not), ИЛИ (or), И (and), исключающее ИЛИ (xor) — последняя реализована для логического типа не во всех языках. В этих операциях операнды логического типа рассматриваются как единое целое — вне зависимости от битового состава их внутреннего представления. Кроме того, следует помнить, что результаты логического типа получаются при сравнении данных любых типов.

Структурированные данные и их типы в языках программирования

Данные простых типов могут объединяться в более сложные типы данных, например массивы. Массив — упорядоченное множество величин одного типа. Массив является индексированным набором элементов одного типа, простого или составного.

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

В памяти ЭВМ элементы массива располагаются последовательно, занимая число ячеек в соответствие с их типом.

Что следует учитывать в программе?

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

Выбор и объявление типов данных. При выборе типа данных необходимо учитывать характер и возможные значения обрабатываемых данных при решении задачи. Это позволит рационально использовать ресурсы вычислителя(память, время процессора и т.п.). Неправильный выбор типа данных может приводить к неправильным результатам и исключительным ситуациям. Например, в Паскале при типе данных x,y,z: byte и значениях переменных x:=7; ,y:= 10; и z:=x-y; результат будет равен 253 вместо -3.

Объявление типа данных осуществляется с помощью специальных ключевых(служебных слов). Большинство языков программирования требуют явно описывать тип переменной. Например, на языке Borland Pascal, типы объявляются вне вычислительного блока с помощью ключевого слова var:

      var 

i,n: integer;   // переменные i,n целого типа

x,y: real;          // переменные x,y вещественного типа

В языках Java, С++, C#  тип можно объявить в любом месте программы. Например:

int i = 389;      // переменная i целого типа

String st = «Это строка»;       // переменная s строкового типа 

Преобразование типов данных. Не все типы данных в программе совместимы между собой. Порой один тип нужно преобразовать в другой, иначе возникнет ошибка. Преобразования могут совершаться автоматически или явно. За преобразованием типов необходимо следить, иначе могут возникнуть некорректные действия. Например, опасность использования вещественного типа вместо целого заключается  в том, что при преобразовании вещественного ттпа в целый происходит округление вещественного числа путем отбрасывания дробной части. И тогда целое число 1, представленное как 0,99999 при преобразовании превращается в 0.

Скорость обработки данных. Данные разного типа обрабатываются с разной скоростью. Целочисленные данные обрабатываются быстрее всего. Для обработки данных двойной точности используется специальный сопроцессор. Однако из-за сложности внутреннего представления данных с плавающей точкой, они обрабатывается дольше, чем целочисленные.

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

В языке python, чтобы узнать тип, применяют команду type, в языке Borland Pascal typeof.

Заключение

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

. В любом языке программирования изучить простой тип данных значит: усвоить возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу; ознакомиться с внутренней формой представления данных в ЭВМ; усвоить операции, которые можно выполнять над величинами, принадлежащими к данному типу.

Изучать простые типы данных следует в строгой последовательности от простого к сложному. Особое внимание необходимо обращать на представление данных типа в ЭВМ. От правильного использования типов данных зависит производительность программы.

Не корректность в выборе данных и их типов представления в ЭВМ может привести к не корректной работе программы.

Это пока все. Всем успехов в освоении программирования.

Связанные материалы

  1. Что такое программирование?
  2. Как стать программистом?
  3. Как выбирать язык программирования высокого уровня для изучения
  4. Что выбирать язык или платформу программирования?
  5. Удаленная работа программистом и выбор языка программирования
  6. Дистанционный курс «Python-разработчик»
  7. Обучение программированию дистанционно в Ставрополе
  8. Как изучать алгоритмы решения задач?
  9. Что такое большие данные?
  10. Интеллектуальный анализ больших данных
  11. Как стать специалистом по большим данным?

Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 
Реклама. Информация о рекламодателе по ссылкам в статье.

brasm

Пенсионер с 33 - летним педагогическим стажем

3 комментария

  1. Статья эта для школьного образования. Перечисленные темы — для университета. В перечисленных темах не видно информатики. Почему то упор на алгоритмизацию и доказательность правильности. Но а игры вообще — прилепить горбатого.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *