Приложение № 2 Обучающая памятка для оформления в кабинете информатики и (или) использования в практической деятельности как опорная, справочная информация Структура программы на языке Паскаль. Program название; Программа название; <Заметим, что название программы никак не связано с именем файла, в котором эта программа записана. После заглавия записывают блок, завершающийся словом end, после чего ставится точка.> Структура блока. <Блоки состоят с описаний, записанных в определенном порядке, и операторов. Все идентификаторы и метки, описанные в разделе описаний данного блока, есть для блока локальными, то есть доступные только в этом блоке.> В общем виде любой блок имеет такой формат: раздел описания констант; раздел описания типов; раздел описания переменных; описание процедур и функций; раздел описания меток; begin оператор1; ..................... оператор end <В каждом конкретном случае задают лишь необходимые для данного программного модуля разделы описаний, но порядок их следования должен строго отвечать приведенной схеме.> Пример программы, выводящей квадраты введенных чисел, пока не будет введен нуль. Program Квадрат; Var i:integer; Begin repeat Read(i); WriteLn(sqr(i)); until i=0 end. Раздел описания констант. Раздел описания констант служит для именования длинных или часто употребляемых чисел или строк текста. Объявленные в этом разделе константы используются так же, как переменные, но им нельзя присваивать иных значений. Типы констант определяются типами константных выражений, которые стоят после знака =. Раздел начинается зарезервированным словом Сonst (Постоянные), после которого следует одно или больше предложений идентификатор = значение; в которых значение является числом, символом или строкой. Пример: Const v0 = 37.55; alfa = 45; фамилия = 'Микитин'; Раздел описания типов. Кроме стандартных типов можно создать типы переменных, которые действуют лишь в границах программного модуля. Раздел описания типов начинается зарезервированным словом Type ( Типы), за которым записывают одно или больше предложений вида идентификатор = описание_типа; каждое из которых заканчивается символом точка с запятой. В этом определении описание_типа может быть записано в одном из вариантов: - идентификатор стандартного типа; логический тип boolean - логические; символьный тип char - символы; целый тип integer - целые; действительный тип real - действительные. Пример: длина = real; - описание массива; array [ начало..конец ] of описание_типа; массив [ начало..конец ] из описание_типа; Пример: Vector = array[1..15] of real; - описание записи; record CписокИмен1 : описание_типа1; ........................... CписокИменК : описание_типаК; end; запись CписокИмен1 : описание_типа1; ........................... CписокИменК : описание_типаК; конец; 2 Пример: товар = record название : string; количество, цена : real; термин : дата; end; - идентификатор типа, описанного ранее. идентификатор = идентификатор типа, описанного ранее; Пример: скорость = Vector; Примеры описания типов в том же порядке. Type длина = real; Vector = array[1..15] of real; товар = record название : string; количество,цена : real; термин : дата; end; скорость = Vector; Раздел описания переменных. Раздел начинается зарезервированным словом Var (Переменные), после чего следует один или больше предложений CписокИмен : описание_типа; Описание_типа для каждой группы имен может быть записано в одном из вариантов: - идентификатор стандартного типа; - описание массива; - описание записи; - идентификатор типа, описанного ранее. Примеры: Var ПлощадьДороги, ПлощадьГазонов : real; КолДомов, КолЖителей : integer; Город, Улица : array [1..15] of char; Описание процедур и функций. Описание процедуры или функции состоит с заглавия и тела (блока), структура которого полностью аналогична структуре программы. Заглавие процедуры имеет вид: Procedure название( список_формальных_параметров ); Процедура название( список_формальных_параметров ); В заглавии процедуры указывается имя процедуры и описывается список формальных параметров (если он нужен). Запуск процедуры осуществляется с помощью оператора обращения к процедуре. 3 Пример описания процедуры: procedure Change(a,b : integer); var i:integer; begin i:=a; a:=b; b:=i end; В заглавии функции определяется идентификатор функции, формальные параметры (если они есть) и тип результата функции. Function название( список_формальных_параметров ): тип; Функция название( список_формальных_параметров ): тип; При вызове функции указывается идентификатор функции и параметры, необходимые для вычисления функции. Вызов функции может включаться в выражения в качестве операнда. Когда вычисляется выражение, функция выполняется и значением операнда становится значения, которое возвращается функцией. В операторной части блока функции должен находиться по крайней мере один оператор присваивания, в котором идентификатору функции присваивается значение. Результатом функции есть последнее присвоенное значение. Если такой оператор присваивания отсутствует или он не был выполнен, то значение, которое возвращается функцией, неопределенное. Если идентификатор функции используется при вызове функции внутри модуля-функции, то функция выполняется рекурсивно. Пример описания функции: function Max(a: Vector; n: integer ):integer; var i,x: integer; begin x := a(1); for i := 2 to n do if x < a[i] then x := a[i]; Max := x; end; Раздел описания меток. В этом разделе оглашаются метки, которые присваиваются операторам. Каждая метка должна помечать только один оператор. Все метки перед употреблением должны быть объявленные с помощью такой записи: Label метка1,метка2,...метка; Мети метка1,метка2,...метка; Метка есть последовательность цифр, то есть целое число без знака, которое находится в диапазоне от 0 до 9999. Ноли перед числами игнорируются. Метки есть локальными для блока, в котором они описаны. Для иных блоков (в том числе вложенных) метки данного блока невидимые. 4