- •Знакомство со средой 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
