计算机、互联网与信息社会计算机的发展、信息社会的特征WindowsXP的简介设备与互联;网上服务与交流浏览器、搜索引擎、ftp、E-mail第二章
计算机系统【课外学习】计算机的硬件组成及性能指标计算机的配置计算机软件系统组成、操作系统计算机应用软件课程进度(2/4)2/22第三章程序设计语言和编程环境编程语言,VisualC++编程环境第四章
程序设计导引(I)程序基本框架、变量、常量、数据类型;表达式第五章程序设计导引(II)语句、控制流、输入和输出、程序风格第六章信息的编码、存储与管理数字化原理:二进制及信息编码存储设备及计算机的分层存储结构文件系统与数据库课程进度(3/4)3/22第七章计算机的内部存储与处理CPU及存储程序原理指令系统第八章算法设计问题求解与算法设计第九章
数组数组(二维数组、多维数组)第十章结构结构课程进度(4/4)4/22第十一章指针与数组指针、动态数组第十二章字符串字符串第十三章函数函数、参数、全局变量、局部变量、递归方法调用第十四章习题课数组、指针、字符串,函数第十五章综合练习及复习习题讲解、编程问题分析、答疑5/22计算机在医学方面能做些什么?在任何一门学科的研究和实践中,计算机都是一种很好的辅助工具可以极大地方便人们的各种日常工作和科学研究
医疗管理及医学信息处理医学研究6/22医疗管理及医学信息处理(1/2)医院行政管理财务、人事、门诊和住院等的管理。药房管理药品的进、销、存等环节的管理医疗信息系统病历管理、…7/22医疗管理及医学信息处理(2/2)医疗专家系统中医诊断系统、…医学设备管理系统B超、化验、…医学图象、数据处理心电图、脑电图、X光片、CT图像、…8/22医学研究数字人分子医学医学矫正与疗效评估生物信息学虚拟手术流行病学分析及预防医学信息处理
……冯·诺依曼模型着眼于计算机的内部结构,定义了处理过程4个子系统:存储器,算术逻辑单元,控制单元,输入/输出单元程序必须存储在存储器中程序由有限的指令组成,指令顺序执行CPU10计算机系统的组成计算机系统包括硬件系统软件系统系统软件操作系统其它系统软件应用软件计算机硬件系统和软件系统的层次关系计算机理论的发展历史图灵
研究了
可计算性提出了
图灵机
和
图灵机能解决的问题类证明了
存在着图灵机无法解决的问题类冯·诺伊曼
给出了
现代计算机的设计蓝图提出了
数字计算机的组成原理和体系结构对指令、指令周期、指令系统和存储式程序控制原理都给出了明确的方案库克(StephenA.Cook)研究了
计算复杂性有一些问题,虽然可计算,但随着问题规模的增加,就连最快的计算机用几百年也不能结束计算图灵机的运作方式图灵机的每一步动作取决于四个因素控制器中的当前状态qi读写头的当前位置(在哪个方格上)当前位置的方格内存储的符号si控制规则表中的规则控制器
根据
qi、si、以及控制规则,
决定:1.向当前方格内写入的符号2.读写头的移动方向(左移,右移,不动)3.控制器新的当前状态(START,……,HALT)停机状态启始状态2022/10/27北京大学14文件:让数据资料存储在计算机和网络上文件类型:文本文件、数据文件、可执行程序文件文件名,文件名后缀:文本文件(.txt)、数据文件(.xxx)、可执行程序文件(.exe,.com)文本文件:是存储‘ASCII字符’的可变容量的容器。基本单位是——字节Byte(8bit)。数据文件:各种文字书刊,数据纪录,声音图像,影像,…。数据文件需要经过解译(Decoding和Interpretation)才能成为人们有用的信息。可执行程序文件:应用程序文件,是机器可识别的数据、指令集合。2.3WindowsXP操作系统2022/10/27北京大学152.3WindowsXP操作系统资源管理器的文件管理磁盘分区:A、B、C、D,……
网络和拨号连接管理工具其他2.3WindowsXP操作系统冯·诺依曼模型着眼于计算机的内部结构,定义了处理过程4个子系统:存储器,算术逻辑单元,控制单元,输入/输出单元程序必须存储在存储器中程序由有限的指令组成,指令顺序执行CPU适配器输出设备适配器硬件系统基本结构
—从“冯·诺依曼”结构出发存在很多类型的总线;每一条总线一般会连接多个适配器;CPU输入设备适配器外部存储器芯片组内部存储器每一个适配器通过插入总线上的插槽/插座,和总线连接在一起“CPU”和“内部存储器”是2个例外:它们不需要通过适配器就能和总线连接;或者说:只有外围设备才需要通过适配器和总线相连“CPU”和“内部存储器”是两个例外:它们不需要通过适配器就能和总线连接。或者说:只有外围设备才需要通过适配器和总线相连。硬件系统基本结构
—从计算机外观出发(由外而内)主机(计算设备、存储设备)基本输入设备(键盘、鼠标)基本输出设备(显示器)通讯设备其它外围设备
这里面是啥?23主板上的主要部件总线(Bus)前端总线(Front-SideBus,FSB)【CPU芯片组】内存总线(MemoryBus)【内存芯片组】高速图形总线【显卡芯片组】PCI-E,AGP外部存储器总线【硬盘适配器、光驱适配器芯片组】SATA,IDE,SCSI低速设备总线(LPC)【BIOS芯片组】【键盘适配器、鼠标适配器、软驱适配器、…芯片组】通用型总线【其它外设适配器芯片组】USB(UniversalSerialBus)PCI,ISA内部总线(InternalBus)【芯片组内部互联】接口:插槽(Slot),插座(Socket),端口(Connector/Port)CPU插槽/座,内存插槽,PCI(-E)插槽,ISA插槽鼠标端口,键盘端口,USB端口芯片组(Chipset)北桥芯片(NorthBridge):CPU、内存、显卡南桥芯片(SouthBridge):BIOS、其它外围设备适配器BIOS(BasicInput/OutputSystem)2022/10/27北京大学24信息的输入输入设备将采集的信息转换成二进制不同的输入设备,根据其输入信息的编码特点,利用其自身的物理电路特性,完成所需采集信息的二进制编码采集,并通过缆线传输到计算机内部信息以二进制形式输入计算机
2022/10/27北京大学25信息以二进制形式从计算机输出由输出设备将二进制信息展示出来
输出设备利用其自身的物理电路特性,将二进制信息变换为人们易于接受和理解的视觉、听觉形式或其它形式信息的输出2022/10/27北京大学26存储器硬件的金字塔结构寄存器高速缓存主存储器软磁盘硬盘其它外存设备速度越来越快容量越来越大计算机信息的分层存储原理2022/10/27北京大学27
目前,在各种操作系统里,都采用同样的方式来分类组织文件:用一种称为目录(Directory)或文件夹(FileFolder)的分层树状结构把文件组织起来,使各种文件分散到目录结构的不同位置,以利于对文件的分类管理和使用。
多层次数据存取访问接口运行日志服务数据库的维护常见DBMS系统:
dBase、FoxBase、FoxProOracle/SQLServer/DB2/Infomix/Sybase/AccessExcel数据库系统图灵机的运作方式图灵机的每一步动作取决于四个因素控制器中的当前状态qi读写头的当前位置(在哪个方格上)当前位置的方格内存储的符号si控制规则表中的规则控制器
决定:1.向当前方格内写入的符号2.读写头的移动方向(左移,右移,不动)3.控制器新的当前状态(START,……,HALT)停机状态启始状态CPU的内部结构算术逻辑运算器程序控制器寄存器组中断处理器CPU内部总线CPU的内部结构
—
寄存器组由
一组寄存器
组成的
高速存储单元用于
暂时存放
运算数据
或
其它信息整数类型
的
操作数
运算结果浮点数类型
运算结果指令指令地址各种内部标志信息存取速度CPU寄存器CPU的内部结构
程序控制器ProgramControlUnit,CPU的控制中心分析/解释
指令根据
分析/解释
结果
向
其它部件
所需的数据
从
主存储器
读取到CPU的寄存器中;要求
算术逻辑运算器
将
运算结果
放入
寄存器
中。CPU的内部结构
算术逻辑运算器ArithmeticLogicalUnit(ALU),主要进行算术运算和逻辑运算加法指令的例子一条加法指令(其中包含了两个被加数/操作数的地址)进入CPU;程序控制器
分析该指令,判断两个操作数是在寄存器内,还是在主存内;如果在主存内,程序控制器
从主存内读入操作数;程序控制器
加法运算
提交给
ALU;ALU
进行加法运算;ALU
根据程序控制器
的指示,将运算结果存放到寄存器或主存中。CPU的内部结构
中断处理器问题背景:在CPU执行一般程序运算的过程中,如何处理紧急出现的事件?比如:鼠标移动事件发生一个紧急事件
触发一个中断信号中断信号的处理:当发现中断信号后,程序控制器
暂停正在运行的程序,保存该程序的运行现场(CPU内的各种状态信息);程序控制器
根据中断信号的编码,从特定位置启动
中断处理程序(由操作系统提供);中断处理程序
运行完毕后,程序控制器
恢复被暂停的程序。CPU的内部结构
中断处理器中断信号的产生:各种软硬件,比如:鼠标、键盘、其它外设…中断信号的接收:中断处理器
负责
中断信号的接收,并将中断信号的编码、中断处理程序的起始地址
传给
程序控制器中断信号的检测程序控制器
在每条指令执行完毕后,都会检测
是否出现了新的中断信号CPU的主要性能指标工作主频:CPU内部的时钟频率;1.7GHz~3.0GHz运算字长:CPU一次能够处理的二进制位数;32位/64位运算速度:每秒钟执行的指令数;例如:1000MIPS(MillionInstructionsPerSecond)数字化的指令和程序指令:规定了CPU所能执行的基本功能;每一条指令用固定字节数的二进制编码表示;指令编码中包含了
指令要完成的动作
决定了
指令在执行时的先后顺序;CPU依次访问每条指令,完成指令规定的运算任务;由于CPU会频繁的读取程序,程序在执行之前会被Copy到内存中。指令工作周期—读取指令在
读取指令
阶段,程序控制器:读取
程序计数器
中
指令地址;根据
指令地址,从
主存
读取
相应的指令;将
读取到的指令
存放到
指令寄存器
中。然后,进入
执行指令
阶段…指令工作周期—执行指令在
阶段,程序控制器:对
指令
进行
分析/解释;根据
分析/解释的结果,从
提取出
操作数;根据
分析/解释的结果,要求
ALU
把运算结果存放在指定的地方;在
进行运算的同时,程序控制器
更新
指令计数器
指令地址:在没有中断信号的情况下,将
指令地址
增加一个指令长度;在出现中断信号的情况下,将指令计数器
赋值为
中断处理程序
读写数据主存和CPU之间的信息传输通过
存储总线
通过
汇编语言
讲解
指令系统程序的基本控制结构程序(Program)由若干条指令按照一定的顺序排列组成,是为信息处理任务而预先编制的工作执行方案算法(Algorithm)为某类处理任务而预先编制的指令的组合方法用于表示问题求解的步骤算法的特点通用性:合理的输入产生正确的输出有效性:有限的指令、可预期的执行结果确定性:每一步动作的下一步都是确定的有穷性:算法的执行应在有限步内结束高级语言源程序编译机器语言目标程序通用程序模块连接可执行程序CPU执行输入数据输出结果编译方式运行前运行时在程序执行前,一次性的
将其转化为机器语言程序高级语言源程序解释CPU执行可执行机器语言指令输入数据输出结果解释方式运行前运行时在程序执行时,即时的
将当前需要执行的语句转化为机器语言如何在VisualC++里建立一个C的编程环境?新建一个
工作空间(Workspace)在这个工作空间内添加一个
项目(Project)在这个项目里建立一个
C++源文件(C++SourceFile)在源文件中进行
编程(Programming)…变量:存放数据的容器(对应于内存空间),有不同的数据类型。语句:一个由分号(;)结尾的单一命令是一条语句(Statement),一条语句可以完成一条或若干条指令功能。为了完成不同的功能,C语言中有多种不同类型的语句(将在第8讲中讲述),如:floats,r;//变量定义语句r=10;//变量赋值语句s=3.1416*r*r;//执行乘法运算并赋值的语句代码段:用大括号({……})围起来的多条语句构成一个代码段(Codeblock);有时代码段同时也包括大括号前的一些修饰性描述,如:inti;for(i=0;i<=1;i++){…………}1、C程序基本框架
——总结C中的常量值是用文字串表示的,它区分为不同的类型:整型(int)常量:123,-123长整型(long)常量:123l,-123L单精度(float)浮点常量:1.23f,-1.23e12f双精度(double)浮点常量:1.23,-1.23e12字符(char)常量:用单引号对括起来的一个字符,如‘a’字符串常量:用双引号对括起来的一个字符序列,如"Thisisaconstantstring."。在C中,除了直接写出常量的值之外,还可以通过预编译命令“#define”把一个标识符定义为常量,其定义格式为:#definePI3.141593、数据类型、变量和常量
——常量和数学中的变量有所不同,程序中的变量代表内存中某个“存储单元”或某块内存区域(若干个连续的存储单元),可以用来保存数据,通常用一个名字来标识。显然,存储单元或内存区域所存储的数据在程序执行过程中是可能变化的。在程序中,有三种情况涉及到变量:变量的定义:根据给定的数据类型,在内存中分配一个连续的内存区域,并用一个标识符来对它命名,这个标识符就是变量名变量的赋值:把数值存放到某个变量所指示的内存区域变量的引用:使用某个变量中存储的数据3、数据类型、变量和常量
——变量一些特殊字符的常量表示法:反斜线(Backslash)‘\\’退格(Backspace)‘\b’回车(Carriagereturn)‘\r’进纸符(Formfeed)‘\f’制表符(Formfeed)‘\t’换行(Newline)‘\n’单引号(Singlequote)‘\’’3、数据类型、变量和常量
——字符类型变量(char)
运算符(Operator
)规定了对操作数的处理规则,C语言中的运算符有:算术运算符:―(负号),+,―,*,/,%(取余数),++,――关系运算符:>,<,>=,<=,==,!=逻辑运算符:!,&&,||位运算符:>>,<<,&,|,^,~赋值运算符:=,及其扩展赋值运算符如+=,―=,*=,/=等。条件运算符::注意:关系运算符==
和赋值运算符
=的区别4、运算符与表达式
其它运算符分量运算符
·,->
(在结构数据类型及指针中用到)下标运算符
[index]
(在数组中用到)数据长度运算符sizeof
(以字节为单位)inta;sizeof(int);sizeof(a);分隔符
,
(函数参数分隔,变量定义等)inta,b,c;intmax(inta,intb,intc);强制类型转换运算符(DataType)intyear=(int)ceil(x/2);函数调用运算符
()scanf(“%d”,&a);…4、运算符与表达式4、运算符与表达式
存储访问指令算术逻辑运算指令条件判断及分支转移指令输入输出指令:scanf(),printf()
其他指令4、运算符与表达式——算术表达式
使用算术运算符和括号将操作数连接起来的表达式称为算术表达式:
―(负号),+(加法),―(减法),*(乘法),/(除法),%(取余数,只对整型数据有效),如:-3+a-b*5,(x+y)/z+(3*r/5),a%b++(自加)、――(自减):只适合于变量,不适合于常量或表达式,例如:5++或(a+b)--都是不正确的。这两个运算符可用在变量之前或变量之后,如i++和++i。对变量来说,这二种情况的效果都是一样的,都是使变量i加1。但在表达式中,则它们的含义不同,如:
j=++i;表示先将i的值加1,再赋给j,如果i的值是5,则j的值是6。(先给变量加1,再使用变量)
j=i++;表示先将i的值赋给j,再把i的值加1,如果i的值是5,则j的值是5。(先使用变量,再给变量加1)4、运算符与表达式——逻辑表达式
使用逻辑运算符和括号将操作数(通常是关系表达式)连接起来的表达式称为逻辑表达式:
&&(逻辑与):当2个操作数都为非0或真时,结果为1(真),否则结果为0(假),如:(x>1)&&(x<=20)
||(逻辑或):当2个操作数有一个为非0或真时,结果为1(真),否则结果为0(假),如:(x<=1)||(x>20)
!(逻辑非):将一个非0或为真的操作数变为0,或将0或为假的操作数变为1,如:!(x>y)
逻辑运算&&和||连接的表达式是自左向右求值的,一旦知道结果的真、假值,求值马上停止:
(a+1 (a+1 使用位运算符和括号将操作数连接起来的表达式称为位运算表达式: &(按位与),|(按位或),^(按位异或),~(按位非):二进制位逻辑运算 <<(左位移):将左侧操作数的二进制数值向左移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用0填补。 >>(右位移),将左侧操作数的二进制数值向右移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用符号位(对有符号数)或0(对无符号数)来填补。4、运算符与表达式——位运算表达式 位运算符的操作数必须是整型数据。在C中,整型数据分有符号整数和无符号整数,是用一定长度的二进制位来表示。以32位整数为例来说明位移动运算:有符号数:有符号整数做位移运算时,符号位是不参与移动的。左移时,空出的位用0填补;右移时,空出的位用符号位填补。(机器内数据的补码表示) 无符号数:没有符号位,不管左移或右移,空出的位用0填补。位移运算的实质(在不发生溢出时):左移:x< 在表达式中,整型、实型、字符型数据可以混合运算。运算中,不同类型的数据需要先强制转化为同一类型(利用强制类型转换运算符),然后进行运算。但是,在把容量大的类型转换为容量小的类型时必须注意:转换过程中可能导致溢出或损失精度 doublea=4.0e40;