28443

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

Лекция

Информатика, кибернетика и программирование

константы переменные значения функций или выражения характеризуются своими типами. Порядковые типы К порядковым типам относятся целые логический символьный перечисляемый и тип – диапазон. ORDX для логического типа даёт положительное целое число в диапазоне от 0 до 1. ORDX для символьного типа даёт целое число в диапазоне от 0 до 255 для перечисляемое типа ORDX даёт число в диапазоне от 0 до 65535.

Русский

2013-08-20

80.5 KB

10 чел.

Тема 3. Структура типов данных. Стандартные процедуры и функции, применимые к целым, вещественным числам. Логический, символьный, перечисляемый типы, тип-диапазон. Примеры.

Типы данных

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

Турбо Паскаль характеризуется разветвлённой структурой типов данных.

Простые типы

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

Порядковые типы

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

ORD(X) для логического типа даёт положительное целое число в диапазоне от 0 до 1.

ORD(X) для символьного типа даёт целое число в диапазоне от 0 до 255, для перечисляемое типа ORD(X) даёт число в диапазоне от 0 до 65535. Тип- диапазон сохраняет все свойства базового порядкового типа, поэтому результат применения к нему функции ORD(X) зависит от свойств этого типа. К порядковым типам можно также применять функции:

PRED (X)- возвращает предыдущее значение порядкового типа, т.е. ORD(PRED (X))= ORD(X)-1;

SUCC(X)- возвращает следующее значение порядкового типа, ( которое соответствует порядковому номеру ORD (X)+1), т.е.

                                                              ORD ( SUCC(x))= ORD(x)+1;

Пример:   X:=’М’ ;  PRED (x)=’L’; SUCC(x)=’N’;

Целые типы

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

Таблица 2

Целые типы

Название

Длина байт

Диапазон значений

Byte

ShortInt

Word

INTEGER

LongInt

1

1

2

2

4

0…255

-128…+127

0…65535

-32768…+32767

-2147483648…+2147483647

А) При использовании процедур и функций с целочисленными параметрами следует руководствоваться « вложенностью» типов, т.е. везде, где может использоваться WORD, допускается использование BYTE ( но не наоборот), в LONGINT « входит» INTEGER , который в свою очередь включает в себя SHORTINT.

Перечень процедур и функций, применимых к целочисленным типам, приведём в таблице 2, буквами b, s, w, i, l, обозначены выражения соответственно типа byte, shortint, word, integer, u lougint, X- выражение любого из этих типов; буквы vb, vs, vw, vi, v,l vx, обозначает переменные соответствующих типов. В квадратных скобках указывается необязательный параметр.

Таблица 3 - Стандартные процедуры и функции, применимые к целым типам                                                                                        

Обращение

Тип результата

Действие

abs(x)

х

Возвращает модуль х

chr ( b)

Char

Возвращает символ по его коду

dec ( vx[,i])

--

Уменьшает значение vx на i, а при отсутствии i–на 1

inc ( vx[,i])

--

Увеличивает значение vx на i, а при отсутствии i-на 1

Hi ( i)

Byte

Возвращает старший байт аргумента

Hi ( w)

Byte

Возвращает старший байт аргумента

Lo(i)

--

Возвращает младший байт аргумента

Lo(w)

--

Возвращает младший байт аргумента

odd (l)

Boolean

Возвращает TRUE, если аргумент – нечетное число

Random (w)

Как у параметра

Возвращает псевдослучайное число,  равномерно распределенное в диапазоне 0..(w-1)

sqr (x)

х

Возвращает квадрат аргумента

swap(i)

INTEGER

Меняет местами байты в слове

swap (w)

Word

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

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

Значениями логического типа может быть одна из предварительно объявленных констант FALSE ( ложь) или TRUE ( истина) . Для них справедливы правила: ord ( false)=0; ord ( true)=1; false<true; succ(false)=true; pred (true)= false

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

Таблица 4

Логические операции над данными типа INTEGER

