伪代码:\Function 与 \Procedure?

伪代码:\Function 与 \Procedure?

标题说明了一切。

Functiona和 a有什么区别Procedure

我什么时候应该使用哪一个?

答案1

据称algpseudocode,除了名称不同之外,这两者在结构上是相同的:

\algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}%
   [2]{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
   {\algorithmicend\ \algorithmicprocedure}%
\algdef{SE}[FUNCTION]{Function}{EndFunction}%
   [2]{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
   {\algorithmicend\ \algorithmicfunction}%

从编程角度来看,差异嵌入在语言中,并具有以下常用的结构(外行人能理解的):

  • 程序: 指令集
  • 功能:一组指令,也会返回一些内容

一个简单的例子,说明它们的典型用法:

在此处输入图片描述

\documentclass{article}
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithmic}
\Procedure{name}{params}
  \State body
\EndProcedure
\Function{name}{params}
  \State body
  \State \Return something
\EndFunction
\end{algorithmic}
\end{document}

答案2

这根本不是一个与 TeX 相关的问题,但是函数返回一个值,而过程不返回(void在 C++ 中)。过程仅执行某些操作,它因其副作用而被调用。

相关内容