Механизм передачи параметров организация функций

Механизм передачи параметров

По способу передачи данных параметры можно разделить на несколько категорий. Любой из формальных параметров подпрограммы может быть либо параметром-значением, либо параметром-переменной, либо параметром-константой. Если параметры определяются как параметры-переменные, перед ними необходимо ставить зарезервированное слово VAR, например:

Procedure tide (var a : real);

Заголовок процедуры может быть устроен так, что некоторые группы формальных параметров не содержат слова VAR. Например:

Procedure qwerty(a,b,c:real; var s:real);

Формальные параметры, которые входят в группы, не содержащие слова VAR, называются формальными параметрами-значениями.

Определение формального параметра тем или иным способом существенно только для вызывающей программы:

— если формальный параметр объявлен как параметр-переменная, то при вызове подпрограммы ему должен соответствовать фактический параметр в виде переменной определенного типа;

— если формальный параметр объявлен как параметр-значение, то при вызове ему может соответствовать произвольное выражение.

Контроль за неукоснительным соблюдением этого правила осуществляет компилятором Pascal.

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

Если же параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия.

*** Любые возможные изменения в подпрограмме параметра-значенияникак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменение параметра-переменной приводитк изменению самого фактического параметра в вызывающей программе.

*** Параметр-константа схож с параметром-переменной: в подпрограмму передается сама константа, но изменение её невозможно. Назначение такого параметра совпадает с назначением параметра-значения. Формальные параметры- константы указываются в заголовке программы после служебного слова const. Его действие распространяется до ближайшей точки с запятой. Поясним изложенное.

procedure squar(с: integer; var b: integer);

writeln(‘в квадрате они выглядят так: ’,с,’, ’,b);

writeln(‘внимательно посмотрите на эти числа: ’, с,’, ’, b);

writeln(‘а так – “с” не в квадрате: ’,с, ’, ’,b);

Результаты выглядят так:

внимательно посмотрите на эти числа: 4, 6

в квадрате они выглядят так: 16, 36

а так – “с” не в квадрате: 4, 36

Этот пример может служить еще и иллюстрацией механизма «закрывания» глобальной переменной а одноименной локальной: хотя переменная объявлена как глобальная(она описана в вызывающей программе перед описанием процедуры), в теле процедуры ее «закрыла» локальная переменная а, объявленная как параметр-значение.

Итак, параметры-переменные используются как средство связи алгоритма, реализованного в подпрограмме, с «внешним миром»: с помощью этих параметров подпрограмма может передавать результаты своей работы вызывающей программе.

Дата добавления: 2017-11-04 ; просмотров: 1251 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Механизм передачи параметров

В заголовке процедуры или функции может быть задан список параметров, которые называются формальными. Название «формальные» эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове программы на их место будут подставлены конкретные значения. Этот список указывается после имени подпрограммы и заключается в круглые скобки.

Список формальных параметров, указываемых в заголовке подпрограммы, может включать в себя:

– параметры-переменные, перед которыми должно стоять служебное слово var и за которыми указывается их тип;

– параметры-процедуры, перед которыми должно стоять служебное слово procedure;

– параметры-функции, перед которыми должно стоять служебное слово function и после которых указывается тип значения, возвращаемого функцией в основную программу;

– нетипизированные параметры, перед которыми должно стоять служебное слово var, а указание типа должно отсутствовать.

В списке должны быть перечислены имена формальных параметров и их типы. Имя параметра отделяется от типа двоеточием, а параметры друг от друга – точкой с запятой. Имена параметров одного типа можно объединять в подсписки, в которых имена отделяются друг от друга запятой.

procedure P(procedure В; function С : real; Q. W. R : char); procedure A:

Между формальными и фактическими параметрами должно быть полное соответствие:

– формальных и фактических параметров должно быть одинаковое количество;

– порядок следования фактических и формальных параметров должен совпадать;

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

procedure Abort(Msg: string):

function Step(N : integer; X ; real): real:

Параметры-переменные используются для определения результатов выполнения процедуры и в списке формальных параметров перечисляются после зарезервированного слова var с обязательным указанием типа. Каждому формальному параметру, объявленному как параметр-переменная, должен соответствовать фактический параметр в виде переменной соответствующего типа, например:

procedure Example(var M,N : integer; var Y : real);

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

Источник

ИНФОРМАТИКА 1.1.

* Процедуры и функции

1. Функции

Процедуры и функции в общем случае называются подпрограммами и применяются для упрощения структуры программы.