Операнд 1

Операнд 2

not

and

or

xor

1

0

0

0

1

1

-

-

0

1

0

1

0

1

-

-

-

-

-

-

0

0

0

1

-

-

0

1

1

1

-

-

0

1

1

0

Логические операции над логическими данными дают результат логического типа по правилам, указанным в таблице:

Таблица 5 - Логические операции над данными типа Boolean

Операнд 1

Операнд 2

not

and

or

xor

TRUE

FALSE

FALSE

FALSE

TRUE

TRUE

-

-

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

-

-

-

-

-

-

FALSE

FALSE

FALSE

TRUE

-

-

FALSE

TRUE

TRUE

TRUE

-

-

FALSE

TRUE

TRUE

FALSE

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

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

  Для кодировки используется код ASCII (Американский стандартный код для обмена информацией). Это 7-битный код т.е. с его помощью можно закодировать лишь 128 символов в диапазоне от 0 до 127. В 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать символы в диапазоне от 0 до 255.

  Первая половина символов ПК с кодами 0..127 соответствует стандарту ASCII. Вторая половина символов с кодами 128…255 не ограничена жесткими рамками стандарта и может меняться на ПК разных типов.

  К типу CHAR применяются операции отношения, а также встроенные функции: CHR (B) –функция типа CHAR; преобразует выражение. B типа BYTE в символ и возвращает его своим значениям.

UPCASE (CH) –функция типа CHAR; возвращает прописную букву, если CH  -строчная латинская буква, в противном случае возвращает сам символ CH.

Перечисляемый тип

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

                         type      неделя=(пн., вт., ср., чтв., птн., сбб., вс.);

  VAR  D:  неделя;

Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе-1 и т. д.

           ord (пн.)=0;       ord(вт.)=1;          …             ord(вс.)=6;

 Допустим оператор:

           D:=ср.;

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

                                         D:=неделя(0);

  Переменные любого перечисляемого типа можно объявлять без предварительного описания этого типа, например:

    VAR      D:(пн., вт., ср., чтв., птн., сб., вс.);

Тип – диапазон

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

  Тип – диапазон задается границами своих значений внутри базового типа:

         <мин. знач.>..<макс. знач.>

Здесь <мин. знач.> - минимальное значение типа –диапазон, <макс. знач.> -максимальное его значение.

Например:

   type

         cel=’0’..’9’;

Тип – диапазон можно указывать непосредственно при объявлении переменной, например:

     VAR      DEN: 1..31;

                   MEC: 1..12;

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

HIGH (x) – возвращает максимальное значение типа – диапазон, которому принадлежит x

LOW (x) – возвращает минимальное значение типа – диапазон.

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

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

Таблица 6

Длина

байт

Название

Количество значащих цифр

Диапазон десятичного порядка

6

8

10

8

real

extended

comp

11…12

15…16

19...20

19...20

-39…+38

-324…+308

-4951…+4932

-2*1063+1…+2*1063-1

Вещественное число в Турбо Паскале занимает от 4 до 10 смежных байт и имеет следующую структуру в памяти ПК:

s

l

m

Здесь s – знаковый разряд числа; l – экспоненциальная часть, содержит двоичный порядок; m – мантисса числа. Мантисса m имеет длину от 23 (для SINGLE) до 63 (для EXTENDED) двоичных разрядов, что и обеспечивает точность 7..8 для EXTENDED десятичных цифр. Десятичная точка (запятая) подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение сдвигается влево или вправо в соответствии с двоичным порядком.

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

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

Таблица 7

Обращение

Тип параметра

Тип результата

Примечание

Abs

arctan (x)

cos(x)

exp(x)

frac(x)

int(x)

ln(x)

pi

Random

Random(x)   

Randomize

sin(x)

sqr(x)

sqrt(x)

       

real, integer

real

--

--

--

--

--

--

--

integer

--

real

--

--

Тип аргумента

real

--

--

--

--

--

--

--

integer

