Параметр и аргумент
От: Fortnum  
Дата: 29.08.14 10:06
Оценка: 18 (1)
Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Re: Параметр и аргумент
От: 0x7be СССР  
Дата: 29.08.14 10:19
Оценка: +1
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?

Осторожно выскажу предположение, что это зависит от контекста
Re: Параметр и аргумент
От: 0BD11A0D  
Дата: 29.08.14 10:24
Оценка: 39 (3) +4
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Параметр — переменная в объявлении функции, аргумент — выражение, которые передается при вызове функции.

void Foo(int i);
...
Foo(0);


i — параметр, 0 — аргумент.

Тема часто поднимается на SO:
http://stackoverflow.com/questions/3176310/difference-between-parameter-and-argument
http://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter
http://stackoverflow.com/questions/1788923/parameter-vs-argument
Re[2]: Параметр и аргумент
От: Fortnum  
Дата: 29.08.14 10:35
Оценка:
Здравствуйте, 0BD11A0D, Вы писали:

F>>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?

BDA>Параметр — переменная в объявлении функции, аргумент — выражение, которые передается при вызове функции.
BDA>
BDA>void Foo(int i);
BDA>...
BDA>Foo(0);
BDA>

BDA>i — параметр, 0 — аргумент.

Надо будет SO посмотреть... а вообще, разве не так?

0 — аргумент, оно же значение параметра, оно же фактический параметр
i — параметр, он же аргумент функции

f(x), где f — название функции, x — аргумент функции (без значения).
Re[3]: Параметр и аргумент
От: 0BD11A0D  
Дата: 29.08.14 11:01
Оценка:
Здравствуйте, Fortnum, Вы писали:

F>Надо будет SO посмотреть... а вообще, разве не так?


void Foo(int i, int d = 0);
...
Foo(1);


Сколько параметров? Два (i и d).
Сколько аргументов? Один (единица).

По-моему, теперь уже точно не перепутаешь. Но, может, кто-то приведет пример лучше?
Re: Параметр и аргумент
От: fin_81  
Дата: 29.08.14 11:08
Оценка:
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Судя по википедии, параметр — это различие похожих множеств, функций, "коэффициент пропорциональности". Аргумент — более близок к термину "значение передаваемое функции".
Re: Параметр и аргумент
От: Miroff Россия  
Дата: 29.08.14 11:44
Оценка:
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Аргемент у функции, а параметр у процедуры
Re: Параметр и аргумент
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 29.08.14 12:43
Оценка: +1
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Напоминаю, что параметры бывают формальные:

// i - формальный параметр.
void foo(int i);


и фактические:

// 10 - фактический параметр.
foo(10);


Аргумент — просто другое название для параметров, применяется вместо более длинных выражений: "формальный параметр" и "фактический параметр", при этом конкретное значение должно определяться контекстом.



Википедия, как всегда, жжёт напалмом:

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


Ну, хорошо, хоть не "взгляд на параметры".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Параметр и аргумент
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 29.08.14 13:19
Оценка:
Здравствуйте, 0BD11A0D, Вы писали:

BDA>http://stackoverflow.com/questions/3176310/difference-between-parameter-and-argument

BDA>http://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter
BDA>http://stackoverflow.com/questions/1788923/parameter-vs-argument

Кстати, не знаю уж, насколько этот комментарий соответствует действительности английского языка, но если соответствует, то многое объясняет:

A "parameter" is a placeholder. They set the response format, in spoken language. By definition, it's party to the call, limiting the response.

An "argument" is a position that is being considered. You argue your opinion: you consider an argument.

[...]

Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Параметр и аргумент
От: Qodomoc Россия  
Дата: 29.08.14 13:58
Оценка: 3 (1)
Цитата из спецификации C++:

1.3.1 argument
an expression in the comma-separated list bounded by the parentheses in a function call expression, a
sequence of preprocessing tokens in the comma-separated list bounded by the parentheses in a function-like
macro invocation, the operand of throw, or an expression, type-id or template-name in the commaseparated
list bounded by the angle brackets in a template instantiation. Also known as an actual argument
or actual parameter.

1.3.9 parameter
an object or reference declared as part of a function declaration or definition, or in the catch clause of an
exception handler, that acquires a value on entry to the function or handler; an identifier from the commaseparated
list bounded by the parentheses immediately following the macro name in a function-like macro
definition; or a template-parameter. Parameters are also known as formal arguments or formal parameters.


