如何在伪代码中声明变量?

如何在伪代码中声明变量?

我写了下面的伪代码,我想知道它是否可以。

在此处输入图片描述

两个变量

   local_atoms                        //atoms inside hlground

   global_hlinks                      //hyperlinks to be cut 

将会得到一些值,就像算法中显示的那样。但是有人说把它们放在第 2 行和第 3 行是不对的。我说我在第 2 行和第 3 行的右边给出了注释,所以应该足够清楚了。

因此,我检查了一些使用算法包编写伪代码的示例,但没有找到像我这样编写的示例。所以我想知道编写第 2 行和第 3 行的最佳方法是什么?

我的问题与使用算法包有关,因此我在这里询问。

答案1

而是将这些行完全设置在注释中,因为它不构成算法语句的一部分。

在此处输入图片描述

\documentclass{article}

\usepackage{algorithm,algpseudocode}

\newcommand{\var}{\texttt}
\newcommand{\assign}{\gets}
\newcommand{\True}{\textsc{True}}
\newcommand{\False}{\textsc{False}}
\newcommand{\Parameter}[2]{\Statex $\triangleright$ \var{#1}: #2}

\begin{document}

\begin{algorithm}
  \begin{algorithmic}[1]
    \Function{Find\_hlground}{$G, L$}
      \Parameter{local\_atoms}{atoms inside hlground}
      \Parameter{global\_hlinks}{hyperlinks to be cut}
      \State $\var{result} \assign \True$
        \Comment{true if hlground exists}
      \If{\textproc{cycle\_exist\_dfs}($G, L$)}
        \If{!\textproc{purepath\_exist\_dfs}($G, L$)}
          \State $\var{global\_hlinks} \assign \textproc{mincut}(G, L)$
        \Else
          \State $\var{result} \assign \False$
        \EndIf
      \EndIf
      \If{\var{result}}
        \State $\var{local\_atom} \assign \textproc{get\_local\_atoms}(G, L, \var{global\_links})$
      \EndIf
      \Return \var{result}
    \EndFunction
  \end{algorithmic}
\end{algorithm}

\end{document}

答案2

你用 algorithmicx 标记了这个问题,所以我假设这是你的包(而不是“算法包”没有“-icx”,您在问题文本中提到过)。

正如@dr-manuel-kuehner所暗示的,以及其他缺乏答案的情况,algorithmicx的文档(这里,点击以下链接“包装文档”获取 PDF)并没有告诉如何声明变量。

因此,我使用通用语句(使用 \State 关键字)以及适合我所撰写的期刊或会议(或教授等)的任何类型的格式。在此示例中,我还在声明中初始化了变量。

\State \textbf{local} $local\_atoms \gets 27$ \Comment{Number of atoms in a hlground}

在语句中我有时也使用 \textsc 来表示小型大写字母等。

相关内容