课件14张PPT。 习题1.3 B组:某班有45位学生,设计一个算法,输入每个学生的数学成绩后,分别统计在区间[0,60), [60,80), [80,100]内的成绩的个数,用自然语言描述算法步骤,可用a(i)表示第i个学生的成绩。算法步骤:S1:令p=0,q=0,m=0,i=1,n=45S2:输入学生的成绩ts3:判断0≤t<60,若是则p=p+1,执行S6s4:判断60≤t<80,若是则q=q+1,执行S6s5:判断80≤t ≤100,若是则m=m+1, 执行S6开始p=0,q=0,m=0,i=1,n=45输入t0≤t<6060≤t<8080≤t ≤100i>45i=i+1 输出p,q,m结束p=p+1q=q+1m=m+1S6:i=i+1,判断是否i>45,若是执行S7,否则返回S2S7:输出p,q,mp=0
q=0
m=0
i=1
n=45DOINPUT “ t=“;tIF 0<=t AND t<60 THENp=p+1END IFIF 60<=t AND t<80 THENq=q+1ENF IFIF 80<=t AND t<=100 THENm=m+1END IFi=i+1LOOP UNTIL i>45PRINT “p,q,m=“;p.q.mEND复习参考题:A组:1、画程序框图对于输入的X值,输出相应的Y值:(2)开始输入XX<0y=0x≥1y=xy=1输出y结束INPUT “a1,b1,c1=“;a1,b1,c1
INPUT “a2,b2,c2=“;a2,b2,c2
d=a1*b2-a2*b1
IF D<>0 THEN
x=(b2*c1-b1*c2)/d
y=(a1*c2-a2*c1)/d
PRINT “x,y=“; x,y
ELSE
PRINT “输入的数据不符题意”
END IF
END 开始d<>0x=(b2*c1-b1*c2)/dy=(a1*c2-a2*c1)/d输出x,y输入的数据不符题意结束输入 a1,b1,c1输入a2,b2,c2d=a1*b2-a2*b12、求解二元一次方程组:3、某市固定电话(市话)的收费标准为:3分钟之内(包括三分钟)收取0.2元;超过3分钟,每分钟(不足一分钟,按一分钟计算)按0.10元计算,设计一个算法,根据通话时间计算话费.INPUT “t=“;t
If t<0 then
PRINT “输入有误”
END IF
IF t<=3 AND t>0 THEN
y=0.2
ELSE
y=0.1*INT(t+1)
END IF
PRINT y;”元”
END 4.对任意正整数n,设计一个程序框图求 的值,并写出程序:INPUT “n=“;n
i=1
s=0
DO
s=s+1/i
i=i+1
LOOP UNTIL i>n
PRINT s
END
5.设计两种算法,从输入的10个数中选出最大值和最小值,用自然语言描述算法步骤算法1:
S!:输入出10个数.
S2:用冒泡排序法将这10个数从小到大进行排序.
S3:输出排序所得序列中的第一个数(即最小数)和最后一个数(即最大数)
算法2:
S1:输入10个数
S2:计算这10个数的平均数
S3:依次比较10个数与平均数的大小,若大于或等于平均数,放在第一组,若小于平均数,放在第二组.
S4:用冒泡排序法将分别对两组数从小到大进行排序
S5:输出第1组中的最后一个数(即最大数)和第2组中的第一个数(最小数)max=1
min=10^10
i=1
WHILE i<=10
INPUT “x=“;x
IF max max=x
END IF
IF min>x THEN
min=x
END IF
i=i+1
WEND
PRINT “max,min=“;max,min
end
6.一个球从100M高处自由落下,每次着地后又跳回到原来高度的一半再落下,编写程序,求当它第10次着地时,(1)向下的运动共经过多少米?(2).第10次着地后反弹多高?(3).全程共经过多少米?k=1
s=0
i=100
WHILE k<=100
s=s+I
i=i/2
k=k+1
WEND
PRINT “(1)=“;s
PRINT “(2)=“;i
PRINT “(3)=“;2*s-100
END
复习参考题B组:1、编写程序,将用户输入的正整数转换成相应的星期值输出。INPUT “n=“;n
r=n MOD 7
IF r=0 THEN
PRINT “Sunday”
END IF
IF r=1 THEN
PRINT “Monday”
END IF
IF r=2 THEN
PRINT “Tuesday”
END IF
IF r=3 THEN
PRINT “Wednesday”
END IF
IF r=4 THEN
PRINT “Thursday”
END IF
IF r=5 THEN
PRINT “Friday”
END IF
IF r=6 THEN
PRINT “Saturday”
END IF
end
开始输入nr=n MOD 7r=0输出星期日输出 r结束NYINPUT “n=“;nr =n MOD 7IF r =0 THENPRINT “星期日”ELSEPRINT ”星期”;rEND IFEND2.画出程序框图,用二分法求方程1.3x2-26.013x2+0.975x-19.50975=0在(20,21)之间的近似根(精确度为0.005)开始a=20:b=21:d=0.005f(x)=1.3x2-26.013x2+0.975x-19.50975m=(a+b)/2b=ma=mf(a)f(m)<0|a-b|<d或f(m)= 0结束输出所求的近似根m否是否是a=20
b=21
d=0.005
y=1.3*x^3-26.013*x^2+0.975*x-19.50975
DO
m=(a+b)/2
g= 1.3*a^3-26.013*a^2+0.975*a-19.50975
f=1.3*m^3-26.013*m^2+0.975*m-19.50975
IF g*f<0 THEN
b=m
ELSE
a=m
END IF
LOOP UNTIL ABS(a-b)PRINT m
END 复习参考题B组:设计一个算法,判断一个正的(n>2)位数是不是回文数,用自然语言描述算法步骤。算法步骤:S1:输入一个正整数X和它的位数n。S2:判断n是不是偶数,如果n是偶数,令m=n/2,如果n 是奇数,令m=(n-1)/2。S3:当I 从1到m取值时,依次判断x的第i位与第(n+i-1)位是的数字是不是相等,如果都相等,则x是回文数, 否则,x 不是回文数。开始输入x,nn MOD 2=0m=n/2m=(n-1)/2i=1xi=xn+1-ii=i+1i>m输出“YES”结束输出“NO”INPUT “x,n=“,x,n
IF n MOD 2=0 THEN
m=n/2
ELSE
m=(n-1)/2
END IF
i=i+1
DO
p=MID$(STR$(X),i+1,1)
q= MID$(STR$(X),n+2-i,i)
IF p=q THEN
i=i+1
ELSE
PRINT “NO”
END
END IF
LOOP UNTIL i>M
PRINT “YES”
END