К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя, страница 5
Описание файла
PDF-файл из архива "К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 5 страницы из PDF
!). вцсс(1) рте«1(1) 2Л. СИМВОЛЬНЫЙ ТИП (СНДК) Значениями типа СЬаг являются элементы конечного н упорядоченного множества символов. В каждой вычислительной системе такое множество обязательно есть — оно необходимо для связи с системой. Символы этого множества есть н на вводных, н на выводных устройствах.
К сожалению, не существует одного стандартного множества символов, поэтому н его элементы, н нх упорядоченность обязательно определяются при реализации (см. прнложение 6). Значения такого типа обозначаются одним снмволом) заключенным в одиночные кавычки (апострофы). Примеры: '*' 'Сг' '3' **" *Х'. (Если нужен сам апостроф, то он пишется дважды.) Возможно, что некоторые нз символьных значений не имеют такого «константного» представления. Мы полагаем, что вне завнснмостн от реализации для тнпз СЬаг справедливы следующие минимальные допущения: 1. Десятичные цифры от '0' до '9' упорядочены в соответствии с нх числовыми значениями н следуют одна за другой (напрнмер, зпсс ('5') = '6').
2. Могут существовать прописные буквы от 'А' до 'Х'1 если это так, то онн упорядочены в алфавитном порядке, но не обязательно следуют одна за другой (напрнмер, 'А' ( 'В'). 3. Могут существовать строчные буквы от 'а* до 'х'1 если это так, то онн упорядочены в алфавитном порядке, но не обязательно следуют ОЗна за другой (напрнмср, *а' ~ 'Ь'). Для отображения 'заданного множества символов на порядковые номера н обратно существуют две предопнсанные функции огг) н сЬг; будем называть нх функциями отображения ((гапз(ег) г ,и (с) дает порядковый номер символа С в упомянутом упорядоченном множсстве символов сйг (1) дает символ с поргщковым номером 1 2.
Концепции данных: простые типы данныи 2ь Очевидно, что функции огб и с)тг обратные по отношению друг к другу, т. е. санг(ог6(С)) = С и ог6(сЬг(1)) = 1 Более того, упорядоченность заданного множества определяется так, что С1 ( С2, если и только если огб(С1) ~ огб(С2). Такое определение можно распространить и на любую из операций отношения: =, <>„С, <=, »=, . Если через К обозначить одно из этих отношений, то С1тс С2, если н только если ого) (С1) тс огб(С2). Для аргументов типа Спас предописанные функции ргес) и зцсс могут быть определены таким образом: рге6(С) = сйг(огб(С)-1) зисс(С) = сйг(ог6(С)+1) Залсечание. Предшествующий данному либо следующий за ним символ зависит от указанного множества символов, 'поэтому оба этих соотношения справедливы только в том случае, когда предшествующий или следующий символ существует.
2.5. ВЕ)ЦЕСТВЕННЪ|й ТИН (КЕА!.) Значениями аесчественного типа являются элементы определя.емого реализацией подмножества вещественных чисел. Все операции над величинами вещественного типа — приближенные, их точность определяется реализацией (машиной), с которой вы имеете дело. Вещественный тип относится к простому типу, это нс ординальный тип. У вещественных значений нет ординального номера и для любого нз них не существует предшествующего и следующего значений. При условии, что хотя бы один из операндов — вещественного типа (другой может быть и целым), следующие операции дают вещественный результат: умножение / деление (оба операнда могут быть целыми, но результат всегда вещественный) + сложение — вычитание Существуют предописанные функции, дающие вещественный результат при вещественном аргументе: аьз(К) абсолютное значение К ьчс(К) К в квадрате, если результат не выходит за диапазон вещественных чисел.
30 Руководство для пользователя А зти предописанныеа функции дают веШественный результат при целом или вешественном аргументе: дает синус Х; Х выражено в радианах; лает косинус Х; Х выражено в радианах; дает выраженное в радианах значение арктангенса от Х; дает значение натурального (с оСнованием е) логарифма Лля Х, Х>0; лает значение экспонснцяальной функции (т. е. е в степени Х); дает значение корня квадратного Х, Х ) О. з)п(Х) соз(Х) агс(ап (Х) )п(Х) ехр(Х) ачг((Х) * В некотором смысле такие функции нельзя считать предописанными, т. е. заранее описанными: ведь это вообще не функции.
У функций в Паскале тип аргумента строго фиксирован. Раньше онн выделялись в совершенно особый класс —— стандартные, со своими собственными правилами. — Примеч. лер. ** Это предупреждение осталось от старого онисаннн, где вместо термина «простые» использовался термин «скалярные». Причем скалнрные типы лаже не классифицировались, а сразу жс перечислялись их составляюгцне. Далее, например, писалось, что в качестве индексов можно использовать значения простого типа. Теперешние же простые типы разбиты на два класса: вещественные и ордннальные, и в связи с индексацией упоминаются ординальные.
Поэтому предупреждение «повисает в павлухе». — Примеч. пер. Г1редупреждение»а. Хотя веШественный тип и относится к простым типам, тем не менее его не всегда можно употреблять там, где фигурируют другие простые типы (например, ординальные). В частности, к веШественным аргументам нельзя применять функции ргеб и зцсс.
Нельзя использовать значения вегцественного типа при' индексировании массивов, для управления в цикле с параметром, для определения базового типа множеств, для индексирования в операторе варианта. ЗАГОЛОВОК ПРОГРАММЪ| И РАЗДЕЛ ОПИСАНИЙ Любая программа состоит из заголовка программы и некоторого блока. Блок содержит раздел описаний, в котором определяются все локальные по отношению к данной программе объекты, и раздел операторов. Он задает действия, которые необходимо выполнять.над этими объектами.
Заголовок программы Р н с. Зд. Синтаксическан диаграмма длн Ргрограимы Р и с. 3.2. Синтаксическая диаграмма длн Блока Составной оператор Р и с. З.З. Сннтаксическнн диаграмма длн Раздела олераторов 32 Руководство для пользователя 3.!. ЗАГОЛОВОК ПРОГРАММЫ В заголовке программе дается иекоторое имя (виутри программы ие имеюшее какого-либо смысла) и перечисляются ее параметры. Оии обозначают объекты, сушествуюшие вие программы.
Через эти параметры программа взаимодействует с «виешиим миром». Такие объекты (обычио — файлы, см. гл. 9) называются внешними объектами. Каждый из параметров точно так же, как и обычная локальная переменная, должен быть описан в блоке, составляюшем саму программу. ргагтга Р и с. ЗЛ. Си»таксическая диаграмма дяя Заголовки ирогриммы 3.2. РАЗДЕЛ ОПИСАНИЯ МЕТОК Любой оператор программы Можно маркировать, поставив перед иим через двоеточие метку (тем самым появляется возможность ссылаться иа эту метку в операторе перехода) . Однако такая метка, прежде чем оиа будет использована, должна быть описана в разделе' описания меток. Этот раздел начинается со слова )аЬе1 и в общем случае имеет следующий вид: Р и с. 3.5. Синтаксическая диаграмма ддя Ригдели описиния меток Определяемая метка представляет собой целое число без знака, лежащее в диапазоне от 0 до 9999.
!7 ример: 1аЬе1 13, 00100, 99; 3. Заголовок арограимм и раздел онисиние ЗЗ З.З. РАЗДЕЛ ОПРЕДЕЛЕНИЯ КОНСТАНТ Определение константы вводит имя как синоним некоторой константы. В начале соответствующего раздела стоит слово сопзС, и он в общем случае имеет такой вид: Р ис. З.б. Синтаксическая диаграмма ддя Раздела оаределенил констант Под константой здесь подразумевается число, имя константы (возмонсно со знаком), отдельный символ или строка.
Р и с. 3.7. Синтаксическая диаграмма для Константа Использование имен констант делает программу более «читаемой» и способствует улучшению ее документируемости. Кроме того, это позволяет программисту сгруппировать в начале программы величины, зависящие от машины или характерные для данного примера: здесь они более заметны и нх легче изменить. Тем самым улучшается переносимость программ и их модульность. Пример: сапзС Анахадга = 6.02ЗЕ23, РакегеяВСЬ = 60; Вагдег Мунане = Тгае; 34 Руководство длл полвэовотелп 34 РАЗДГЛ ОП|тЕДЕЛЕНИЯ ТИПОВ Тип данных -в Паскале можно описывать непосредственно в описании переменных (см.
ниже) либо ссылаться на него через имя типа. В Паскале есть несколько мест, где тип можно задавать только с помощью имени. В языке не только предусмотрено несколько имен для стандартных типов, но и существует механизм— определение гила, позволяющий вводить для представления типа новое имя типа. Раздел, содержащий определения типов, начинается со слова 1уре и в общем случае имеет такой вид: Р н с. 3.3. Сннтвкснчсская Анаграмма для Ровдело определеннл типов Заметим, что конструкция Тип представляет простой, составной пли ссылочный тип и выглядит как имя типа, обозначающего уже существующий тип, либо как описание нового типа.
Оостсв тнп Р н с. 3.9. Синтаксическая диаграмма для Типа Примеры определений типов можно найти в последующих разделах. 3.3. РАЗДЕЛ ОПИСАНИЯ ПЕРЕМЕННЪ|Х Каждое встречающееся где-либо в программе имя переменной должно быть введено через описание переменной. Это описание текстуально должно предшествовать использованию переменной, исключение делается лишь для параметров программы. Описание переменной вводит имя переменной и связывает с нею тип данных, это делается путем перечисления имен, за которыми 3. Заголовок программы и раздел описаний 35 следует тип.
Раздел описания переменных начинается со слова уаг. Общий вид его таков: Р яс. 3.10. Спитак«вне«кая диаграмма дпя Раздела описинил перемвнныл Прайсе р: чаг Ново!, Ноо12, Но«13 Неа1 Со«по, 1 1п«ерег; Еоипй Воо1еап; Е111ег. Сааг, Каждое имя, перечисленное в заголовке программы в списке параметров и обозначающее внешний объект (обычно файл), кроме имен 1прп1 нлн Он(рп1, должно быть описано в разделе описания переменных этой программы. Имена 1прп1 илн Оп1рп1, если они перечисляются, автоматически описываются как текстовые файлы (см. гл. 9).