что представляют собой фактические параметры

Подпрограммы

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

4.1 Общие сведения о подпрограммах. Локальные и глобальные переменные

Для правильного определения области действия идентификаторов (переменных) необходимо придерживаться следующих правил:

4.2 Формальные и фактические параметры. Передача параметров в подпрограмму

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

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

Формальные параметры процедуры можно разделить на два класса: параметры-значения и параметры-переменные.

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

От общетеоретических положений перейдём к практическому использованию подпрограмм при решении задач. Изучение подпрограмм начнем с процедур.

4.3 Процедуры

Описание процедуры имеет вид:

procedure name_1( r : real; i : integer; c : char );

Однотипные параметры могут быть перечислены через запятую:

procedure name_2( a, b : real; i, j, k : integer );

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

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

procedure name_4( x, y : real; var z : real );

Для обращения к процедуре необходимо использовать оператор вызова:

Фактические параметры в списке оператора вызова отделяются друг от друга запятой:

a : = 5. 3; k : = 2; s := ’ a ’;

Если в описании процедуры формальные параметры отсутствовали, то и при вызове их быть не должно:

Алгоритм решения этой задачи был подробно описан в задаче 3.3 (рис. 3.14). Однако там не была рассмотрена ситуация некорректного ввода значений коэффициентов. Например, если пользователь введёт что представляют собой фактические параметры. Смотреть фото что представляют собой фактические параметры. Смотреть картинку что представляют собой фактические параметры. Картинка про что представляют собой фактические параметры. Фото что представляют собой фактические параметры, то уравнение из квадратного превратится в линейное. Алгоритм решения линейного уравнения тривиален: что представляют собой фактические параметры. Смотреть фото что представляют собой фактические параметры. Смотреть картинку что представляют собой фактические параметры. Картинка про что представляют собой фактические параметры. Фото что представляют собой фактические параметры, при условии, что что представляют собой фактические параметры. Смотреть фото что представляют собой фактические параметры. Смотреть картинку что представляют собой фактические параметры. Картинка про что представляют собой фактические параметры. Фото что представляют собой фактические параметры. Чтобы не усложнять уже составленный алгоритм решения квадратного уравнения, запишем его в виде подпрограммы-процедуры. Далее приведён фрагмент программы с комментариями:

Источник

Формальные и фактические параметры

Рассмотрим более подробно вопросы взаимодействия формальных и фактических параметров.

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

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

Все формальные параметры можно разбить на четыре категории:

— параметры-значения (эти параметры подпрограмма может изменить в основной подпрограмме);

— параметры-переменные (эти параметры подпрограмма может изменить в основной программе);

— параметры-константы (только в версии 7.0);

— параметры-процедуры и параметры-функции (т.е. процедурного типа).

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

Например, нельзя писать

Function SUMM (A: array[1..100] of Real): Real;

Чтобы правильно записать этот заголовок, следует в основной программе ввести тип-массив, а затем использовать его в заголовке:

Type aArr = array[1..100] of real;

Function SUMM (A: aArr): Real;

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

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

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

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

Procedure MIN_MAX(Max,Min: Real; n: Word);

Function Tabulir(X,Y: Integer): Real;

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

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

Определим в основной программе тип-массив.

aArr = Array[1..] of Integer;

Var Massiv: aArr; Maxim: Integer;

Функция в этом случае может иметь следующий вид.

Function Max(Mas: aArr; N: Byte): Integer;

Var Ma : Integer; i : Byte;

If MaMas[i] then Ma := Mas[i];

Пусть надо определить максимальное число из первых 35 чисел массива. Это можно сделать с помощью оператора, использующего обращение к функции: Maxim := Max(Massiv,35);

Примечание. Данная программа может работать только с массивами типа аАrr. Для массивов другого типа надо создавать другую аналогичную подпрограмму. Данная программа создает в стеке копию исходного массива, поэтому она работает медленно.

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

Пример 2.8. Procedure MaxMin(A: аАrr; Var Max, Min: Real; N: Word);

Здесь Max, Min- параметры-переменные, а переменные А и N — параметры-значения.

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

Type аАrr = array [1.. 100] of Integer;

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

Использовать функцию для вычисления максимального элемента в массиве.

В основной программе определяется тип-массив.

Type аАrr = Array [1.. 50] of Integer;

Var Massiv: аАrr; Maxim: Integer;

Функция в этом случае может иметь вид:

Function Max(Var Mas: аАгг; N: Byte): Integer;

Var Ma : Integer; i : Byte;

If MaMas[i] then Ma := Mas[i];

Пусть надо определить максимальное число из первых 35 чисел массива Это можно сделать с помощью оператора:

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

