Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке Паскаль

Содержание:

Введение

Язык программирования Pascal, назван в честь выдающегося французского математика и философа Блеза Паскаля, живший в начале XVII века. Разработан Pascal был в 1968-1969 гг., но опубликован был только спустя один год.

Pascal был создан как язык для обучения процедурному программированию! Хотя, по мнению самого Никлауса Вирта:"Язык нельзя считать только учебным, поскольку язык, непригодный для написания реальных программ, для обучения использоваться не должен"

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

Компилятор Паскаля был написан на самом Паскале c использованием метода раскрутки. Паскаль (англ. Pascal) — высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в обучении программированию, является базой для большого числа других языков.

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

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

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

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

С учетом поставленной цели будут решены следующие задачи:

- изучено понятие языка Паскаль: основные сведения и элементы;

- рассмотрена структура программы и организация данных.

Курсовая работа состоит из введения, двух глав, заключения и библиографии.

Глава 1 Понятие Языка Паскаль

1.1 Основные сведения

Изначально язык Pascal был создан для написания программ под операционную систему «MS DOS»[1]. Это первая операционная система, получившая широкое распространение среди обычных пользователей. Она появилась в 80-х годах прошлого столетия и была рассчитана для компьютеров тех лет. Буквы «MS» происходят от названия компании MicroSoft, которая создала эту систему. Слово «DOS» – от «DiscOperating System», в переводе на русский – дисковая операционная система. Далее вместо слов «операционная система» может быть написано ОС, а вместо «MS DOS» просто DOS.

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

Мы привыкли к тому, что при загрузке компьютера у нас появляется рабочий стол, различные ярлыки, панель быстрого запуска и т.д. Другими словами, мы привыкли к тому, что на компьютере загружается операционная система Windows. ОС DOS для пользователя выглядит совершенно по-другому. На чёрном экране мигает белый курсор. Информация выводится в виде строк текста. Ввод информации так же производится в виде текста. Если запустить программу, написанную под DOS, в операционной системе Windows, то это будет выглядеть так:

http://dvkuklin.ru/fs_ABC/P_01/img1.png

Рис. 1. Программа для MS DOS.exe

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

Что такое язык программирования? Язык программирования – это система слов, знаков и выражений для записи последовательности действий, которую должна выполнить  вычислительная машина. Каждая вычислительная машина, будь то калькулятор, компьютер, сотовый телефон и т.д., работают по определённым программам. Эти программы и есть последовательности определённых действий. То есть, язык программирования необходим для записи программ для вычислительных машин.

Существуют два типа языков. Языки низкого уровня и языки высокого уровня. К языкам низкого уровня относится язык Assembler. Если не вдаваться в подробности, то здесь запись последовательности действий идёт практически в машинных кодах, т.е. словами понятными машине. На практике писать на таком языке достаточно трудно, необходимо знать особенности того устройства для которого пишется программа.

Гораздо проще и производительнее писать на языках высокого уровня, к которым относится язык Pascal. Здесь слова и символы используются те же, что и в человеческом языке, например, что бы сложить два числа 1 и 2 достаточно написать «1+2». Для того, что бы перевести программу из языка, понятного человеку в язык понятный машине используется специальная программа, которая называется компилятором. Что бы программа, написанная вами, начала работать её необходимо откомпилировать и запустить.

Так как невозможно научиться программировать, не написав ни одной строчки, то вам рассмотрим приложение, где бы мы могли применить полученные знания. Предлагаем рассмотреть систему PascalABC.NET.  Ее можно скачатьна сайте www. pascalabc.net. Распространяется она бесплатно. В ней вам будет удобно писать тексты программ, и вы сразу же сможете запустить программу на выполнение, нажав одну кнопку. При этом компиляция произойдёт автоматически, и программа начнёт работать.

Система PascalABC.NET устанавливается как обычная программа. Выглядит она следующим образом:

http://dvkuklin.ru/fs_ABC/P_01/img2.png

Рис. 2. Система PascalABC.NET

Здесь два окошка. В верхнем пишется текст программы, в нижнем выводится результат её работы.

