- •Введение
- •Основные элементы языка Алфавит
- •Стандартные идентификаторы
- •Зарезервированные слова языка Паскаль
- •Общие правила написания идентификаторов
- •Общая структура программы на Паскале
- •Константы и переменные
- •Комментарии
- •2. Типы данных
- •Целочисленные типы
- •Целочисленные типы данных
- •Вещественные типы
- •Вещественные типы данных
- •Булевский тип boolean
- •Массивы
- •3. Программирование линейных вычислительных процессов Арифметические выражения
- •Оператор присваивания
- •Организация ввода и вывода
- •4. Организация программ разветвляющейся структуры Логические выражения
- •Оператор условия if
- •Оператор выбора case
- •Оператор перехода goto
- •5. Организация программ циклической структуры
- •Оператор цикла с параметром for
- •Оператор цикла с предусловием while
- •Оператор цикла с постусловием repeat
- •Вложенные циклы
- •6. Подпрограммы
- •Функции
- •Процедуры
- •Область действия параметров
- •7. Справочник по интегрированной усовершенствованной среде
- •Меню File (файлы)
- •Open f3 (открыть)
- •New (новое)
- •Save (сохранить)
- •Save As (сохранить как)
- •Change Dir (изменить справочник)
- •Exit (выход)
- •Меню Edit (редактирование)
- •Program reset (сброс программы)
- •Trace into (пошаговая трассировка)
- •Меню Compile (компиляция)
- •Меню Debug (отладка)
- •Breakpoints (точки прерывания)
- •Environment (среда)
- •Меню Window (окна)
- •User Screen (экран пользователя)
- •Меню Help (помощь)
- •Contents (содержание)
- •Index (оглавление)
- •Topic Search (поиск раздела)
6. Подпрограммы
Если в программе возникает необходимость выполнить несколько раз одну и ту же последовательность операторов (не циклически), то эту последовательность операторов выделяют в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие разработанные программистом самостоятельные программные блоки называются подпрограммами пользователя.
Передача данных из вызывающей программы в подпрограмму и возврат результатов осуществляются с помощью переменных, которые называются параметрами. Различают формальные параметры – параметры, определенные в заголовке программы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме.
Подпрограмма, чтобы ее можно было вызывать в программе, должна быть объявлена в разделе описаний программы. Объявить подпрограмму – значит указать ее заголовок (с используемыми в ней формальными параметрами), описать локальные (т.е. используемые только в данной подпрограмме) переменные и, наконец, задать ее тело. В разделе описаний подпрограммы могут быть объявлены новые подпрограммы, которые, в свою очередь, также могут включать подпрограммы. Таким образом, возможно множество уровней вложения подпрограмм. В Паскале приняты два вида подпрограмм: функции и процедуры.
Функции
Заголовок функции состоит из: 1) зарезервированного слова function; 2) имени подпрограммы – функции; 3) заключенного в круглые скобки списка формальных параметров; 4) типа возвращаемого функцией значения.
Пример заголовка функции:
function step ( n : integer ; x, y : real ) : real;
имя формальные параметры тип результата
В теле подпрограммы–функции должен находиться, по крайней мере, один оператор, присваивающий имени функции значение, например:
step : = sin (n * x * x) ;
В точку вызова возвращается результат последнего присваивания.
Пример. Функция, которая возвращает максимальное из двух целых чисел:
function max ( a, b: integer): integer;
begin
if a > f then max: = a else max: = b;
end;
Обращение к функции осуществляется по имени с указанием списка фактических параметров. При этом следует соблюдать соответствие между формальными и фактическими параметрами по количеству параметров, их типу и порядку следования.
Например, обращение к функции max может иметь вид:
max ( x + 5, y)
При таком обращении формальные параметры а и b заменяются фактическими параметрами х +5 и у, соответственно.
Процедуры
Заголовок процедуры состоит из: 1) зарезервированного слова procedure; 2) имени; 3) списка формальных параметров.
Процедура, как и функция, вызывается по ее имени с указанием фактических параметров в круглых скобках: имя (фактические параметры);
Основное отличие процедур от функций состоит в том, что имени функции присваивается возвращаемое значение, а имени процедуры – нет.
Пример: программа, использующая процедуру, которая выводит на экран строку, состоящую из звездочек. Длина строки (количество звездочек) является параметром процедуры.
Program primer;
Var
n : integer;
procedure starline ( k : integer); {заголовок процедуры}
var
i : integer; {описание переменной для процедуры}
begin {начало тела подпрограммы}
for i : = 1 to k do
write ( ′ * ′ );
end; {конец тела подпрограммы}
begin {начало основной программы}
write ( ′ n = ′ ); readln (n);
starline (n); {вызов подпрограммы}
end.
В подпрограмму можно передавать целый массив. Для этого в качестве формального параметра указывается массив, тип которого должен быть сначала описан в разделе описания типов type.
Например :
const
n = 5; m = 6 ;
type
mas = array [1..n, 1..m ] of real;
var
m : mas ;
procedure pr ( a : mas );
В этом случае обращение к процедуре в вызывающей программе будет иметь вид : pr(m); При этом формальный параметр – массив а – принимает значение фактического параметра – массива m.
Когда лучше использовать процедуры и когда функции ? Это зависит от конкретного случая. Если подпрограмма вычисляет единственный результат, ее можно реализовать как функцию. Если же от подпрограммы требуется вычислить несколько значений, ее лучше оформить в виде процедуры.