第一章 1.3算法案例的框图程序和第一章习题(1.2课时)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知识探究(二):十进制化k进制的算法
思考1:利用除k取余法,将十进制数a化 为k进制数的算法步骤如何设计?
第一步,输入十进制数a和基数k的值.
第二步,求出a除以k所得的商q,余数r. 第三步,把所得的余数依次从右到左排 列. 第四步,若q≠0,则a=q,返回第二步; 否则,输出全部余数r排列得到 的k进制数.
开始 h=100 s=100 i=1
(3)全程共经过多少米? h=100 s=100 i=1 WHILE i<=9 h=h/2 s=s+h s=s+2*h i=i+1 WEND PRINT s END
i=i+1 s=s+2h s=s+h h=h/2 i≤9? 否 输出s 结束 是
例3 高一某班有50名学生,编写程序,统计 该班数学单元测试优秀人数(不低于80分)、 及格人数和班级平均分.
思考1:该程序框图反映的实际问题是什 开始 么?
n=1 S=0 n=n+1
S=S-n×n
是 n≤100? 否 输出S 结束 是
S=S+n×n 否
n是偶数?
求12-22+32-42+„+992-1002 的值.
INPUT “a,b,d=”;a,b,d DO 思考 2: 程序的功能? m=(a+b)/2 g=a∧2-2 f=m∧2-2 IF g*f<0 THEN b=m ELSE a=m END IF LOOP UNTIL ABS(a-b)<d OR f=0 PRINT m END
i=i+1 h=h/2 i≤9? 否 输出h 结束 是
h=50 i=1 WHILE i<=9 h=h/2 i=i+1 WEND PRINT h END
开始 h=100 s=100
i=1
i≤9? 否 输出s 结束
(2)第10次着地时向下的运动共经 过多少米? h=100 s=100 i=1 WHILE i<=9 i=i+1 h=h/2 s=s+h s=s+h h=h/2 i=i+1 是 WEND PRINT s END
思考2:将除k取余法的算法步骤用程序框 图如何表示? 开始
输入a,k
求a除以k的商q 求a除以k的余数r 把所得的余数依次从右到左排列
a=q q=0? 是 输出全部余数r排 列得到的k进制数

结束
思考3:该程序框图对应的程序如何表述?
开始 输入a,k 求a除以k的商q
求a除以k的余数r
把所得的余数依次从右到左排列 a=q
(二):秦九韶算法的程序设计
思考1:用秦九韶算法求多项式的值,可 以用什么逻辑结构来构造算法?其算法 步骤如何设计? 递推式
第一步,输入多项式的次数n,最高次 项的系数an和x的值. 第二步,令v=an,i=n-1. 第三步,输入i次项的系数ai. 第四步,v=vx+ai,i=i-1. 第五步,判断i<0是否成立.若是,则输出多 项式的值v;否则,返回第三步.
n n i
i
(三): 进位制转化的程序设计
思考1:按照上述思路,把k进制数 a = anan - 1 L a2a1(k ) 化为十进制数b的算法 步骤如何设计?
第一步,输入a,k和n的值. 第二步,令b=0,i=1. 第三步, b = b + ai
累加
k
i- 1
,i=i+1.
第四步,判断i>n 是否成立.若是,则 输出b的值;否则,返回第三步.
开始
学生成绩为x, 优秀人数为m, 及格人数为a, 班级总分为s, 平均成绩为p.
s=0 m=0 a=0 i=1
i=i+1 s=s+x a=a+1 是 x≥60? m=m+1 是 x≥80? 输入成绩x


i≤50? 否 p=s/50 输出m,a,p 结束

