知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

编程思维基础(1)伪代码及流程图

发表时间:2022-03-25来源:网络

最近在复习算法的过程中,发现很多原代码的思路看不懂。为了提升对于算法的设计思维,我决定重新学习伪代码。顺手整理些在学习过程中发现的重要的概念及案例在这里。

我一直在思考,计算机语言都是为了解决某些问题而诞生的,那在没有计算机语言之前,CS专家们是如何思考来解决相关问题的呢?于是我发现他们在初期,通常是用语言及可视化图表来设计算法。

一、两类描述抽象算法的通用方式

1、文本

例如:伪代码

有点:快速创建,易于理解,易于维护

2、图表

例如流程图,顺序图(适用于对象之间的复杂交互)


优势

. 抽象,它使设计人员可以专注于解决问题的算法逻辑,而不会被语言语法的细节所干扰

抽象级别:

Class diagramClass skeletonMethod logicStatement syntax

. 作为低级设计符号,它允许以语言独立的方式表达算法

a)与其他设计师快速有效地沟通

b)实施者可以用任何语言解释

. 允许在开始项目开始之前进行验证

. 可以作为项目实施中的通用文件

. 设计师很昂贵,编码员很便宜。不要付钱给昂贵的设计师去做费力(但很简单)的编码工作

. 可用于测试计划创建(白盒测试)。测试人员无需等待完成的实现即可开始编写测试

二、伪代码及流程图的定义

(1)什么是伪代码

伪代码是计算机和人类语言之间的转换, 它可帮助人们了解代码内部的内容。

伪代码通常在代码内部以注释的形式出现。


(2)一些需要记住的基本的概念:

什么是过程-Procedure:有限的序列,明确的结构,能够在有限的时间内被执行完成什么是算法-Algorithms:是用来解决某种特定问题的过程什么是流程图-Flowchart:一种用来展示算法过程的图标什么是伪代码-Pseudo Code:是一种对程序完整且非正式的描述


(3)流程图的6个基本组成部分

终端(terminal):代表了程序的开始和结束

2. 输入/输出(Input/Output):承接输入,展示输出

3. 过程(Process):代表了一切内部计算操作

4. 决策(Decision):回答True/False问题

5. 连接

6. 控制流(Control Flow):展现流程的方向


三、练习


任务1:打印出从1到20之间的所有数字,其中如果是3的倍数,则打印‘Fizz’;如果是5的倍数,则打印‘Buzz’;如果同时是3和5的倍数,则打印‘FizzBuzz’;如果不是3的倍数,不是5的倍数,则打印‘is’

首先分析问题后,我们确定我们需要一个循环的结构来打印1到20之间的数字

// FOR LOOP: // SET counter to 1 // Break when counter reaches 20 // Increment counter by 1

分析具体细节后,我们有4个条件,则用4个if语句

// IF number MOD 15 == 0 // print 'FizzBuzz' // ELSE IF number MOD 3 == 0 // print 'Fizz' // ELSE IF number MOD 5 ==0 // print 'Buzz' // ELSE // print 'is'

最后将他们拼接在一起,完成该任务的Pseudocode的编写

// FOR LOOP: // SET counter to 1 // Break when counter reaches 20 // Increment counter by 1 // IF number MOD 15 == 0 // print 'FizzBuzz' // ELSE IF number MOD 3 == 0 // print 'Fizz' // ELSE IF number MOD 5 ==0 // print 'Buzz' // ELSE // print 'is'

使用python将伪代码实现

// FOR LOOP: // SET counter to 1 // Break when counter reaches 20 // Increment counter by 1 for i in range(1,20): // IF number MOD 15 == 0 // print 'FizzBuzz' if i%15==0: print ('FizzBuzz') // ELSE IF number MOD 3 == 0 // print 'Fizz' if i%3==0: print ('Fizz') // ELSE IF number MOD 5 ==0 // print 'Buzz' if i%5==0: print ('Buzz') // ELSE // print 'is' else: print('is')


任务2:给某个数字加上10和20


任务3:求任意5个数的加和


练习3:打印“Hello Word“10次


练习4:如何登录Facebook


四、参考资料

Why Pseudocode?

https://www.youtube.com/watch?v=vOEN65nm4YU

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