高中信息技术2.设计算法实现用随机投点法计算精品课件ppt
展开在选择结构中需要根据判断条件是否被满足来执行不同的分支语句,在循环结构中则需要根据判断条件是否被满足来决定是否继续执行循环体语句。程序中表示判断条件的式子称为条件表达式,它由关系运算或逻辑运算构成,执的结果为布尔值True或 False.
>>>"Pythn"=="Pythn" True >>>"Pythn">"Pythn" False >>>"C"<"Pythn" True
字符和字符串也可以进行比较运算,字符的比较对应字符ASCⅡ码值的大小;字符串的比较则按照字典顺序进行,举例如下。
在实际问题中,对一些复杂的条件,需要用几个关系达式组合起来表示,这种组合操作就是逻辑运算。常用的逻辑运算符包括与(and)或(r)、非(nt)。这三种运算符的运算顺序是先nt,再and,最后r,但可以使用括号来调整运算的先后顺序。
(gender=="Female")and (weight>50 r height<155)
gender=="Female"and weight>50 r height<155
If 条件表达式:语句块1
If 条件表达式:语句块1Else:语句块2
if 条件表达式:语句块1Elif 条件表达式2:语句块2……Else:语句块n
if语句首先运算条件表达式,如果结果为True,则执行语句块里的语句序列;如果结果为False,则语句块里的语句会被跳过。单分支结构流程图如右图所示。
例如,求x的绝对值的语句如下。
If x<0: X=-X
Pythn语言用if-else语句来实现双分支结构,语句块1是if语句的条件被满足时执行的一个或多个语句序列,语句块2是if语句的条件不被满足时执行的一个或多个语句序列。双分支语句针对条件的两种可能结果True或者False,分别形成两条执行路径。双分支结构流程图如右图所示。
例如: 编写一个让小学生练习100以内正整数减法的程序。
imprt randmx,y=randm.randint(1,100),randm.randint(1,100)if(x>=y):print(“%d-%d=”%(x,y))answer=x-yelse: print(“%d-%d=”%(y,x))answer=y-xyur answer=int(input())if yur answer==answer: print(“正确”)else: print(“错误”)
Pythn语言用if-elif-else语句来实现多分支结构,多分支结构是双分支结的扩展。程序运行时依次判断if语句和elif语句的条件是否被满足,如果结果为True,则执行该条件下的语句块,语句块执行结束后跳出整个 if-elif-else结构,执行后面的语句;如果结果为 False,则转向下一个条件进行判断。如果没有任何条件被满足,则执行else下面的语句块。else子句是可选的。
例如: 编写程序,输入身高和体重,计算身体的质量指数BMI值,并给出健康信息。这个问题可以用两种分支结构来实现,语句分别如下。
height=eval(input(“请输入身高(米):”))weight=eval(input(“请输入体重(千克):”)) bmi=weight/pw(height,2) print(“BMI 数值为:%.2f”%bmi) If bmi<18.5:#<18.5 print(“BMI指标为:偏瘦”)elif bmi<25:# 18.5<= bmi <25 print(“BMI指标为:正常”)elif bmi<30:# 25<= bmi <30 print(“BMI指标为:偏胖”)else: print(“BMI指标为:肥胖”)
height=eval(input(“请输入身高(米):”))weight=eval(input(“请输入体重(千克):”)) bmi=weight/pw(height,2) print(“BMI 数值为:%.2f”%bmi) if bmi<18.5: print(“BMI指标为:偏瘦”)if 18.5<=bmi<25: print(“BMI指标为:正常”)if 25<=bmi<30: print(“BMI指标为:偏胖”)if bmi>=30: print(“BMI指标为:肥胖”)
随机在正方形里撒一把豆子,每一颗豆子落在正方形内任何一点的可能性都是相等的,落在每个区域中的豆子数与这个区域的面积近似成正比。落在每个区域中的豆子数是可以数出来的,设落在扇形内的豆子数为hits,总豆子数为darts,则:
观察图可知,单位圆的面积等于第一象限中扇形面积的 4 倍,单位圆半径的平方正好是图中单位正方形的面积。因此,
使用计算机模拟随机投豆(也就是投点)的整个过程如下。 首先,确定总的投点数darts。 然后,在边长为1的正方形中投点,并判断这个点是否在扇形区域内,如果是,则扇形区域的投点数hits增加1。(每个投点的x坐标和y坐标都是[0,1)中的随机数;若x2+y2<1,则判断该点投在扇形区域内。) 最后,在所有点投完后,计算圆周率的近似值pi。
这里涉及的数据变量有:总的投点数 darts,每个点的坐标值x、y,扇形区域的投点数hits,圆周率的近似值pi。
1.输入总的投点数 darts 2.令hits=0; 3.循环i从0到dars-1,step1;输出圆周率的近似值 3.1 获取x,y的随机值 3.2 如果x2+y2<1,则hits增加1; 4.计算圆周率的近似值; 5.输出圆周率的近似值;
算法中哪几步在重复执行?
frm randm imprt randmdarts=int(input(“请输入总的投点数:”))hits=0fr i in range(darts):x,y=randm(),randm()if________________________ _________________________pi=4*(hits/darts) print(“pi的值是”,pi)
在 Pythn 中创建并运行程序,检查运行结果。可以发现,当总投点数为1000时,pi值的精确度还是很低的。通过增加总投点数,可以提高pi值的精确度。
1.分别输入1000、5000、10000,得到圆周率的近似值分别可以精确到第几位? 2.多次输入同样的总投点数1000,会得到不同的结果,这是为什么?如何减少这种不确定性?
高中信息技术沪教版(2019)必修2 信息系统与社会2.采集花卉种植环境数据评优课课件ppt: 这是一份高中信息技术沪教版(2019)必修2 信息系统与社会2.采集花卉种植环境数据评优课课件ppt,文件包含沪科版2019高中必修2信息技术项目72采集花卉种植环璋数据课件pptx、沪科版2019高中必修2信息技术项目72采集花卉种植环境数据教案doc等2份课件配套教学资源,其中PPT共26页, 欢迎下载使用。
2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件: 这是一份2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件
高中信息技术沪教版(2019)必修1 数据与计算4.评估手写数字识别模型并开展应用精品ppt课件: 这是一份高中信息技术沪教版(2019)必修1 数据与计算4.评估手写数字识别模型并开展应用精品ppt课件,文件包含沪科版2019高中必修1信息技术项目94评估手写识别模型并开展应用课件pptx、沪科版2019高中必修1信息技术项目94评估手写识别模型并开展应用教案doc等2份课件配套教学资源,其中PPT共26页, 欢迎下载使用。