开始 s=0 m=0 a=0 i=1 i=i+1 s=s+x a=a+1 是 x≥60? m=m+1 是 x≥80? 输入成绩x i≤50? 否 p=s/50 输出m,a,p 结束 是
求多项式 在x=a时的值.
f (x ) = 1 + 2x + 3x 2 + 4x 3 + 5x 4
复习参考题 B组:3.
第一步,输入正整数x和它的位数n 第二步,判断n是否为偶数.若是,则m=n/2,否则, m=(n-1)/2。 第三步,令i=1 第四步,判断x的第i位与第(n+1-i)位上的数字 是否相等。若是,则使i的值增加1,仍用i表示; 否则,x不是回文数,结束算法。 第五步,判断i>m是否成立.若是,则n是回文数, 结束算法。否则,返回第四步。
设计算法,可先考虑具体问题的 解法,再归纳出算法。
练习1 把求n!的程序补充完整 INPUT _________“n=” ,n i =1 s=1 _________i< =n WHILE s=s*i i=i+1 _________ WEND PRINT s END
开始
将用“二分 法”求方程
x 2 0( x 0)
2
f(x)=x2-2
输入精确度d 和初始值a,b
m = a + b 2
的近似解的.
a=m

f(a)f(m)<0? 是 b=m
|a-b|<d或f(m)=0? 是 输出m
结束

思考3阅读 INPUT “x=”;a 下列程序,说 n=0 明它解决的实 y=0 际问题是什么? WHILE n<5 y=y+(n+1)*a∧n n=n+1 WEND PRINT y END
例4 《张邱建算经》云:今有鸡翁一, 值钱五;鸡母一,值钱三;鸡雏三,值 钱一.凡百钱买百鸡,问鸡翁、母、雏各 几何?编写程序解决上述问题.
设鸡翁、母、雏分别为x、y、z只,则
? x y + z = 100 ï ï ï í z ï 5x + 3y + = 100 ï ï 3 î
? 7x 4y = 100 ï 即 ï í ï z = 100 - x - y ï î
思考2:该算法的程序框图如何表示?
开始 输入n,an,x的值 v=an i=n-1 i=i-1
v=vx+ai
输入ai i≥0? 否 输出v 结束

