第二章 程序设计概念_第1页
第二章 程序设计概念_第2页
第二章 程序设计概念_第3页
第二章 程序设计概念_第4页
第二章 程序设计概念_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 程序设计概念程序设计概念解决问题的一般概念解决问题的一般概念日常生活问题的解决日常生活问题的解决 A.明确问题明确问题 B.理解问题理解问题 C.寻找备选方案寻找备选方案 D.从备选方案列表中找出最好的解决方案从备选方案列表中找出最好的解决方案 E.列出所选择的解决方案的指令列出所选择的解决方案的指令 F.评价解决方案评价解决方案计算机中的问题计算机中的问题 计算机并不能解决人类所面临所有问题计算机并不能解决人类所面临所有问题 1 算法问题:主要执行非常困难和耗时的数据算法问题:主要执行非常困难和耗时的数据计算,如微分问题,地球轨迹,计算,如微分问题,地球轨迹,10000名字排名

2、字排序序 2 启发式问题启发式问题:人工智能领域,下象棋,打牌人工智能领域,下象棋,打牌 1 算法方案:可以通过一系列明确的动作来算法方案:可以通过一系列明确的动作来解决解决. 2 启发式方案启发式方案:需具有相应的知识和经验,需具有相应的知识和经验,经过不断的尝试和失败才能达到最终目标。经过不断的尝试和失败才能达到最终目标。 1 计算型计算型 如数学计算过程,大多数学问题都是计如数学计算过程,大多数学问题都是计算型算型 2 逻辑型逻辑型 如包含关系或逻辑处理的问题如包含关系或逻辑处理的问题 3 反复型反复型 反复执行一组数学型或逻辑型指令的问反复执行一组数学型或逻辑型指令的问题,大多启发式问

3、题都属于反复型。题,大多启发式问题都属于反复型。 计算机解决问题的类型计算机解决问题的类型计算机解决问题的基本过程:计算机解决问题的基本过程:解决问题的难点:解决问题的难点: 编写编写指令指令算法算法 计算机解决的任何问题都可以通过按计算机解决的任何问题都可以通过按特定顺序执行一系列操作来完成,对特定顺序执行一系列操作来完成,对操作的描述就是算法(操作的描述就是算法(Algorithm)。)。 算法包括了执行的操作和执行操作的算法包括了执行的操作和执行操作的顺序。顺序。 李开复:算法的力量李开复:算法的力量 算法是计算机科学领域最重要的算法是计算机科学领域最重要的基石之一基石之一,但,但却受到

4、了国内一些程序员的冷落。却受到了国内一些程序员的冷落。 许多学生看到一些公司在招聘时要求的编程语言许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司标准就是最好的铺路方法。其实大家都被这些公司误导了。误导了。 编程语言虽然该学,但是学习编程语言虽然该学,但是学习计算机算法和理论计算机算法和理论更重要,更重要,因为计算机语言和开发平台日新月异,但因为计算机语言和开发平台日新月异,但万

5、变不离其宗的是那些算法和理论,例如数据结构、万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库算法、编译原理、计算机体系结构、关系型数据库原理等等。原理等等。 整天赶时髦的人最后只懂得招式,没有功力,整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。是不可能成为高手的。用流程图表示求解下列问题的算法。用流程图表示求解下列问题的算法。 求求1100的积的积YN开始开始结束结束1=i1=productProduct*i=producti+1=iii0=sumsum+i=sumi+1=ii=100YN输出输出sum 计算机中表示的算法:一个逐步的指令

6、序计算机中表示的算法:一个逐步的指令序列,用来描述怎样执行操作以产生期望的列,用来描述怎样执行操作以产生期望的结果。结果。 算法体现了解决问题的步骤,一旦选定算算法体现了解决问题的步骤,一旦选定算法,就要用计算机语言法,就要用计算机语言编写程序编写程序(生成代(生成代码)。码)。把算法翻译把算法翻译成计算机认成计算机认识的命令识的命令程序程序 程序是为完成一项特定任务而用计算机语程序是为完成一项特定任务而用计算机语言编写的一组言编写的一组指令序列指令序列。 编写程序就是指示计算机完成特定的任务编写程序就是指示计算机完成特定的任务 或解决特定的问题。或解决特定的问题。 程序就是程序就是计算机的计

