9

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

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

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

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

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

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

Известно, что для представления данных в памяти ЭВМ (как числовых, так и не числовых) используется двоичный способ кодирования. Элементарная ячейка памяти ЭВМ имеет длину 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 разряда.

ЗнакПорядокМантисса
6362            5352                                                                        0

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

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

ТипДиапазонМантиссаБайты
Real2,9*10-39..1,7*103811-126
Single1,5*10-45..3,4*10387-84
Double5,0*10-324..1,7*1030815-168
Extended3,4*10-4932..1,1*10493219-2010

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

Строковый тип. Хранит строку символов(символьный тип данных). Для кодирования символов в настоящее время выделяется 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.

Заключение

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

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

ФотоМАСТЕР

brasm

Преподаватель со стажем 33 года. Кандидат технических наук, доцент.

9 комментариев

  1. Основное содержание обучения информатики на профильном уровне включает изучение следующих тем: «Алгоритмический язык», «Вычислимые функции», «Детерминированные игры с полной информацией», «Доказательства правильности», «Построение алгоритмов», «Типы данных», «Сложность описания объекта», «Сложность вычисления», «События. Параллельные процессы», «Практика программирования».

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

  2. Нет заказов через сайт? Я сделаю Ваш сайт видимым в поиске за кротчайшие сроки!
    SEO продвижение заёмёт у меня до 1.5 месяца, а результат я покажу уже через 3 недели.

    Теперь не надо ждать месяцами результат, он будет в первом же месяце. Так же настрою Яндекс Директ.

    Вы будете выше своих конкурентов и почувствуете отдачу от сайта, сайт должен работать и я покажу как.

    Пишите и звоните, есть WhatsApp 8 903 905 77 93 почта directseoreklama@yandex.ru

    Гарантированный результат!

  3. Hello,

    I think brasmlibras.ru has so much potential. The site in an industry which has a lot of competition, but also has a lot of demand.

    We have been promoting sites for more than 9 years and we would be glad to explain how you can increase the visibility of brasmlibras.ru.

    This won’t cost you anything and if you like our approach, but don’t have time to perform these tasks yourself, we could talk about potentially outsourcing this work to us.

    brasmlibras.ru is a great resource and it would be our pleasure to help grow it to it’s full potential.

    Please reply to this email and we can schedule a call or continue our discussion by email.

    Appreciate your time

    Alexander
    qc-digital

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

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