思考3:该程序框图对应的程序如何表述? 开始 INPUT “n=”;n 输入n,a ,x的值 INPUT “an=”;a INPUT “x=”;x v=a v=a i=n-1 i=n-1 i=i-1 WHILE i>=0 v=vx+a INPUT “ai=”;b v=v*x+b 输入a i=i-1 i≥0? 是 否 WEND 输出v PRINT y 结束 END
{
例2 用秦九韶算法求多项式 f(x)=anxn+an-1xn-1+„+a1x+a0的值,令 v0=an, vk=vk-1x+an-k (k=1,2,„,n). 若f(x)=3x5+4x4+5x3+2x2+2x+1,当x=3 时,求v4的值.
V4=270
(一):辗转相除法和更相减损术的程序设计
思考1:用辗转相除法求两个正整数m,n 的最大公约数,可以用什么逻辑结构来 构造算法?其算法步骤如何设计? 第一步,给定两个正整数m,n(m>n). 第二步,计算m除以n所得的余数r. 第三步,m=n,n=r. 第四步,若r=0,则m,n的最大公约数等 于?;否则,返回第二步. m
开始
x=1
x=x+1 否
x≤14? 是 y=1 y≤25? 是
7x+4y=100? 是 z=100-x-y

y=y+1 否
输出x,y,z
结束
开始
x=1
x=x+1

x≤14? 是 y=1
y≤25? 是 7x+4y=100? 是 z=100-x-y

y=y+1 否
输出x,y,z
结束
x=1 WHILE x<=14 y=1 WHILE y<=25 IF 7*x+4*y=100 THEN z=100-x-y PRINT x,y,z ELSE y=y+1 END IF WEND x=x+1 WEND END
否 q=0? 是 输出全部余数r排 列得到的k进制数
结束
INPUT a,k b=0 i=0 DO q=a/k r=a MOD k b=b+r*10∧i ? i=i+1 a=q LOOP UNTIL q=0 PRINT b END
第一章 单元复习 编写算法程序习题分析
例1 设计一个从输 入的10个数中选出最 大值和最小值的程序 框图,并写出程序.

INPUT m,n WHILE n>0 r=m MODn m=n n=r WEND PRINT m END
思考3:更相减损术的程序框图的表示?
第一步,给定两个 正整数m,n(m>n).
第二步,计算m-n所 得的差k. 第三步,比较n与k 的大小,其中大者 用m表示,小者用n 表示.
开始 输入m,n m≠n? m=k
1.3算法案例的框图程序和 第一章习题课
算法案例的应用习题分析
例1 求325,130,270三个数的最大 公约数. 因为325=130×2+65,130=65×2, 所以325与130的最大公约数是65. 因为270=65×4+10,65=10×6+5, 10=5×2,所以65与270最大公约数是5. 故325,130,270三个数的最大公约 数是5.
结束
例2 一个球从100m高处自由落下,每次 着地后又跳回到原高度的一半再落下.编写 程序,求当它第10次着地时, (1)第10次着地后反弹多高? (2)向下的运动共经过多少米? (3)全程共经过多少米?
100
高度
50 25 0 1
2
3 4
10
着地次数
(1)第10次着地后反弹多高?
开始 h=50 i=1
思考2:该程序框图、程序如何表述?
开始 输入m,n 求m除以n的余数r
m=n
直到型
n=r r=0? 是 输出m 结束 否
INPUT m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
开始
输入m,n
当型
n=r
m=n 求m除以n的余数r n>0? 否 输出m 结束
i=1 把a的右数第i位数字赋给t b=b+t· k i- 1 i=i+1 i>n? 否 是 输出b 结束
INPUT a,k,n b=0 i=1 t=a MOD10 DO b=b+t*k∧(i-1) a=a/10 ? t=a MOD10 i=i+1 LOOP UNTIL i>n PRINT b END


是 k=m-n
第四步,若m=n,则 m,n的最大公约数 等于?;否则,返回 第二步.
n>k? 是 m=n
n=k
输出 m ?
结束
思考4:该程序框图对应的程序如何表述? 开始 INPUT m,n WHILE m<>n 输入m,n k=m-n IF n > k THEN 否 m≠n? m=n 是 n=k k=m-n m=k ELSE m=k 否 输出m n>k? END IF 是 WEND 结束 m=n PRINT m n=k END
开始
输入x M=x N=x i=1
i=i+1
N=x 是 N>x? 否
M=x 是 是
M<x? 输入x 否
i<10? 否 输出M,N
结束
开始
输入x M=x
N=x i=1
i=i+1 N=x 是 N>x? M=x 是 是 M<x? 输入x 否

i<10? 否 输出M,N
IPUT x M=x N=x i=1 WHILE i<10 INPUT x IF M<x THEN M=x END IF IF N>x THEN N=x END IF i=i+1 WEND PRINT M,N END
思考2:上述把 k进制数
开始
Baidu Nhomakorabea
输入a,k,n
a = anan - 1 L a2a1(k ) 化为十进制数 b的算法的程 序框图如何表 示?
b=0
i=1
把a的右数第i位数字赋给t
b=b+t· k i- 1 i=i+1
i>n?
是 输出b 结束

思考3:该程序框图对应的程序如何表述?
开始
输入a,k,n
b=0


S=0 m=0 a=0 i=1 WHILE i<=50 INPUT x IF x>=80 THEN m=m+1 END IF IF x>=60 THEN a=a+1 END IF s=s+x i=i+1 WEND p=s/50 PRINT m,a,p END
习题1.3 B组:1.
第一步,令n=45,i=1,a=0,b=0,c=0. 第二步,输入ai 第三步,判断是否0≤ai<60.若是,则a=a+1,并 执行第六步。 第四步,判断是否60≤ai<80.若是,则b=b+1, 并执行第六步。 第五步,判断是否80≤ai <100.若是,则c=c+1, 并执行第六步。 第六步, i=i+1, 第七步,判断是否i≤45.若是,则返回第二步. 第八步,输出成绩分别在区间[0,60),[60,80), [80,100]的人数a,b,c
相关文档
最新文档