程序设计思想与方法_第1页
程序设计思想与方法_第2页
程序设计思想与方法_第3页
程序设计思想与方法_第4页
程序设计思想与方法_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、什么是计算机科学?o 计算机科学并非研究计算机!n 正如天文学不是研究天文望远镜o CS要回答的基本问题:什么是可计算的?o 对此问题的回答有三种方式:n 实际设计一个解决问题的算法n 理论分析问题的可解性 (有些问题是无解的,或者不是能行可解的)n 通过实验来研究问题.1课程主要内容o 解决可计算问题需要教会计算机如何解决问题o 我们如何教会计算机解决问题n 了解计算机有哪些基本功能n 熟悉一门与计算机进行交流的语言n 掌握设计思路与方法对本课程的定位o 学习计算机科学解决问题的思想方法, 应用于各个专业领域o 不仅仅是一门程序设计语言课程! n 本课程需要编程,以加深对计算思维的理解n 坏

2、消息:学习编程语言需要掌握非常繁琐的细节n 好消息:Python语言非常简单,易学易用3计算机与程序计算机与程序o 计算机组成o 程序设计语言o 初识Python计算机的组成o 硬件:计算机的躯壳o 软件:计算机的灵魂计算机,也被称之为计算机,也被称之为“电脑电脑”,是一种能够按照事先,是一种能够按照事先存储的程序自动、高效地对数据进行输入、处理、存存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统储和输出的系统计算机硬件计算机硬件存储器存储器输入设备输入设备输出设备输出设备控制器控制器运算器运算器CPU存储器存储器o 保存正在运行的程序代码和数据o 内存的最小单元是bit,一个bi

3、t存储一个二进制位。一般8个bit组成一个byte,若干个byte组成一个wordo 在一般的机器中,内存按字节编址,内存大小也是按字节计量o 关机后,内存的数据全部丢失o 广义的存储器包括主存和次级存储器CPUCPU (Central Processing Unit) 有两个部件组成:oALU Arithmetic-Logic Unit(运算器)oControl unit (控制器)控制器控制器o 控制器控制计算机的其余部分如何完成程序的指令n 指挥内存和其它部件之间的信息的传送(包括信息和指令)n 指挥CPU和输入输出设备之间的控制信息的传送控制器中的信息存储控制器中的信息存储o 控制器中

4、有两个寄存器:n 指令寄存器( IR ):保存当前正在执行的指令n 程序计数器 ( PC ):保存下一条要执行的指令地址控制器的工作控制器的工作o 取下一条指令:按PC指定的地址到内存中取出下一条指令,存入IR。o 解码指令:将指令解码成一系列的控制信号o 执行指令:将控制信号发送给相关部件,执行相应的运算运算器的组成运算器的组成o 逻辑电路:执行控制器发出的控制信号o 一组存放正在运算的数据的寄存器输入输出设备o 输入设备将人能理解的符号转换成计算机能处理的符号。常用的输入设备有:键盘、鼠标、光笔等o 输出设备将计算机的输出转换成人能理解的输出。常用的输出设备有:显示器、打印机、音响设备等计

5、算机的组成o 硬件:计算机的躯壳o 软件:计算机的灵魂计算机,也被称之为计算机,也被称之为“电脑电脑”,是一种能够按照事先,是一种能够按照事先存储的程序自动、高效地对数据进行输入、处理、存存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统储和输出的系统计算机软件o 软件决定了计算机能做什么.没有软件,计算机只是一堆废铁.o 软件可以分为系统软件和应用软件。o 系统软件居于计算机系统中最靠硬件的部分,它将计算机的用户与硬件隔离。系统软件与具体的应用无关,但其他的软件要通过系统软件才能发挥作用。常用的系统软件有操作系统、编译器、网络软件等。o 应用软件是为了支持某一应用而开发的软件。如字

