Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo_Pascal_lectures.doc
Скачиваний:
5
Добавлен:
23.03.2015
Размер:
190.46 Кб
Скачать

В.В. Беликов

Лекции по курсу информатики и основ вычислительной техники

Особенности системы программирования Turbo Pascal

В данном цикле лекций коротко рассматриваются некоторые особенности синтаксиса языка Turbo Pascal, предложенного фирмой Borland для MS DOS. Описание ни в коей мере не является полным. В основном рассматриваются отличия языка Turbo Pascal от стандартного языка Паскаль в описании его автора – Никласа Вирта. Назначение цикла – знакомство с двумя концепциями современного программирования, реализованными в системе программирования Turbo Pascal – модульность и объектно-ориентированное программирование. Изложение ведется на основе версии 6.0, в предположении, что слушатели (читатели) освоили стандартный язык Pascal. Но основные сведения применимы также к версиям 5.5 и 7.0.

  1. Некоторые особенности языка TurboPascal

    1. Расширения базового синтаксиса

Алфавит. Дополнительные символы алфавита: @ $ # _.

Знак подчеркивания ("_") относится к буквам, то есть, он может употребляться в именах, и имя может начинаться с этого знака.

Ключевые слова. Дополнительные ключевые (зарезервированные) слова:

Asm

Constructor

Destructor Implementation

Inline

Interface

Object

Shl

Shr

String

Unit

Uses

Xor

Также к зарезервированным словам относится слово Private, но оно является зарезервированным только внутри описаний объектов.

Стандартные директивы. Директивы не являются операторами, хотя внешне выглядят как операторы. Они являются инструкциями для компилятора. В стандартном Паскале есть директива forward, если она записана после заголовка процедуры или функции, это сигнал компилятору, что полное описание этой процедуры или функции будет приведено далее. В Turbo Pascal, например, директива Interrupt указывает на то, что описываемая процедура является обработчиком прерываний, а директива Absolute указывает на то, что переменная должна быть расположена по заданному физическому адресу, либо ее адрес должен совпадать с адресом другой переменной. Директивы не являются зарезервированными словами, тем не менее, не рекомендуется использовать их в качестве имен, чтобы не запутаться в собственной программе.

Стандартные директивы:

absolute

assembler

external

far

forward

interrupt

near

virtual

Метки. Могут быть целыми числами от 0 до 9999. Ведущие нули игнорируются, то есть, 7, 07 и 007 – одна и та же метка. Также метки могут быть именами (см. синтаксис имен в стандартном Паскале).

Шестнадцатеричные числа. Добавлен способ изображения целочисленных констант без знака в формате 16-ричных чисел.

<шестнадцатеричное значение>::="$"<шестнадцатеричное целое без знака>.

<шестнадцатеричное целое без знака>::=<шестнадцатеричная цифра> {<шестнадцатеричная цифра >}.

<шестнадцатеричная цифра>::= "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"A"|"B"|"C"|"D"|"E"|"F".

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

Диапазон значений: от $0 до $FFFFFFFF.

Примеры: $1F – эквивалент десятичного значения 31. $A0 – эквивалент десятичного значения 160.

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

Примеры:

'Line 1'#13#10'Line 2'

Здесь между текстами Line 1 и Line 2 вставлены коды перехода на следующую строку и возврата каретки. В результате, при выводе такой строковой константы, эти тексты будут напечатаны в двух отдельных строчках.

'Wake up!'#7

Код 7 зарезервирован за "звонком". При передаче его на дисплей компьютер издает звуковой сигнал. При выводе такой константы на дисплей появится надпись Wake up! и раздастся звуковой сигнал.

Константные выражения. В объявлениях констант можно использовать простые выражения, которые будут вычислены на этапе компиляции, и их значения будут занесены в константы. В константных выражениях нельзя использовать переменные, типизированные константы и адресные операции (Однако адресные операции допустимы для константных выражений типизированных констант). Разрешено использовать функции Abs, Chr, H, Length, Lo, Odd, Ord, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc).

Примеры:

Const

Min=100; Max=200; EarthDiam=12742.48

Center:(Max-Min) div 2; EarthRadius=EarthDiam/2;

NumChars=Ord('Z')-Ord('A')+1;

Комментарии. Допускается использовать скобки { } или (* *). Благодаря этому можно делать "вложенные комментарии", используя скобки { } для комментариев, а скобки (* *) – для временного исключения участков текста программы при отладке.

Если после открывающейся скобки { или (* стоит знак $, этот комментарий является директивой компилятора, позволяющей управлять некоторыми режимами компиляции.

Разделы описаний. Последовательность разделов описаний не фиксирована. После раздела описания переменных может следовать раздел описания констант или типов, затем еще один раздел описания переменных, и т.п. В ряде случаев это удобно, но без крайней необходимости не рекомендуется отклоняться от стандартной последовательности разделов описаний.

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