7、算机的驾驶员驾驶员操作码操作码 操作数操作数 数据传送指令数据传送指令数据处理指令数据处理指令程序控制指令程序控制指令输入输出指令输入输出指令 其它指令其它指令 If Goto And OrCPU内存I/O设备主机对计算机的硬件进行管理等对计算机的硬件进行管理等指令指令 结构结构分分类类 #include using namespace std; int main() int i=1,sum=0; do sum=sum+i; i=i+1; while(i=100); coutsumi0=sumsum+i=sumi+1=ii=100YN算法的流程图算法的流程图 #include using na

8、mespace std; int main() int i=1,product=1; do product=product*i; i=i+1; while(i=100); coutproductendl; return 0; #include using namespace std; int main() int i=1,sum=0; do sum=sum+i; i=i+1; while(i=100); coutsumendl; return 0; 求积求积求和求和 不是所有的算法都能编写成计算机可执行不是所有的算法都能编写成计算机可执行的程序。的程序。 计算机算法特征:有穷性、确定性、有零计

9、算机算法特征:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效个或多个输入、有一个或多个输出、有效性。性。 计算机不能容忍算法的多义性。计算机不能容忍算法的多义性。程序员的难点?程序员的难点? 广大的学生上网成瘾如患绝症。广大的学生上网成瘾如患绝症。 编写程序的前期工作编写程序的前期工作 1、分析问题、分析问题a.确定期望的输出确定期望的输出b.确定输入项目确定输入项目c.列出相关输入和输出的公式列出相关输入和输出的公式d.执行手工计算执行手工计算 2.选择一个全面解决问题的算法选择一个全面解决问题的算法 3.编写程序编写程序 4.测试测试 例如:圆的周长例如:圆的周长C可由公式可由公

10、式C=2r确定,其确定,其中中值值3.1415,r是圆的半径。利用这个公是圆的半径。利用这个公式,计算半径是式,计算半径是65.0m的圆的周长。的圆的周长。a.确定期望的输出确定期望的输出:圆的周长圆的周长b.确定输入项目:半径确定输入项目:半径c.列出相关输入和输出的公式:列出相关输入和输出的公式: C=2rd.执行手工计算:给一个半径,用该公式计算执行手工计算:给一个半径,用该公式计算开始开始结束结束设置半径设置半径r值为值为2 周长周长C=2r 输出周长输出周长 #include using namespace std; int main() float r,C; /声明输入和输出项目声

11、明输入和输出项目 r=65.0; /设置半径的设置半径的值值 C=2*3.1415*r; /计算周长(输出)计算周长(输出) cout“圆的周长:圆的周长:”Cpays 机器编码:机器编码: 1100000000000000000001000000000010 1111000000000000000010000000000011 汇编(不同机器类型,编码不同)汇编(不同机器类型,编码不同): LOAD basepay ADD overpay STORE pays 高级语言编码(高级语言编码(C语言源代码)语言源代码) pays=basepay+overpay; 机器语言机器语言由计算机硬件系统

12、可以识别的二由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。进制指令组成的语言称为机器语言。 汇编语言汇编语言将机器指令映射为一些可以被将机器指令映射为一些可以被人读懂的助记符,如人读懂的助记符,如ADD、SUB等。等。 机器语言机器语言由计算机硬件系统可以识别的二由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。进制指令组成的语言称为机器语言。 汇编语言汇编语言将机器指令映射为一些可以被将机器指令映射为一些可以被人读懂的助记符,如人读懂的助记符,如ADD、SUB等。等。计算机发展的初期,软件工程师们只能用机器语言来编写程序。计算机发展的初期,软件工程师们只能用机器语言来

13、编写程序。这一阶段,在人类的自然语言这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。和计算机编程语言之间存在着巨大的鸿沟。 机器语言机器语言由计算机硬件系统可以识别的二由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。进制指令组成的语言称为机器语言。 汇编语言汇编语言将机器指令映射为一些可以被将机器指令映射为一些可以被人读懂的助记符,如人读懂的助记符,如ADD、SUB等。等。计算机发展的初期,软件工程师们只能用机器语言来编写程序。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的

14、鸿沟。和计算机编程语言之间存在着巨大的鸿沟。此时编程语言与人类自然语言间的鸿沟略有缩小,此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。因为它的抽象层次太低,程序员需要考虑大量的机器细节。高级语言屏蔽了机器的细节,提高了语言高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。写程序时可以联系到程序所描述的具体事物。

15、 IBM ForTran Pascal Ada C C+ Jave高级语言屏蔽了机器的细节,提高了语言高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。写程序时可以联系到程序所描述的具体事物。C是面向过程的高级语言是面向过程的高级语言C+是面向对象的高级语言是面向对象的高级语言 计算机同人类解决问题一样,必须了解问题域,计算机同人类解决问题一样,必须了解问题域,找出问题中相关的数据、未组织要素、已组织要素、找出

16、问题中相关的数据、未组织要素、已组织要素、信息,这些信息,这些信息和数据信息和数据是计算机解决问题的工具,是计算机解决问题的工具,是处理过程中用到的数据。是处理过程中用到的数据。 在解决问题时,计算机首先要把问题中所需要的数在解决问题时,计算机首先要把问题中所需要的数据和要执行的程序存储到据和要执行的程序存储到计算机的内存(主存储器)计算机的内存(主存储器)中。中。 存储器的种类存储器的种类存储器是计算机的记忆部件,负责存储程存储器是计算机的记忆部件,负责存储程序和数据。序和数据。存储器分两大类:主存储器存储器分两大类:主存储器( (内存内存) )和辅助和辅助存储器存储器( (外存外存) )。

17、主存储器采用的是半导体存储器,主存储器采用的是半导体存储器,其特点是:存取数据速度快,可随机存取,体积小其特点是:存取数据速度快,可随机存取,体积小 ,功耗低。内存容量有限。功耗低。内存容量有限。主存储器主存储器( (内存内存) )又分为随机存储器又分为随机存储器RAMRAM和只读存储器和只读存储器ROMROM。 ROM ROM(Read Only MemoryRead Only Memory)主要用来存放固定不变的程序、)主要用来存放固定不变的程序、数据系统软件,如数据系统软件,如BIOSBIOS程序。这种存储器中的信息只能读程序。这种存储器中的信息只能读出而不能随意写入。断电后所存数据不会

18、改变出而不能随意写入。断电后所存数据不会改变(具有非易(具有非易失性)。失性)。 RAM(Random Access Memory)是一种随机访问的可是一种随机访问的可读写存储器。在计算机断电后读写存储器。在计算机断电后RAM中的信息会丢失(具有中的信息会丢失(具有易失性)。易失性)。RAM存储器分为:静态存储器分为:静态RAM和动态和动态RAM。程序执行时,程序和数据都存储在程序执行时,程序和数据都存储在RAM中。中。 CPUCPU内部结构内部结构Cache计算机的存储程序工作原理计算机的存储程序工作原理 计算机利用计算机利用主存储器(主存)主存储器(主存)存放需执行的存放需执行的程序,程序

19、,中央处理器中央处理器依次从依次从主存主存中取出每一条中取出每一条指令,并经过分析后加以执行,直到全部指指令,并经过分析后加以执行,直到全部指令执行完成。令执行完成。 不论指令还是数据不论指令还是数据, ,若想存入计算机中若想存入计算机中, ,都都必须采用二进制编码形式必须采用二进制编码形式, ,在二进制系统中在二进制系统中只有两个数只有两个数0 0和和1,1,即便是多媒体信息即便是多媒体信息( (声音、声音、图形等图形等) )也必须转换成二进制的形式也必须转换成二进制的形式, ,才能才能存入计算机存入计算机. . 二进制概念二进制概念128128瓦瓦3232瓦瓦6464瓦瓦1616瓦瓦8 8