Часто в качестве параметра в подпрограмму следует передать ту или иную переменную, но изменять ее подпрограмма не должна. В этом случае нежелательно передавать этот параметр как параметр-переменную. Можно его передать как параметр-значение, однако если эта переменная имеет больший размер (массив, запись и т.д.), то копия этого параметра займет большую часть стека и даже может его переполнить. Это приводит также к уменьшению быстродействия программы. В этой ситуации параметр лучше передать как параметр-константу. Такой параметр, если он структурированного типа, передается своим адресом, но предусматривается защита от его изменения. Использовать параметр-константу можно только в версии Турбо Паскаля 7.0.

Параметр-константа указывается в заголовке подпрограммы аналогично параметру-значению, но перед именем параметра записывается зарезервированное слово Const. Действие слова Const распространяется до ближайшей точки с запятой, т.е. в пределах одной группы.

Пример 2.10.Function NewString(Const S: String): String;

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

Параметр-константу нельзя передавать в другую подпрограмму в качестве фактического параметра.

Функция вычисления максимального элемента в массиве, и в качестве первого параметра – параметр-константа.

Function Max(Const Mas: аАrr; N: Byte): Integer;

Var Ma : Integer; i : Byte;

If MaMas[i] then Ma := Mas[i];

Параметры без типа

В Турбо Паскале можно использовать параметры-переменные и параметры-константы без указания типа. В этом случае фактический параметр может быть переменной любого типа,а ответственность за правильное использование того или иного параметра возлагается на программиста.

Пример 2.12.Function Tqual(Var Param1, Param2; Len: Word):Boolean;

Здесь Param1, Param2 — параметры-переменные без типа (вместо них можно использовать, например, любые переменные простого типа, типа-массив, типа-запись и т.д.); Len — параметр-значение.

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

Пример 2.13.Функция вычисления максимального элемента в массиве. При этом в качестве первого параметра используется параметр-переменная без типа:

Function Max(Var Masr; N: Byte): Integer;

Type aArray = array[Maxint] of Integer;

Var Ма : Integer; i : Byte;

Begin Ма := aArray(Mas)[1];

If МаaArray(Mas)[i] then Ма := aArray(Mas)[i];

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

Статьи к прочтению:

Ээ в этом случае наши полномочия все окончены

Похожие статьи:

Лабораторная работа №3 Использование подпрограмм в системе MATLAB Цель работы: Знакомство с организацией функций в MATLAB, особенностями их работы….

Существует несколько способов передачи параметров в подпрограмму. § Передача параметров по значению. Формальному параметру присваивается значение…

Источник

В каком случае используются фактические параметры?

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

Какую роль при работе с подпрограммой выполняют фактические параметры?

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

Где записывается фактические параметры?

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

Если формальный параметрпараметр— значение, то фактический параметр при вызове процедуры задается:

Что такое формальные и фактические аргументы?

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

Как производится вызов подпрограммы функции?

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

Чем отличаются формальные и фактические параметры?

Формальные параметры — это идентификаторы входных данных для подпрограммы. Если формальные параметры получают конкретные значения, то они называются фактическими. … Из этого следует, что фактические параметры используются при обращении к подпрограмме из основной, а формальные параметры — только в самом модуле.

Что представляют собой фактические параметры?

Фактические параметры или аргументы — это то, что реально было передано в функцию, метод или процедуру, что описано в операторе вызова функции, метода или процедуры. Не следует путать их с формальными параметрами.

Что такое формальные и фактические параметры локальные и глобальные?

Формальные и фактические параметры

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

Сколько основных классов формальных переменных существует?

Все формальные параметры можно разбить на четыре категории: параметры-значения; параметры-переменные; параметры-константы (используются только в версии 7.0);

Где хранятся локальные переменные?

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

Что такое аргументы функции в информатике?

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

Для чего нужны параметры в информатике?

Пара́метр в программировании — принятый функцией аргумент. … Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое.

Что такое параметр значение?

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

Как осуществляется вызов процедуры из основной программы?

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

Для чего применяются функции и процедуры?

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

Что такое функции и процедуры?

Что такое процедуры и функции

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

Источник

Фактический параметр

Смотреть что такое «Фактический параметр» в других словарях:

фактический параметр — Языковый объект, который появляется в вызове процедуры и связывается с соответствующим формальным параметром процедуры для использования при ее выполнении. [ГОСТ 28397 89] Тематики языки программирования EN (actual) argumentactual parameter … Справочник технического переводчика

Фактический параметр — 29. Фактический параметр Actual parameter (Actual) argument Языковый объект, который появляется в вызове процедуры и связывается с соответствующим формальным параметром процедуры для использования при ее выполнении Источник: ГОСТ 28397 89: Языки… … Словарь-справочник терминов нормативно-технической документации

