Подтвердить что ты не робот

В чем разница между функцией и подпрограммой?

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

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

Это правда? Или нет никакой разницы, только два члена для обозначения одного?

4b9b3361

Ответ 1

Я не согласен. Если вы передадите параметр по ссылке на функцию, вы сможете изменить это значение вне области действия функции. Кроме того, функции не должны возвращать значение. Рассмотрим void some_func() в C. Таким образом, помещения в OP недействительны.

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

Ответ 2

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

Это мое определение их; -)

Ответ 3

Если мы говорим на языках C, С++, Java и других языках высокого уровня:

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

б. Функция представляет собой реализацию концепции подпрограммы на языке программирования

Ответ 4

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

double multi(double x, double y) 
{
  double result; 
  result = x*y; 
  return(result)
}

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

double mult(double x, double y, double result) 
{
  result = x*y; 
  x=20; 
  y = 2; 
  return()
}

Это будет делать то же, что и функция, которая возвращает произведение x и y, но в этом случае вы (1) должны определить результат как переменную и (2) вы можете изменить значения x и y на обратном пути.

Ответ 5

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

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

надеюсь, что у вас есть фактическая зависимость между подпрограммами и функциями.:)

Ответ 6

Я пишу этот ответ из VBA для перспективы Excel. Если вы пишете функцию, вы можете использовать ее как выражение i. е. вы можете вызвать его из любой ячейки в excel.

например: нормальная функция vlookup в excel не может искать значения > 256 символов. Поэтому я использовал эту функцию: *

   Function MyVlookup(Lval As Range, c As Range, oset As Long) As Variant
    Dim cl As Range
    For Each cl In c.Columns(1).Cells
    If UCase(Lval) = UCase(cl) Then
    MyVlookup = cl.Offset(, oset - 1)
    Exit Function
    End If
    Next
    End Function

*

Это не мой код. Получил это из другого интернет-сообщения. Он отлично работает.

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

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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