程序设计思想与方法入门篇 庄天红
课程主要内容 解决可计算问题需要教会计算机如何解决问题 我们如何教会计算机解决问题 了解计算机有哪些基本功能 熟悉一门与计算机进行交流的语言 掌握设计思路与方法
对本课程的定位 学习计算机科学解决问题的思想方法, 应用于各个专业领域 不仅仅是一门程序设计语言课程! 本课程需要编程,以加深对计算思维的理解 坏消息:学习编程语言需要掌握非常繁琐的细节 好消息: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
程序设计语言 人与计算机进行交流的一种语言 为什么不用自然语言与计算机交互? 有不同层次的程序设计语言 精确的语法和语义 无二义性 17 Lu Chaojun, SJTU
不同层次的程序设计语言 机器语言 汇编语言 高级语言
机器语言 是机器的母语。每种计算机都有自己的机器语言。与计算机硬件设计有关。 每个语句用一组二进制数表示 用机器语言写程序是非常困难的,读机器语言写的程序也是非常困难的 机器语言提供的功能非常简单
汇编语言 用缩写和助记符代替机器语言的0和1的比特串 和机器语言一样,不同类的机器有不同的汇编语言 汇编程序:将汇编语言写的程序翻译成机器语言的程序 解决了机器语言的可读性问题,但没有解决功能简单的问题以及可移植型问题
高级语言 类似于英语的语言,适合于人理解 功能比机器语言强,解决问题更加容易 编译器:将过程化语言写的程序(源代码)翻译成机器语言的程序(目标代码) 解释器:逐句解释源程序并执行,不保存目标代码。
编译执行 将程序全部翻译成机器语言的程序,然后再执行。 01100010 11101001 C compiler 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 C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言,成为.NET开发的首选语言。.NET 就是 Microsoft® 的 XML Web 服务平台。不论操作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。 Perl 是一种 无类型语言(untyped),换句话说,在语言层面上,Perl 和大多数编程语言不同,不把变量分成整数、字符、浮点数等等,而只有一种能接受各种类型数据的“无类型”变量。 PHP(Hypertext Preprocessor)是一种嵌入HTML页面中的脚本语言,是现在比较流行的web开发语言之一. Ruby 的特点 完全面向对象 在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数 25
计算机与程序 计算机组成 程序设计语言 初识Python
Python Python采用编译/解释混合方式:先编译成字节码,再解释执行 Python 系统软件 ftp://ftp.cs.sjtu.edu.cn:990/zhuang-th/ 安装\启动Python 字节码是CPU构架的具有可移植性的机器语言 27
初识Python >>> 提示符,提示你可以输入命令 语句:一条命令,如print “hello” >>> 提示符,提示你可以输入命令 语句:一条命令,如print “hello” 串:“hello world” 数:3、10、0.5 表达式:3 + 5 赋值:x = 5 28
函数 函数:将完成某一功能的语句组合起来 函数定义 >>> def area( ): … x = 5 … y = 6 函数调用: >>> def area( ): … x = 5 … y = 6 … print x * y … >>> >>> area( ) 30 >>>
带参数的函数 函数定义 >>> def area(x, y): … print x * y … >>> 函数的调用 >>> 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
程序的控制流 程序的诸语句通常是顺序执行的,但循环语句改变了控制流,表示一种控制结构. 控制流可以用流程图直观表达 无 有 <body> <var>取<seq> 的下一个值 无 有 程序的诸语句通常是顺序执行的,但循环语句改变了控制流,表示一种控制结构. 控制流可以用流程图直观表达 35
模块的执行 在IDLE中执行程序 Cmd界面中执行程序 打开文件:在file菜单下选open或直接用右键点击文件,并选择用IDLE打开 执行:在run菜单下选run module或直接按f5 Cmd界面中执行程序 import文件
Cmd界面中执行chaos.py程序 C:\Documents and Settings\Administrator>cd\python27 C:\Python27>cd test C:\Python27\test>chaos.py This program illustrates a chaotic function Enter a number between 0 and 1: 0.5 0.975 0.0950625 0.335499922266 0.869464925259 0.442633109113 0.962165255337 0.141972779362 0.4750843862 0.972578927537 0.104009713267
添加python的路径 Import时,系统必须知道到哪里去找那个文件 这是通过PYTHONPATH指定的 安装PYTHON时,系统会指定缺省path。缺省的路径是:\Python26\Lib\site-packages 添加搜索路径 右键单击我的电脑,然后单击属性。 单击高级选项卡。 单击环境变量。 单击新建添加一个新变量名和值。
END