Параметр (программирование) — У этого термина существуют и другие значения, см. Параметр (значения). Параметр в программировании принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр в каком качестве… … Википедия

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

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

ГОСТ 28397-89: Языки программирования. Термины и определения — Терминология ГОСТ 28397 89: Языки программирования. Термины и определения оригинал документа: 38. Автоматическое распределение памяти Automatic storage allocation Выделение памяти при входе в программный блок для локальных переменных и ее… … Словарь-справочник терминов нормативно-технической документации

Обобщенное программирование — Обобщённое программирование парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание. В том или ином виде поддерживается разными языками… … Википедия

Парадигма — (Paradigm) Определение парадигмы, история возникновения парадигмы Информация об определении парадигмы, история возникновения парадигмы Содержание Содержание История возникновения Частные случаи (лингвистика) Управленческая парадигма Парадигма… … Энциклопедия инвестора

Обобщённое программирование — (англ. generic programming) парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание. В том или ином виде поддерживается разными… … Википедия

Haskell — Класс языка: функциональный, ленивый, модульный Тип исполнения: компилируемый, интерпретируемый Появился в: 1990 … Википедия

Источник

Фактические и формальные параметры функции

Лабораторная работа №3

Использование подпрограмм в системе MATLAB

Цель работы: Знакомство с организацией функций в MATLAB, особенностями их работы.

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

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

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

В общем виде программа функции имеет следующую структуру:

function [y1,…,yN] = имя_функции(x1,…,xM)

Функция начинается с ключевого слова function, за которым следуют в квадратных скобках через запятую имена выходных переменных. Далее следует знак «=» и имя функции. Имя функции подчиняется тем же правилам, что и имена переменных. Имя функции обязательно должно совпадать с именем файла, в котором она определена. После имени функции в круглых скобках через запятую следуют имена входных параметров. Следующие строки содержат тело функции (любые допустимые выражения MATLAB). Конец функции определяет ключевое слово end, однако оно не является обязательным, и его можно опустить. Если функция возвращает только один параметр, то его не обязательно заключать в квадратные скобки, например:

function s = triaArea( a, b )

% вычисление площади прямоугольного треугольника

% a, b — катеты треугольника

Если функция не имеет возвращаемых параметров, то после ключевого слова function следует имя функции, например:

% пример функции без входных и выходных параметров

Для вызова функции применяется следующий синтаксис:

[k1, …, kN] = имя_функции(z1,…,zM)

где k1, …, kN – переменны, куда будут записаны выходные значения функции, а z1,…,zM – аргументы функции.

В случае, если функция возвращает только один параметр, квадратные скобки можно опустить, например:

Фактические и формальные параметры функции

При написании и использовании функций различают фактические и формальные параметры функции:

Поясним различие между фактическими и формальными параметрами функции на примере:

Рассмотрим функцию, вычисляющую площадь и периметр параллелограмма. Функция содержится в файле ParArea.m:

function [s, p] = ParArea( a, b, alfa )

% Функция для вычисления площади и периметра параллелограмма по

% двум сторонам и углу между ними

% a, b, alfa — входные параметры (две стороны и угол), скаляры

% s, p — площадь и периметр треугольника соответственно, скаляры

% a, b, alfa, s, p являются формальными параметрами, то есть

% объявленные в определении функции.

% С входными параметрами можно работать, как с обычными переменными.

% Выходным параметрам необходимо присвоить какое-либо значение

Пример использования данной функции:

[area, perimetr] = ParArea(a, b, pi/3)

При вызове функции ParArea параметры a, b, pi/3, area, perimeter являются фактическими. При вызове функции фактические параметры подставляются в формальные, поэтому их имена могут быть различными.

Для корректной работы функции при ее вызове имеет значение порядок следования переменных. Так, если в предыдущем примере поменять местами переменные perimeter и area, результат, который вернет функция, по смыслу будет неверным:

[perimetr, area] = ParArea(a, b, pi/3)

Рабочая область функции

В MATLAB рабочие области бывают двух типов:

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

% пример локальной переменной

И введем следующие команды в командное окно MATLAB:

Как видно из примера, даже не смотря на то, что в функции была создана переменная x и ей было присвоено значение 2, это никак не повлияло на переменную x, созданную в базовой рабочей области.

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

Статьи к прочтению:

Формальные и фактические параметры. Использование подпрограмм в Турбо Паскале. Урок 20

Похожие статьи:

Рассмотрим более подробно вопросы взаимодействия формальных и фактических параметров. Определения формальных и фактических параметров являются…

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

Источник

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

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