20、瓦瓦4 4瓦瓦1 1瓦瓦2 2瓦瓦二进制数制,由二进制数制,由18世纪德国数理世纪德国数理哲学大师哲学大师莱布尼兹莱布尼兹发现发现 。 二进制具有以下优势二进制具有以下优势: : 1. 1. 易于物理实现易于物理实现: : 因为具有二种稳定状态的物理器因为具有二种稳定状态的物理器件是很多的件是很多的, , 如门电路的导通与截止如门电路的导通与截止, ,电压的高与低电压的高与低, , 而它们恰好对应表示而它们恰好对应表示1 1和和0 0两个符号。假如采用十进两个符号。假如采用十进制制, , 要制造具有十种稳定状态的物理电路要制造具有十种稳定状态的物理电路, , 那是非那是非常困难的。常困难的。

21、2. 2. 二进制数运算简单:数学推导证明二进制数运算简单:数学推导证明, , 对对R R进制的进制的算术求和、求积规则各有算术求和、求积规则各有 R(R+1)/2 R(R+1)/2 种。如采用十种。如采用十进制进制, , 就有就有5555种求和与求积的运算规则种求和与求积的运算规则; ; 而二进制而二进制仅各有三种仅各有三种, , 因而简化了运算器等物理器件的设计。因而简化了运算器等物理器件的设计。 3. 3. 机器可靠性高:由于电压的高低机器可靠性高:由于电压的高低, , 电流的有无等电流的有无等都是一种质的变化都是一种质的变化, ,两种状态分明,所以基两种状态分明,所以基2 2码的传码的

22、传递抗干扰能力强递抗干扰能力强, , 鉴别信息的可靠性高。鉴别信息的可靠性高。 4.4.通用性强:基通用性强:基2 2码不仅成功地运用于数值信息编码码不仅成功地运用于数值信息编码( (二进制二进制), ), 而且适用于各种非数值信息的数字化编而且适用于各种非数值信息的数字化编码。特别是仅有的二个符号码。特别是仅有的二个符号0 0和和1 1正好与逻辑命题的正好与逻辑命题的两个值两个值“ “ 真真 ” ”与与“ “ 假假 ” ”相对应相对应, , 从而为计算机从而为计算机实现逻辑运算和逻辑判断提供了方便。实现逻辑运算和逻辑判断提供了方便。十进制十进制 =10, 数字集数字集 0, 1, 2, 3,

23、 4, 5, 6, 7, 8, 9二进制二进制 =2 , 数字集数字集 0, 1八进制八进制 =8 , 数字集数字集 0, 1, 2, 3, 4, 5, 6, 7十六进制十六进制 =16 ,数字集,数字集 0, , 9, A, B, C, D, E, F 日常生活中我们最熟悉十进制数据,但在日常生活中我们最熟悉十进制数据,但在与计算机打交道时,会接触到二进制与计算机打交道时,会接触到二进制、八、八进制、十六进制系统,但无论哪种数制进制、十六进制系统,但无论哪种数制, ,其其共同之处都是进位记数制。共同之处都是进位记数制。 内部存储器的作用是存放执行的程序和程序中需要使用的内部存储器的作用是存放

24、执行的程序和程序中需要使用的数据,是整个数据存储和变换的枢纽。数据,是整个数据存储和变换的枢纽。u存储器由一个个大小相同的存储器由一个个大小相同的存储单元存储单元组成,组成,每个每个存储单元存储单元由由8位二进制位组成。位二进制位组成。 u为了区分和访问不同的为了区分和访问不同的存储单元存储单元,系统为每一个,系统为每一个存储单元存储单元分配了惟一的编号,分配了惟一的编号,称为存储单元的地称为存储单元的地址。址。u存储单元存储单元内存放的是数据。内存放的是数据。uCPU对存储器可以读(取)也可以写(存)数对存储器可以读(取)也可以写(存)数据据.0110101010110110存放内容地址00