--

real

--

--

Модуль аргумента

Арктангенс (знач. в рац.)

Косинус, угол в радианах

Экспонента

Дробная часть числа

Целая часть числа

Логарифм натуральный

π=3.141592653

Псевдослучайное число, равномерно распределенное в диапазоне

Псевдослучайное целое число, равномерно распределенное в диапазоне 0…(x-1)

Инициация генератора псевдослучайных чисел

Синус, угол в радианах

Квадрат аргумента

Корень квадратный

1осн [90-118]

12доп. [30-42]

Контрольные вопросы

  1.  Какие типы данных относятся порядковым типам?
  2.  Какие функции можно применять к порядковым типам?
  3.  Какие две функции поддерживают работу с типами-диапазонами?
  4.  Как задается перечисляемый тип?
  5.  Какие типы относятся к  структурированным?
  6.  Что представляют собой пользовательские типы?
  7.  Что представляют собой типизированные константы?
  8.  Какие особенности использования переменных перечисляемых типов?
  9.  Что представляет собой типизированная константа процедурного типа?


 

А также другие работы, которые могут Вас заинтересовать

2758. Первоначальные действия по факту пожара 372.67 KB
  Изложены основные вопросы квалификации правонарушений, связанных с пожарами, проведения проверки заявлений и сообщений о происшествиях такого рода, производства по ним неотложных следственных действий. Учтены происшедшие изменения в законодательстве...
2759. Экономическая диагностика предприятия 176.37 KB
  Содержатся теоретические основы, методика и алгоритм диагностики экономического состояния предприятия по данным бухгалтерской отчетности. Приведены формулы для расчета показателей и учета факторов, влияющих на их значения, формы для представления ис...
2760. Рейтинговая оценка финансового состояния, рентабельности и деловой активности предприятия 4.51 MB
  Изучение явлений природы и общественной жизни невозможно без анализа. Сам термин анализ происходит от греческого слова analysis, что в переводе означает разделяю, расчленяю. Понятие о экономическом анализе и его содержание
2761. Автомобильные эксплуатационные материалы 1.5 MB
  Изложены вопросы получения автомобильных топлив, их применение в двигателях внутреннего сгорания. Рассмотрены альтернативные виды топлива, как аналогичные нефтяным, так и отличные от них. Для студентов и преподавателей кафедр, изучающих эксплуатацию автомобильной техники, а также для инженерно-технических работников автотранспортных и авторемонтных предприятий.
2762. Производство алюминия и магния 2.85 MB
  В рамках лабораторного практикума изложены вопросы теории и технологии производства легких металлов на примере наиболее востребованных из них – алюминия и магния. Уделяется внимание знакомству с традиционными способами получения легких металлов...
2763. Административное право России 470.86 KB
  Административное право России является одной из наиболее многогранных и сложных отраслей российского права. Сложность освоения учебного материала по дисциплине Административное право России обусловлена следующими основными фактами: во-первых, адми...
2764. Детали машин. Контрольные задания. Примеры решения 1.26 MB
  Данные методические указания и контрольные задания составлены в полном соответствии с программами курсов Детали машин, Детали машин и основы конструирования и Детали машин и подъемно-транспортные устройства и предназначены студентам всех специальностей заочного факультета, для которых по учебному плану предусмотрены такие курсы.
2765. Анализ наилучшего и наиболее эффективного использования земельного участка в калининском районе Санкт-Петербурга 6.82 MB
  Целью реализации анализируемого проекта является расширение действующего объекта коммерческой недвижимости, повышение его потребительских свойств и конкурентоспособности для увеличения доходов от эксплуатации объекта. Проект предполагает реконструкц...
2766. Проектирование сварных конструкций 2.93 MB
  Конструкции сварные и их проектирование как учебная дисциплина имеет свои задачи - системное формирование у студентов знаний и общих представлений о современном состоянии теоретических основ проектирования сварных конструкций, методах расчета и проектирования сварных конструкций.