伪代码

参考内容:
如何编写伪代码
伪代码的写法
伪代码规范
Latex写算法的伪代码排版

1.what is

  • 描述了算法的逻辑,即描述算法的语言。
  • 介于自然语言和编程语言之间,忽略了语言实现的细节,跳脱了语言的限制,有利于个人思考和猿友之间的交流。
  • 伪代码是主观且不标准的。

伪代码未必要使用某一套语法,但是使用标准伪代码结构会让其他程序员更容易理解,这是一种常见的行业规范。[2]如果你自己编写一个项目,最重要的是伪代码可以帮助你组织思路,并制定计划。

2.how

  • 写下这个流程的目的

用一两行来解释代码的用途将有助于建立文档的其余部分,而且还可以不用向每个阅读伪代码的人解释程序的功能。

  • 每条指令占一行(else if除外)
  • 有效使用空白和缩进

在文本的“块”之间使用空格有助于隔离伪代码的不同部分,而对每个块的不同部分进行缩进表明这些伪代码属于缩进较少代码段。

  • 必要时大写关键指令。根据伪代码需求或发布伪代码的环境,可能需要将实际代码中保留的指令大写。
  • 语法规则
    1. 算法中出现的数组、变量可以是以下类型:整数、实数、字符、位串或指针。通常这些类型可以从算法的上下文来看是清楚的,并不需要额外加以说明。
    2. 在算法中的某些指令或子任务可以用文字来叙述,例如,”设x是A中的最大项”,这里A是一个数组;或者”将x插入L中”,这里L是一个链表。这样做的目的是为了避免因那些与主要问题无关的细节使算法本身杂乱无章。
    3. 算术表达式可以使用通常的算术运算符(+,-,*,/,以及表示幂的^)。逻辑表达式可以使用关系运算符=,≠,<,>,≤和≥,以及逻辑运算符与(and),或(or),非(not)。
    4. 赋值语句是如下形式的语句:a<-b 。
      这里a是变量、数组项,b是算术表达式、逻辑表达式或指针表达式。语句的含义是将b的值赋给a。
    5. 若a和b都是变量、数组项,那么记号a<->b 表示a和b的内容进行交换。
    6. goto语句具有形式
      goto label(goto标号)
      它将导致转向具有指定标号的语句。
    7. 条件语句有以下两种形式:
      if c then s或者
      if c then s
      else s′
      这里c是逻辑表达式,s和s′是单一的语句或者是被括在do和end之间的语句串。对于上述两种形式,假若c为真,则s被执行一次。假若c为假,则在第一种形式中,if语句的执行就完成了,而在第二种形式中,执行s′。在所有的情况下,控制就进行到了下一个语句,除非在s或s′中的goto语句使控制转向到其它地方。
    8. 有两种循环指令:while和for。
      while语句的形式是
      while c do
      s
      end
      这里c是逻辑表达式,而s是由一个或更多个语句组成的语句串。当c为真时,执行s。在每一次执行s之前,c都被检查一下;假若c为假,控制就进行到紧跟在while语句后面的语句。注意,当控制第一次达到while语句时,假若c为假,则s一次也不执行。
      for语句的形式是
      for var init to limit by incr do
      s
      end
      这里var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。初始时,var被赋予init的值。假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上。(假若incr<0,则只要var≥limit,就执行s并且将incr加到var上)。incr的符号不能由s来该改变。
    9. exit语句可以在通常的结束条件满足之前,被用来结束while循环或者for循环的执行。exit导致转向到紧接在包含exit的(最内层)while或者for循环后面的一个语句。
    10. return用来指出一个算法执行的终点;如果算法在最后一条指令之后结束,它通常是被省略的;它被用得最多的场合是检测到不合需要的条件时。return的后面可以紧接被括在引号的信息。
    11. 算法中的注释被括在/* */之中。诸如read和output之类的各种输入或者输出也在需要时被用到。

    3.范例

    在这里插入图片描述
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值