25、01000200030004FFFEFFFF存储器的容量存储器的容量 存储器的每个存储器的每个存储单元存储单元可以存放可以存放8位二进制,称为一个位二进制,称为一个字字节节(Byte),字节是访问内存的,字节是访问内存的最小单位最小单位。 字节是存储的基本单元,二进制位则是计算机对数据操字节是存储的基本单元,二进制位则是计算机对数据操作的最小单位。作的最小单位。位与字节的关系?位与字节的关系? 从物理上看,一个从物理上看,一个位(位(bit)就是一个既能就是一个既能开又能关的开关,开用开又能关的开关,开用0表示,关用表示,关用1表示。表示。 单一的单一的bit限制了其可用性,因此,所有的限制了

26、其可用性,因此,所有的计算机都把计算机都把bit组合起来形成一个更大的单组合起来形成一个更大的单元,即元,即字节(字节(Byte)。 存储单位存储单位位(位(BitBit):度量数据的最小单位):度量数据的最小单位字节(字节(ByteByte):最常用的基本单位):最常用的基本单位K K 字节字节 1K = 1024 byte1K = 1024 byteM M(兆)字节(兆)字节 1M = 1024 K1M = 1024 KG G(吉)(吉) 字节字节 1G = 1024 M 1G = 1024 M T T(太)字节(太)字节 1T = 1024 G1T = 1024 Gb7 b6 b5 b4

27、 b3 b2 b1 b0计算机如何存储数据 计算机将数据存储在内存的计算机将数据存储在内存的存储单元(字节)存储单元(字节)中。中。 不同类型的数据占用的不同类型的数据占用的存储单元存储单元数不同。数不同。 v一个位能表现什么值?一个位能表现什么值?v一个字节能够表示多少个不同的位模式?一个字节能够表示多少个不同的位模式? 字字 长长:字长是指计算机能直接处理的二进制信息的:字长是指计算机能直接处理的二进制信息的位数。字长是由位数。字长是由CPU内部的寄存器、加法器和数据总内部的寄存器、加法器和数据总线的位数决定的。字长越长,精度越高,速度越快,线的位数决定的。字长越长,精度越高,速度越快,但

28、价格也越高。当前微机字长有但价格也越高。当前微机字长有16位,位,32位,高档微位,高档微机的字长是机的字长是64位。位。 主主 频频:指时钟脉冲发生器在单位时间:指时钟脉冲发生器在单位时间(s)内发出的脉内发出的脉冲数。频率越高,计算机的处理信息的速度也越快。冲数。频率越高,计算机的处理信息的速度也越快。主频的单位是兆赫兹主频的单位是兆赫兹(MHz,GHz)。 存储容量存储容量:(1)内存容量。指内存储器能够存储信息的内存容量。指内存储器能够存储信息的总字节数。容量越大,运行速度越快。内存储器容量总字节数。容量越大,运行速度越快。内存储器容量大小大小 ,受限于,受限于CPU的地址总线。的地址

29、总线。(2)外存容量。指外外存容量。指外存储器所能容纳的总字节数。存储器所能容纳的总字节数。数据以二进制形式存储数据以二进制形式存储 汉字编码汉字编码 GB国标码:中文内码之一,代表中文简化字,在中国标码:中文内码之一,代表中文简化字,在中国大陆广泛使用,影响所及,使用量渐见普及。国大陆广泛使用,影响所及,使用量渐见普及。 国标码是指国标码是指国家标准信息交换用汉字编码国家标准信息交换用汉字编码(GB2312-80标准)。标准)。 国标码国标码是指是指1980年中国制定的用于不同的具有汉字年中国制定的用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编处理功能的计算机系统间交换汉字信

30、息时使用的编码。码。 国际码国际码是二字节码是二字节码, 用两个七位二进制数编码表示一用两个七位二进制数编码表示一个汉字。目前国标码收入个汉字。目前国标码收入6763个汉字个汉字, 其中一级汉其中一级汉字(最常用)字(最常用)3755个个, 二级汉字二级汉字3008个个, 另外还包括另外还包括682个西文字符、图符。个西文字符、图符。 音频、视频、图形、图像数值数据整型数据:整型数据:二进制编码二进制编码原码:商除原码:商除2取余,逆序排列,最高位取余,逆序排列,最高位是符号位,整数是是符号位,整数是0,负数是,负数是1.反码:原码的各个位取反,符号位除反码:原码的各个位取反,符号位除外外补码

31、:反码最末位加补码:反码最末位加11+1=0 1+0=1 0+1=1 0+0=0 整数以补码补码形式存储。 正整数:原码,反码,补码一样. 例如:+15(用一个字节表示) 原码:0 0001111符符号号位位数值位数值位 +15(用一个字节表示) 原码:0 0001111 反码:0 0001111 补码:0 0001111正整数的原码、反码、补码一样正整数的原码、反码、补码一样 负整数:负整数: 例如例如-15(一个字节表示)(一个字节表示) 原码:原码: 1 0001111 反码:反码: 1 1110000 补码:补码: 1 1110001以补码形以补码形式存储式存储二进制转换为十进制= 必

32、须是原码才能转为真值必须是原码才能转为真值= 11001100,计算出对应的十进制数,计算出对应的十进制数求出原码:对补码除符号位外各个位求反,最末位加求出原码:对补码除符号位外各个位求反,最末位加111001100对应的原码是:对应的原码是:10110100真值:真值:-52浮点数的存储浮点数转换为二进制 一、整数部分:商除一、整数部分:商除2 2取余,商为取余,商为0 0结束,余结束,余数逆序排列;数逆序排列; 二、小数部分:乘二、小数部分:乘2 2取整,积为取整,积为0 0结束,整数结束,整数部分顺序排列。部分顺序排列。 例如:单精度浮点数例如:单精度浮点数120.5120.5的二进制原

33、码表示:的二进制原码表示: 1111000.11111000.1浮点数 120.5 120.5用二进制表示为:用二进制表示为:1111000.11111000.1 用二进制的科学计数法表示为用二进制的科学计数法表示为1.11100011.1110001* * 2 26 6 任何一个数的科学计数法表示都为任何一个数的科学计数法表示都为1.xxx1.xxx* *2 2n n 尾数部分就可以表示为尾数部分就可以表示为xxxx, xxxx, 不保存小数点前不保存小数点前面的面的1 1,所以,所以2323位的尾数部分位的尾数部分,可以表示的精,可以表示的精度却变成了度却变成了2424位位。 对于指数部分

34、,因为指数可正可负,对于指数部分,因为指数可正可负,8 8位的指数位能位的指数位能表示的指数范围就应该为表示的指数范围就应该为:-127:-127128128, 指数部分的存储采用移位存储,即存储的数据为元数指数部分的存储采用移位存储,即存储的数据为元数据据加上加上127127,8 8位指数位全是数值位,位指数位全是数值位, 数值范围:数值范围:0 0 255255 如指数是如指数是6 6,实际存储的是,实际存储的是133133的二进制的二进制. . 单精度浮点数单精度浮点数120.5120.5的存储方式如下所示的存储方式如下所示: : 0 10000101 11100001000000000

35、000符符号号位位指指数数位位尾尾数数位位 12.65 1.原码:原码:1100.10100110011001100110 2.科学计数:科学计数:1.10010100110011001100110*23 3.尾数用补码表示:尾数用补码表示:10010100110011001100110 4.指数:指数:3+127=130,130的原码:的原码:100000101 内存中:内存中: 0 100000101 10010100110011001100110符符号号位位指数位:指数位:指数没指数没有符号有符号位位尾尾数数位位 -0.012 1.原码:原码:0.00000011000100 2.科学计

36、数:科学计数:1.1000100*2-7 3.尾数尾数: 1000100 4.指数:指数:-7+127=120,120的原码的原码:01111000内内存中:存中: 1 01111000 1000100符符号号位位指数位:指数位:指数没指数没有符号有符号位位尾尾数数位位 如果给出内存中一段单精度存储的数据,如何知如果给出内存中一段单精度存储的数据,如何知道该数据的十进制数值呢?道该数据的十进制数值呢? 如给出如下内存数据:如给出如下内存数据:01000010111011010000000000000100001011101101000000000000 首先分段:首先分段: 0 1000010

37、1 110110100000000000000000 10000101 11011010000000000000000 根据我们的计算方式,可以计算出,这样一组数根据我们的计算方式,可以计算出,这样一组数据表示为据表示为:1.1101101:1.1101101* * 2 26 6 =1110110.1=120.5 =1110110.1=120.5 符号位符号位指数位指数位尾数位尾数位给出以下数的二进制存储形式:给出以下数的二进制存储形式:25-3018.7-18.7给出以下整数的十进制存储形式:给出以下整数的十进制存储形式:00111110001110101011111000111010给出以

38、下浮点数的十进制存储形式:给出以下浮点数的十进制存储形式:0111001000001110001110001100110011110010000011100011100011001100 在程序中如何表示数据呢?在程序中如何表示数据呢? #include using namespace std; int main() float r,C; /声明输入和输出项目声明输入和输出项目 r=65.0; /设置半径的设置半径的值值 C=2*3.1415*r; /计算周长(输出)计算周长(输出) cout“圆的周长:圆的周长:”Cendl; return 0; float r,C; /r,C就表示数据就表

39、示数据 r,C在程序中称为变量。在程序中称为变量。 程序中用变量和常量来表示数据。程序中用变量和常量来表示数据。 程序员必须给使用的每个变量命名。程序员必须给使用的每个变量命名。变量 变量名、变量值、变量标识的内存单元:变量名、变量值、变量标识的内存单元: sudent_score 注:一些在问题中值经常变动的数据可以定义成变量注:一些在问题中值经常变动的数据可以定义成变量,如商如商品的价格品的价格,账户上的余额账户上的余额.89内存单元内存单元变量名变量名(不能变)不能变)变量值变量值(可变,在程序运行时)可变,在程序运行时) 变量名和变量值的区别:变量名是一变量名和变量值的区别:变量名是一

