程序设计思想与方法汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
程序设计语言
高级语言的翻译
– 编译 源代码编译成目标代码, 再执行 一次编译, 多次执行.
– 解释 源代码直接被解释执行 每次执行都要重新解释.
18
18
编译vs解释
源代码
编译器
目标代码
输入数据
处理器
输出
源代码
解释器
输入数据
处理器
输出
ቤተ መጻሕፍቲ ባይዱ
思考:为什么高级语言程序具有可移植性, 即同一个程序可以在不同厂商的计算机上执行?
19
Python
Python采用编译/解释混合方式
– 先编译成字节码, 再解释执行
安装Python 2.x
– 与新的Python 3.x有不兼容的地方
启动Python
20
算法与编码实现
程序设计
– 先用非形式化的语言将问题求解步骤表达 出来——算法;
伪代码
– 再用形式化的编程语言将上述算法实现— —程序
代码
21
算法 例:欧几里德算法
欧几里德算法:求最大公约数. 输入:自然数a, b 输出: a, b的最大公约数 步骤:
第1步:令r为a除以b所得余数 第2步:若r = 0,则算法结束, b即为答案
否则置a←b, b←r,转到第1步.
22
对算法的要求
算法的每个步骤必须是明确的,可行的.
计算机是具有如下特征的机器:
– 能够存储和处理信息
输入处理输出
– 信息处理由程序控制
计算机程序是一个详细的逐步执行的指令序列, 告诉计算机该做什么
程序可改变: 不同的程序完成不同的处理任务 计算机执行一个程序即可实现一个功能;换着
执行不同的程序即可实现不同的功能.
人们造了各种各样的计算机, 但: 所有 计算机具有相同的能力!
12
计算机科学
并非研究计算机!
– 计算机之于计算机科学家正如望远镜之于天 文学家. (E. W. Dijkstra)
CS研究计算的基础,实现与应用.
– 例如,CS的一个基本问题:什么是可计算的?
本课程的目标:像计算机科学家一样思考
13
13
程序设计
计算的关键是程序设计(编程).
–给定一个问题,利用计算机支持的简单操 作,设计出一个操作步骤的序列,计算机执 行这个序列从而解决问题.
程序设计思想与方法
课程信息
教材
– 《程序设计思想与方法——问题求解与计算思维》 陆朝俊,高教出版社,2013
参考书
– Python Programming: An Introduction to Computer Science. (电子版)
– How to Think Like a Computer Scientist— Learning with Python.(电子版) http://openbookproject.net/thinkCSpy/
3
教学方式
课堂教学
- 每星期四3, 4节 –讲课, 演示
机房上机
–单周(3-15周,共7次) 周一1, 2节, 电院4号楼313教室
–完成当天上机作业并提交 –答疑
4
考核方式
期末考试
– 笔试, 占最终成绩的50%
平时作业
– 上机作业、章节后的作业 ftp上传给助教, 占最终成绩的40%
输入/输出设备:人机交互
9
9
计算机:软件
计算机是信息处理机器,信息处理过程 由预定的程序控制.
–单条指令是做不了什么事情的,需要大量 指令组成一个逐步执行的指令序列,即程序.
各种程序统称为计算机软件. 没有软件的计算机毫无用处.
10
10
计算
计算: 利用计算机执行程序来解决问题.
– 将机器语言用助忆符表示:汇编语言
上例即: ADD AL,1.需要汇编器处理后机器才懂
– 适合人用的语言: 高级语言
如: x = y + 1. 需要编译器或解释器翻译后机器才懂
16
16
高级语言
高级程序设计语言有很多种, 据说 2008年网上被引用最多的10个语言 是(按字母顺序): C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, SQL.
– Python学习手册 第4版 (原版:Learning Python)
2
课程信息
下载python 软件的地址
https://www.python.org/
Purdue University的课件地址:
http://secant.cs.purdue.edu/ cs190c:textsoft09
学习程序设计的好处:
–做计算机的主人 –提高问题求解能力 –本身是很有乐趣的智力活动
14
程序设计语言
问:用什么语言告诉计算机做什么? 答:用精确无歧义的程序设计语言.
– 精确的语法和语义(形式和意义)
15
15
程序设计语言
有不同层次的程序设计语言
– 计算机的“母语”: 机器语言
例如: 0000010000000001.是Intel8086能理解 的一条指令
输入设备
CPU 主存储器 次级存储器
输出设备
8
计算机:硬件(2)
中央处理器(CPU):执行指令
– 每条指令只能完成简单的操作!
例如: 加法, 比较, 移动, etc.
– 但按一定的次序执行大量简单指令能完成复杂任 务!
存储器: 存储信息(程序和数据)
– 主存: CPU能直接访问,速度快但易失 – 次级存储器:速度慢但持久
– 不明确:"在菜中放点盐" – 不可行:"用青菜豆腐做出龙肝凤髓的美味" – 每个步骤不必是最底层的琐细步骤,可以是组合的
高级步骤.如:"焯水"
算法的所有步骤必须在有限时间内完成. 我们说的计算,即是指"算法计算":用明确可
–不是狭义的数学计算!
程序使得简单指令能完成复杂任务.
–问:只会加法的小学生能完成乘法运算任务吗?
–答:能!关键是编写合适的程序
在纸上写下0,记住结果;
给所记结果加上第1个n,记住结果; 给所记结果加上第2个n,记住结果;
……
给所记结果加上第m个n,记住结果;
报告结果(即m×n)
11
11
通用计算机
自选作业
– 编一个大程序, 期末提交, 占最终成绩的10%
5
第1章 计算与计算思维
问题的提出
当今时代,计算机几乎无处不在:
– 企业管理 – 产品设计 – 气象预报 – 电影制作 – 工业控制 – 游戏, 写文章, 上网, ……
问题:计算机究竟是什么?怎么能做这么 多不同的事情?
7
计算机: 硬件(1)
程序设计语言
高级语言的翻译
– 编译 源代码编译成目标代码, 再执行 一次编译, 多次执行.
– 解释 源代码直接被解释执行 每次执行都要重新解释.
18
18
编译vs解释
源代码
编译器
目标代码
输入数据
处理器
输出
源代码
解释器
输入数据
处理器
输出
ቤተ መጻሕፍቲ ባይዱ
思考:为什么高级语言程序具有可移植性, 即同一个程序可以在不同厂商的计算机上执行?
19
Python
Python采用编译/解释混合方式
– 先编译成字节码, 再解释执行
安装Python 2.x
– 与新的Python 3.x有不兼容的地方
启动Python
20
算法与编码实现
程序设计
– 先用非形式化的语言将问题求解步骤表达 出来——算法;
伪代码
– 再用形式化的编程语言将上述算法实现— —程序
代码
21
算法 例:欧几里德算法
欧几里德算法:求最大公约数. 输入:自然数a, b 输出: a, b的最大公约数 步骤:
第1步:令r为a除以b所得余数 第2步:若r = 0,则算法结束, b即为答案
否则置a←b, b←r,转到第1步.
22
对算法的要求
算法的每个步骤必须是明确的,可行的.
计算机是具有如下特征的机器:
– 能够存储和处理信息
输入处理输出
– 信息处理由程序控制
计算机程序是一个详细的逐步执行的指令序列, 告诉计算机该做什么
程序可改变: 不同的程序完成不同的处理任务 计算机执行一个程序即可实现一个功能;换着
执行不同的程序即可实现不同的功能.
人们造了各种各样的计算机, 但: 所有 计算机具有相同的能力!
12
计算机科学
并非研究计算机!
– 计算机之于计算机科学家正如望远镜之于天 文学家. (E. W. Dijkstra)
CS研究计算的基础,实现与应用.
– 例如,CS的一个基本问题:什么是可计算的?
本课程的目标:像计算机科学家一样思考
13
13
程序设计
计算的关键是程序设计(编程).
–给定一个问题,利用计算机支持的简单操 作,设计出一个操作步骤的序列,计算机执 行这个序列从而解决问题.
程序设计思想与方法
课程信息
教材
– 《程序设计思想与方法——问题求解与计算思维》 陆朝俊,高教出版社,2013
参考书
– Python Programming: An Introduction to Computer Science. (电子版)
– How to Think Like a Computer Scientist— Learning with Python.(电子版) http://openbookproject.net/thinkCSpy/
3
教学方式
课堂教学
- 每星期四3, 4节 –讲课, 演示
机房上机
–单周(3-15周,共7次) 周一1, 2节, 电院4号楼313教室
–完成当天上机作业并提交 –答疑
4
考核方式
期末考试
– 笔试, 占最终成绩的50%
平时作业
– 上机作业、章节后的作业 ftp上传给助教, 占最终成绩的40%
输入/输出设备:人机交互
9
9
计算机:软件
计算机是信息处理机器,信息处理过程 由预定的程序控制.
–单条指令是做不了什么事情的,需要大量 指令组成一个逐步执行的指令序列,即程序.
各种程序统称为计算机软件. 没有软件的计算机毫无用处.
10
10
计算
计算: 利用计算机执行程序来解决问题.
– 将机器语言用助忆符表示:汇编语言
上例即: ADD AL,1.需要汇编器处理后机器才懂
– 适合人用的语言: 高级语言
如: x = y + 1. 需要编译器或解释器翻译后机器才懂
16
16
高级语言
高级程序设计语言有很多种, 据说 2008年网上被引用最多的10个语言 是(按字母顺序): C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, SQL.
– Python学习手册 第4版 (原版:Learning Python)
2
课程信息
下载python 软件的地址
https://www.python.org/
Purdue University的课件地址:
http://secant.cs.purdue.edu/ cs190c:textsoft09
学习程序设计的好处:
–做计算机的主人 –提高问题求解能力 –本身是很有乐趣的智力活动
14
程序设计语言
问:用什么语言告诉计算机做什么? 答:用精确无歧义的程序设计语言.
– 精确的语法和语义(形式和意义)
15
15
程序设计语言
有不同层次的程序设计语言
– 计算机的“母语”: 机器语言
例如: 0000010000000001.是Intel8086能理解 的一条指令
输入设备
CPU 主存储器 次级存储器
输出设备
8
计算机:硬件(2)
中央处理器(CPU):执行指令
– 每条指令只能完成简单的操作!
例如: 加法, 比较, 移动, etc.
– 但按一定的次序执行大量简单指令能完成复杂任 务!
存储器: 存储信息(程序和数据)
– 主存: CPU能直接访问,速度快但易失 – 次级存储器:速度慢但持久
– 不明确:"在菜中放点盐" – 不可行:"用青菜豆腐做出龙肝凤髓的美味" – 每个步骤不必是最底层的琐细步骤,可以是组合的
高级步骤.如:"焯水"
算法的所有步骤必须在有限时间内完成. 我们说的计算,即是指"算法计算":用明确可
–不是狭义的数学计算!
程序使得简单指令能完成复杂任务.
–问:只会加法的小学生能完成乘法运算任务吗?
–答:能!关键是编写合适的程序
在纸上写下0,记住结果;
给所记结果加上第1个n,记住结果; 给所记结果加上第2个n,记住结果;
……
给所记结果加上第m个n,记住结果;
报告结果(即m×n)
11
11
通用计算机
自选作业
– 编一个大程序, 期末提交, 占最终成绩的10%
5
第1章 计算与计算思维
问题的提出
当今时代,计算机几乎无处不在:
– 企业管理 – 产品设计 – 气象预报 – 电影制作 – 工业控制 – 游戏, 写文章, 上网, ……
问题:计算机究竟是什么?怎么能做这么 多不同的事情?
7
计算机: 硬件(1)