Подпрограмма-функция обрабатывает данные, переданные ей из главной программы, и затем возвращает полученный результат (в отличие от процедуры). В языке Паскаль есть стандартные функции, которые описаны в модулях. Ими можно пользоваться. Для использования некоторых стандартных функций требуется объявление соответствующего модуля в секции uses раздела описаний. Наиболее часто используемые математические функции приведены в табл. 1.6.

Часто возникает необходимость описать свою функцию и многократно использовать её в программе. Описываются функции в разделе описаний программы, а используются – в основной части.

Функция, определенная пользователем, состоит из заголовка, своего раздела описаний и тела функции. Заголовок содержит зарезервированное слово function, имя, список формальных параметров (заключенный в скобки) и тип возвращаемого функцией значения. Раздел описаний аналогичен разделу описаний программы и может содержать те же секции, включая описание собственных функций и процедур. Раздел описаний может и отсутствовать, если в нём нет необходимости. Тело функции представляет собой локальный блок, по структуре сходный с программой.

Общий вид описания функции:

function ( ): ;

const … ;

var … ;

begin

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

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

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

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

Пример 3.1. Найти значение следующего выражения:

Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций,

где Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций.

program prf;

var t,c,r:real;

function F(x:real):real;

begin

F:=sqrt(x)+2*sqr(x)+3*x;

begin

Writeln(‘Введите числа’);

Write(‘t=’); Readln(t);

Write(‘c=’); Readln(c);

writeln(‘результат = ’, r:8:3);

Источник

Механизм передачи параметров

Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций

Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций

Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций

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

Между формальными и фактическими параметрами должно быть полное соответствие:

• формальных и фактических параметров должно быть одинаковое количество

• порядок следования фактических и формальных параметров должен быть один и тот же;

• тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.

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

procedure Abort(Msg: string);

function Step(N : integer; X : real): real;

Пример программы с использованием передачи параметров по значению:

procedure Sum_Square(X, Y : real);

Writeln(‘Cyммa квадратов = ‘,X+Y);

При вызове процедуры Sum_Square с фактическими параметрами А, В значения этих параметров (один раз) копируются в соответствующие формальные параметры X, Y, и дальнейшие преобразования формальных параметров X,Y внутри процедуры Sum_Square уже никак не влияют на значения переменных А, В.

Параметры-переменные. Параметры-переменные используются для определения результатов выполнения процедуры и в списке формальных параметров перечисляются после зарезервированного слова Var с обязательным указанием типа. Каждому формальному параметру, объявленному как параметр-переменная, должен соответствовать фактический параметр в виде переменной соответствующего типа, например:

procedure Example(var M,N : integer; var Y : real) ;

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

Механизм передачи параметров организация функций. Смотреть фото Механизм передачи параметров организация функций. Смотреть картинку Механизм передачи параметров организация функций. Картинка про Механизм передачи параметров организация функций. Фото Механизм передачи параметров организация функций

Пример программы, использующей параметры-переменные:

procedure Sum_Sub(X,Y : real; var Sum, Sub : real);

Источник

Механизм передачи параметров

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

Список формальных параметров, указываемых в заголовке подпрограммы, может включать в себя

В списке должны быть перечислены имена формальных параметров и их типы. Имя параметра отделяется от типа двоеточием, а параметры друг от друга — точ­ной с запятой. Имена параметров одного типа можно объединять в подсписки, в которых имена отделяются друг от друга запятой.

Между формальными и фактическими параметрами должно быть полное ее соответствие:

• формальных и фактических параметров должно быть одинаковое количество.

• порядок следования фактических и формальных параметров должен быть один и тот же;

• тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.

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

procedure Abort(M: byte);

function Step(N : integer; X : real): real;

Если формальный параметр объявлен как параметр-значение, то:

фактическим параметром может быть произвольное выражение.

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

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

Если параметр объявлен как параметр-переменная то:

его фактическим параметром может быть только переменная тождественного типа

при вызове процедуры ей передается сама переменная, а не ее копия, и изменение переменой приводит к изменению фактического параметра в вызывающей программе.

Зам! Параметры-переменные могут использоваться только в процедурах!

Лекция 28.

Вопросы:

Что такое подпрограмма, какие типы подпрограмм вы знаете?

Как вызвать подпрограмму, как осуществляется ее работа?

Что такое параметры, их виды?

Охарактеризовать параметры- значения.

Охарактеризовать параметры- переменные.

Основные задачи по теме подпрограммы:

Написать программу ввода одномерного массива целых чисел размера N, нахождения суммы двух массивов и вывода результата на экран, кроме этого написать процедуру- заставку, очищающую экран, выводящую в центре экрана надпись «Это программа нахождения суммы массивов».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *