版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章程序设计基础
1.1计算机内的数据表示
1.2算法及其表示
1.3程序设计语言
1.4结构化程序设计1.1计算机内的数据表示数制及其转换常用计数方法十进制计数法进制计数法是“逢十进一”的例如:(1234.56)10=1×103+2×102+3×101+4×100+5×10-1+6×10-2各位的权值分别为:103、102、101、100、10-1、10-2。二进制计数法二进制计数法是“逢二进一”的。例如:(1001101.11)2=1×26+0×25+0×24+1×23+1×22+0×21+1×20+1×2-1+1×2-2各位的权值分别为:26、25、24、23、22、21、20、2-1、2-2、2-3。1.1计算机内的数据表示八进制数与十六进制数八进制计数法是“逢八进一”的,数码为:0、1、2、3、4、5、6、7。例如:(621)8=6×82+2×81+6×80
各位的权值分别为:82、81、80。十六进制计数法是“逢十六进一”的,数码为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。例如:(8A1F)16=8×163+10×162+1×161+15×160各位的权值分别为:163、162、161、160。1.1计算机内的数据表示数制转换任意进制转换为十进制
由r制数转换为十进制数可按照如下公式进行多项式展开求和即可:
KnKn-1…K1K0.K-1K-2…K-m=Kn×rn+Kn-1×rn-1+…K1×r1+K0×r0+K-1×r-1+K-2×r-2+…K-m×r-m
十进制转换为任意进制可以采用除基取余法将十进制整数转换为r进制整数:将十进制整数除以r,得到商和余数,余数对应为r进制数低位的值;继续让商再除以r,得到商和余数,……重复此操作,直至商为0,如此得到的一系列的余数就是相应r进制数的各位数字,先得到的是低位,后得到的是高位。
1.1计算机内的数据表示例如,将(29)10转换为二进制整数:因此,(29)10=(11101)22292141低位27023121101高位
1.1计算机内的数据表示可采用乘基取整法将十进制小数转换为r进制小数:将十进制小数乘以r,去掉乘积的整数部分,再将余下的纯小数乘以r,……重复此操作,直至乘积等于0或达到所需的精度为止,如此得到的一系列整数就是r进制小数的各位数字,先得到的是高位,后得到的是低位。例如,将(0.625)10转换为二进制小数:0.625×2=1.251高位0.25×2=0.500.5×2=11低位因此,(0.625)10=(0.101)2由于整数和小数的转换方法截然不同,将十进制数转换为r进制数时,整数部分和小数部分要分开来进行转换。r进制小数能精确的转换为十进制小数,但十进制小数通常不能精确的转换为r进制小数。1.1计算机内的数据表示二进制与八进制、十六进制之间的转换对于一个二进制数,只要依次(整数部分由低位到高位,小数部分由高位到低位)将其每3位或4位分成一组,就可以直接转换为八进制数或十六进制数。例如,(1000101111010011.01101)2=(105423.53)8
(1000101111010011.01101)2=(8B13.B8)16将八进制数中的每一位用3位二进制数表示,将十六进制数中的每一位用4位二进制数表示,就能转换为对应的二进制数。1.1计算机内的数据表示
原码,反码及补码
在计算机中,“位”是数据的最小单位。计算机中的存储量是以字节来计算的,一个字节是8位二进制位。
在计算机内,一般规定:用0表示正号“+”,用1表示负号“-”;符号位放在数值位之前。
一个数连同其符号在机器中的二进制表示形式称为机器数,它所代表的数值称为机器数的真值。机器数的一般格式为:
符号位数值位……1.1计算机内的数据表示原码原码表示法是符号位用0表示正数,用1表示负数,数值位表示数值本身。例如:[+27]原=00011011[-27]原=10011011在原码表示法中,0的表示方法不唯一:
[+0]原=00000000[-0]原=10000000。反码反码表示法中正数与负数的表示方法不同,正数的反码与原码同形,如:
[+27]反=00011011负数的反码为:符号位仍为1,数值位是对原码取反,如:
[-27]反=11100100在反码表示法中,0的表示也不唯一:
[+0]反=00000000[-0]反=11111111。1.1计算机内的数据表示补码正数的补码与原码、反码同形,如:
[+18]原=[+18]反=[+18]补=00010010负数的补码为:符号位为1,数值位等于原码的数值位取反,再加1,或者说:[x]补=[x]反+1;如:[-18]原=10010010[-18]反=11101101[-18]补=11101110补码形式的数据进行运算时,符号位和数值位一样的参与运算。
例如,计算-36+58,[-36]补=11011100[+58]补=00111010
11011100
+00111010
溢出100010110在补码表示法中,0的表示是唯一的,假设用一个字节存放数据
[0]补=000000001.2算法及其表示
算法为解决一个问题而采取得方法和步骤,称为算法。算法就是被精确定义的一组规则,规定先做什么,再做什么,以及判断某种情况下做哪种操作。例如,下面是用自然语言表示的对三个数进行从小到大排序的算法。①
输入三个数x、y、z;②
将x与y比较,若x>y,交换x与y的值;③
将x与z比较,若x>z,交换x与z的值;④
将y与z比较,若y>z,交换y与z的值;⑤
输出此时的三个数x、y、z1.1计算机内的数据表示算法的特性和目标算法必须具有以下五个特性:确定性
算法中的每一步都必须有确切的含义,不允许存在二义性;对于相同的输入数据,必须有相同的输出结果。可行性
算法中的每一步操作都能通过可以实现的基本运算,执行有限次来完成,并最终得到确定的结果。有穷性一个算法必须总是在执行有限个操作步骤和可以接受的时间内完成其执行过程。也即是说,对于一个算法,要求其在时间和空间上均是有穷的。1.2算法及其表示输入
一个算法有零个或多个输入数据。有些算法需要提供输入数据,有些算法则不需要。输出
一个算法应该有1个或多个输出数据。算法应达到的目标正确性可读性健壮性高效率与低存储空间需求
1.2算法及其表示算法的表示
自然语言
传统流程图
传统流程图是用规定的一组图形符号、流程线和文字说明来表示各种操作的算法表示方法。
1.2算法及其表示1.2算法及其表示流程图只包括三种基本程序结构
顺序结构
选择结构
真处理A处理B假条件选择结构处理A处理B顺序结构1.2算法及其表示循环结构
真处理A假条件直到型循环结构假真处理A条件当型循环结构开始输入x,y,z结束输出x、y、z对三个数进行排序交换x、y假真x>y??交换x、z假真x>z?交换y、z假真y>z?1.2算法及其表示N-S流程图顺序结构
选择结构
顺序结构处理A
处理B分支结构条件
处理A
处理B成立不成立1.2算法及其表示循环结构当条件成立时继续
处理A当型循环结构
处理A
直到条件成立时结束直到型循环结构1.2算法及其表示输入x,y,zx>y?Y
N
交换x、yx>z?Y
N
交换x、zy>z?Y
N
交换y、z
输出x、y、z三个数进行从小到大排序1.2算法及其表示伪码伪码是用一种介于自然语言和计算机语言之间的文字和符号来描述算法。例如,用伪码描述上述算法:inputx,y,zx→maxify>maxtheny→maxifz>maxthenz→maxoutputmax1.3程序设计语言程序与程序设计语言
程序
计算机程序是指为让计算机完成特定的任务而设计的指令序列。程序设计语言
机器语言汇编语言高级语言面向对象的语言C语言简介
C语言的历史
1.3程序设计语言C程序的结构
C程序是一种函数结构,一般由一个或若干个函数组成;其中必有一个名为main()的主函数,程序的执行就是从这里开始的。
【例1.1】编写程序判断一个整数是否是3的倍数,如果是输出“YES”,否则输出NO”。main() /*main函数的首部*/{/*main函数体的开始*/
intm; /*定义整型变量m*/
printf("\nPleaseinputainteger:");/*输出提示信息*/
scanf("%d",&m); /*读入变量的值*/
if((m%3==0))printf("YES");elseprintf("NO");/*如果flag值为0,输出“YES”,否则输出“N0”*/}1.3程序设计语言运行情况如下:Pleaseinputainteger:20↙NO【例1.2】编写程序求任意三个整数中的最小值。main()/*main函数的首部*/{/*main函数体的开始*/
intn1,n2,n3;/*定义三个整型变量*/
intminnum;/*定义变量minnum,用于存放最小值*/
printf("\nEnterthreeintegers:");/*输出提示信息*/
scanf("%d,%d,%d",&n1,&n2,&n3);/*读入变量的值*/
minnum=min(n1,n2,n3);/*调用自定义函数min,将所求的最小值赋给变量minnum*/printf("\nMaximumis:%d",minnum);/*输出minnum值*/}1.3程序设计语言intmin(intx,inty,intz)/*num函数的首部*/{/*num函数体的开始*/
intm;m=x;/*默认第一个数最小*/
if(y<m)m=y;/*如果第二个数更小,则修改m*/if(z<m)m=z;/*如果第三个数更小,则修改m*/returnm;/*将m的值作为函数值返回*/}/*max函数体的结束*/运行情况如下:Enterthreeintegers:18,25,12↙Maximumis:121.3程序设计语言C程序的结构特点
C程序是由函数构成的。函数由函数首部和函数体两部分组成。一般函数的格式如下:
类型名
函数名(函数参数表)
{声明部分
执行部分
}函数体中也可以没有任何内容,即构成一个空函数。一个源程序有一个且只能有一个main函数(又称主函数)。C程序的执行总是从main函数开始的,在调用其它函数后,最后回到main函数中结束整个程序的执行。1.3程序设计语言C程序书写格式自由。既允许在一行内写多个语句,也允许将一个语句分写在多行上,但每个语句必须以分号结束。“/*……*/”表示对函数或语句的功能作注释。在“/”和“*”之间不能有空格,且“/*”和“*/”必须配对使用。注释是供人阅读的,并不参与编译和运行。注释可以出现在程序的任何地方,添加必要的注释可以提高程序的可读性。源程序中可以使用预处理命令(如include命令、define命令),预处理命令以“#”开头,一般预处理命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《工厂供电》2021-2022学年期末试卷
- 固定总价合同规范要求
- 国药器械销售合同
- 合同保证金遗失声明
- 合同法第三章42条
- 2024年兴安客运从业资格证考试模板
- 2024融资合同股权股份转让协议
- 2024工伤劳动合同范文
- 2024小区绿化工程合同
- 英语阅读记录卡-20210813175455
- GB 29837-2013火灾探测报警产品的维修保养与报废
- GA/T 1502-2018法庭科学视频中人像动态特征检验技术规范
- 问题解决型QC培训课件
- 西气东输计量交接凭证填报培训PPT-场站课件
- 中国特色社会主义理论与实践研究知识点整理及思考题答案
- 《居家养老服务问题及对策探究【论文】6000字》
- 三1班反邪教教育主题班会记录
- 5、风电吊装施工指导手册
- 中国邮政储蓄银行招聘考试试题
- 养老院健康体检表
- 韵母教学讲解课件
评论
0/150
提交评论