koorio.com
海量文库 文档专家
当前位置:首页 >> 其它 >>

程序设计思想与方法选编课件_图文

什么是计算机科学?
? 计算机科学并非研究计算机!
? 正如天文学不是研究天文望远镜

? CS要回答的基本问题:什么是可计算的? ? 对此问题的回答有三种方式:
? 实际设计一个解决问题的算法 ? 理论分析问题的可解性 (有些问题是无解的,或者不是能行可解的) ? 通过实验来研究问题.
1

课程主要内容
? 解决可计算问题需要教会计算机如何解决
问题

? 我们如何教会计算机解决问题
? 了解计算机有哪些基本功能 ? 熟悉一门与计算机进行交流的语言 ? 掌握设计思路与方法

对本课程的定位
? 学习计算机科学解决问题的思想方法, 应用于各 个专业领域 ? 不仅仅是一门程序设计语言课程!
? 本课程需要编程,以加深对计算思维的理解 ? 坏消息:学习编程语言需要掌握非常繁琐的细节 ? 好消息:Python语言非常简单,易学易用

3

计算机与程序
? 计算机组成

? 程序设计语言
? 初识Python

计算机的组成
计算机,也被称之为“电脑”,是一种能够按照事先 存储的程序自动、高效地对数据进行输入、处理、存

储和输出的系统
? 硬件:计算机的躯壳 ? 软件:计算机的灵魂

计算机硬件
输入设备 存储器 输出设备

控制器

运算器

CPU

存储器
? 保存正在运行的程序代码和数据
? 内存的最小单元是bit,一个bit存储一个二进制位。 一般8个bit组成一个byte,若干个byte组成一个 word ? 在一般的机器中,内存按字节编址,内存大小也是 按字节计量 ? 关机后,内存的数据全部丢失 ? 广义的存储器包括主存和次级存储器

CPU
CPU (Central Processing Unit) 有两 个部件组成: ? ALU – Arithmetic-Logic Unit(运 算器) ? Control unit (控制器)

控制器
? 控制器控制计算机的其余部分如何完成程序 的指令
? 指挥内存和其它部件之间的信息的传送(包括 信息和指令) ? 指挥CPU和输入输出设备之间的控制信息的传 送

控制器中的信息存储
? 控制器中有两个寄存器:
? 指令寄存器( IR ):保存当前正在执行的指令 ? 程序计数器 ( PC ):保存下一条要执行的指令 地址

控制器的工作
? 取下一条指令:按PC指定的地址到内存中 取出下一条指令,存入IR。

? 解码指令:将指令解码成一系列的控制信 号
? 执行指令:将控制信号发送给相关部件, 执行相应的运算

运算器的组成
? 逻辑电路:执行控制器发出的控制信号
? 一组存放正在运算的数据的寄存器

输入输出设备
? 输入设备将人能理解的符号转换成计算机能 处理的符号。常用的输入设备有:键盘、鼠 标、光笔等
? 输出设备将计算机的输出转换成人能理解的 输出。常用的输出设备有:显示器、打印机、 音响设备等

计算机的组成
计算机,也被称之为“电脑”,是一种能够按照事先 存储的程序自动、高效地对数据进行输入、处理、存

储和输出的系统
? 硬件:计算机的躯壳 ? 软件:计算机的灵魂

计算机软件
? 软件决定了计算机能做什么.没有软件,计算机只是一 堆废铁. ? 软件可以分为系统软件和应用软件。 ? 系统软件居于计算机系统中最靠硬件的部分,它将计 算机的用户与硬件隔离。系统软件与具体的应用无关, 但其他的软件要通过系统软件才能发挥作用。常用的 系统软件有操作系统、编译器、网络软件等。

? 应用软件是为了支持某一应用而开发的软件。如字处 理软件、财务软件等。

计算机与程序
? 计算机组成 ? 程序设计语言 ? 初识Python

程序设计语言
? 人与计算机进行交流的一种语言
? 为什么不用自然语言与计算机交互?
? 精确的语法和语义
? 无二义性

? 有不同层次的程序设计语言

Lu Chaojun, SJTU

17

不同层次的程序设计语言
? 机器语言
? 汇编语言

? 高级语言

机器语言
? 是机器的母语。每种计算机都有自己的机器语言。与计算机 硬件设计有关。

? 每个语句用一组二进制数表示
? 用机器语言写程序是非常困难的,读机器语言写的程序也是 非常困难的 ? 机器语言提供的功能非常简单

