русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Параметры процедур и функций


Дата добавления: 2014-11-28; просмотров: 684; Нарушение авторских прав


 

Все основные сложности процедур связаны с механизмом параметров. Рассмотрим правила составления списка параметров.

В список параметров включаются исходные данные для работы процедуры (входные параметры) и, если надо, указания, куда поместить результаты работы процедуры (выходные параметры). Параметры в операторе заголовка процедуры называются формальными, так как на самом деле работа будет производиться над фактическими параметрами, которые будут подставлены на место формальных при обращении к процедуре. Отсюда следует первое правило, что количество, порядок следования и типы формальных параметров должны соответствовать фактическим параметрам.

Существует два способа передачи данных через список параметров из вызывающей программы в процедуру. Первый способ заключается в том, что процедуре передается некоторое данное в виде его значения, например, если данное числового типа, передается само число. Второй способ заключается в том, что передается не значение данного, а адрес ячейки, где это данное находится (говорят, что передается имя переменной). Таким образом, параметры могут передаваться по значению и по имени. В каких случаях, какой способ следует использовать? Обычно входные параметры передаются в процедуру по значению, и каждому простому формальному параметру в этом случае может соответствовать в списке фактических параметров выражение того же типа, что и формальный параметр. Частным случаем выражения может быть константа или переменная. Если в качестве фактического параметра передается переменная, что бы с ней не делалось в процедуре, по окончании значение переменной в основной программе не изменится.

Если в процедуру требуется передать выходные параметры, т.е. имена тех переменных, которые должны измениться в программе в результате работы процедуры, такие параметры, очевидно, должны передаваться по имени. Фактические параметры, передаваемые по имени, не могут быть константами или выражениями, а только именами переменных простого или составного типа, файлов, или подпрограмм.



Есть некоторые особенности при передаче массивов в качестве фактических параметров. Даже если массив представляет собой входные данные и не меняется в процессе выполнения процедуры, его обычно передают по имени, так как это требует передачи только адреса начала массива, а не копии всего массива, как это потребовалось бы при передаче массива по значению. Кроме того, массив основной программы (фактический параметр) и массив в списке формальных параметров должны иметь один и тот же тип - т.е. должен использоваться один и тот же явный описатель.

Остановимся на правилах записи списка формальных и фактических параметров. Элементы списка фактических параметров отделяются друг от друга запятыми, формальные параметры записываются сложнее. Перед параметрами, передаваемыми по имени должно ставиться ключевое слово VAR, за параметром после двоеточия указывается тип, после каждого имени типа ставится символ ";". Если несколько подряд расположенных параметров имеют одинаковый тип (и способ передачи), их можно записать через запятую перед типом.

Примеры написания списков параметров:

 

...(A,B,C: real; VAR X1,X2:real; VAR N:integer);формальные параметры

 

...(0.762, Alfa, C[3]-1.2, X, Y, Num);соответствующие фактические параметры

 

Для передачи массива в процедуру:

TYPE

Vect = array[1..10] of real;

Mas5x8 = array[1..5,1..8] of integer;

. . .

VAR

C1,C2: Vect;

A: Mas5x8;

Metod: Integer;

. . .

{ описание процедуры }

PROCEDURE GetMatr(M:integer; Var X,Y:Vect; Var Z:Mas5x8;...);

VAR

A1,C1:integer;

. . .

Begin

{Операторы тела процедуры}

. . .

End;

BEGIN

{Операторы основной программы }

. . .

GetMatr(0, C2, C1, A,...); { обращение к процедуре }

. . .

END.

 

Примеры описания процедур.

 

1. Описание процедуры, вычисляющей корни уравнения 2-го порядка

(вида A.x2 + B.x + C=0)

 

Procedure XX( A1,A2,A3:real; var X1,X2:real; var K:integer);

{

процедура вычисляющая корни уравнения aX + bX + C=0, и возвращающая



<== предыдущая лекция | следующая лекция ==>
Описание и вызов функций | Классификация внешних данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.025 сек.