
- •Знакомство со средой PASCAL.
- •PAINT [STEP] (x,y) [цвет],[фон]
- •Структура программы на Паскале.
- •Сообщения об ошибках
- •Комментарии
- •Запись формул
- •Печать списка и текстов.
- •Стандартные модули.
- •Графические возможности.
- •Типы данных в Паскале.
- •Ввод данных (операторы READLN и READ).
- •Разветвление действий.
- •Логические переменные и операции.
- •Выбор действий.
- •Как двигать рисунок на экране?
- •Циклы по условию.
- •Случайные числа.
- •Блок-схемы.
- •Тип данных char.
- •Порядковые типы. Типы пользователя.
- •Ограниченные и перечислимые типы.
- •Структуры данных. Массивы.
- •Алгоритм сортировки выбором
- •Алгоритм пузырьковой сортировки
- •Тип данных String.
- •Многомерные массивы.
- •Процедуры без параметров.
- •Процедуры и функции с параметрами.
- •В заключение.
- •Приложения.
- •Рекомендованная литература.

Одесский колледж компьютерных технологий “СЕРВЕР”
A[3,4] или В общем виде двумерный массив схематично выглядит так: A[i,j] Направление изменения другого из индексов
|
A |
1 |
2 |
3 |
4 |
... |
n |
Направление |
1 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
изменения |
|
|
|
|
|
|
|
одного из |
3 |
|
|
|
|
|
|
индексов |
... |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
Пример: распечатаем оценки учеников по предметам for pred:=1 to 2 do begin
for pupl:=1 to 30 do write(klass[pred,pupl]);
writeln end;
А по ученикам попробуйте распечатать сами.
Процедуры без параметров.
В практике программирования часто встречаются ситуации, когда во время выполнения программы приходится производить одни и те же вычисления или действия. Чтобы не набирать одинаковых записей и сделать программу проще и понятнее, можно выделить эти повторяющиеся фрагменты в отдельную часть программы, которая может быть использована многократно по мере необходимости. Такая автономная часть программы, реализующая определённый алгоритм и допускающая обращение к ней из различных частей программы, называется подпрограммой. При этом более сложная и громоздкая задача разбивается на ряд простых и маленьких задач, решение которых сводится к написанию подпрограмм, объединяемых, в конечном итоге, в одну программу. Написание больших программ можно разделить между несколькими программистами одновременно, объединив после этого подпрограммы, написанные ими, в одну программу.
Как вы уже знаете, в структуре Pascal-программы предусмотрен специальный раздел для описания подпрограмм - раздел описания процедур и функций. Структура любой подпрограммы почти буквально повторяет структуру всей Pascal-программы, и выглядит следующим образом:
Procedure <имя процедуры>; Uses <имена модулей>; Label <имена меток>;
49

Одесский колледж компьютерных технологий “СЕРВЕР”
Const <имена констант>;
Type |
<имена типов пользователя>; |
Var |
<имена локальных переменных>; |
<раздел объявления подпрограмм>; Begin
<операторы>; End;
Отличие процедуры без параметров от Pascal-программы состоит в названии заголовка, который начинается не служебным словом Program, а служебным словом Procedure. Наличие заголовка процедуры обязательно, в отличие от наличия заголовка программы, который может быть опущен. Кроме того, любая подпрограмма заканчивается служебным словом End и точкой с запятой, в отличие от End с точкой в Pascal-программе.
Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма.
Допускается использование в одной программе сразу нескольких подпрограмм. Также допускается использование вложенных подпрограмм. То есть, каждая подпрограмма может содержать в себе описание других подпрограмм, которые являются таким образом подпрограммами подпрограмм. Эти подпрограммы, в свою очередь, тоже могут содержать описание своих подпрограмм и так далее. В результате общую структуру Pascal-программы можно изобразить в виде следующей схемы:
A B D
E
C
На этой схеме буквой A обозначена главная программа (внешний блок). B и C - подпрограммы программы A (описанные во внешнем блоке); D и E - подпрограммы B (описанные в блоке B).
Схематически Pascal-программа, содержащая подпрограммы может выглядеть следующим образом:
PROGRAM <главная программа А>; procedure <подпрограмма B>;
procedure <подпрограмма D>; begin
<операторы подпрограммы D>; end;
procedure <подпрограмма Е>;
50
Одесский колледж компьютерных технологий “СЕРВЕР”
begin
<операторы подпрограммы Е>;
end;
begin
<операторы подпрограммы B>; end;
procedure <подпрограмма С>; begin
<операторы подпрограммы С>; end;
BEGIN
<операторы главной программы A>; END.
Структура подпрограмм (блоков) Pascal-программ достаточно традиционна для многих языков и требует определённой дисциплины для доступа к объектам (например, переменным, константам, типам пользователя), описанным в различных блоках. Например, переменные, описанные в блоке B, известны (видимы), кроме самого блока B, ещё и в блоках D и E. Имена из блока C известны только в пределах блока С, имена из блока D известны только в пределах блока D, а имена из блока E известны только в пределах блока E. Наконец, имена переменных из самого внешнего блока A (то есть блока, соответствующего программе в целом) известны во всех вложенных блоках. Причём, если и в блоке A, и в блоке D описана переменная с именем x, то в блоке D переменная x, описанная в A, становится невидной.
Переменная, объявленная внутри подпрограммы, будет доступна только внутри этой подпрограммы. Такие переменные называются локальными переменными.
Процедуры и функции с параметрами.
Кроме процедур без параметров, с которыми вы познакомились ранее, существуют процедуры с параметрами. Начинается описание заголовком
PROCEDURE имя (параметры);
где имя — то имя, которое программист решил дать своей функции; параметры — список переменных с указанием их типов.
Вслед за заголовком располагается тело процедуры, которое по структуре ничем не отличается от программы, но заканчивается не точкой, а точкой с запятой. Вот примеры заголовков процедур с параметрами:
PROCEDURE ALPHA (X: INTEGER; Y: REAL; Z: CHAR); PROCEDURE BETA (M: ARR);
В том месте программы, где нужно выполнить действия, предусмотренные в описании процедуры, ставят оператор процедуры:
51
Одесский колледж компьютерных технологий “СЕРВЕР”
имя (аргументы), где имя то же, что в заголовке процедуры.
Ранее мы познакомились со стандартными функциями Паскаля. Кроме них програм-мист может воспользоваться своими собственными функциями, предварительно описав их в программе. В отличие от процедур, функция должна быть определённого типа:
FUNCTION имя (параметры):тип;
тип — это тип значения, которое возвращает функция (типы в заголовке функции можно обозначать только именами).
Существенное отличие тела процедуры от тела функции состоит в том, что в теле функции обязательно должен присутствовать оператор присваивания, в левой части которого стоит имя функции, а в правой — выражение для возвращаемого значения.
После описания функции ее можно использовать в выражениях наряду со стандартными функциями. Аргументами при обращении могут быть любые выражения. Порядок следования и типы аргументов должны быть такими же, как у параметров в заголовке функции.
52