40、个标签,计算机根据变量名找到相应个标签,计算机根据变量名找到相应的内存地址,然后把这个地址中存放的内存地址,然后把这个地址中存放的内容的内容-变量值变量值取出来进行处理取出来进行处理. 因计算机只用名访址,所以必须保证因计算机只用名访址,所以必须保证变量名的一致性变量名的一致性。 在程序中,通过变量名来访问数据,每个在程序中,通过变量名来访问数据,每个变量名都与一个特定的变量名都与一个特定的内存单元内存单元联系起来,联系起来,每个内存单元一次只能存放一个数值。每个内存单元一次只能存放一个数值。 对于程序员来说,变量最关键的作对于程序员来说,变量最关键的作用是什么?用是什么?存储单元和内存单元的

41、区别?存储单元和内存单元的区别?变量所标识的内存单元可以被变量所标识的内存单元可以被刷新刷新。刷新的含义是什么?刷新的含义是什么?常量常量:常量是一种固定的字符或数值,在整个指令运行过程中都不能改变,常量:常量是一种固定的字符或数值,在整个指令运行过程中都不能改变,在编程语言中,可以给常量命名,这时,常量就有了内存地址和名字在编程语言中,可以给常量命名,这时,常量就有了内存地址和名字,在程在程序执行过程中,常量会被赋值,且该值不能再改变,可通过名字访问它序执行过程中,常量会被赋值,且该值不能再改变,可通过名字访问它.常常数是常量的一种表示,直接使用,如数是常量的一种表示,直接使用,如89,8.

42、7 3.1415926 PI 常量名常量名(不能变)不能变)常量值常量值(不能变)不能变)内存单元内存单元注:一些在问题中值不变的数据可以定义注:一些在问题中值不变的数据可以定义成成常量常量,如,圆周率的值,一个公司薪水系如,圆周率的值,一个公司薪水系统中公司的名字统中公司的名字.计算机中的常量和变量 常量常量 变量变量规则:不能改变规则:不能改变例子:例子: 值值 值值 常量命名规则:常量命名规则:一旦赋值,值不能改变一旦赋值,值不能改变.给存储地址命名。给存储地址命名。按名访问。按名访问。例子:例子: PI 规则:规则:给存储地址命名。给存储地址命名。值可以改变值可以改变.在指令中按变量名访问。在指令中按变量名访问。例子:例子:变量名变量名 COST 值值变量名变量名 CASH 值值25“sdffff”3.141556.210000 为某公司建立一个计算员工薪水的系统,给为某公司建立一个计算员工薪水的系统,给出可能的常量和变量。出可能的常量和变量。 常量:常量:公司的名字、公司的名字、加班费加班费不会不会 变,所以用变,所以用常

温馨提示

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

评论

0/150

提交评论