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.  Что представляет собой типизированная константа процедурного типа?


 

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

43736. Реализация базы данных центра занятости 587.17 KB
  С чисто практической точки зрения базы данных позволяют избавиться от большого количества бумажных документов и значительно ускорить поиск и внесение информации. Цель данного курсового проекта реализация базы данных центра занятости. Для выполнения работ в базе данных необходима авторизация с помощью пары...
43737. Система управління складським обліком продовольчих товарів 24.23 MB
  Завдяки використанню топології складських приміщень, система наочно відображає завантаженість товаром осередків та стелажів Грамотна організація роботи підприємств складського комплексу веде до підвищення продуктивності праці, скорочує витрати робочого часу на виконання складських операцій і дозволяє ефективно використовувати складські приміщення. Все це сприяє підвищенню економічної ефективності підприємства.
43738. Обґрунтування роздільної технології збирання льону-довгунця з використанням льонопідбирача-молотарки ПМЛ-1 в Інституті луб’яних культур 1.64 MB
  Первинна очистка насіння здійснюеться на чотирьох машинах ОВС-25, великі партії насіння до посівних кондицій доробляються на двох лініях, одна з яких змонтована з послідовно підключених Петкусі-Гігантів, друга являе з себе комплекс КЗС-40, переобладнаний зерноочисними машинами фірми “Петкус”. Доробка машин малих парків насіння здійснюется на чотирьох Петкус-Суперах і одному Петкус-Гіганті.
43739. Исследование торговой деятельности малых предприятий розничной торговли продовольственными товарами магазина ООО «Эклар» 329.68 KB
  Организация малого предпринимательства в сфере торговли Понятие малого предпринимательства и этапы его развития Формы государственной поддержки малого предпринимательства Организация торговой деятельности малого предприятия в розничной торговле на примере ООО Эклар.
43740. Определение способов модернизации системы управления сбытом в ООО «Шебекинcкий Картон» 519.4 KB
  Комплекс мероприятий решений и действий по формированию ассортимента выпускаемой продукции и ценообразованию по формированию спроса и стимулированию сбыта реклама обслуживание покупателей коммерческое кредитование скидки заключению договоров продажи поставки товаров товародвижению транспортировке по инкассации дебиторской задолженности организационным материально-техническим и прочим аспектам сбыта. Таким образом в хозяйственной деятельности организации одним из основных вопросов являются сбыт реализация готовой...
43742. Расчет конструктивных схем двигателей класса тяги 12...18 тонн 1.58 MB
  Расчет газодинамических параметров КВД. Проработка конструкции КВД. Проработка конструкции статора КВД и направляющего аппарата 1й ступени. Расчет на статическую прочность рабочей лопатки 2й ступени КВД.
43743. Разработка конструкции компрессора высокого давления 1.6 MB
  В работе проведен сравнительный анализ конструкций компрессоров высокого давления двигателей класса тяги 1218 тонн выбрана конструктивная схема КВД выполнена детальная проработка конструкции. Проведены расчеты на прочность рабочей лопатки 2й ступени и промежуточного диска расчет лопатки 2й ступени на колебания расчет крепления направляющего аппарата 1й ступени КВД.1 Проточная часть КВД 15 1.5 Расчет газодинамических параметров КВД 17 1.
43744. Розрахунок гальм підйомно-транспортних машин та механізмів 9.76 MB
  Вантажопідйомні й транспортуючі машини є невід\'ємною частиною сучасного виробництва, тому що з їх допомогою здійснюється механізація основних технологічних процесів і допоміжних робіт. У поточних й автоматизованих лініях роль підйомно-транспортних машин якісно зросла, і вони стали органічною частиною технологічного встаткування, а вплив їх на техніко-економічні показники підприємства стало досить істотним.