Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 176

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 176 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 1762019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 176)

Единственными допустимыми операциями для символьных строк являются операции отношения (=, <, > и т. и.), применяемые к строкам одинаковой длины. Результат определяется в соответствии с упорядочением символов в перечислении, реализующем тип с!таг (см, обсуждение ранее символьного типа данных), Допускается присваивапие значения переменной, представляющей символьную строку, но это значение должно быть символьной строкой той же длины. Символьные строки могут быть выведены в текстовые файлы, но читаются они посимвольно в обычную переменную или массив типа с!тат.

Записи. Базовый тип данных запись достаточно подробно описан в разделе 6.1.6. Множества. Рааса! предоставляет ограниченную форму типа данных ннонест во. Объект данных этого типа состоит из множества компонентов, каждый их которых принадлежит некоторому базовому типу данных, который ограничен перечислением и поддиапазоном целых чисел, содержащим количество значений, ограниченное некоторым максиллальным числом.

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

Синтаксис для объявления объекта данных типа ннонество следующий; ннв типа = вев от базовый тип 640 Приложение, Обзоры языков (базовый тип был описан ранее). Затем переменная типа иножество может принимать значения, соответствующие любому подмножеству значений базового типа, включая пустое множество (записывается как [)). Литеральная константа, представляющая множество, может быть записана и следующем виде: [иа1ое...на1ое) где на1це — либо единичное значение, либо подмножество значений из базового множества. Для множеств предусмотрены следующие операции: объединение (синтаксически обозначается как н), пересечение (обозначается через *) и разность (-).

Также для множеств определены операции отношения =, <>, <- и >=, причем две последние обозначают проверку вхождения одного множества в другое (например, запись Я <= В означает: является ли Я полмножеством В?). Чтобы проверить, является ли конкретное значение элементом множества, используется операция )п. Например, 5орп ~п 5 означает: входит ли значение 5орй в множество, являющееся текущим значением переменной 5? Файлы и ввод-вывод. Последовательные файлы — это единственная файловая структура, предусмотренная в Равсай Для объявления файла используется синтаксис 111е от тип конпонентов где тип коипонетов может быль любым типом, за исключением файлов и указателей.

Таким образом, помимо объектов ванных элементарных типов компонентами файла могут быть массивы, записи и другие объекты данных структурированных типов. Первая строка программы должна иметь слелуюший синтаксис ргодгав иня програнни 1список файлов) где список файлов — ато список имен файлов из некоторой внешней для программы среды. Эти файлы должны быть локально объявлены в основной программе. Другие локальные файлы могут быть объявлены в программе или в подпрограммах так же, как и переменные любого лругого типа. Эти локальные файлы можно использовать в качестве временных файлов, куда в одной части программы записывается информация, которая затем считывается в другой ее части.

Локальные файлы исчезают при выходе из программы или подпрограммы, в которой онн были объявлены, как и любой другой локально определенный объект в Равсай При объявлении файла сто имя используется как имя буферной переменной, ссылка на которую выглядит как иия файла?. Эта буферная переменная не объявляется явным образом, но в программе можно на нее ссылаться и использовать в операторах присваивания. Например, если переменная г объявлена как Е: Гт1е ат 1птерег то внутри той программы, тле содержится это объявление, операторы присваивания р') = 2ик = рфбудутвполнекорректными. Ьуфернаяпеременная — этообъект данных, прелставляютцпй локальную временную область памяти лля одно~ о компонента файла.

Две предопределенные процедуры ое1 и рц) используются лля перемещения лапных из файла в буферную переменную (ое~) н нз буферной переменной в файл (рой). П.В. Рааса! 641 Определяемые пользователем типы данных В Рааса! новый тип данных создается с помощью объявления: Суре иня типа определение типа Определения типов в Рааса! используются только во время компиляции. Компилятор вносит информацию, полученную из определений типов, в свою таблицу символов, а затем использует ее для осуществления статической проверки типов в ссылках на переменные и для компоновки записей активаций подпрограмм. Во время выполнения программы определения типов отсутствуют.

В некоторых случаях считается, что две переменные относятся к одному типу данных, если в их объявлениях указано одно и то же имя типа. В других случаях считается, что переменные относятся к одному типу, если типы, фигурирующие в их объявлениях, имеют одну и ту же структуру, Так, для определения того, относятся ли две переменные к одному и тому же типу, в Разса! используется объединение двух понятий эквивалентности типов — эквивалентность имени и эквивалентность струкп)уры.

