# Основы программирования на языке Pascal

Дмитрий Кудрец

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

© Дмитрий Кудрец, 2020


ISBN 978-5-4493-9885-7

Создано в интеллектуальной издательской системе Ridero

Общие сведения о языке «Pascal»

Язык программирования «Pascal» был разработан в конце 60-х годов профессором Высшего технического училища в Цюрихе (Швейцария) Никлаусом Виртом. Предложенный им алгоритмический язык он назвал именем французского ученого Блеза Паскаля (1623 – 1662), который создал первую в мире вычислительную машину. Язык предназначался для обучения студентов программированию.

Язык «Pascal», утвержденный в качестве стандартного в 1979 г., является наиболее совершенным по сравнению с такими универсальными языками программирования, как «Алгол», «Фортран», «Бейсик» и др.

В настоящее время «Pascal» является одним из самых развитых языков программирования.

В последнее время повсеместно используется расширенный вариант языка «Pascal», который называется «Turbo Pascal» и имеет больше возможностей в сравнении с утвержденным стандартом языка.

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

## Словарь языка «Pascal»

Любой естественный язык (русский, английский, французский и т.д.) состоит из четырех основных элементов: символов, слов, словосочетаний и предложений.

Символ языка – это элементарные знаки, используемые для составления любых текстов.

Набор таких символов называют алфавитом языка.

Алфавит языка «Pascal» включает в себя следующие символов:

1. Латинские буквы (заглавные и прописные).

2. Цифры от 0 до 9.

3. Знаки арифметических операций:

+ – сложение; – - вычитание; * – умножение; / – деление

4. Знаки отношений:

> – больше; <– меньше; = – равно;> = – больше или равно; <= – меньше или равно; <> – не равно.

5. Разделители:

.– для разделения целой и дробной части числа, обозначение конца программы, отделение полей в записи;

, – для разделения элементов в списке;

; – для разделения операторов;

: – для отделения переменной или константы от типа и метки от оператора;

«‘ – выделение символа или строковой константы;

() – выделение выражений, списков параметров;

[] – выделение индексов массивов, элементов множеств;

{} – скобки комментариев.

6. Спецификаторы:

^ – значение величины по ее указателю;

@ – обозначение адреса переменной;

# – обозначение символа по его коду;

$ – обозначение директивы компилятора или знак 16-ричного числа.

7. _ – знак подчеркивания

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

1. Указатели функций. В языке «Pascal» существует ряд стандартных функций, которые записываются следующим образом:

<имя функции> (<список параметров>)

Например,

SIN (Х) – синус х;

ABS (5) – модуль (абсолютная величина) числа 5;

Х MOD 2 – остаток от деления величины х на 2.

Язык «Pascal» также позволяет пользователю создавать свои собственные функции.

2. Имена величин (идентификаторы) обозначаются набором символов состоящих из латинских букв (A-Z, A-z) и цифр (0—9).

Имена указывают на элементы языка – константы, метки, типы, переменные, процедуры, функции, модули, объекты. При указании имени на первом месте должна стоять буква. Можно использовать в именах переменных знак подчеркивания «_». Нельзя использовать в качестве имен величин служебные слова языка.

Например, В, Primer, G_18 – правильно заданные имена.

В качестве имен в языке «Pascal» не разрешено использовать служебные слова, стандартные константы, типы, процедуры, функции и файлы.

