2.3程序设计基本知识
P60实践活动
编程计算体重指数程序设计答案:
a=float(input('请输入身高米:'))
b=float(input('请输入体重千克:'))
BMI=b/(a*a)
print("体重指数BMI=",round(BMI,2)) #保留1位小数
P63实践活动
评定体重指数等级程序设计答案:
第2题:方案一
b=float(input('请输入身高米:'))
c=float(input('请输入体重千克:'))
bmi=c/pow(b,2)
t=bmi
print("你的体重指数BMI的值是:",round(t,1))
if t>=16.5 and t<=23.3:
print("正常")
else :
if t<=16.4:
print('低体重')
else:
if t>=23.3 and t<=26.3:
print("超重")
else:
print("肥胖")
方案二:多分支结构
b=float(input('请输入身高米:'))
c=float(input('请输入体重千克:'))
bmi=c/(b*b)
t=bmi
print("体重指数BMI的值是:",round(t,1))
if t>=16.5 and t<=23.3:
print("正常")
elif t<=16.4:
print('低体重')
elif t>=23.3 and t<=26.3:
print("超重")
else:
print("肥胖")
第3题:
a=input('请输入性别:')
e='男'
f="女"
if a!=e and a!=f:
print("性别输入错误")
else:
b=float(input('请输入身高米:'))
c=float(input('请输入体重千克:'))
bmi=c/pow(b,2)
t=bmi
if a==e:
if t>=16.5 and t<=23.3:
print("正常")
elif t<=16.4:
print('低体重')
elif t>=23.3 and t<=26.3:
print("超重")
else:
print("肥胖")
else:
if a==f:
if t>=16.5 and t<=22.7:
print("正常")
else:
if t<=16.4:
print('低体重')
else:
if t>=22.8 and t<=25.2:
print("超重")
else:
print("肥胖")
P67实践活动
对多名学生进行体重指数的等级判断的程序设计。
i=1
rs=int(input('请输入学生人数:'))
while i<=rs:
i=i+1
a=input('请输入性别:')
e='男'
f="女"
if a!=e and a!=f:
print("性别输入错误")
else:
b=float(input('请输入身高米:'))
c=float(input('请输入体重千克:'))
bmi=c/pow(b,2)
t=bmi
print("体重指数BMI的值是:",round(t,1))
if a==e:
if t>=16.5 and t<=23.3:
print("正常")
elif t<=16.4:
print('低体重')
elif t>=23.3 and t<=26.3:
print("超重")
else:
print("肥胖")
else:
if a==f:
if t>=16.5 and t<=22.7:
print("正常")
else:
if t<=16.4:
print('低体重')
else:
if t>=22.8 and t<=25.2:
print("超重")
else:
print("肥胖")
P69练习提升
1、分别指出下面程序中循环体执行的次数,写出运行结果,分析程序功能。
(1)
i=100
r=1 #执行次数
while i>1:
print("进入第",r,"次循环,r=",r)
r=r+1
if i%13==0:
break
i=i-1
print(i)
答案:程序执行的次数为10次,输出i的值为91。
(2)
r=1 #执行次数
for i in range(100,1,-1):
print("进入第",r,"次循环,r=",r)
r=r+1
if i%13!=0:
continue
print(i)
答案:程序执行的次数为99,出i的值为91、78、65、52、39、26、13。
2.设计算法编写程序实现如下功能:
已知一元二次方程ax2 +bx+c=0,从键盘输入a、b和c的值,获取该一元二次方程解的情况。
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
if a != 0:
delta = b ** 2 - 4 * a * c
if delta < 0:
print("方程无解")
elif delta == 0:
s = -b / (2 * a)
print("两根相等:x=",s)
else :
root = sqrt(delta)
x1 = (-b + root) / (2 * a)
x2 = (-b - root) / (2 * a)
print("x1=", x1, "\t", "x2=", x2)
3.求任意两个正整数的最大公约数,直至用户输入”q”或”Q”才退出程序。
while True:
a = int(input("输入第一个正整数:"))
b = int(input("输入第一个正整数:"))
while b:
x = a % b
a = b
b = x
print("两个数的最大公约数是:",a)
c = input("是否继续?(退出程序请输入‘q’或‘Q’;按其它键则继续)")
if c == "q" or c == "Q":
break
4.编写程序和计算机来一场有趣的猜数游戏。要求:由计算机随机生成一个100以内的正整数,用户有五次猜数机会,如果猜中提示”猜中了!“并退出程序;否则,提示”数偏大“或”数偏小“,然后继续猜数。如果5次均未猜中,屏幕显示计算机随机生成的整数,并换行给出提示“五次没有猜中,很遗憾,游戏结束“,退出程序。
import random
number = 5
secret = random.randint(1, 100)
while number > 0:
temp1 = int(input("输入一个整数(1-100):"))
if temp1 == secret:
print("猜中了!")
break
elif temp1 > secret:
print("数偏大,还剩", number - 1, "次机会")
else:
print("数偏小,还剩", number - 1, "次机会")
number -= 1
if number == 0:
print("答案是", secret)
print("5次没有猜中,很遗憾,游戏结束")