Теперь попробуем написать нашу первую программу. Обычно во всех учебных пособиях первая программа выводит на экран следующую строку: «Helloworld!». В переводе с английского это означает: «Привет Мир!». В нашем случае мы выведем строку: «Привет всем!». Для этого в верхнем окошке введите следующие строки:

begin

  write ('Привет всем!')

end.

После ввода этих строк нажмите кнопку «Выполнить», которая находится на панели инструментов и имеет вид зелёного треугольника (http://dvkuklin.ru/fs_ABC/P_01/img3.png). Если всё сделали правильно, то в окне вывода вы увидите следующее:

Привет всем!

Теперь разберёмся, что же мы написали. Слово begin в переводе с английского означает начало, end – конец.  Каждая программа в Pascal начинается со слова begin и заканчивается словом end. Здесь следует немного уточнить. Словом begin начинается исполняемая часть программы, т.е. именно та часть программы, в которой написана последовательность действий. Заканчивается эта часть словом end. Ещё эту часть называют телом программы. Перед словом begin может находиться название программы, описание процедур и функций, описание переменных, но об этом позже.

После слова end в конце программы должна обязательно стоять точка, иначе компилятор выведет ошибку, т.к. будет не понятно это конец программы или конец какой-то части программы. Слова begin и end ещё служат для отделения частичек программы, об этом речь пойдёт позже.

Write в переводе с английского означает написать. Следовательно, мы дали команду написать то, что заключено в скобки и находится в одинарных кавычках. Забегая далеко вперёд, следует сказать, что в Pascalто что находится в одинарных кавычках (в апострофах) считается просто строкой, а не текстом программы.

Теперь после всего вышесказанного, мы можем вывести в окно вывода (на экран) любое предложение. Далее по тексту вместо выражения «вывести в окно вывода» будет использоваться выражение «вывести на экран». Это потому, что на самом деле команда Write выводит текст именно на экран. Просто в PascalABC.NET вместо экрана вывод идет в окно вывода. Для учебных целей это гораздо удобнее.

Если нам нужно вывести несколько предложений, мы можем либо заключить в кавычки сразу несколько предложений, либо дать несколько команд Write. Причём в языке Pascal после каждой команды должна стоять точка с запятой, которая разделяет команды между собой[2]. Однако тут есть небольшой нюанс. Если мы поступим таким образом, то все предложения пойдут одно за другим, причём без пробела. Приведём пример:

begin

  write ('Привет всем!');

  write ('Меня зовут Денис.');

  write ('Я люблю программировать.') 

end.

Результат работы программы будет следующим:

Привет всем!Меня зовут Денис.Я люблю программировать.

Как видно, между предложениями нет пробела. Это потому, что компьютер выполняет только то, что ему велено. Ничего другого он делать не будет. Что бы выйти из данной ситуации необходимо поставить после каждого предложения пробел:

begin

  write ('Привет всем! ');

  write ('Меня зовут Денис. ');

  write ('Я люблю программировать.') 

end.

В результате получим следующее:

Привет всем! Меня зовут Денис. Я люблю программировать.

Если необходимо, что бы каждое предложение находилось в новой строчке, мы должны использовать другую команду не Write, а Writeln. Эта команда после вывода строки на экран переводит курсор на новую строчку, при этом следующий вывод будет произведён уже в новой строчке:

begin

  writeln ('Привет всем! ');

  writeln ('Меня зовут Денис. ');

  write ('Я люблю программировать.') 

end.

____________________________________________

Привет всем!

Меня зовут Денис.

Я люблю программировать.

1.2 Основные элементы Паскаля

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

Алфавит языка Паскаль - комплекс символов, которые разрешены к применению и воспринимаемые компилятором, в соответствии с их смысловым значением может быть разбит на следующие группы[3]:

1) буквы латинского алфавита (прописные и заглавные): A,B, ... ,Z и a,b,...,z

2) арабские цифры (от 0 до 9);

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

+ - сложение, - - вычитание,

* - умножение / - деление,

div - деление нацело с отбрасыванием остатка,

mod - нахождение остатка от деления нацело;

4).знаки операций отношения:

= - равно, <> - не равно,

> - больше, < - меньше,

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

5).знаки логических операций:

NOT - отрицание, OR - логическое сложение,

AND - логическое умножение;

6). знаки операции присваивания := ;

7).специальные символы:

