Рекомендации к применению способов передачи данных:
1.Первый способ весьма прост с технической (в смысле простоты оформления описания)точки зрения, но имеет один недостаток – скрытость от непосвященных процессов передачи данных во вспомогательный алгоритм.
Этот недостаток можно ликвидировать применением подробного комментария во вспомогательном алгоритме, где описываются все глобальные переменные, используемые алгоритм, а так же отмечается, какие из них являются исходными данными и не изменяются, какие изменяются внутри вспомогательного алгоритма, т.е. являются выходными данными. Этот способ можно рекомендовать, когда требуется передать большой объем исходных данных, а указание их в качестве формальных параметров ухудшает наглядность алгоритма.
2. Второй способ наиболее употребим, и используется при числе передаваемых параметров до 7-9.
20.1. Процедуры и функции яз.Pascal.
В яз.Pascal п/п могут оформляться как процедуры или как функции. Процедуры и функции выполняют некоторую часть общей, решаемой всей программой задачи. Отличие функции от процедуры заключается в том, что с именем функции связано значение, поэтому имя функции можно использовать в выражениях.
В яз.Pascal можно включать тексты п/п-м прямо в текст программы, либо вызывать его из библиотеки.
При включении текста п/п прямо в текст программы, его необходимо поместить в тексте программы, т.е. после объявлений констант, типов и переменных.
Определение (структура) процедуры.
Процедура начинается заголовком, за которым следуют разделы: объявления констант, объявление типов, объявления переменных и раздел операторов:
Синтаксис: Procedure<имя процедуры>[(<список формальных параметров>)];
область действия- const{объявления констант}
тело процедуры type{объявления типов}
var{объявления переменных}
begin <операторы>end;
Определение (структура функции)
Function <имя функции>(<список формальных параметров>):
<тип возвратного значения>;
const
type
var
begin<операторы>end;
Замечание: 1. В теле функции хотя бы раз имени функции должно быть присвоено значение;
2. Функция может возвращать в качестве результата значение только базового, строкового типов или типа указатель.
Формальные параметры.
Синтаксис списка формальных параметров:
[var]<имя параметра 1>:<тип>;…;<имя параметра n>:<тип>
Формальные параметры можно разбить на две категории: параметры значения и параметры переменные. Тип параметра значения может быть любым, за исключением файлового. Параметры переменные могут иметь любой тип, включая и файлы.
Замечание: В списке формальных параметров нельзя объявлять новый тип, т.е. нельзя писать следующим образом:
Function max (M: array[1..100] of integer): integer;
Следующим в основной программе объявить массив в разделе объявления типов (type) и в списке формальных параметров использовать имя объявляющего типа.
type Mas = array[1..100] of integer;
function max(M: mas): integer;
Вызов процедур и функций
Синтаксис: <имя процедуры>[(список фактических параметров)];
Список фактических параметров – это набор выражений, разделенных запятой.
Т.к. имя функции возвращает значение, то функция вызывается в выражениях;
Примеры Процедура: max (M); функция rez:=max (M);
При вызове п/п-мы управления передаются на первый ее оператор. Выполнение п/п завершается:
В функции – при присвоении имени функции возвращающего значения;
В процедуре – по достижению последнего end;
Способы передачи параметров в п/п-мы.
В яз.Pascal (как и в яз.С) используются два способа передачи параметров: по значению и по ссылке. При передачи параметра по значению, значение передаваемого фактического параметра копируется в формальный параметр и п/п работает с этой копией, тем самым изменения параметра в вызванную программу не передается. араметр передается по ссылке, если в списке формальных параметров, он описан как параметр – переменная, т.е. имеет описатель var. В п/п в формальный параметр передается адрес фактического параметра, поэтому п/п имеет доступ к значению фактического параметра и может его изменить (т.е. возвратить вызываемой программе изменившееся значение). Пример программы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.