Составитель

УДК 681.3

ББК 32.973.26–018.2.75

Типы данных языка Турбо Паскаль: Методические указания к лабораторному практикуму по курсу «Информатика и программирование»/ Уфимск. гос. авиац. техн. ун-т; Сост. .– Уфа, 2004.– 55 с.

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

Предназначены для студентов специальности «Прикладная информатика в экономике».

Библиогр.: 3 назв.

Рецензенты: ,

© Уфимский государственный авиационный

технический университет, 2004

СОДЕРЖАНИЕ

1. ЦЕЛЬ РАБОТЫ4

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

2.1. Понятие типа данных

2.2. Простые типы

2.3. Строки

2.4. Структурированные типы данных

2.5. Совместимость типов

2.6. Приведение типов. 44

3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

4. ТРЕБОВАНИЯ К ОТЧЕТУ

5. КОНТРОЛЬНЫЕ ВОПРОСЫ. . 46

6. ВАРИАНТЫ ЗАДАНИЙ

СПИСОК ЛИТЕРАТУРЫ. 55

ЛАБОРАТОРНАЯ РАБОТА

ТИПЫ ДАННЫХ ЯЗЫКА ТУРБО ПАСКАЛЬ

1. ЦЕЛЬ РАБОТЫ

Целью настоящей работы является изучение типов данных и методов применения различных типов данных при программировании в среде Turbo Pascal.

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

2.1. Понятие типа данных

