Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
32
Добавлен:
12.03.2016
Размер:
3.29 Mб
Скачать
      1. Переполнение ячеек памяти

После выполнения программы

VARi:Byte;

BEGIN i:=250; WriteLn(i); i:=i+10; WriteLn(i) END.

мы увидим на экране числа 250 и 4. А почему не 250 и 260? Потому что тип Byte представляет только числа от 0 до 255. Если в процессе выполнения программы значение переменной вышло за диапазон своего типа, Паскаль не замечает ошибки, а в соответствующей ячейке оказывается ерунда. Это касается всех типов. Впрочем, ценой некоторой потери скорости Паскаль можно легко настроить на проверку выхода за диапазон (см. приложение).

      1. Дерево типов

Паскаль предоставляет солидные возможности для конструирования новых типов. Так, если мы пишем VAR a : array[1..10] of array [2..5] of set of Byte, то имеем в виду, что переменнаяaявляется массивомarray[1..10], который сконструирован из массивовarray [2..5], каждый из которых сконструирован из элементов, являющихся множествамиset, каждое из которых сконструировано из элементов типаByte.

Схема, приводимая ниже, демонстрирует, какие типы из каких можно конструировать. Например, файлы можно конструировать из строк, а записи из массивов. А вот множества из вещественных чисел конструировать нельзя.

      1. Синтаксисические диаграммы Паскаля

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

Есть два самых распространенных способа записи синтаксиса. С одним из них я вас познакомил в 1.2, другой использует так называемые синтаксические диаграммы. Здесь я буду использовать второй метод плюс еще третий - обычный словесный (когда понятность будет достаточным возмещением за нестрогость).

Синтаксическую диаграмму рассмотрим на примере. Все мы знаем, что имя - это цепочка букв, цифр и знаков подчеркивания, не начинающаяся с цифры. Это обычное словесное определение. А вот это же определение в виде синтаксической диаграммы:

Пользоваться синтаксической диаграммой нужно так. Заходите в диаграмму по стрелке. Оказавшись внутри «домика», записывайте на лист бумаги в строчку то, что там указано. Предположим, в нашем случае вы зашли в «букву». Значит, записывайте любую букву, например, N. Затем продолжайте путешествие строго по стрелкам. Оказавшись на развилке, поворачивайте в любую сторону, разрешенную стрелками. Снова оказавшись в «домике», приписывайтесправав строчку то, что там указано. Пусть, например, следующий ваш домик «цифра». Вы должны приписать справа к букве любую цифру, например,8. ПолучитсяN8. И так далее. Когда надоест, добирайтесь до выходной стрелки. Вы гарантированно получите правильное имя.

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

Также во избежание затемнения смысла подробностями диаграммы будут не везде до конца конкретны. Например, в диаграмме имени я писал “буква”, а надо было – “латинская буква”.

Опережающее описание процедуры или функциисм. в 6.6

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]