Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Здесь рассмотрим такие простые или порядковые типы данных как: перечисляемые и типдапазон.

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

Выше было отмечено что любое данное характеризуются своими стандартными типами данных.

В языке Turbo Pascal предусмотрен механизм создания новых типов даны, благодаря чему общее количество типов, используемых в программе, может быть сколь угодно большим

Такие нестандартные типы называются перечисляемыми типами.

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

Например :

Type

day = (sat, sun, mon, thi); Zet =(crasn, see, sin);

К сожалению в Turbo Pascal нельзя использовать кириллицу в идентификаторах значений.

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

В последним случае должна использоваться например такая связка:

Type

mas = array [1..9]_of_real; {описание типа

массива} var

a: mas; {выделение памяти для массива} Другими словами, массив а имеет нестандартный

тип mas.

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

Turbo Pascal также предоставляет возможность определять собственные типы данных, относящиеся как и предыдущие перечисляемые к нестандартным типам. При этом диапазон охватывает некоторое подмножество значений определенного порядкового типа (целые, логические, символьные и перечисляемые), который в данном случае будет теперь называться базовым типом. Иными словами, диапазон определяет интервал(границы – min и max) значений , допустимых для порядковой переменной; это дает возможность Turbo Pascal выявлять случаи, когда переменным присваиваются значения, лишенные смысла в программируемой задаче.

Для того, чтобы определить (объявить) типдиапозон, также как и любой иной новый (нестандартный) тип данных, необходимо ввести соответствующее описание (описатель), начинающийся с зарезервированного слова type. Следующий пример иллюстрирует объявление двух типовдиапазонов, а также переменных этих типов (после var):

Type

Letter = ‗A‘..‘Z‘;

DaysLnMonth = 1..31; Var

NextChar:Letter; {NextChar – прописная буква} InDay:DaysInMonth; {InDay – целое <=31}

Первый тип – диапазон Letter, использует в качестве базового тип Char, поэтому значение, соответствующее любому символу от ‗A‘ до ‗Z‘ включительно, может быть присвоено переменной типа Letter(NextChar). Компьютер может отображать сообщение об ошибке и прекратить выполнение программы, если попытаться в программе присвоить переменной типа Letter значение, соответствующее какому-либо иному символу.

Например, если

NextChar:=‘a‘,

то данный оператор присваивания станет причиной ошибки компиляции, поскольку ‗a‘ – это значение не принадлежащее типу Letter.

Второй выше объявленных типов – диапазонов, DaysInMoth. в качестве базового использует тип Integer.

Например, переменная типа DaysInMoth предназначена для содержания числа, соответствующего дню месяца – целочисленного значения от 1 до 31 включительно.

Таким образом, например, оператор

Readln(InDay)

позволит ввести с клавиатуры некоторое значение(число) и присвоит его значение переменой

InDay, принадлежащей типу DaysInMonth.

Базовый тип для типа – диапазона определяются двумя значениями (min и max), которые задают диапазон. При этом порядковый номер первого значения должен быть меньше или равен порядковому номеру второго значения.

Вэтом случае переменным, принадлежащим типу тип-диапозон могут быть присвоены значения от минимального значения до максимального включительно. Значения min и max должны принадлежать одному и тому же порядковому базовому типу.

Отметим, что min и max значения могут представлять собой идентификаторы констант, принадлежащих тому же типу данных.

Если программа попытается присвоить переменной, принадлежащей тип-диапозону, слишком маленькое или слишком большое значение(меньшее min

ибольшее max), будет зафиксирована ошибка Range check error(ошибка проверка диапазона). То же самое произойдет, если переменной, принадлежащий типудиапазону, будет присвоена неподходящая константа. В этом случае TurboPascal при компиляции программы отобразит сообщение о синтаксической ошибке Constant out of range (константа не принадлежит диапазону).

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

Взаключение отметим, сто в TurboPascal необязательно тип-диапазон описывать в разделе Type, а можно его указывать непосредственно при объявлении переменной например:

Var

Date: 1...31; month:1…12; Ichr:‘A‘…‘Z‘;

Строковой тип

Обособленно от других типов строковый тип string(см.рис.4.3.). Тип string(строка) в языке TurboPascal широко используется для обработки текстов. Например, часто возникает необходимость вставить один или несколько символов в имеющуюся строку, удалить или заменить часть строки, осуществить поиск подстроки или объединить две строки, создав при этом одну длинную строку. Строковой тип во многом похож на одномерный массив символьный Array 0..N _of_char, однако, в отличие от последнего, количество символов в строке – переменной может меняется от 0 до N, где N максимальное количество символов в строке.

Значение N определяется объявлением типа String(N) и может быть любой константой порядкового типа, но не больше 255. TurboPascal разрешает не указывать N, в этом случае длина строки по умолчанию принимается максимально возможной – 255.

Описание переменных строкового типа можно осуществить в два этапа, например:

Const

Capacity = co; Type

StringType = String(Capacity);

Источник: https://studfile.net/preview/16565609/