
Шпаргалки на экзамен / понятие подпрограмм процедуры и функции
.docx
понятие
подпрограмм процедуры и функции
В ТУРБО
ПАСКАЛЕ различают два
вида подпрограмм - это процедуры и
функции.
Процедура и функция - это именованная
последовательность описаний и операторов.
Так же использование процедур и функций
необходимо тогда, когда имеется
возможность использовать некоторые
фрагменты уже разработанных ранее
алгоритмов. Кроме того, подпрограммы
применяются для разбиения крупных
программ на отдельные смысловые части
в соответствии с модульным принципом
в программировании.
Процедура -
это независимая именованная часть
программы, которую можно вызвать по
имени для выполнения определённой в
ней последовательности действий.
Процедуры служат для задания совокупности
действий, направленных на изменение
внешней по отношению к ним программной
обстановки. В ПАСКАЛЬ, существуют
стандартные процедуры: read, readln, write,
writeln. Таким образом, концепция процедуры
расширяет понятие оператора в языке
ПАСКАЛЬ.
Функция отличается
от процедуры тем, что возвращает
результат указанного при её описании
типа. Вызов функции может осуществляться
из выражения, где имя функции используется
в качестве оператора. Функции являются
частным случаем процедур, и обязательно
возвращают в точку вызова результат
как значение имени этой функции. При
использовании функций необходимо
учитывать совместимость типов в
выражениях. В ПАСКАЛЬ, существует ряд
стандартных функций, известных любой
программе: sin, cos, eof, а также и другие
функции из таблицы №3. Таким образом,
концепция функции расширяет понятие
выражения в языке ПАСКАЛЯ.
Локальные
и глобальные переменные
Напомним, что каждый модуль (процедура, функция, программа) состоит из заголовка (procedure…, function…, program…) и блока.
Если блок какой-либо процедуры p1 содержит внутри процедуру p2, то говорят, что p2 вложена в p1.
Пример.
procedure p1(x: real; var y: real);
var c: integer;
procedure p2(var z: real);
…………………….
end;
begin
…………………….
end;
Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур.
Пример.
procedure t1;
var y1, y2: real;
procedure sq1;
var a, b, c, d: real;
begin
{ Переменные a, b, c, d являются локальными для sq1,
область их действия – процедура sq1 }
……………………………………
end;
begin
{ Переменные y1, y2 - нелокальные для sq1,
область их действия – t1 и sq1 }
end;
Константы, переменные, типы, описанные в блоке program, называются глобальными. Казалось бы, проще иметь дело вообще только с глобальными переменными, описав их все в program. Но использование локальных переменных позволяет системе лучше оптимизировать программы, делать их более наглядными и уменьшает вероятность появления ошибок.