Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Интервальный тип пользователяСодержание книги
Поиск на нашем сайте
Интервальный тип задает границы допустимых значений для переменной и обеспечивает контроль выхода значения за установленные границы с прерыванием программы. Эти границы записываются в виде двух констант (символьного или числового типа, но не вещественного), причем первая константа должна быть меньше второй. Примеры задания: 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 и 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; просмотров: 148; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.83.202 (0.006 с.) |