- пробел (разделитель) _ - подчеркивания

( - открывающая круглая скобка

) - закрывающая круглая скобка

[ - открывающая квадратная скобка

] - закрывающая квадратная скобка

- открывающая фигурная скобка

- закрывающая фигурная скобка

, - запятая

. - точка

; - точка с запятой

' - апостроф

: - двоеточие

8).ключевые слова:

AND - и, ARRAY - массив,

BEGIN - начало, CASE - вариант,

CONST - константа, DIV - деление нацело,

DO - выполнять, DOWNTO - уменьшать до,

ELSE - иначе, END - конец,

FILE - файл, FOR -для,

FORWARD вперед, FUNCTION - функция,

GOTO - переход на, IF - если,

IN - в, LABEL - метка,

MOD - модуль, NOT - не,

OF - из, OR - или,

PROCEDURE процедура, PROGRAM - программа,

RECORD запись, REPEAT - повторить,

SET - множество, STRING - строка,

THEN - то, TO -к,

TYPE - тип, UNIT - модуль,

UNTIL - до, USES - используемые,

VAR - переменная, WHILE - пока,

WITH - с, XOR -арифмет. или.

9).стандартные идентификаторы (имена):

константы FALSE, TRUE и MAXINT;

типыBOOLEAN, INTEGER, REAL и CHAR;

файлыINPUT и OUTPUT;

процедуры READ, READLN, WRITE, WRITELN, GET, PUT, REWRITE, NEW и RESET;

10).стандартные математические функции

Таблица 1

Стандартные математические функции

Функция

Обращение

Аргумент

Функция

!х!

x2

abs(x)

sqr(x)

R и I

R и I

R и I

R и I

Sin x

Cos x

ex

Ln x

x

Arctg x

sin(x)

cos(x)

exp(x)

ln(x)

sqrt(x)

arctan(x)

R и I

R

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

Глава 2 Структура программы и организация данных

2.1 Структура программы

Программа на языке Паскаль состоит из двух основных частей[4]:

- описания данных, над которыми совершаются действия, и описание действий, которые должны осуществляться над данными. Действия задаются операторами, а данные - определениями и описаниями.

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

- описание меток;

- описание констант;

- определение типов;

- описание переменных;

- описание функций и процедур;

- раздел операторов.

Раздел операторов заключается в операторные скобки, т.е. BEGIN...END. Любой раздел, кроме последнего, может отсутствовать. Разделителями между разделами и операторами служит точка с запятой. В конце программы должна стоять точка. Заголовок программы записывается в первой строке программы и начинается с ключевого словаprogram после которого указывается имя программы и связь программы с исходными данными и результатами обработки (т.е. файлы, доступные программе). В качестве имен файлов используются стандартные имена INPUT и OUTPUT.

programdrev( input,output);

Кроме этого в любое место программы могут быть включены комментарии, при этом смысл программы не меняется. Комментарии заключатся в фигурные скобки. Если в системе нет фигурных скобок, то вместо них используются пары символов (* и *).

(* ПРИМЕР1 КОММЕНТАРИЯ НА ПАСКАЛЕ *)

{ ПРИМЕР2 КОММЕНТАРИЯ НА ПАСКАЛЕ }

2.2 Организация и описание данных

Программа, написанная на языке Паскаль, оперирует некоторыми объектами, называемыми данными. Каждый элемент данных в программе является либо константой, либо переменной. Для каждой переменной задается некоторый тип, определяющий как возможные значения переменной, так и операции, которые могут над ней выполняться. Имя в языке Паскаль состоит из последовательности букв, цифр и символа подчеркивания, начинающейся с буквы[5]. Имена используются в программах для записи констант, переменных, функций и подпрограмм.

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

Константы описываются следующим образом:

CONST имя1 = значение1; имя2 = значение2;

Если потребуется изменить константу, то при таком ее описании достаточно изменить ее значение в описании.

const log = true;

rmax= 24; zk = c;

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

Операторы описания данных

Язык Паскаль предоставляет богатые возможности для построения сложных типов данных, которые задаются в разделе типов. Однако все они строятся на основе стандартных типов: целый, вещественный, символьный и логический. Кроме этого, в языке Паскаль можно использовать перечисляемые типы.

