Интервальный тип пользователя 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Интервальный тип пользователя



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

Примеры задания:

TYPE

hour = 0..23;

kurs = 1..6;

letter= a..z;

VAR

NumberK: kurs;

LunchTime,Supper,Dinner: hour; slovo:array[1..20] of letter;

Часто интервальный тип задают границами в виде констант: CONST

MinDay =1; { минимальное значение дня }

MaxDay =365; { максимальное значение дня }

TYPE

day = MinDay..MaxDay; { тип 'day' задает возможные значения }

VAR

BirthDay: day; { переменная может содержать только целые числа в диапазоне от 1 до 365 }

Перечисляемый тип пользователя

Перечисляемый тип позволяет задать все возможные значения, которые может принимать переменная. Эти значения должны быть перечислены через запятую и заключены в круглые скобки. Для хранения в памяти ЭВМ под переменную перечисляемого типа выделяется 1 байт, т.е. в списке не может быть более 255 значений (констант). В качестве значений могут быть выступать любые имена, написанные по правилам Паскаля, и не встречающиеся в качестве имен переменных, типов, и в двух списках одновременно.

 

Примеры:

TYPE

language = (C,Pascal,Fort,Basic,Fortran,Ada,Modula);

gas = (N,O2,CO2,N20,CH4);

VAR

TextType: language;

Emission,Pollutant: gas;

RadioIsotop: (St_90,I_133,B_137,U_235,U_238,Pu_242);

В последней строке заведена переменная перечисляемого типа без определения имени типа.

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

Emission:= O2;

Pollutant:= N2O;

TextType:=Basic;

при этом недопустимы операторы:

Pollutant:=1;

RadioIsotop:=CH4;

Разрешены операции сравнений на "равно", "больше", "меньше" и т.д. в соответствии с порядковыми номерами заданных значений в списке перечислений. Так, при выполненных операторах присваивания, написанных выше, Pollutant > Emission, так как N2O идет в списке после O2, а результатом операции сравнения:

TextType = Basic

будет значение TRUE (истина).

Выражения и константы перечисляемого типа можно использовать в операторах переключателях "case" (примеры см. в разделе описаний операторов).

Важно помнить, что для переменных перечисляемого типа не предусмотрены стандартные операторы ввода и вывода, т.е. нельзя написать:

Read(Emission) или Write(CO2).

При работе с данными этого типа часто используются стандартные функции Паскаля Pred(), Succ() и Ord(), которые будут описаны ниже.

Лекция 8

Глава 3. Встроенные функции

Понятие и классификация типов функций

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

Все функции обычно классифицируют по трем аспектам.

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

Во-вторых функции делятся по назначению: например для реализации стандартных математических функций, или для обработки строк, или для работами с файлами и т.д.

Наконец последним аспектом классификации является тип получаемого результата: целочисленное значение, или вещественное число двойной точности или адрес ячейки памяти и т.д.

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

Математические функции

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

 

Таблица 5. Встроенные математические функции Турбо-Паскаля

Функция Тип результата Тип результата Назначение
Abs(X) Числовой Как аргумент Абсолютное значение аргумента
Arctan(X) Вещественный Вещественный Арктангенс аргумента (в радианах)
Cos(X) Вещественный Вещественный Косинус (аргумент в радианах)
Exp(X) Вещественный Вещественный Экспонента Х (е в степени Х)
Frac(X) Вещественный Вещественный Дробная часть вещественного аргумента
Int(X) Вещественный Вещественный Целая часть вещественного аргумента
Ln(X) Вещественный Вещественный Натуральный логарифм веществ.аргумента
Sin(X) Вещественный Вещественный Синус (аргумент в радианах)
Sqr(X) Числовой Как аргумент Квадрат аргумента
Sqrt(X) Вещественный Вещественный Квадратный корень веществ. аргумента

 

При обращении к функции в качестве аргумента (Х) можно указывать константу, имя переменной или выражение, но обязательно вещественного типа (для Abs и Sqr можно и целого типа). Например:

Sin(1.56), Cos(Alfa), Exp(3.0-2.2*Y), Sqrt(A[i,j]+Abs(Z[1]))

Функции преобразования типов

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

Chr(X) - преобразование ASCII-кода в символ. Аргументом должно быть целое число в диапазоне (0..255). Результатом является символ, код которого равен аргументу. Если число не входит в диапазон, функция просто не вычисляется без всяких сообщений.

High(X) - получение максимального значения некоторой величины, определяемой аргументом. (Работает начиная с версии 6). Если аргументом является величина перечисляемого типа, выдается ее максимально возможное значение, если аргументом является имя массива - возвращается максимальное значение индекса, если строка - возвращается объявленный при описании размер строки.

Low(X) -получение минимального значения некоторой величины, определяемой аргументом. (Работает начиная с версии 6). Если аргументом является величина перечисляемого типа, выдается ее минимально возможное значение, если аргументом является имя массива - возвращается минимальное значение индекса, если строка - возвращается 0.

Odd(X) - проверка четности аргумента. Аргумент - целочисленное значение любой точности, может быть беззнаковое. Результат -логическое значение TRUE, если аргумент нечетный и FALSE в противном случае.

Ord(X) - преобразование любого порядкового типа в целый. Аргументом может быть любой простой тип, кроме вещественного. Если аргумент - целое - результат равен аргументу, если символьный, логический, перечисляемый - результат равен его порядковому номеру в полном списке значений (нумерация начинается с нуля). Тип результата - LongInt.

Pred(X) - нахождение предыдущего значения величины Х. Аргументом может быть любая перечислимая величина. Возвращается величина того же типа, что и аргумент, но со значением, предшествующим значению аргумента. Например, для числового аргумента Pred(12) равно 11, для символьного: Pred('D') равно 'C'. Если функция вычисляется от самого первого элемента последовательности значений, возникает состояние ошибки.

Round(X) - округление вещественного значения до ближайшего целого. Аргумент должен быть вещественного типа, результат имеет тип LongInt. Если округленное вещественное значение не входит в допустимый диапазон LongInt (т.е. превышает по модулю 2.147 миллиарда), возникает ошибка.

Trunc(X) - приведение вещественного значения к целому отбрасыванием дробной

части. Типы аргумента и результата - как и у функции Round(X).

Succ(X) - нахождение последующего значения величины Х. Типы аргумента и

результата - как у функции Pred. Если функция вычисляется от самого

последнего элемента последовательности значений, возникает состояние ошибки.

Функции работы со строками будут описаны позднее.


Лекция 9

Глава 4. Выражения



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 114; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.107.90 (0.009 с.)