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


 

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

55011. Сохраним память про подвиг 5.26 MB
  ЦЕЛЬ: рассмотреть основной ход событий Великой отечественной войны; охарактеризовать роль и вклад украинского народа в борьбе с фашистскими захватчиками, определить основные последствия Великой отечественной войны для нашего государства...
55012. Влияние инвестиций на национальный объем производства. Мультипликатор инвестиций 43.97 KB
  Инвестиции – важный фактор экономического развития. При этом они подвержены действию особого мультипликационного механизма, умножающего их воздействие на рост валового национального продукта (ВНП).
55013. Похідна та її застосування 844 KB
  Мета уроку: навчальна мета: перевірити узагальнити систематизувати поглибити знання вміння навички учнів з теми; повторити та удосконалити знання правил і формул диференціювання елементарних функцій...
55014. Похідна як швидкість. Розв’язання задач прикладного характеру з застосуванням похідної. Похідна в математиці та фізиці 126.5 KB
  Мета уроку: Розкрити технологію розв’язання текстових фізичних задач із застосуванням похідної, дати уявлення про похідну як швидкість; систематизувати та поглибити теоретичні знання учнів; орієнтувати учнів на виявлення та вивчення багатогранності зв’язків між фізичними та математичними поняттями...
55015. Доба героїчних походів козаків. Петро Конашевич-Сагайдачний 102.5 KB
  Мета: розглянути напрями морських походів козаків; охарактеризувати діяльність гетьмана П.Актуалізація опорних знань учнів: фронтальна бесіда: Про кого ми вивчаємо у 8класіпро козаків; Хто такі козаки Які причини виникнення козацтва...
55016. Морські походи козаків. Гетьман П.Сагайдачний. Участь українського козацтва у Хотинській війні 74 KB
  Мета уроку: розкрити характерні особливості історії України першої половини ХVІІст. – «доби героїчних походів»; поглибити знання учнів про військове мистецтво українського козацтва; ознайомити учнів з військовою, суспільно-політичною та дипломатичною діяльністю видатного гетьмана Петра Конашевича-Сагайдачного...
55017. Використання надбудови. Пошук розв’язку електронних таблиць Microsoft Excel 466.5 KB
  В теоретичної частині роботи розглядається питання: Засіб Пошук розв’язку. Розв’язання задач з використанням функціональних можливостей електронних таблиць Microsoft Excel.
55018. Розв'язування показникових рівнянь 428 KB
  Мета: Систематизувати компетентність по розвязуванню показникових рівнянь. Виховувати наполегливість, вміння аналізувати, розвивати кмітливість. Обладнання: дошка, крейда, роздатковий матеріал.
55019. Інформація. Інформаційні процеси в системі. Апаратне забезпечення інформаційної системи 44 KB
  Мета: повторити і закріпити основні поняття вміння; поглибити розуміння учнями фактичного матеріалу: спонукати до самостійного опанування учнями предмета; розвивати пізнавальну активність увагу пам’ять уміння аналізувати;...