Тип однозначно определяет, как будет интерпретироваться та или иная информация; в результате исключаются попытки проводить над ней неприемлемые операции. Например, если в программе фигурирует переменная, имеющая смысл "количество штук", понятно, что ее значение не должно представлять собой дробное число. Чтобы этого избежать, такой переменной при объявлении должен быть присвоен один из целочисленных типов (например, Integеr). Также недопустимы арифметические операции над символами, чтобы этого не случилось, соответствующие переменные должны принадлежать символьному типу (Сhar). А если в программе имеется переменная, способная принимать только значения, имеющие смысл "Да" или "Нет" (либо "Правда" или "Ложь”), чтобы обеспечить правильную интерпретацию ее значения, эта переменная должна принадлежать логическому типу (Вооlеаn). Иными словами, принятая в Тиrbо Раsсаl типизация переменных направлена на повышение надежности программ.

НЕ нашли? Не то? Что вы ищете?

2.2. Простые типы

К простым относятся такие типы данных, как вещественные, целочисленные, символьный, логический, перечислимый и интервальный (или диапазон). Первые четыре из упомянутых (вещественные, целочисленные, символьный и логический) относятся в к стандартным типам данных. А перечислимый и интервальный ­­– к типам, определяемым пользователем. Для указанных типов возможна еще одна градация. Все они, за исключением вещественных, относятся к порядковым типам данных.

2.2.1. Вещественные типы. К вещественным типам данных, используемых в языке программирования Тurbо Раsсаl, относятся Rеаl, Singlе, Double, Ехtended и Соmр. Между собой они отличаются диапазонами допустимых значений (т. е. значений, которые могут принимать переменные этих типов). Для хранения переменных того или иного вещественного типа требуются различные объемы памяти. Соответствующие характеристики вещественных типов представлены в табл.1.

Таблица 1

Характеристики вещественных типов, принятых в Тurbо Раsсаl

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

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

Число значащих

цифр мантиссы

Требуемая память

Real

2.9E-39..1.7E38

11-12

6

Single

1.5E-45..3.4E38

7-8

4

Double

5.0E-324..1.7E308

15-16

8

Extended

1.9E-4951..1.1E4932

19-20

10

Comp

2E+63+1..2E+63-1

19-20

8

Вот как выглядят описания переменных вещественных типов:

vаr

а:rеаl; b:single; с:double; d:extended; е:соmр;

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

Почему бы не назначать для всех переменных наибольший диапазон допустимых значений, подходящий для всех случаев? Такой подход не годится потому, что для содержания переменных разных вещественных типов выделяется различный объем памяти (см. табл.1), и это оказывает влияние на быстродействие программы. В самом деле, на обработку 4-байтового числа уйдет больше времени, чем 1-байтового. Поэтому в зависимости от диапазона значений, которые может принимать та или иная переменная, следует выбрать для нее наиболее подходящий тип.

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

2.2.1.1. Применимые операции. К вещественным числам применимы четыре арифметических действия; полученный при этом результат также будет вещественным числом. Речь идет о таких действиях, как сложение (+), вычитание (-), умножение (*) и деление (/). В одном выражении могут присутствовать переменные как одного, так и разных вещественных типов. Например, объявленные выше переменные А, В, С, D и Е могут участвовать в следующих выражениях:

a+b+е; с-d; (а*b+с*d)/2; е/(с+d);

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

Что касается операций сравнения, то выражения, в которых применены эти операции, дают логический результат. Например, если A=333.44, а В=32.55, то выражение а>b даст результат ТRUЕ, а выражения а<b и а=b – результат FALSE. К вещественным значениям применимы все операции сравнения, эти операции представлены в табл.2.

Любая из этих операций даст логический результат.

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

Таблица 2

Операции сравнения

Значение

Операция

=

Равно

<> 

Не равно

Больше

Меньше

>=

Больше или равно

<=

Меньше или равно

2.2.1.2. Применимые стандартные подпрограммы. К переменным и значениям, принадлежащим вещественному типу, применимы все математические функции, а также две функции преобразования типов – Round и Тrunc.

2.2.2. Порядковые типы. Данное понятие включает в себя все целочисленные, символьный логический, перечислимый и интервальный типы.

2.2.2.1. Целочисленные типы. К целочисленным относятся такие типы данных, как Integеr, ShortInt, LongInt, Вуtе и Word. Так же, как и с вещественными типами, между собой они отличаются диапазонами допустимых значений и объемом памяти, требуемой для содержания переменных этих типов. Соответствующие характеристики для перечисленных типов представлены в табл. 3.

Существование в Тurbо Раsсаl нескольких целочисленных типов обусловлено теми же причинами, что и для вещественных типов, о которых шла речь выше. В самом деле, если в некоторой программе имеется переменная, определяющая порядковый номер дня в году, понятно, что допустимые для нее значения лежат в диапазоне от 1 до 366. В этом случае объявить данную переменную как принадлежащую типу Longint нерационально, а типы Shortint и Вуtе здесь просто не подходят, поскольку значения переменной могут выйти за пределы соответствующих диапазонов. Для этой переменной наиболее подходят типы Integеr и Word, причем последний предпочтительнее, поскольку наша переменная может принимать только положительные значения (т. е. исключаются ситуации, когда переменная случайно может принять отрицательное значение).

Таблица 3

Характеристики целочисленных типов

Целочисленный тип (байт)

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

Требуемая память

Integеr

-32768..32767

2

ShortInt

-128..127

1

LongInt

-..

4

Вуtе

0..255

1

Word

0..65535

2

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

В Тurbо Раsсаl, помимо переменных и констант, явно указываемые в программе числа тоже разделяются на целые и вещественные. Если в записи числа использована точка, то оно вещественное; если точки нет – число целое.

Применимые операции

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

Кроме обычных арифметических операций, к целочисленным значениям в Тurbо Раsl применимы две специальные операции деления, обозначаемые зарезервированными словами DIV и МОD. Что собой представляют эти операции? Предположим, в программе определены две целочисленные переменные: А и В. Тогда результатом операции a div b будет целая часть частного от деления А на В. Например:

33 div 2=16;

3 div 7=0;

8 div 2=4;

А результатом операции а mod b будет остаток от деления А на В (не путать остаток с дробной частью), например:

33 mod 2=1;

3 mod 7=3;

8 mod 2=0;

Что касается операций сравнения, то здесь все обстоит так, как и с вещественными значениями.

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

Применимые стандартные подпрограммы

К переменным и значениям, принадлежащим одному из целочисленных типов, применимы процедуры и функции для работы с порядковыми типами, математические функции, а также некоторые функции преобразования типов (такие как Chr, High, Low, Ord).

2.2.2.2. Символьный тип. В Тurbо Раsсаl принят единственный стандартный символьный тип данных – Chаr. Переменные этого типа предназначены для хранения отдельных символов – букв, цифр и специальных знаков. Например, если переменная Symbol принадлежит типу Char, то оператор Symbol:='В' присвоит этой переменной значение, соответствующее букве "В". А если этой переменной присвоить значение '3', то необходимо понимать, что это всего лишь символ, а не число, над которым можно производить арифметические действия. К символьным значениям относятся все символы таблицы ASCII, кроме символа "штрих" ('), который используется при явном указании в программе значения типа Chаr.

Применимые операции

Над значениями типа Chаr возможны операции сравнения =, <>, > >=, <, <= (см. табл.2). Причем они дают тот же результат, что и будучи применены к кодам соответствующих символов. Например, 'а'<'b' точно так же, как и 97<98 (97 – это код символа ‘а’, а 98 – код символа 'b' – см. таблицу ASCII). Результатом применения операций сравнения к значениям типа Chаr будет значение типа Вооlеаn (так же, как и при применении этих операций к значениям других типов).

Применимые стандартные подпрограммы

К переменным и значениям, принадлежащим символьному типу, применимы процедуры и функции для работы с порядковыми типами, а также некоторые функции преобразования типов (такие как High, Low, Оrd). Кроме упомянутых выше, к символьным значениям применима функция UpCase, преобразующая аргумент (значение типа Chаr) в символ верхнего регистра.

2.2.2.3. Логический тип. Переменные типа Вооlеаn принимают значения TRUE и FALSE (правда и ложь), которые также могут быть представлены в виде двоичных цифр – соответственно 1 и 0.

Применимые операции

Над значениями логического типа допустимы операции сравнения (см. табл.2), причем считается, что TRUE больше FALSE. Возможно, такое утверждение вызовет недоумение, однако если эти логические значения заменить эквивалентными им двоичными цифрами, все становится на место. Конечно же 1>0.

К логическим значениям также применимы логические операции, которые перечислены в табл.4.

Таблица 4.

Логические операции

Обозначение операции

Выполняемое действие

АND (И)

Логическое умножение

ОR (ИЛИ)

Логическое сложение

ХОR (исключающее ИЛИ)

Сложение по модулю 2

N0T (НЕ)

Логическое отрицание

Предположим, в программе определены переменные А и В, принадлежащие типу Вооlеаn. Результаты применения к этим переменным (при различных значениях) логических операций демонстрирует табл. 5.

Таблица 5

Результаты применения логических операций

Значения

Операции

а

B

а аnd b

а оr b

а хоr b

nоt а

false

false

false

false

false

true

false

true

false

true

true

true

true

false

false

true

true

false

true

true

true

true

false

false

Здесь, вероятно, уместно напомнить, что результат типа Вооlеаn возвращают операции сравнения, примененные к вещественным, целочисленным и символьным значениям. Например, 4>3 имеет значение TRUE; 5.33<>3.22 даст значение ТRUЕ; 'а' >'b' имеет значение FALSЕ.

Применимые стандартные подпрограммы

Логический тип относится к перечислимым типам, причем переменные и значения типа Вооlеаn могут принимать только два значения: TRUE и FALSЕ (TRUЕ>FALSЕ).

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

2.2.2.4. Перечислимый тип данных. В Тurbо Раsсаl допускается образование новых типов данных путем перечисления всех допустимых значений. Каждое значение представляет собой некоторый идентификатор, а перечень таких идентификаторов заключается в круглые скобки. Например, если в программе фигурируют переменные, значения которых соответствуют дням недели (допускается всего семь значений), то соответствующий тип данных и переменные можно (и целесообразно) описать следующим образом:

tуре

dау = (Sundау, Моndау, Тuеsdау, Wednesdау, Тhursdау, Friday, Saturdау);

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4