Стандартные типы данных

Целый тип (INTEGER).

Для любой вычислительной машины значением переменной этого типа должно быть целое число n, лежащее в диапазоне:

-MAXINT <= N <= MAXINT

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

Таблица 2

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

Тип

Диапазон

Размер, байт

shortint

byte

integer

word

longint

-128...+127

0...255

-32768...+327678

0...65535 -2147483648... +2147483647...

1

1

2

2

4

Над целыми числами кроме обычных арифметических и стандартных операций могут выполняться:

- операции целочисленного деления и поиска остатка от целочисленного деления:

15 div 4 = 3 13 mod 4 = 1

- операции поиска предыдущего и последующих значений аргумента:

pred(9) = 8 succ(-9) = -8

pred(-9) = -10 succ(9) = 10

- функция позволяющая определить четность или нечетность аргумента:

odd(7) - true

odd(6) - false.

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

var a, g, jh, gg: integer;

Вещественный тип (REAL)

Значением переменной этого типа является вещественное число, заданное либо в естественной форме -6.7694

или в экспоненциальной 5.6Е-2.

Вещественные переменные обладают двумя важными характеристиками - диапазоном значений и точностью, которые определяются структурными особенностями конкретной ЭВМ.

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

Таблица 3

Вещественные типы, являющиеся приближением к точным значением

Тип

Диапазон

Значащие цифры

Размер, байт

real

single

double

extended

comp

-1.7e38...1.7e38

-3.4e38...3.4e38

-1.7e308...1.7e308

-1.1e4932...1.1e4932

-2*2^63...1...2*2^63

11...12 7...8

15...16

19...20

19...20

6

4

8

10

8

Тип comp содержит только целочисленные значения.

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

- функция trunc вырабатывает целый результат путем отбрасывания дробной части аргумента:

trunc(23.54) = 23

trunc(-3.54) = -3

- функция round вырабатывает целый результат путем округления до ближайшего целого:

round(23.53) = 24

round(-3.53) = -4

  • функция int выделяет целую часть числа:

int(23.54) = 23.0

int(-3.54) = -3.0

  • функция frac выделяет мантиссу аргумента:

frac(23.54) = 0.54

frac(-1.67) = -0.67

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

var ad, gs, fh, nn: real;

Булевский тип (BOOLEAN)

Этот тип данных на языке Паскаль называется логическим. Над логическими данными вычисляются следующие операции:

OR, NOT и AND.

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

Так как значения true и false можно рассматривать как упорядоченное множество, состоящее из двух элементов, то для этого типа данных помимо succ и pred, определена функция ord, определяющая порядковый номер для значений перечисляемого типа:

pred(false) = true succ(true) = false

ord(false) = 0 ord(true) = 1

Переменные логического типа описываются следующим образом: var w, y, z, vv: boolean;

Символьный тип (CHAR)

Символьными значениями переменной символьного типа являются элементы конечного и упорядоченного набора символов. Набор символов должен отвечать следующим минимальным требованиям:

- содержать буквы, упорядоченные в алфавитном порядке;

- содержать цифры, расположенные в порядке возрастания;

- содержать символ пробел.

Каждый символ должен иметь свой порядковый номер. При записи данных символьного типа символ должен заключаться в апострофы:

'2','g','k','s','0'.

С данными символьного типа связаны функции:

- ord(символ) - дает порядковый номер символа в упорядоченном массиве:

ord('?') = 63

ord('5') = 53

ord('I') = 73

- сhr(номер) - дает символ, стоящий под указанным номером в упорядоченном множестве символов:

chr(53) = '5'

chr(53) = '5'

ord(73) = 'I'

К аргументам символьного типа применимы функции pred и succ, которые выдают предыдущий и последующий символы, а также операции отношения ( символ 1 считается больше символа 2, если его порядковый номер в множестве символов больше сравниваемого):

pred('M') = 'L'

succ('M') = 'N'

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

var w, y, z, vv: сhar;

Строковый тип (STRING).

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

'2gk', 's''0', 'Program''System'''.

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

varwf, yyy, zs, vev: string [10];

Описание массивов

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

имя: array [ Nmin..Nmax ] of тип;

При описании массивов большей размерности пределы измерения должны отделяться друг от друга запятой:

