「洞唐Coder」自学Python编程的第0016天:伪代码

「洞唐Coder」自学Python编程的第0016天:伪代码

人生苦短,我用Python

我已加入#100DaysOfCode#活动

每天自学编程1小时。

「洞唐Coder」自学Python编程的第0016天:伪代码

温故而知新

还记得《自学Python编程的第0001天:配置环境》中提过的IPO程序的编写方法吗?编程中的IPO可不是“首次公开募股(Initial Public Offerings)”编程中的IPO就是 ( Input——Process——Output ), 即输入数据——处理数据——输出数据。

之前IPO不是没有举例嘛?现在就温故而知新在学一遍吧~

「洞唐Coder」自学Python编程的第0016天:伪代码

举例:计算球体的表面积和体积的程序的IPO描述

但王觉得还是要扪心自问一下,到底什么是编程?

硅谷大佬有他自己的答案。瑞士计算机科学家、斯坦福大学教授 Nicklaus Wirth 凭借着 “算法+数据结构=程序(Algorithm+Data Structures=Programs)这个公式获得了图灵奖。这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2” —— 一个公式展示出了程序的本质。

「洞唐Coder」自学Python编程的第0016天:伪代码

尼古拉斯·沃斯( Niklaus Wirth )

Wirth 基于自己开发程序设计语言和编程的实践经验,在20世纪70年发表的“通过逐步求精方式开发程序’(Program Development by Stepwise Refinement)一文中,首次提出了“结构化程序设计”(structure programming)的概念。[1]

这个概念简而言之,就是不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低,一直到最后一步编出的程序即为可执行的程序。用这种方法编程看似复杂,实际上可以使程序更加地易读、易写、易调试、易维护、易验证。

结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,不久便成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说 Wirth 的结构化程序设计概念“完全改变了人们对程序设计的思维方式”。

2002年, Wirth 在一次公开演讲中,对当下许多大学轻视课程教学的风气毫不留情面地进行了批评讽刺:“长期以来,大学的教授们大都已不再是充满智慧的饱学之士了。他们不再默默钻研学问,也不再热忱于传道授业解惑,而是做起了‘项目经理’,带领他们的学生,近乎疯狂地申请科研项目,并批量地生产科技论文。在这个高度竞争的社会大环境中,教授的‘业绩’已跟教学毫无瓜葛,反而是跟团队规模、项目经费、发表论文数息息相关。[2]

「洞唐Coder」自学Python编程的第0016天:伪代码

Wirth 尖锐地指出,由此以往,让教授们去教学就无异于催促他们去自杀。[捂脸]

「洞唐Coder」自学Python编程的第0016天:伪代码

那什么是:算法 + 数据结构 = 程序 ?

算法是执行特定任务的方法

数据结构是一种存储数据的方式,有助于求解特定的问题

那怎么去描述算法呢?自然语言描述 & 伪代码。

开始举例:求解两个整数的最大公约数

「洞唐Coder」自学Python编程的第0016天:伪代码

求解两个整数最大公约数(自然语言描述)

自然语言就是不用说了,碳基人类都明白。

那伪代码又是什么鬼!?

「洞唐Coder」自学Python编程的第0016天:伪代码

什么是“伪代码”???

伪代码是一种介于自然语言和形式化语言之间的半形式化语言,是一种用于描述功能模块的算法设计和加工细节的语言,也称为程序设计语言(Program Design Language,PDL)。

「洞唐Coder」自学Python编程的第0016天:伪代码

举个伪代码的例子?

伪代码是简单陈述句结构,在编写时应该避免复合语句。

好,那求解两个整数的最大公约数的伪代码如下:

「洞唐Coder」自学Python编程的第0016天:伪代码

求解两个整数最大公约数的辗转相除算法(伪代码描述)

分析一下伪代码吧

「洞唐Coder」自学Python编程的第0016天:伪代码

拿到伪代码一定要分析

嗯,Python实际操作一下:

「洞唐Coder」自学Python编程的第0016天:伪代码

求解两个整数最大公约数的Python代码实现(gcd.py)

哦,原来这就是算法+数据结构=程序啊。

参考文献:

[1]《Algorithms Data Structures=Programs》,Prentice-Hall,1976

[2] 编程祖师爷尼古拉斯•威茨:算法+数据结构=程序,CSDN

好了,以上就是洞唐自学Python的第 0016 天了。我会持续记录自己进步的过程,开启自律人生!如果你觉得我的文章和视频对你有用,请给为一键三连。更多精彩,关注微信公众号【洞唐】

「洞唐Coder」自学Python编程的第0016天:伪代码

「洞唐Coder」自学Python编程的第0016天:伪代码

「洞唐Coder」自学Python编程的第0016天:伪代码

学习更多

第0015天:初识流程图

我是怎么下决心去学编程的?

学编程前需要做什么准备?

用乐高SPIKE也能学Python?

程序员要转岗做产品经理

展开阅读全文

页面更新:2024-04-23

标签:尼古拉斯   最大公约数   代码   温故而知新   自然语言   数据结构   整数   程序设计   算法   公式   教授   两个   程序   方法   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top