То есть аргумент — это то, что указывается при вызове функции (может называться актуальным (фактическим) параметром или аргументом).
Параметр — часть объявления или определения функции (может называться формальным параметром или аргументом).
Отредактировано 29.08.2014 14:02 Qodomoc . Предыдущая версия .
Re: Параметр и аргумент
От: AlexRK  
Дата: 29.08.14 17:19
Оценка:
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Существуют разные терминологии. Не уверен, что есть однозначная трактовка. Обычно в трудах, претендующих на основательность (например таких, как книга Бертрана Мейера "Object-oriented software construction") явным образом формулируется, что имеется в виду под "параметром" и "аргументом".
Re: Параметр и аргумент
От: Кодт Россия  
Дата: 02.09.14 13:02
Оценка: 5 (2) :)
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Практически, синонимы. Но есть нюансы смысла.
Параметр — это управляющее значение, а аргумент — входное.
Например, для линейной функции y = kx+b значения k и b — это параметры, а x — аргумент.

Если такое смысловое разделение присутствует — чаще всего, по аспекту времени, — то стоит и терминологически разнести.
Величины времени компиляции и конфигурации, устанавливаемые однократно, — это будут параметры, а по-настоящему переменные величины, изменяемые многажды, — это аргументы.
template<int b> int linear(int k, int x) { return k*x + b; } // b - параметр шаблона; k и x - аргументы функции

int scale(int k, int x) { return linear<0>(k,x); } // формально, оба аргумента равноправны, но мы-то знаем...

int negate(int x) { return scale(-1, x); } // negate - это функция одного аргумента, вызывающая linear с параметрами k=-1 и b=0

// или, в одну кучу,
function<int(int)> negate = bind(linear<0>, -1, _1); // причём параметр k=-1 был установлен в рантайме, - но однократно, при старте программы


А если параметры имеют иную природу, — например, являются типами, — то сам бог велел их отличать от аргументов
template<class NUMERIC> NUMERIC scale(NUMERIC k, NUMERIC x) { return k*x; }

function<int(int)> negate = bind(scale<int>, -1, _1);


Хотя, окунаясь в метапрограммирование, т.е. оставаясь в одном и том же отрезке времени, мы снова потеряем различие между аргументами метафункций — типами, числами, кусками кода в макросах и т.п.
Перекуём баги на фичи!
Re: Параметр и аргумент
От: Кодт Россия  
Дата: 02.09.14 13:06
Оценка: +1 :))) :)
Здравствуйте, Fortnum, Вы писали:

F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?


Внезапно яндекс
  Тангкубан
Перекуём баги на фичи!
Re[2]: Параметр и аргумент
От: Fortnum  
Дата: 11.09.14 05:54
Оценка:
Здравствуйте, Кодт, Вы писали:

F>>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?

К>Практически, синонимы. Но есть нюансы смысла.
К>Параметр — это управляющее значение, а аргумент — входное.
К>Например, для линейной функции y = kx+b значения k и b — это параметры, а x — аргумент.

Параметр — это более широкое понятие. Все аргументы можно назвать параметрами — не ошибешься. Но не все параметры можно назвать аргументами.

Когда говорят "аргумент", обязательно имеют в виду какой-то контекст. Не может существовать аргумент без контекста. А параметр может.

Параметр — просто переменная величина. Аргумент — переменная величина в каком-то контексте, не обязательно со значением. Как "х" в твоем примере выше является аргументом, не имея значения. Этот "х" просто аргумент функции с параметрами.

Можно ли придумать такой случай, где аргумент не был бы параметром?

И можно ли придумать такой случай, где параметр не являлся бы аргументом при наличии контекста?
Re[3]: Параметр и аргумент
От: Кодт Россия  
Дата: 12.09.14 07:54
Оценка:
Здравствуйте, Fortnum, Вы писали:

F>Когда говорят "аргумент", обязательно имеют в виду какой-то контекст. Не может существовать аргумент без контекста. А параметр может.


Что ты называешь контекстом? И в чём проявляется разница?

F>Параметр — просто переменная величина. Аргумент — переменная величина в каком-то контексте, не обязательно со значением. Как "х" в твоем примере выше является аргументом, не имея значения. Этот "х" просто аргумент функции с параметрами.


Тут смешение 4 понятий:
— именованный вход
— точки подстановки в выражение (в тело функции)
— область применения функции
— ну и, собственно, "фактический аргумент" — конкретное значение, поданное на вход функции

F>Можно ли придумать такой случай, где аргумент не был бы параметром?


Аргумент комплексного числа

F>И можно ли придумать такой случай, где параметр не являлся бы аргументом при наличии контекста?


Только после того, как ты сформулируешь, что такое контекст
Перекуём баги на фичи!
Re[2]: Параметр и аргумент
От: Dym On Россия  
Дата: 15.09.14 09:07
Оценка:
К>Внезапно яндекс
К>
  Тангкубан
К>Image: parametr-yandex.png

Яндекс что-то знает ...
Счастье — это Glück!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.