程序框图 案例
- 格式:doc
- 大小:504.00 KB
- 文档页数:14
程序框图经典例题程序框图(Flowchart)是一种图形化表示算法、流程或一系列操作步骤的方法。
它可以帮助人们更好地理解一个流程,并且可以帮助程序员分离出一个简单可控的模块。
下面是一些经典的程序框图例题,它们可以帮助程序员更好地学习程序框图的基本用法和经典模型。
Fibonacci数列Fibonacci数列是一个经典的数学模型,它的规律就是前面两个数的和等于后面一个数,如下所示:1, 1, 2, 3, 5, 8, 13, 21, 34, 55...现在要求根据用户输入的参数生成对应长度的Fibonacci数列,程序框图如下所示:st=>start: 开始in=>inputoutput: 输入 nop1=>operation: 初始化 a=1, b=1, c=0cond=>condition: c<n?op2=>operation: 输出 csub=>subroutine: temp = b; b = c; c = temp + be=>end: 结束st->in->op1->condcond(yes)->op2->sub->condcond(no)->e水仙花数水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,以下是一些例子:153: 1^3 + 5^3 + 3^3 = 153370: 3^3 + 7^3 + 0^3 = 370407: 4^3 + 0^3 + 7^3 = 407现在要求输入n,输出所有n位的水仙花数。
程序框图如下所示:st=>start: 开始in=>inputoutput: 输入 nop1=>operation: 初始化 i=10^(n-1), max=10^n-1, sum=0op2=>operation: 遍历 i到maxop3=>operation: 计算每个位的n次幂和op4=>operation: 如果sum=i,则输出isub=>subroutine: i++e=>end: 结束st->in->op1->op2->op3->op4->sub->op2op4(no)->op2op2(no)->e快速排序快速排序是一种高效的排序算法,它的时间复杂度为O(NlogN),下面是一个简单的快速排序实现,程序框图如下所示:st=>start: 开始in=>inputoutput: 输入数组 a 和长度 nop1=>operation: 如果 n<=1,则返回op2=>operation: 选取中间值op3=>operation: 将数组分为两个子数组op4=>operation: 对两个子数组进行递归调用快速排序e=>end: 结束st->in->op1->op2->op3->op4->eop3(yes)->op4(top)->op3op3(no)->e队列队列是一种常用的数据结构,下面是一个简单的队列实现,程序框图如下所示:st=>start: 开始in1=>inputoutput: 创建队列in2=>inputoutput: 输入元素 xcond1=>condition: 队列是否为空?op1=>operation: 将元素 x 加入队首cond2=>condition: 队列是否已满?op2=>operation: 从队尾删除元素out=>inputoutput: 输出元素e=>end: 结束st->in1->in2->cond1cond1(yes)->op1->econd1(no)->cond2cond2(yes)->out->econd2(no)->op1->cond2程序框图是一种非常有效的既可以表示流程,也可以表示代码逻辑的工具。
1.1.2程序框图
教学目标:理解程序框图的概念,学会画程序框图的规则
教学重点:理解程序框图的概念,学会画程序框图的规则
教学过程:
一、复习回顾
1、算法的概念:算法是解决某个特定问题的一种方法或一个有限过程。
2、算法的描述
(1)自然语言
(2)形式语言
(3)框图
二、程序框图的概念
1、通过例子:对任意三个实数a、b、c求出最大值。
写出算法(两种方法)
2、程序框图也叫流程图,是人们将思考的过程和工作的顺序进行分析、整理,用规定
的文字、符号、图形的组合加以直观描述的方法
3、程序框图的基本符号
起止框
输入输出框
处理框
判断框
连接点
循环框
用带有箭头的流程线连接图形符号
注释框
三、读图
例1、读如下框图分析此算法的功能
四、画流程图的基本规则
1、使用标准的框图符号
2、从上倒下、从左到右
3、开始符号只有一个退出点,结束符号只有一个进入点,判断符号允许有多个退出点
4、判断可以是两分支结构,也可以是多分支结构
5、语言简练
6、循环框可以被替代
五、例子
1、输入3个实数按从大到小的次序排序
2、用二分法求方程的近似解
课堂练习:第10页,练习A,练习B
小结:本节介绍程序框图的概念,学习了画程序框图的规则
课后作业:第19页,习题1-1A第1、2题。
程序框【典型例题】例1. 给出求1+2+3+4+5的一个算法.解:算法1 按照逐一相加的程序进行. 第一步:计算1+2,得到3;第二步:将第一步中的运算结果3与3相加,得到6; 第三步:将第二步中的运算结果6与4相加,得到10; 第四步:将第三步中的运算结果10与5相加,得到15. 算法2 运用公式直接计算.第一步:取=5;第二步:计算;第三步:输出运算结果.算法3 用循环方法求和. 第一步:使,; 第二步:使; 第三步:使; 第四步:使;第五步:如果,则返回第三步,否则输出.123n ++++=2)1(+n n n 2)1(+n n 1S =2I =S S I =+1I I =+5I ≤S说明:①一个问题的算法可能不唯一. ②若将本例改为“给出求的一个算法”,则上述算法2和算法3表达较为方便.例2. 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊。
该人应如何将动物转移过河?请设计算法?解析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要少于羚羊的数量,故在算法的构造过程中应尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势,具体算法如下:算法步骤:第一步:人带两只狼过河,并自己返回; 第二步:人带一只狼过河,自己返回;第三步:人带两只羚羊过河,并带两只狼返回; 第四步:人带一只羊过河,自己返回; 第五步:人带两只狼过河。
例 3. 设计算法判断一元二次方程是否有实数根,并画出相应的程序框图。
解析:算法步骤如下:第一步:输入一元二次方程的系数:a ,b ,c ; 第二步:计算△的值;第三步:判断△≥0是否成立。
若△≥0成立,输出“方程有实根”;否则输出“方程无实根”。
结束算法。
相应的程序框图如下:例4. 设计一个算法,求的值,并画出程序框图。
解析:算法步骤:123100++++02=++c bx ax ac b 42-=492421++++第一步:sum=0; 第二步:i=0;第三步:sum=sum+2i ; 第四步:i=i+1;第五步:判断i 是否大于49,若成立,则输出sum ,结束;否则返回第三步重新执行。
流程图符号及流程图的例子介绍常见的流程图符号及流程图的例子。
本章例1 - 1的算法的流程图如图1 - 2所示。
本章例1 - 2的算法的流程图如图1 - 3所示。
在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T”、“F”或“Y”、“N”另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。
2. 算法的结构化描述早期的非结构化语言中都有go to语句,它允许程序从一个地方直接跳转到另一个地方去。
执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。
这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。
而结构化程序设计,就是要把这团乱麻理清。
经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。
正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。
遵循这种方法的程序设计,就是结构化程序设计。
相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。
(1) 顺序结构顺序结构是简单的线性结构,各框按顺序执行。
其流程图的基本形态如图1 - 4所示,语句的执行顺序为:A→B→C。
(2) 选择(分支)结构这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。
其基本形状有两种,如图1-5 a)、b)所示。
图形符号名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示一个算法输入和输出的信息处理框(执行框)赋值、计算判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”流程线连接程序框连接点连接程序框图的两部分三种逻辑结构可以用如下程序框图表示:顺序结构条件结构循环结构变式训练观察下面的程序框图,指出该算法解决的问题.解:这是一个累加求和问题,共99项相加,该算法是求100991431321211⨯++⨯+⨯+⨯ 的值.例2 已知一个三角形三条边的边长分别为a ,b ,c ,利用海伦—秦九韶公式设计一个计算三角形面积的算法,并画出程序框图表示.(已知三角形三边边长分别为a,b,c ,则三角形的面积为S=))()((c p b p a p p ---),其中p=2c b a ++.这个公式被称为海伦—秦九韶公式)算法步骤如下:第一步,输入三角形三条边的边长a,b,c.第二步,计算p=2c b a ++. 第三步,计算S=))()((c p b p a p p ---.第四步,输出S.程序框图如下:点评:很明显,顺序结构是由若干个依次执行的步骤组成的,它是最简单的逻辑结构,它是任何一个算法都离不开的基本结构.顺序结构可以用程序框图表示为语句n语句n+1件是______________. 答案:i>10.构),如图1所示.执行过程如下:条件成立,则执行A框;不成立,则执行B框.图1 图2应用示例例1 任意给定3个正实数,设计一个算法,判断以这3个正实数为三边边长的三角形是否存在,并画出这个算法的程序框图.算法步骤如下:第一步,输入3个正实数a,b,c.第二步,判断a+b>c,b+c>a,c+a>b是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角形.程序框图如右图:随堂练习1、设计算法判断一元二次方程ax2+bx+c=0是否有实数根,并画出相应的程序框图. 相应的程序框图如右:2、(1)设计算法,求ax+b=0的解,并画出流程图.程序框图如下:第3课时循环结构当型循环结构直到型循环结构直到型循环结构是程序先进入循环体,然后对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.当型循环结构是在每次执行循环体前,先对条件进行判断,当条件满足时,执行循环体,否则终止循环.应用示例例1设计一个计算1+2+……+100的值的算法,并画出程序框图.第一步,令i=1,S=0.第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.第三步,S=S+i.第四步,i=i+1,返回第二步.当型循环直到型循环变式训练例1 设计框图实现1+3+5+7+…+131的算法.第一步,赋初值i=1,sum=0.第二步,sum=sum+i,i=i+2.第三步,如果i≤131,则反复执第二步;否则,执行下一步.第四步,输出sum.第五步,结束.程序框图如右图知能训练设计一个算法,求1+2+4+…+249的值,并画出程序框图.(2)算法步骤中的“第四步”可以用条件结构来表示(如下图).在这个条件结构中,“否”分支用“a=m”表示含零点的区间为[m,b],并把这个区间仍记成[a,b];“是”分支用“b=m ”表示含零点的区间为[a,m],同样把这个区间仍记成[a,b].(3)算法步骤中的“第五步”包含一个条件结构,这个条件结构与“第三步”“第四步”构成一个循环结构,循环体由“第三步”和“第四步”组成,终止循环的条件是“|a-b|<d或f(m)=0”.在“第五步”中,还包含由循环结构与“输出m”组成的顺序结构(如下图).(4)将各步骤的程序框图连接起来,并画出“开始”与“结束”两个终端框,就得到了表示整个算法的程序框图(如下图).解:将实际问题转化为数学模型,该问题就是要求1+2+4+……+263的和.程序框图如下:点评:对于开放式探究问题,我们可以建立数学模型(上面的题目可以与等比数列的定义、性质和公式联系起来)和过程模型来分析算法,通过设计算法以及语言的描述选择一些成熟的办法进行处理.例3 乘坐火车时,可以托运货物.从甲地到乙地,规定每张火车客票托运费计算方法是:行李质量不超过50 kg 时按0.25元/kg ;超过50 kg 而不超过100 kg 时,其超过部分按0.35元/kg ;超过100 kg 时,其超过部分按0.45元/kg .编写程序,输入行李质量,计算出托运的费用.分析:本题主要考查条件语句及其应用.先解决数学问题,列出托运的费用关于行李质量的函数关系式.设行李质量为x kg ,应付运费为y 元,则运费公式为:y=⎪⎩⎪⎨⎧>-+⨯+⨯≤<-+⨯≤<,100),100(45.05035.05025.0,10050),50(35.05025.0,500,25.0x x x x x x整理得y=⎪⎩⎪⎨⎧>-≤<-≤<.100,1545.0,10050,535.0,500,25.0x x x x x x要计算托运的费用必须对行李质量分类讨论,因此要用条件语句来实现.解:算法分析:第一步,输入行李质量x.第二步,当x≤50时,计算y=0.25x,否则,执行下一步.第三步,当x≤100,计算y=0.35x-5,否则,计算y=0.45x-15.第四步,输出y.程序框图如下:课堂小节(1)进一步熟悉三种逻辑结构的应用,理解算法与程序框图的关系.(2)根据算法步骤画出程序框图.作业习题1.1B组1、2.设计感想本节是前面内容的概括和总结,在回忆前面内容的基础上,选择经典的例题,进行了详尽的剖析,这样降低了学生学习的难度.另外,本节的练习难度适中,并且多为学生感兴趣的问题,这样为学生学好本节内容作好充分准备,希望大家喜欢这一节课.。
算法案例(一)辗转相除法与更相减损术1.短除法求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所有的商是两个互质的数为止,然后把所有的处暑连乘起来.2.穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个较小的数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数.3.辗转相除法(1)辗转相除法:该算法又称欧几里得算法,就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续上面的除法,直到余数为零,此时处暑就是所求两正整数的最大公约数.(2)算法步骤:以求正整数nm,的最大公约数为例.第一步,输入两个正整数nm,.第二步,判断nm,的大小,让m表示较大的数,n表示较小的数.第三步,计算m除以n的余数.第四步,让r=,.m=nn第五步,如果0r,则n=m,的最大公约数等于m;否则返回第三步.(3)程序:INPUT “m=”;mINPUT “n=”;nIF m>n THENx=mm=nn=xEND IFr=m MOD nWHILE r<>0r=m MOD nm=nn=rWENDPRINT nEND(4)程序1为:INPUT “m,n=”;m,n IF m<n THENt=mm=nn=tEND IFDOr=m MOD nm=nn=rLOOP UNTIL r=0PRINT mEND 程序2为:INPUT “m,n=”;m,n IF m<n THENt=mm=nn=tEND IFr=1WHILE r<>0r=m MOD nm=nn=rWENDPRINT mEND4.更项减损术(1)更项减损术:我国早期也有解决求最大公约数问题的算法,就是更相减损术.《九章算术》是中国古代的数学专著,其中的“更相减损术”也可以来用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子子之数,以少减多,更相减损,求其等也.以等数约之.”(2)算法步骤:第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用2约简之;若不是,执行第二步.第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减去小数,继续这个操作,直到所得的数相等为止.则这个数(等数)或这个数与约简数的乘积就是所求的最大公约数.(3)程序框图为:略(4)程序为:INPUT “m,n=”;m,nIF m<n THENt=mm=nn=tEND IFk=0WHILE (m MOD 2=0) AND (n MOD 2=0) m=m/2n=n/2k=k+1WENDd=m-nWHILE d<>nIF d>n THENm=dELSEm=nn=dEND IFd=m-nWENDd=2^k*dPRINT dEND(二)秦九韶算法1.怎么求多项式1)(2345+++++=x x x x x x f 当5=x 时的值?一个自然的做法是把5代入多项式)(x f ,急速各项的值,然后把它们加起来,这时,我们一共做了1054321=++++次乘法运算,5次加法运算.另一种算法是先计算2x 的值,然后计算x x x x x x x x x ⋅⋅⋅⋅⋅⋅))((,)(,222的值,这样每次都可以利用上一次计算的结构,这时,我们一共做了4次乘法运算,5次加法运算.第二种做法与第一种做法相比,乘法的运算此时减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种算法,计算机能更快地得到结果.2.求多项式0111)(a x a x a x a x f n n n n ++++=-- 的值时,常用秦九韶算法,这种算法的运算次数较少,是多项式求值比较先进的算法,其实质是转化为求n 个一次多项式的值,共进行n 次乘法运算和n 次加法运算.3.秦九韶算法(1)改写多项式:0111)(a x a x a x a x f n n n n ++++=-- 0122101231201211))))((())(()(a x a x a x a x a x a a x a x a x a x a a x a x a x a n n n n n n n x n n n ++++++==+++++=++++=--------设11-+=n n a x a v ,212-+=n a x v v ,,323-+=n a x v v ,01a x v v n n +=-.(2)算法步骤:第一步,输入多项式次数n ,最高次项的系数n a 和x 的值.第二步,1,-==n i a v n .第三步,输入i 次项的系数i a .第四步,1,-=+=i i a vx v i .第五步,判断i 是否大于等于0,若是,则返回第三步;否则,输出多项式的值v .(3)程序框图为:略(4)程序为:INPUT “n=”;nINPUT “an=”;a INPUT “x=”;xv=ai=n-1WHILE i>=0PRINT “i=”;i INPUT “ai=”;a v=v*x+ai=i-1WENDPRINT vEND(三)进位制算法1.定义:人们为了计数和运算方面而约定的计数系统,“满k 进一”就是k 进制,k 是基数(其中k 是大于1的整数).k 进制的数可以表示为一串数字连写在一起的形式.),,,0,0(01)(011k a a a k a a a a a a n n k n n <≤<<--2.在日常生活中,我们最熟悉、最常用的是十进制.除此之外还有二进制,七进制,八进制,十二进制,十六进制,六十进制等.3.非十进制的k 进制数a (共有n 位)化为十进制数b 的计算公式为:0111)(011a k a k a k a a a a a n n n n k n n ++++=---(1)算法步骤:第一步,输入n k a ,,的值.第二步,1,0==i b .第三步,1,1+=+=-i i k a b b i i .第四步,判断n i >是否成立,若是,则执行第五步;否则,返回第三步.第五步,输出b 的值.(2)程序框图为:略(3)程序为:INPUT “a,k,n=”;a,k,nb=0i=1t=a MOD 10DOb=b+t*k^(i-1)a=a\10t= a MOD 10i=i+1LOOP UNTIL i>nPRINT bEND4.十进制数a 转化为非十进制的k 进制数b 的方法(1)算法步骤:第一步,输入k a ,的值.第二步,求出a 除以k 所得的商q ,余数r .第三步,若0≠q ,则q a =,返回第二步;否则执行第四步.第四步,将依次得到的余数从右到左排列,得到k 进制数.(2)程序框图为:略(3)程序为:INPUT “a,k=”;a,nb=0i=0DOq=a\kr=a MOD kb=b+r*10^ii=i+1LOOP UNTIL q=0PRINT bEND三、典例剖析(一)辗转相除法与更项减损术例1 分别用辗转相除法和更相减损术求204与85的最大公约数.解: (1)辗转相除法第一步,34852204+⨯=第二步,1734285+⨯=第三步,17234⨯=因此,17是204与85的最大公约数.(2)更相减损术第一步,11985204=-,3485119=-第二步,513485=-,173451=-第三步,171734=-因此,17是204与85的最大公约数.点评: 更相减损术与辗转相除法的比较:尽管两种算法分别来源于东西方古代数学专著,但是二者的算理却是相似的,右异曲同工之妙.主要区别在于辗转相除法进行的是出发运算,即辗转相除;而更相减损术进行的是减法运算,即辗转相减,但是实质都是一个不断的递归过程.例2 请用辗转相除法和更相减损术求1734和816的最大公约数.解:(1)辗转相除法第一步,10281621734+⨯=第二步,1028816⨯=因此,102是1734和816的最大公约数.(2)更相减损术第一步,因为两个数皆为偶数,首先除以2得到408,867,在求这两个数的最大公约数第二步,459408867=-,51408459=-第三步,35751408=-,30651357=-第四步,25551306=-,20451255=-第五步,15351204=-,10251153=-第六步,5151102=- 因此,102251=⨯是1734和816的最大公约数.例3 用辗转相除法和更相减损术求三个数135,234,324的最大公约数. 解:(1)辗转相除法812431324+⨯=,813243⨯=则324与243的最大公约数为81又54811135+⨯=,2754181+⨯=,27254⨯=则81与135的最大公约数为27因此,三个数135,234,324的最大公约数为27.(2)更相减损术81243324=-,16281243=-,8181162=-则324与243的最大公约数为81又5481135=-,275481=-,272754=-则81与135的最大公约数为27因此,三个数135,234,324的最大公约数为27.练习: 1.用辗转相除法求123和48的最大公约数.(答案:3)2.用更相减损术求80和36的最大公约数.(答案:4)3.求116,377,319的最大公约数.(答案:29)(二)秦九韶算法例1 已知n 次多项式n n n n n a x a x a x a x P ++++=--1110)( ,如果在一种算法中,计算),,4,3,2(0n k x k =的值需要1-k 次乘法,计算)(03x P 的值共需要9次运算(6次乘法3次加法),那么计算)(010x P 的值需要_________次运算.下面给出一种减少运算次数的算法:00)(a x P =,)1,,2,1,0()()(11-=+=++n k a x xP x P k k k .利用该算法,计算)(03x P 的值共需要6次运算,计算)(010x P 的值共需要_____次运算.答案: 20,65点评: 秦九韶算法使用一般的多项式0111)(a x a x a x a x f n n n n ++++=-- 的求值问题.直接法乘法运算的次数最多可到达2)1(+n n ,加法最多n 次.秦九韶算法通过转化把乘法运算的次数减少到最多n 次,加法最多n 次. 例2 已知一个5次多项式为8.07.16.25.325)(2345-+-++=x x x x x x f ,用秦九韶算法求这个多项式当5=x 时的值.解: 根据秦九韶算法,把多项式改写成如下形式:8.0)7.1)6.2)5.3)25(((()(-+-++=x x x x x x f按照从内到外的顺序,一次计算一次多项式当5=x 时的值:50=v ,272551=+⨯=v ,5.1385.35272=+⨯=v , 9.6896.255.1383=-⨯=v ,2.34517.159.6894=+⨯=v 2.172558.052.34515=-⨯=v所以,当5=x 时,多项式的值为2.17255点评: 如果多项式函数中又缺项的画,要以系数为0的项补齐后再计算.练习: 1.已知多项式函数763452)(2345+-+--=x x x x x x f ,求)5(f .2.当2=x 时,用秦九韶算法求多项式6125383)(2345-++-+=x x x x x x f 的值.3.用秦九韶算法求多项式x x x x x x x x f ++++++=224567234567)(当3=x 时的值.答案: 1.2677; 2.238; 3.21324例3 某城市2001年末汽车保有量为30万辆,预计此后每年报废上一年末汽车保有量的%6,并且每年新增汽车3万辆.设计算法,计算经过多少年可使汽车保有量达到40万辆.将此算法用程序语言给出.解:设94.0%61=-=c ,经过几年的汽车保有量为n a ,则300==b a301+=c a a3)3(3012++=+=c c a c a a3)3)3((3023+++=+=c c c a c a a3)3)3)3(((0+++++=c c c c a a n上述各式充分说明了秦九韶算法的优点:可以通过递推关系31+=-c a a n n 进行迭代处理.程序为:C=0.94A=30n=0WHILE A<40A=A*C+3n=n+1WENDPRINT nEND(三)进位制算法例1 (1)二进制数)2(101用十进制表示是( )A.7B.6C.5D.4(2)十进制数8用二进制表示是( )A.1000B.1001C.1010D.1100答案: (1) C (2) A例 2 (1)一斤半的东西,用现在的10两制(即10两等于1斤)计是15两,若按过去的16两制(即16两等于1斤)计是_______两.(2)现在最常用的十进制是逢十进一,而用角度制度量角时,却是是逢六十进一.在角度制中,2度12分等于________分.答案: (1) 24 (2) 132例3 (1)把二进制数)2(110011化为十进制数.(2)把89转化为二进制数.解: (1)51212120202121110011012345)2(=⨯+⨯+⨯+⨯+⨯+⨯=(2)144289+⨯= 022244+⨯= 011222+⨯=15211+⨯= 1225+⨯= 0122+⨯=1021+⨯=所以)2(101100189=例4 (1)将八进制数)8(314706化为十进制数,并编写出一个实现算法的程序.(2)把十进制数89化为三进制数,并写出程序语句.解:(1)104902868087848183314706012345)8(=⨯+⨯+⨯+⨯+⨯+⨯= 程序略(可参加把k 进制数转化为十进制数的一般方法)(2)229389+⨯= 29329+⨯= 0339+⨯=0133+⨯= 1031+⨯=所以)3(1002289=程序略(可参加把十进制数转化为k 进制数的一般方法)练习: 1.将十进制数34转化为二进制数.2.把)5(1234分别转化为十进制数和八进制数.3.完成下列进位制的转换(1)=)10(105_________=)2(_________=)6(__________)8((2)=)2(10110________=)10(_________=)4(_________)16(答案: 1.)2(10001034=; 2.)8()10()5(3021941234==;3.)8()6()2()10(1512531101001105=== )16()4()10()2(161122210110===。