имя: array[ Nmin..Nmax, Kmin..Kmax, Rmin..Rmax] of тип;

Массивы описываются следующим образом:

varfff: array [1..4, 1..4] ofinteger;

sss: array [1..6] of real;

ddd: array [1..11, 1..4, 1..55] of char;

aaa: array [1..22, 1..11] ofstring;

Заключение

Таким образом, можно сделать следующие выводы.

Особенностями языка Паскаль являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль являлся одним из первых таких языков. Синтаксис автор постарался сделать интуитивно понятным любому пользователю даже при первом знакомстве с языком.

Нужно заметить, что многие недостатки языка не проявляются как таковые недостатки, а даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в 1970-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд.

В начале 80-х годов прошлого века в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «алгоритмический язык».

Паскаль, разработанный в 1970-х гг. Никлаусом Виртом как язык обучения программированию, претерпел за прошедшее время довольно много изменений в лучшую сторону. Основная заслуга в этом принадлежит фирме BorlandInternational, долгое время выпускавшей линейку TurboPascal. Одно из основных усовершенствований, внесенных ею, — дополнение языка разнообразными и мощными средствами ввода-вывода. Другое связано с языком Модула-2 (автором которого также стал Н. Вирт): фирма Borland отказалась от распространения компилятора этого языка, применив вместо этого модульный принцип построения в TurboPascal. Кроме того, в Паскаль были введены средства непосредственного доступа к портам и ячейкам памяти, а позднее — возможность включать в текст программы фрагменты, написанные на ассемблере. Все это превратило Паскаль из средства обучения в достаточно мощный универсальный язык.

Сейчас признанными лидерами в области профессионального программирования стали Си-подобные языки. В течение долгого периода Паскаль был, пожалуй, почти единственной альтернативой им в качестве универсального языка. Однако когда труд большинства профессиональных программистов стал практически сводиться лишь к манипуляциям с вызовами более или менее стандартного API-инструментария (ApplicationProgrammingInterface — интерфейс прикладного программирования), остро встал вопрос выбора единственного языка программирования, на котором (и для которого) будет писаться этот API. Вследствие различных причин — как объективных, так и субъективных — выбор пал на Си/Си++. Во-первых, Си, как и Паскаль, оказался одним из первых языков высокого уровня (ЯВУ), разрешившим проблему «курицы и яйца»: его компилятор был написан на нем же. Во-вторых, компиляторы для Си делать, пожалуй, легче, чем для любого другого языка (что, собственно, и было одной из целей его разработки), поэтому именно их выпуск экономически наиболее целесообразен. Впрочем, не обошлось и без субъективных факторов: значительную долю сегодняшнего API производит фирма Microsoft, уже давно разграничившая с фирмой Borland «сферы влияния» в этой области. Сейчас Borland не выпускает компиляторы для Бейсика и Фортрана, а Microsoft – для Паскаля, и, естественно, не ориентирует свои API на те языки, компиляторы которых сама не выпускает.

Список использованной литературы

1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988.

2. Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования. Язык ПАСКАЛЬ. - М.: Высш.шк., 1991. - 160 с.

3.Грогоно П. Программирование на языке Паскаль. —М.: Мир, 1982.

4. Епашников A.M., Епашников В.А. Программирование в среде Турбо Паскаль 7.0. — М.: МИФИ, 1994.

5. Заварыкин В.М., Житомирский В.Г., Лапчик М.П. Основы информатики и вычислительной техники. — М.: Просвещение, 1989.

6. 3yeв Е. А. Практическое программирование на языке TurboPascal 6.0, 7.0. — М.: Радио и связь, 1994.

7. https://ru.wikipedia.org/wiki/Паскаль программирование

C:\Users\kenstyle.KENSTYLE\Desktop\заявление.jpg

  1. https://ru.wikipedia.org/wiki/Паскаль программирование

  2. Заварыкин В.М., Житомирский В.Г., Лапчик М.П. Основы информатики и вычислительной техники. — М.: Просвещение, 1989. – С 47.

  3. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988. – С. 15

  4. Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования. Язык ПАСКАЛЬ. - М.: Высш.шк., 1991. - 160 с. – С. 34

  5. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988. – С.25-27