6、处理软件、财务软件等。计算机与程序计算机与程序o 计算机组成o 程序设计语言o 初识Python程序设计语言o 人与计算机进行交流的一种语言o 为什么不用自然语言与计算机交互?n精确的语法和语义n无二义性o 有不同层次的程序设计语言Lu Chaojun, SJTU 17不同层次的程序设计语言不同层次的程序设计语言o 机器语言o 汇编语言o 高级语言机器语言机器语言o是机器的母语。每种计算机都有自己的机器语言。与计算机硬件设计有关。o每个语句用一组二进制数表示o用机器语言写程序是非常困难的,读机器语言写的程序也是非常困难的o机器语言提供的功能非常简单例如: 0000010000000001.是I

7、ntel8086能理解的一条指令.汇编语言汇编语言o 用缩写和助记符代替机器语言的0和1的比特串o 和机器语言一样,不同类的机器有不同的汇编语言o 汇编程序:将汇编语言写的程序翻译成机器语言的程序o 解决了机器语言的可读性问题,但没有解决功能简单的问题以及可移植型问题 前页例子: ADD AL,1.需要汇编器处理后机器才懂.高级语言高级语言o 类似于英语的语言,适合于人理解o 功能比机器语言强,解决问题更加容易o 编译器:将过程化语言写的程序(源代码)翻译成机器语言的程序(目标代码)o 解释器:逐句解释源程序并执行,不保存目标代码。 如: x = y + 1. 需要编译器或解释器翻译后机器才懂

8、.编译执行main() int i, s;i=1;s=0;C compiler0110001011101001Source programObject program将程序全部翻译成机器语言的程序,然后再执行。解释执行解释执行源程序源程序 解释系统解释系统(逐句解释、执行)(逐句解释、执行)原始数据原始数据结果结果高级语言的特点高级语言的特点o 具备了一定的机器独立性,使用户可以专注于解决问题的方法。但某些方面还是受到机器的限制o 为了解决移植性问题,ANSI制订了一系列的标准高级语言o 本课程采用Python语言o 高级程序设计语言有很多种,据说2008年网上被引用最多的10个语言是(按字母

9、顺序): C,C+,C#,Java,JavaScript,Perl, PHP,Python,Ruby,SQL25计算机与程序计算机与程序o 计算机组成o 程序设计语言o 初识PythonPythono Python采用编译/解释混合方式:先编译成字节码,再解释执行,字节码通常和机器无关,解释时再译成机器码。(JVM)o Python 系统软件 ftp:/ 账号:tzzhang 密码: publico 安装启动Python 课程推荐安装Python 2.7,新的Python 3.x有与2.x不兼容的地方.27初识Pythono :提示符,提示你可以输入命令o 语句:一条命令,如print “he

10、llo”o 串:“hello world”o 数:3、10o 表达式:3 + 5o 赋值:x = 528函数o 函数:将完成某一功能的语句组合起来o 函数定义o 函数调用: def area( ): x = 5 y = 6 print x * y area( )30带参数的函数o 函数定义 o 函数的调用 def area(x, y): print x * y area(3, 4)12area(2, 4)8模块o 如果一段程序需要反复执行,可以把它以文件形式保存在外存储器中。o 保存在外存储器中的程序称为一个模块,也称为脚本文件或源文件。o PYTHON的源文件的后缀名为pyo 程序模拟物理现

11、象: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()o main函数:标志程序的开始,也可以省略o 注释o 变量与赋值o 程序的执行:一个个语句顺序执行,但也可以重复执行某个语句for循环o 将一段语句重复执行多次o 语法for in : n 是一个值的序列,如1,3,5,7,9或range(10)(即0,1,9).n 可以是任何语句序列,用左缩进标识.34程序的控制流o 程序的诸语句通常是顺序执行的,但循环语句改变了控制流,表示一种控制结构.o 控制流可以用流程图直观表达35取取的下一个值的下一个值无无有有模块的执行o 在IDLE中执行程序n 打开文件:在file菜单下选open或直接用右键点击文件,并选择用IDLE打开n 执行:在run菜单下选run module或直接按f5o cmd界面中执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论