390 likes | 588 Views
计算机程序设计. 自动化系,凌强. 教师及助教介绍. 教师:凌强, qling@ustc.edu.cn 电二楼 217,3600504 助教(信息学院): 贾非, jjff@mail.ustc.edu.cn 贾禄芝, jialz@mail.ustc.edu.cn. 教学的主体是各位同学。. 1 、关于本课程. 教学: 60 学时; 实验 / 上机: 40 学时 学分: 4 上课时间: 2(7,8) 、 4(9,10) 上机实验 : 3 晚上(从 9 月 26 日开始) 作业: 交书面作业:每周二上课前
E N D
计算机程序设计 自动化系,凌强
教师及助教介绍 • 教师:凌强,qling@ustc.edu.cn 电二楼217,3600504 • 助教(信息学院): 贾非,jjff@mail.ustc.edu.cn 贾禄芝, jialz@mail.ustc.edu.cn 教学的主体是各位同学。
1、关于本课程 • 教学:60学时; 实验/上机: 40学时 • 学分: 4 • 上课时间:2(7,8)、4(9,10) • 上机实验: 3晚上(从9月26日开始) • 作业: • 交书面作业:每周二上课前 • 上机作业的程序由助教当场验收记录(起合适的文件名) • 考试:期末全校统考
如何学好本课程 实践,实践,再实践!
高校计算机基础教育三个层次 1.计算机文化基础 计算机文化基础、C语言程序设计 2.计算机技术基础 软件:数据结构、数据库、计算机网络、操作系统; 硬件:微机原理、接口技术、单片机 3.计算机应用基础 结合本专业的计算机应用相关课程。如自动化系开设 课程:计算机控制,系统仿真、模式识别、人工智能
2、计算机的一些秘密 • 计算机并不神秘 - 无处不在的计算机 • 办公、家用微型计算机(PC):台式计算机;笔记本 • 科学与工程计算:大型机、小型机 • 工业控制:特种计算机 • 通信、娱乐、消费电子:手机、相机、游戏机、汽车导航。 • 计算机并不聪明 - 其实是“电子傻瓜” • 它只会严格按我们的思想去执行,没有自己的心智 • 所有的“傻瓜”都做同样的事情,速度有快有慢 • 我们需要做的就是,如何把难的问题分解成“傻瓜”能理解的步骤。
微型计算机组成 • 显示器、打印机(输出设备) • 键盘、鼠标(输入设备) • 主机 • 硬盘、光驱、内存(存储设备) • 主板(数据、命令的通道) • CPU(大脑,计算、命令其它设备) • 其它设备
微型计算机结构 (外)存储器 输入 设备 输出 设备 (内)存储器 中央处理器(CPU) 数据流 地 址 控制流 控制器 运算器 运算器:数学、逻辑运算 控制器:控制各个设备,真正的大脑
1 0 “冯.诺依曼”计算机原理 • 二进制编码表示数据和程序。 • 程序及数据预先放入计算机中,计算机自动从内存中逐条取指令、执行指令。 • 运算器、控制器、存储器、输入设备、输出设备组成计算机。 二进制:信息变量为0/1,bit(位) 例如:
存储器结构 内存按字节编址 字节(Byte) 1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB 1PB=1024TB 2000 2001 2002 2003 . . . 字长:计算机一次能存取多少个字节。
操作码 操作数 机器执行什么操作 执行对象(具体数、存放位置) 取指令 分析指令 执行指令 计算机基本工作原理 a*b • 指令:计算机能完成的基本操作 • 指令系统:指令的集合 • 程序:指令序列 • 程序设计语言:产生指令序列的一种方法 00000001000000001000 (load 0 a) 00000001000100001010 (load 1 b) 00000101000000000001 (mult 0 1)
操作系统 • 裸机-----只能接收指令组成的指令序列。 • 简单的功能(如屏幕显示)可能需要一长串指令序列。一些功能具有通用性。 用户 用户软件 … 操作系统(库函数) 键盘输入 屏幕显示 … … 指令1 指令N 指令M 指令M+P 裸机
计算机系统的层次结构 应 用 软 件 用 户 应 用 软 件 其 他 系 统 软 件 操 作 系 统 裸机 硬件:裸机; 软件:系统软件、应用软件。 图1-3
3、计算机程序设计语言的发展:机器语言->高级语言3、计算机程序设计语言的发展:机器语言->高级语言 01011001110 10011001100 机器语言程序 一一对应 汇编语言程序 (符号语言) 高级语言程序 #include “stdio.h” void main() { printf(“Hello\!n”); }
高级语言(通用计算机程序设计语言)或算法语言,高级语言(通用计算机程序设计语言)或算法语言, 与机器语言和汇编语言比易懂易学。P4 用高级语言编写的程序叫源程序 源程序要通过一种翻译程序将其翻译成计算机能直接执行的机器指令程序。 A) 解释型高级语言 解释程序对用户源程序边解释边执行。图1-17
编译程序 链接程序 编辑程序 源程序 目标程序 可执行程序 键盘输入 C(编译型高级语言)程序处理过程 应用程序 磁盘文件 ex1.c ex1.obj ex1.exe
4、计算机文件系统 文件:所有存储在磁盘上的程序或数据等。 文件名:为区别不同文件,对每个文件取不同的名称, 形为“文件名.扩展名”,其中扩展名表示文件类型。 文件目录:以树形目录结构管理磁盘文件。 完整路径:指出文件在树形目录中的位置。 如:驱动器盘符:\子目录名\… 相对路径:子目录名(=当前路径\子目录名)
文件系统的树形结构 文件名.扩展名 A1.EXE的全路径 c:\cced\user\a1.exe
5、计算机数制 例子: (123.45 )10 = 1×102+2×101+3×100+4×10-1+5×10-2 (101101.11) 2 = 1×25+0×24+1×23+1×22+0×21+1×20×2-1+1×2-2 = 32 + 0 + 8 + 4 + 0 +1 + 0.5 + 0.25 = (45.75)10
(108)10 =(1101100)2 2 108 余数 2 54 0 2 27 0 2 13 1 2 6 1 2 3 0 2 1 1 0 1 (.3125)10 =(.0101)2 2X .3125-----0 2X .625 -----1 2X .25 -----0 2X .5 -----1 .0 整数 十进制→二进制 整数部分(除R取余,R=2) 不断被2整除,得商和余数,直到商为0止,然后倒排余数即是转换结果。 小数部分(乘R取整) 连续乘以2,直到小数部分为0或达到要求精度为止。将结果的整数部分(按精度要求)转换成二进制数 (108.3125 )10=(1101100.0101)2
二进制→八进制 整数部分 从小数点开始,向左,3位一组;最左边一组不足3位,在前面添0。 小数部分 从小数点开始,向右,3位一组;最右边一组不足3位,在后面添0。 (1101100.0101)2=(001,101,100.010,100)2 = (154.24)8 二进制→十六进制 (1101100.0101)2=(0110,1100.0101)2 = (6C.5)16 不同数制的整数表示:8进制以0打头,16进制以0x打头,10进制不能以0打头。
整数的表示:原码、反码、补码 例子:用16位表示一个整数 有效数字位 符号位 原码: 10 -10 反码: 原码符号位为1时,除符号位其余各位按位取反 反码符号位为1时,该数的反码加1。 补码: 正数的原码、反码和补码相同。
-10 补码 补码 基于补码的运算 • 做两次补码运算,得到原码 [[ X ]补] 补= [ X ]原
补码的加减法公式: [ X + Y ]补= [ X ]补+ [ Y ]补 [ X -Y ]补= [ X ]补+ [- Y ]补 (-10)+(-12)=? 10-12=10+(-12)
实数的表示 • 维数+阶码的表示方法 浮点数(4字节)的表示 • 阶码和尾数常用补码表示 • |尾数|>=1.xxx(由于第一个1是确定的,实际的小数只是1后的.xxx) • 存在表示误差 1.6---1.599999904632568,误差:9.5367e-8
6、计算机程序与算法 编程=算法+数据结构+程序设计语言 • 算法: 解决问题的具体步骤; • 数据结构: 数据间的组织形式和结构关系; • 程序设计语言:具体实现,解决问题。
算法: • 做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤称为算法。 • 计算机算法:计算机能够执行的算法。可分为两大类: • 数值运算算法:求解数值; • 非数值运算算法:事务管理领域。 • 算法是程序的灵魂
简单算法举例:求n! (n>0 ) 【例1】求1×2×3×4×5。 最原始方法: 步骤1:先求1×2,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 这样的算法虽然正确,但太繁。
改进的算法:求1×2×3×4×5 S1: 使t=1 S2: 使i=2 S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t S4: 使i的值+1,即i+1→i S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。 如果计算100!只需将S5:若i≤5改成i≤100即可。
算法的表示 • 除了很简单的问题,一般不用自然语言表示算法。 • 用流程图表示算法 :直观形象,易于理解。 • 一个流程图主要包括: • 表示相应操作的框; • 带箭头的流程线; • 框内外必要的文字说明。
a A B b 算法流程图的基本结构 顺序结构:
三种基本算法结构的共同特点 • 只有一个入口 • 只有一个出口 • 结构内每一部分都有机会被执行到 • 结构内不存在“死循环” 自学N-S图。
作业(第37页) • 4、5、7 • 算法:9、10