例如: 0000010000000001.是Intel8086能理解的一条指令.

汇编语言
? 用缩写和助记符代替机器语言的0和1的比特串 ? 和机器语言一样,不同类的机器有不同的汇编语言 ? 汇编程序:将汇编语言写的程序翻译成机器语言的程序 ? 解决了机器语言的可读性问题,但没有解决功能简单的 问题以及可移植型问题
前页例子: ADD AL,1.需要汇编器处理后机器才懂.

高级语言
? 类似于英语的语言,适合于人理解
? 功能比机器语言强,解决问题更加容易 ? 编译器:将过程化语言写的程序(源代码)翻译成机 器语言的程序(目标代码) ? 解释器:逐句解释源程序并执行,不保存目标代码。
如: x = y + 1. 需要编译器或解释器翻译后机器才懂.

编译执行
将程序全部翻译成机器语言的程序,然后 再执行。
main() {int i, s; i=1; s=0;

C compiler

01100010 11101001

Source program

Object program

解释执行
源程序

解释系统

结果

(逐句解释、执行)

原始数据

高级语言的特点
? 具备了一定的机器独立性,使用户可以专注

于解决问题的方法。但某些方面还是受到机
器的限制

? 为了解决移植性问题,ANSI制订了一系列的
标准

高级语言
? 本课程采用Python语言
? 高级程序设计语言有很多种,据说2008年网

上被引用最多的10个语言是(按字母顺序): C,
C++,C#,Java,JavaScript,Perl, PHP,

Python,Ruby,SQL

25

计算机与程序
? 计算机组成 ? 程序设计语言 ? 初识Python

Python
? Python采用编译/解释混合方式:先编译成字节码,

再解释执行,字节码通常和机器无关,解释时再译
成机器码。(JVM) ? Python 系统软件 ftp://public.sjtu.edu.cn 账号:tzzhang 密码: public

? 安装\启动Python
课程推荐安装Python 2.7,新的Python 3.x有与 2.x不兼容的地方.
27

初识Python
? >>>:提示符,提示你可以输入命令
? 语句:一条命令,如print “hello” ? 串:“hello world” ? 数:3、10 ? 表达式:3 + 5

? 赋值:x = 5

28

函数
? 函数:将完成某一功能的语句组合起来
? 函数定义
>>> def area( ): … x=5 … y=6 … print x * y … >>> >>> area( ) 30 >>>

? 函数调用:

带参数的函数
? 函数定义
>>> def area(x, y): … print x * y … >>> >>> area(3, 4) 12 >>>area(2, 4) 8

? 函数的调用

模块
? 如果一段程序需要反复执行,可以把它以文件

形式保存在外存储器中。
? 保存在外存储器中的程序称为一个模块,也称

为脚本文件或源文件。
? PYTHON的源文件的后缀名为py

? 程序模拟物理现象:chaos程序

# File: chaos.py # A simple program illustrating chaotic behavior. def main(): print "This program illustrates a chaotic function" x = input("Enter a number between 0 and 1: ") for i in range(10): x = 3.9 * x * (1 - x) print x input('Enter 0 to quit ') main()

? main函数:标志程序的开始,也可以省略 ? 注释 ? 变量与赋值 ? 程序的执行:一个个语句顺序执行,但也

可以重复执行某个语句

for循环
? 将一段语句重复执行多次 ? 语法
for <var> in <sequence>:
<body>

? <sequence>是一个值的序列,如[1,3,5,7,9]
或range(10)(即[0,1,…,9]). ? <body>可以是任何语句序列,用左缩进标识.

34

程序的控制流
? 程序的诸语句通常 是顺序执行的,但循 环语句改变了控制 流,表示一种控制结 构. ? 控制流可以用流程 图直观表达
35

<var>取<seq> 无 的下一个值 有 <body>

模块的执行
? 在IDLE中执行程序
? 打开文件:在file菜单下选open或直接用右键点击

文件,并选择用IDLE打开
? 执行:在run菜单下选run module或直接按f5

? cmd界面中执行程序
? import文件

添加python的路径
? Import时,系统必须知道到哪里去找那个文件 ? 这是通过PYTHONPATH指定的 ? 安装PYTHON时,系统会指定缺省path。缺省的路径 是:\Python26\Lib\site-packages ? 添加搜索路径
? 右键单击我的电脑,然后单击属性。 ? 单击高级选项卡。 ? 单击环境变量。 ? 单击新建添加一个新变量名和值。

END

人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。


网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。3088529994@qq.com