在计算机科学当中,论文当中经常需要排版算法。相信大家在读论文中也看见了很多排版精美的算法。本文就通过示例来简要介绍一下 algorithms 束的用法。该束主要提供了两个宏包,包含两种进行算法排版的环境,algorithm 和 algorithmic 。
这两个宏包是被设计成同时一起使用的,但也可以根据用户的特殊需要分开使用。其中 algorithm 宏包主要是为算法提供一个浮动体环境,也就是说,在 LaTeX 中算法和图像,表一样,都是浮动体。algorithmic 宏包主要是用来完成算法的描述功能,该宏包提供了我们描述算法常用的几种结构命令,如条件结构、循环结构等。下面我们就通过示例来对 algorithm 的使用进行讲解。
Algorithmic 环境
Algorithmic 宏包,为描述算法提供了程序设计中的所有常用结构的表示,如:判断 (IF) ,循环 (WHILE, FOR, LOOP), 输入(REQUIRE) ,输出(ENSURE)等。在这里需要注意的是,所有 algorithmic 提供的命令都是全大写。下面,我们通过一个简单程序的算法,来将所有的算法描述都用上。通过求从1到n的整数和的算法实例来说明 algorithmic 语法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | \begin {algorithmic } \REQUIRE $n \geq 1$ %输入条件 \ENSURE $Sum = 1 + \cdots + n$ %输出 \STATE $Sum \leftarrow 0$ %\STATE 命名演示 \IF { $n < 1$ } %条件语句 \PRINT {Input Errow } %打印语句 \ELSE \FOR { $i = 0$ to n } %FOR循环结构 \STATE $Sum = Sum + i$ \\ \STATE $i = i + 1$ \ENDFOR \ENDIF \RETURN Sum \end {algorithmic } |
以上就是一个算法的示例了其生成文档效果如图所示
这里用的 REQUIRE 命令和 ENSURE 命令和我们日常用的有不同,我们还可以使用重定义命令,将输出变味我们常见的 Input 和 Output 形式,下面是命令:
1 2 | \renewcommand { \algorithmicrequire } { \textbf {Input : } } \renewcommand { \algorithmicensure } { \textbf {Output : } } |
Algorithm 环境
Algorithm 环境主要作用是将代码段变成浮动体,浮动体一方面能防止代码超出页面范围,另外一方面也方面最后生成和图表目录相似的算法列表目录。也能通过标记,方便在文章其它地方引用。还是以上面的例子为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | \begin {algorithm } \caption {计算从1到n的和 } %标题 \label {alg1 } %标记算法,方便在其它地方引用 \begin {algorithmic } \REQUIRE $n \geq 1$ %输入条件 \ENSURE $Sum = 1 + \cdots + n$ %输出 \STATE $Sum \leftarrow 0$ %\STATE 命名演示 \IF { $n < 1$ } %条件语句 \PRINT {Input Errow } %打印语句 \ELSE \FOR { $i = 0$ to n } %FOR循环结构 \STATE $Sum = Sum + i$ \\ \STATE $i = i + 1$ \ENDFOR \ENDIF \RETURN Sum \end {algorithmic } \end {algorithm } |
该断代码生成文档如下图
转载于:https://www.cnblogs.com/lvchaoshun/p/5906886.html