Также имена величин не могут содержать: русских букв, знаков препинания, специальных символов (~, #, $, % и других).

Имя переменной может быть любой длины, не превышающей 250 символов. Также не учитывается регистр букв, то есть переменные с именами Primer и pRiMeR будут рассматриваться как одна и та же переменная.

3. Величины. Величина – это единица данных, представленная своим именем (идентификатором) либо своим значением. С величиной связывается определенное множество значений.

Например, физическая величина СКОРОСТЬ. Она может принимать различные значения 15 м/с, 200 км/ч и т. д.

Также каждая величина имеет свои допустимые значения (интервал значений). Например, величина РОСТ ЧЕЛОВЕКА может принимать значения 1 м 40 см, 2 м 2 см и т. д. Интервал значений данной величины находится в промежутке (приблизительно) от 40 см до 2 м.

Все величины языка «Pascal» можно условно разделить на две группы: постоянные и переменные.

Постоянные величины (константы) – это величины, принимающие в ходе выполнения программы только одно значение.

Постоянные величины делятся на числовые и литерные (символьные, строковые). Например, числовые величины – 5; -45.6; -45216; литерные величины – «стол»; «125».

Литерные величины всегда берутся в одиночные кавычки (апострофы).

Переменные величины в ходе выполнения программы могут принимать разное количество значений. Переменные величины могут иметь буквенное обозначение или с индексом. Например, простые – Х; DF; с индексом – Х1; DF25.

4. Типы величин. В зависимости от значения величины подразделяются на целые, вещественные, литерные, табличные и логические, которые, в свою очередь имеют деление и обозначение в зависимости от размерности значения величины.

целые INTEGER, SHORTING, BYTE, WORD, LONGINT;

вещественные REAL, SINGLE, DOUBLE, EXTENDED, COMP;

литерные CHAR, STRING;

табличные ARRAY;

логические BOOLEAN.

5. Выражения. Выражения языка «Pascal» задают правила вычисления некоторого значения. Все выражения языка «Pascal» можно разделить на арифметические и литерные.

Арифметические выражения записываются с помощью знаков арифметических операций по определенным правилам. Например, 15+2; 12.3*12.8; D-F.

К литерным выражениям относится операция слияния (соединения), которое обозначается знаком сложения (+), но имеет несколько другой смысл, нежели обычное сложение двух чисел. Например, «сто»+«л»

6. Условия. Условия на языке «Pascal» бывают простые и составные.

Простые условия записываются с помощью знаков отношения в виде:

<выражение> <знак отношения> <выражение>

Например, F> 5; H=2; name <> «ваня».

Составные условия включают в себя несколько простых условий соединенных с помощью служебных слов NOT (не), AND (и), OR (или):

<простое условие> {AND, OR} <простое условие>

Например, D> 50 AND T <200; F1=5 OR T2 <=15.

7. Служебные слова (операторы). Все служебные слова языка являются словами английского языка. Операторы задают последовательность некоторых действий (команд), которые необходимо выполнить. Для описания сложных действий используют группу операторов. В этом случае операторы объединяются в составной оператор или блок.

В записи программы на языке «Pascal» обычно не различают малые и большие латинские буквы (PROGRAM, program, Program – одно и то же).

Примеры некоторых операторов языка «Pascal»:

PROGRAM (программа) – название программы;

BEGIN (начало) – начало программы;

END (конец) – конец программы;

VAR (variable – переменная величина);

LABEL (метка);

CONST (константа);

TYPE (тип);

IF (если) … THEN (то) … ELSE (иначе) – условный оператор (команда ветвления);

CASE – оператор выбора;

GOTO – оператор безусловного перехода;

FOR… TO… DO – оператор повторения (цикла);

REPEAT (повторять) … UNTIL (до тех пор, пока не) – оператор повторения;

WHILE (пока) … DO – оператор повторения (цикла);

PROCEDURE (процедура);

FUNCTION (функция).

По ходу усовершенствования языка в словарь могут добавляться новые типы величин и оператор.

## Типы величин языка «Pascal»

В языке «Pascal» существует несколько основных типов величин: числовые (целые и действительные), логические, литерные, табличные.

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

### Числовые величины

Числовые величины в языке «Pascal» подразделяются на целые и действительные.

Целые числа (натуральные, им противоположные и ноль) описываются с помощью служебного слова INTEGER.

В зависимости от значения целые числа могут описываться другими типами, приведенными в таблице:


Над целыми числами можно выполнять сложение, вычитание, умножение, деление, получение остатка от деления.

Результат арифметической операции над целыми операндами есть величина целого типа. Результат выполнения операции деления целых величин есть целая часть частного. Результат выполнения операции получения остатка от деления – остаток от деления целых.

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE (истина или ложь).

К аргументам целого типа применимы следующие стандартные функции, результат выполнения которых имеет целый тип: ABS (), SQR ().

Следующая группа стандартных функций для аргумента целого типа дает действительный результат: SIN (), COS (), ARCTAN (), LN (), EXP (), SQRT ().

Результат выполнения функции проверки целой величины на нечетность ODD () имеет значение истина, если аргумент нечетный, и значение ложь, если аргумент четный.

Вещественные числа на языке «Pascal» описываются с помощью служебного слова REAL.

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


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

К величинам действительного типа применимы все операции отношения.

К действительным аргументам применимы функции, дающие действительный результат: ABS (), SQR (), SIN (), COS (), ARCTAN (), LN (), Exp (), SQRT (), INT (), PI.

К аргументам действительного типа применимы также функции TRUNC () и ROUND (), дающие целый результат. Первая из них выделяет целую часть действительного аргумента путем отсечения дробной части, вторая округляет аргумент до ближайшего целого.

### Логические величины

Для описания логических величин используется служебное слово BOOLEAN (булевская).

Логические величины принимают только два значения: TRUE (истинно) и FALSE (ложно).

Результатами обработки логических величин также являются величины логического типа.

### Литерные величины

К литерным (символьным, строковым) величинам относятся все символы, слова, тексты и т. д. Литерные величины всегда берутся в одиночные кавычки.

Для описания литерных величин (строк символов) используется служебное слово STRING (строка), причем в описании можно сразу ограничить длину строки.

Например, f: String [25]; – длина строки до 25 символов

Если длина величина типа строка в описании не ограничена, то она может вмещать до 255 символов.

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

Переменной типа CHAR можно прямо в программе присвоить значение. Это делается посредством знака присваивания: «:=», после которого должен находиться символ, заключенный в одиночные кавычки (апострофы). Например, t:=«A»;

### Табличные величины

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

Для описания табличных величин используют служебное слово ARRAY (таблица).

Например: Var x: array [1..5] of integer; – массив х, состоящий из 5 целочисленных элементов.

Массивы бывают линейные (элементы нумеруются с помощью одного индекса) и прямоугольные (для нумерации элементов используется два индекса).

Прямоугольные массивы на языке «Pascal» записываются в виде:

Var y: array [1..6, 1..5] of real; – прямоугольный массив, состоящий из 6 строк и 5 столбцов (всего 30 элементов).

## Запись арифметических выражений

Выражения входят в состав многих операторов языка «Pascal», а также могут быть аргументами встроенных функций. Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок и задает правило вычисления некоторого значения.

Все выражения на языке «Pascal» записываются в одну строку.

Числа на языке «Pascal» обычно записываются в десятичной системе счисления. Они могут быть целыми и действительными. Положительный знак числа может быть опущен. Целые числа записываются в форме без десятичной точки. Например, 217, -45.

Действительные числа записываются в форме с десятичной точкой или в форме с использованием десятичного порядка, который изображается буквой Е. В такой записи буква E означает «умножить на 10 в степени». Например, 28.6, -0.018, 5Е12, -1.72Е9, 3.1Е-16.

«Pascal» допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатеричной системе счисления. Например, $7F, $ABC0.

Литерные величины в языке «Pascal» – это последовательность символов, записанная между апострофами. Если в строке в качестве содержательного символа необходимо употребить сам апостроф, то следует записать два апострофа. Например, «СТРОКА», «STRING».

Сложение обозначается символом «+», вычитание «-», умножение «*», деление «/». Например, математическая запись на языке «Pascal» примет вид: (1/2—3/4) *5.


При вычислении операции выполняются в следующем порядке:

– возведение в степень, изменение знака;

– логическое NOT;

– арифметические умножение и деление, логическое AND;

– арифметические сложение и вычитание, логическое OR;

– операции отношения.

Рядом стоящие умножение и деления выполняются слева направо, равно как и рядом стоящие сложения и вычитания. Для определения порядка действий используются скобки. Число скобок не ограничено. Единственное правило – количество открывающихся скобок должно быть равно количеству закрывающихся. Например, выражение A*B/C*D означает то же, что и (A*B/C) *D. Чтобы C*D было в знаменателе, нужно написать A*B/ (C*D).

Также по особым правилам записываются и операции отношений (сравнений). Например, математическое выражение 1≤ Х ≤50 будет записано следующим образом: (1≤Х) AND (Х≤50).

## Стандартные функции языка «Pascal»

Для обозначения математических функций применяются следующие обозначения:

PI – возвращает значение 3,14159…

SIN () – функция синуса; аргумент задается в радианах; функция возвращает вещественное значение. Например, SIN (0) =1, SIN (PI/2) =0.

COS () – функция косинуса; значение аргумента в радианах; функция возвращает вещественное значение. Например, COS (0) =0, COS (PI/2) =1.

ARCTAN () – функция арктангенса; тип результата – вещественный.

ABS () – абсолютная величина аргумента. Например, ABS (-5) =5, ABS (146) =146. Аргумент для данной функции может быть целым либо вещественным; тип возвращаемого значения определяется типом аргумента.

SQRT () – корень квадратный из аргумента. Например, SQRT (9) =3.

A MOD B – остаток от деления числа А на B. A и B – целые числа. Например, 123 MOD 10 = 3; 17 MOD 12 = 5.

A DIV B – вычисление целой части частного от деления числа A на B. Например, 123 DIV 10 = 12, 5 DIV 8=0.

TRUNK () – нахождение целой части аргумента. Например, TRUNK (23.45) =23, TRUNK (125) =125.

INT () – возвращает целую часть аргумента в виде вещественного значения. Например, INT (23.5) =23.

FRAC () – дробная часть аргумента. Например, FRAC (23.45) =0.45.

ROUND () – округляет аргумент до целого значения; тип результата – Longint. Например, ROUND (12.15) =12, ROUND (12.51) =13.

EXP () – вычисляет значение ex (экспоненциальная функция); тип результата – вещественный.

LN () – натуральный логарифм аргумента. Тип функции – вещественный.