Эквивалентность имени используется в основном для определения того, совпадают ли типы формальных и фактических параметров при вызове подпрограммы; в большинстве других ситуаций используется структурная эквивалентность. П.8.2. Управление последовательностью действий Выражения В Рааса! испол) чуются четыре уровня старшинства операций для вычисления выражений. Их иерархия в порядке убывания приоритетов выглядит так: поС *, !, Мч, воо. апб +. †, ог <» ья « , =, > . 1П 3 В пределах одного уровня иерархии члены вьгражения вычисляются слева направо. Обратите внимание на то, что по сравнению с обычным вычислением выражений этот способ выглядит несколько противоестественно. Обычно приоритет операции апс) ниже, чем приоритет арифметических операций.

Например, следующий фрагмент: чаг А,В:Ьоо1вап; 11 А апб В Га!зе СПеп ... будет интернрстирован компилятором Рааса! как 1Г (А апб В)=уа1зе Шеп ... хотя, вероятно, имелось в виду следующее; 11 А апб [В-Га1ве) Феп ... Это ие опечатка.' здесь, судя по всему, авторы выделили три ми;рации сра вин ~ия для множеств (<=, >- и )п), пазтому символы употреблены дввждьь — Примеч. науч. ред. 642 Приложение. Обзоры языков Условие в первой интерпретации будет выполнено, если либо А, либо В имеют значение Га15е, В то ВрЕМя Как Во Второй интерпРетации предполагается, что А имеет значение Ьгые, а  — СО15е.

Поэтому лучше, во избежание подобной путаницы, всегда использовать скобки в логических выражениях. В выражениях Равса1 не выполняется никакого преобразования типов, за исключением преобразования целочисленных операндов в вещественные, когда это следует из контекста. Операторы Составные операторы. В Равса! составной оператор ограничен конструкцией Ьед1п ... епс: Ьешп оператор оператор епп Условные операторы. В Равса! имеются два условных оператора: т 1 и саве, Оператор т й Простой условный оператор с одной и двумя ветвями выглядит следующим образом: тт логическое вырвиение слеп оператор тт логическое вырвиение тлел оператор е1ве оператор Если две зти формы объединены, как, например, в следующем случае: тт А = О Феп тт В < С слеп 5, е1ве 5,: то возникающая неоднозначность, которая обсуждалась разделе 8.3.2, всегда раз- решается таким образом, что часть е1 ве всегда соотносится с ближайтпим предше- ствующим несогласованным Ьйеп.

Оператор саве. Оператор саве имеет следующую форму: саве вырвиение от константа оператор, константе: оператор епо где константы представляют возможные значения выракении. При выполнении оператора саве вычисляется выражение, расположенное в начале этого оператора, и полученное значение используется для определения того, какой из следующих операторов должен выполнятъся. Если в результате вычисления выражения получается значение, которое не равно ни одной из констант оператора саве, то эта ситуация рассматривается как ошибка времени выполнения программы, Операторы цикла. В Равса1 имеется три вида операторов цикла.

В двух основных операторах, ыМ1е и гереаг, проверка условия окончания цикла проводится перед очередной итерацией (ыМ1е) или после каждой итерации (гереаг). Синтаксис этих операторов следуюШий; ны 1е логическое вырвкение Оо оператор гереат послеловвтЕльность опЕратОРов опттт логическое вырвкение В обоих случаях тело цикла может быть представлено последовательностью операторов, иодля оператора ыЬ11е требуется явным образом определить тело цикла с помоШью составного оператора Ьед1п ., епсС П.8. Рааса! б43 Третий впд операторов цикла — это цикл тог, в котором заданное число итераций сопровождается последовательным увеличением или уменьшением счетчика.

Синтаксис обеих форм оператора Еог следующий: тог простая перененная :- начальное значение Со нонечное значение Со оператор тог простая перененная := начальное значение Всхпто конечное значение Со оператор Здесь форма со указывает, что после каждой итерации простая перененная (счетчик) возрастает на единицу, а форма Осхпьо указывает на соответствующее уменьшение этой переменной иа единицу. Другие варианты увеличения или уменьшения счетчика в Рачса! пе допускаются. Начальное и конечное значения задаются произвольными выражениями, которые вычисляются при входе в цикл. Внутри цикла запрещается прнсваивание каких-либо значений переменной, контролирующей итерации. Конструкции, подверженные ошибкам.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее