Начальные сведения о программах на языке Pascal
Комментарии
Помимо отступов, большие логически замкнутые блоки программы удобно разделять строками-комментариями, содержащими информацию о смысле последующего блока. Комментарий - это строка (или несколько строк) из произвольных символов, заключенная в фигурные скобки:
{ комментарий }
Другой вариант оформления комментария:
(* комментарий *)
Внутри самого комментария символы } или *) встречаться не должны.
Во время компилирования программы комментарии игнорируются. Следовательно, их можно добавлять в любом месте программы. Можно даже разорвать оператор вставкой комментария. Кроме того, все, что находится после ключевого слова end., завершающего текст программы, компилятор тоже воспринимает как комментарий.
Директивы компилятора
Строка, начинающаяся символами {$, является не комментарием, а директивой компилятора - специальной командой, от которой зависит процесс компиляции и выполнения программы. Директивы мы будем рассматривать в тех разделах, к которым они относятся "по смыслу".
Например, строка {$I-,Q+} отключает контроль правильности ввода-вывода, но включает контроль переполнения при вычислениях.
Идентификаторы
Имена, даваемые программным объектам ( константам, типам, переменным, функциям и процедурам, да и всей программе целиком) называются идентификаторами. Они могут состоять только из цифр, латинских букв и знака "_" (подчеркивание). Однако цифра не может начинать имя. Идентификаторы могут иметь любую длину, но если у двух имен первые 63 символа совпадают, то такие имена считаются идентичными.
Вы можете давать программным объектам любые имена, но необходимо, чтобы они отличались от зарезервированных слов, используемых языком Pascal, потому что компилятор все равно не примет переменные с "чужими" именами.
Приведем список наиболее часто встречающихся зарезервированных слов:
and goto set array implementation shl begin in shr case interface string const label then div mod text do nil to downto not type else of unit end or until file pointer uses far procedure var for program while forward record with function repeat xor
Переменные и типы данных
Переменная - это программный объект, значение которого может изменяться в процессе работы программы.
Тип данных - это характеристика диапазона значений, которые могут принимать переменные, относящиеся к этому типу данных.
Все используемые в программе переменные должны быть описаны в специальном разделе var по следующему шаблону:
var <имя_переменной_1> [, <имя_переменной_2, _>] : <имя_типа_1>; <имя_переменной_3> [, <имя_переменной_4, _>] : <имя_типа_2>;
Язык Pascal обладает большим набором разнообразных типов данных, однако сейчас мы укажем лишь некоторые из них. Обо всех же типах данных мы поговорим в следующей лекции, там же приведем и различные примеры описания переменных
Константы
Константа - это объект, значение которого известно еще до начала работы программы.
Константы необходимы для оформления наглядных программ, незаменимы при использовании в тексте программы многократно повторяемых значений, удобны в случае необходимости изменения этих значений сразу во всей программе.
В языке Pascal существует три вида констант:
- неименованные константы (цифры и числа, символы и строки, множества);
- именованные нетипизированные константы ;
- именованные типизированные константы.
Неименованные константы
Неименованные константы не имеют имен, и потому их не нужно описывать.
Тип неименованной константы определяется автоматически, по умолчанию:
- любая последовательность цифр (возможно, предваряемая знаком "-" или "+" или разбиваемая одной точкой) воспринимается компилятором как неименованная константа - число (целое или вещественное);
- любая последовательность символов, заключенная в апострофы, воспринимается как неименованная константа - строка (см. лекцию 5);
- любая последовательность целых чисел3Существует, однако, ограничение на объем множеств, поэтому последовательности чисел не должны быть слишком длинными либо символов через запятую, обрамленная квадратными скобками, воспринимается как неименованная константа - множество (см. лекцию 5).
Кроме того, существуют две специальные константы true и false, относящиеся к логическому типу данных.
Примерами использования неименованных констант могут послужить следующие операторы:
int1 := -10; real2 := 12.075 + х; char3 := 'z'; string4 := 'abc' + string44; set5 := [1,3,5] * set55; boolean6 := true;
Нетипизированные константы
Именованные константы, как следует из их названия, должны иметь имя. Стало быть, эти имена необходимо сообщить компилятору, то есть описать в специальном разделе const.
Если не указывать тип константы, то по ее внешнему виду компилятор сам определит, к какому (базовому) типу ее отнести. Любую уже описанную константу можно использовать при объявлении других констант, переменных и типов данных. Вот несколько примеров описания нетипизированных именованных констант:
const n = -10; m = 1000000000; mmm = n*100; x = 2.5; c = 'z'; s = 'string'; b = true;
Типизированные константы
Типизированные именованные константы представляют собой переменные (!) с начальным значением, которое к моменту старта программы уже известно. Следовательно, во-первых, типизированные константы нельзя использовать для определения других констант, типов данных и переменных, а во-вторых, их значения можно изменять в процессе работы программы.
Описание типизированных констант производится по следующему шаблону:
const <имя_константы> : <тип_константы> = <начальное_значение>;
Из приведенных ниже примеров видно, как это сделать:
const n: integer = -10; x: real = 2.5; c: char = 'z'; b: boolean = true;
Примеры типизированных констант других типов мы будем приводить по мере изучения соответствующих типов данных.