伪代码书写规则_伪代码及其实例讲解

伪代码书写规则_伪代码及其实例讲解伪代码书写规则输入缩进变量数组选择结构循环结构返回值注释大小写最近要用到伪代码写算法,所以在网上查阅了一些资料,写这篇博客正好整理、记录一下自己所学的书写规则,以便自己日后使用,如果能对大家有所帮助,那就更好了。文中不足,欢迎给位大神多多指点。输入赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

最近要用到伪代码写算法,所以在网上查阅了一些资料,写这篇博客正好整理、记录一下自己所学的书写规则,以便日后复习查阅,如果还能对大家有所帮助,那就更好了。文中不足,欢迎各位大神多多指点。

前言

伪代码是半角式化 、不标准的语言。我们可以通过它将整个算法运行过程的结构用接近自然语言的形式描述出来(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)。 借助伪代码, 我们可以更好的表述算法, 而不用拘泥于具体的实现;同样,当我们学习别人的算法时,也不会因C、C++、C#、JAVA等语言语法的差异,而影响我们理解算法的思想。

输入

赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量i和j,这种表示与j←e和i←e等价。例:

x←20*(y+1) 相当于C语言中的 x = 20*(y+1);
x←y←30 相当于C语言中的x = y = 30;

百度百科上给出了a←3;
但我看某些博客也有3→a;//是否合适,有待验证。

变量

变量不需声明,但都相当于是所在函数内部的局部变量,不能不加显示的说明就使用全局变量;

数组

A[j]指示数组A的第j个元素。符号“ …”用来指示数组中值的范围。例如:
A[1…j]表示含元素A[1], A[2], … , A[j]的子数组;

程序块

程序块在伪代码程序语句上中表现为一种“缩进”,表示程序中的分支程序结构,同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进;

注:还有的博客提出“通常用连续的数字或字母来标示同一即模块中的连续语句”例:

  1. line 1 2. line 2 a. sub line 1 b. sub line 2 1. sub sub line 1 2. sub sub line 2 c. sub line 3 3. line 3

选择结构

选择语句用if-then-else来表示,例:

if (Condition1) then [ Block 1 ] else if (Condition2) then [ Block 2 ] else [ Block 3 ]

循环结构

while循环

while c do
  s
end

for循环

for var init to limit by incr do
  s
end

注:
①var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。②初始时,var被赋予init的值。
③limit是结束时的临界值:假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上;假若incr<0,则只要var≥limit,就执行s并且将incr加到var上。
④incr的符号不能由s来该改变。
例:

for 循换变量 初值 to 终值 step 步长 do
  s
end
注:“step 步长”对应的是模板中的“by incr”

网上博客找的例句,但好像有点不对“1. x ← 0 2. y ← 0 3. z ← 0 4. while x < N 1. do x ← x + 1 2. y ← x + y 3. for t ← 0 to 10 1. do z ← ( z + x * y ) / 100 2. repeat 1. y ← y + 1 2. z ← z – y 3. until z < 0 4. z ← x * y 5. y ← y / 2”

相当于C语言中的“x = y = z = 0; while( z < N ) { x ++; y += x; for( t = 0; t < 10; t++ ) { z = ( z + x * y ) / 100; do { y ++; z -= y; } while( z >= 0 ); } z = x * y; } y /= 2;”

返回值

函数值利用 “return (函数返回值)” 语句来返回,调用方法与Pascal类似;过程用 “call 过程名”语句来调用;
  例如:
  1. x ← t + 10
  2. y ← sin(x)
  3. call CalValue(x,y)
注:参数用按值传递方式传给一个过程(待确认)

每行指令结尾后无符号

每一条指令占一行,每一行指令后不跟任何符号(C语言中的语句要以分号结尾)

注释

因为伪代码属于类C语言,所以注释采用C语言中的 “// ”。请注意,此处与网上大多博客不同
注:我看网上很多说“符号△后的内容表示注释”,但是当我在论文中用伪代码描述算法,使用△表示注释时,却被导师指为错误。所以目前还是使用C 语言中的 “ // ”表示注释

大小写

变量名和保留字不区分大小写

参数赋值

参数采用按值传递方式,即在被调用过程中的赋值x←y对主调过程来说是不可见的。但是,赋值f[x] = 3却是可见的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207453.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu远程桌面连接windows系统

    ubuntu远程桌面连接windows系统

    2020年11月8日
    189
  • Eclipse java SE版本解决无法新建web项目问题「建议收藏」

    Eclipse java SE版本解决无法新建web项目问题「建议收藏」Eclipse java SE版本解决无法新建web项目问题

    2022年4月24日
    51
  • 如何干净卸载_怎么把360卸载干净

    如何干净卸载_怎么把360卸载干净Oracle大家都知道下载简单,但是想卸载,没那么轻松,会发现自己卸载不干净,导致再次安装就会失败,现在我就一步一步演示如何彻底卸载Oracle,然后再重新安装。(本机win10)1.停止系统中所有的Oracle服务(win+r—-taskmgr—–服务)2.运行UniversalInstallera、点击应用b、卸载产品c、选择Orac…

    2022年10月21日
    0
  • 苹果x充电慢是什么原因_苹果手机充不进去电?什么原因?怎么解决?

    突然发现苹果手机充不进电了?难道是手机坏了?还是其它方面的原因呢?今天蜜罐蚁小编给大家介绍一个有关苹果手机使用方面生活小妙招。下面是几种常见苹果手机充不进电原因总结。1、充电线损坏不知道是不是有一些朋友像小编一样,家里的苹果手机原装充电线早就找不到了,从网上买的数据线,结果这种网上买的数据线不耐用,用了几次发现就不好用了,怎么充电都没反应。这种情况就只能更换一根新的数据线了。2、充电器损坏其实这个…

    2022年4月7日
    327
  • 树莓派初次使用(史上最全最详细教程!!)「建议收藏」

    树莓派初次使用(史上最全最详细教程!!)「建议收藏」由于自己电脑装虚拟机莫名的卡,所以搞个树莓派来当我的私密环境(嘿嘿,别想歪了!!!)废话不多说,我们开始吧!所需材料:树莓派系统,Win32DiskImager工具(用来把系统写到内存卡上),AngryIPscaner(用来扫描树莓派的IP地址),x-shell(远程登录工具)树莓派板子(我的是3代的板子),电源(我用的是我旧的安卓手机充电器与线)一个16GTF内存卡(以前的手机内

    2022年10月14日
    0
  • Js:indexOf() 和 lastIndexOf() 的区别[通俗易懂]

    Js:indexOf() 和 lastIndexOf() 的区别[通俗易懂]ECMAScript5为数组实例添加了两个位置方法:indexOf()和lastIndexOf()。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。indexOf()方法从数组的开头(位置0)开始向后查找lastIndexOf()方法则从数组的末尾开始向前查找。这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===一样)。…

    2022年7月14日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号