2023年沪科教版高一信息技术必修一《项目七-用计算机计算圆周率》-课时同步课件精选全文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如:判断一个学生是否为体重(weight)大于50千克并且身高(height)大
于160厘米的女生(gender:female),条件表达式可写为:
(gender==“female”)and weight>50 and height<155
项目七:用计算机计算圆周率-设计简单数值数据算法
实现选择结构的语句
3.循环当i小于等于50;
……
3.1 s=sxi;
3.2 i=i+1。

i<=50?

S=Sxi,i=i+1
输出S
结束
项目七:用计算机计算圆周率-设计简单数值数据算法
确定次数循环
不确定次数循环
确定次数循环指循环结构对循环次数有明确定义,
不确定循环次数循环会一直保持循环操作,直到特
循环次数采用遍历结构中元素的个数来体现。
i=0
s=0;item=1
while item>0.000001:
i=i+1;item=1/(i*i);s=s+item
pi=sqrt(6*s)
print("pi的值是",pi)
3.圆周率的精确度达到小数点后4位时,
item=0.000001,i=1000,因此,把循环变量的终值
设为1000即可。
from math import sqrt
设落在扇形里的豆子数为hits,总豆子数为darts,则:
1
hits


dart S正
由圆周率等于圆的面积与半径平方之比可知:
π=4X
≈4X

2
hits
dart
O
1
项目七:用计算机计算圆周率-设计简单数值数据算法
开始
输入总的投点数
darts
算法设计
令hits=0,i=0
1.输入中的投点数darts;
例2
输入一个任意正整数,求它的逆序数。
第一次
第二次
第三次
726%10=6
0*10+6=6
726//10=72
72%10=2
6*10+2=62
72//10=7
7%10=7
62*10+7=627
7//10=0
算法设计
设输入的数为num,逆序数为reversenum.
1.输入一个正整数到num;
2.令reversenum=0;
实现选择结构的语句
3、多分支语句
if 条件表达式1:
语句块1
elif条件表达式2:
语句块2
……
else:
语句块n
条件1


……

语句块
条件n-1


语句块n-1
多分支结构

语句块n
项目七:用计算机计算圆周率-设计简单数值数据算法
随机投点法
随机投点法是通过在正方形内随机投点,用随机模拟的方法来估算圆周率
输出圆周率的近
似值
结束

项目七:用计算机计算圆周率-设计简单数值数据算法
from random import random
darts=int(input(“请输入总的投点数:”))
hits=0
for i in range(darts):
x,y =random(),random()
if x*x+y*y<=1 :
s=0
for i in range(1,100,2):
s=s+i
print(s)
项目七:用计算机计算圆周率-设计简单数值数据算法
活动7.1
利用沃利斯公司计算圆周率。
2 2 4 4 6 6 8 8
= × × × × × × × × ⋯…
2 1 3 3 5 5 7 7 9
s=1
num=1000
for i in range(1,num):
pi=sqrt(6*s)
print("pi的值是",pi)
项目七:用计算机计算圆周率-设计简单数值数据算法
数值数据及其运算
数值数据氛围整数(int)和浮点数(float)。浮点数是带小数的数值。
运算符
含义
示例
运算结果
+
加法
53+21
74
-
减法
63.1-2.2
60.9
*
乘法
300*1.5
450.0
/
【2023沪科教版高中信息技术:必修一 数据与计算】
项目七
用计算机计算圆周率
——设计简单数值数据算法
授课教师:xxx
项目七:用计算机计算圆周率-设计简单数值数据算法
掌握数值数据的常用运算,并熟练运用运算规则。
利用 Python 语言编程实现计算圆周率的算法,探究和理
学习
目标
Learning objectives
定循环条件不被满足时结束。
For<循环控制变量> in <遍历结构>:
<语句块>
while<条件> :
<语句块>
s=1
for i in range(1,51):
S=S*i
print(S)
s=1
i=1
while i<=50:
s=s*i
i=i+1
print(S)
项目七:用计算机计算圆周率-设计简单数值数据算法
num=num//10;
print(“它的逆序数是:”,reversenum)
项目七:用计算机计算圆周率-设计简单数值数据算法
练一练
1.如果要计算1+2+3+……+100的结果
s=0
for i in range(1,101):
s=s+i
print(s)
2.计算1+3+5+7+……+99的结果,(100以内的所有奇数)
调整算法的步骤来保证程序结果的正确?
3、如果按累加N项的方法控制循环,该如何修改程序?
如何分别用while语句和for 语句实现?
1.循环开始前item=1;
循环结束后 item=
0.000001(因为
i=1000时,1/i*i的值
为0.000001)。
2.
from math import sqrt
2.循环当item大于等于0.000001;
2.1 s=s+item
2.2 i=i+1
2.3 item=1/(Ix1);
3. pi= 6 × ;
4.输出pi的值。
算法
当需要引用一个外部模块
中的一个特定函数时,使
用from命令
from math import sqrt
i=1
s=0
item=1
while item>0.0000001:
limit=float(input(“请输入精确度:”))
clock()
i=1;s=0;item=1
while item>=limit:
s=s+item
i=i+1
item=1/(i*i)
pi=sqrt(6*s)
print(“pi的值是”,pi)
print(“运行时间是”,clock().”秒”)
from random import random
hits=hits+1
pi=4*(hits/darts)
print(“pi的值是”,pi)
03
课后作业
使用Python编写程序
PART
项目七:用计算机计算圆周率-设计简单数值数据算法
练一练:活动7.2
对比两种计算圆周率的算法。
from random import random
from time import clock
i<darts
2.令hits=0;
3.循环i从0到darts-1,step1;
3.1 获取x,y的随机值;
3.2 如果 + < ,则hits增加1;


获取x,y的随机值

+ <
hits=hits+1
4.计算圆周率的近似值;
i=i+1
5.输出圆周率的近似值。
计算圆周率的近似值
darts=int(input(“请输入总的投点数:”))
hits=0
for i in range(darts):
x,y =random(),random()
if x*x+y*y<1 :
hits=hits+1
pi=4*(hits/darts)
p23沪科教版高中信息技术:必修一 数据与计算】
1、单分支语句
if 条件表达式:
语句块1
条件

例如:求x的绝对值的语句
语句块
if x<0:
x=-x
单分支结构

项目七:用计算机计算圆周率-设计简单数值数据算法
实现选择结构的语句
2、双分支语句
if 条件表达式:
语句块1
else:
语句块2

条件

语句块2
语句块1
双分支结构
项目七:用计算机计算圆周率-设计简单数值数据算法
除法
1/8
0.125
//
整除
1//8
0
**
次幂
2**3
8
%
求余数
17%3
2
项目七:用计算机计算圆周率-设计简单数值数据算法
循环结构的算法构建
要构建循环结构需要解决两个问题:一是重复要做什么事,二是如何控制循环。
实现循环控制三个要素:①循环控制变量的初值;②循环控制变量的终值;③
在循环体中使循环控制变量由初值变化的语句。
项目七:用计算机计算圆周率-设计简单数值数据算法
条件表达式
2、逻辑运算符
与(and)
或(or) 非(not)
例如:判断一个学生是否为体重(weight)大于50千克或者身高(height)小
于155厘米的女生(gender:female),条件表达式可写为:
(gender==“female”)and(weight>50 or height<155)
s=s+item
i=i+1
item=1/(i*i)
pi=sqrt(6*s)
print(“pi的值是”,pi)
程序
从数学库中导入用于求平
方根运算的方法sqrt
项目七:用计算机计算圆周率-设计简单数值数据算法
思考与讨论
1.循环开始前,item的值是多少?循环结束后,item的
值是多少?
2.如果将算法第2.1步调至循环体的最后一行,该如何
第二步:构造item=1/(iXi),i=i+1
重复执行以上步骤,直到满足某一个循环
控制条件。
终止条件判断
循环控制变量赋初值
循环控制变量赋初值
项目七:用计算机计算圆周率-设计简单数值数据算法
2.设计算法,编写程序
如果以累加项item的值小于0.000 001位循环终止条件。
1.令i=1,item=1.0,s=0;
For<循环控制变量> in <遍历结构>:
<语句块>
while<条件> :
<语句块>
项目七:用计算机计算圆周率-设计简单数值数据算法
开始
例1
S=1,i=1
求50! 50!=1X2X3X……X50
算法1
1.令s=1;
2.s=sx1;
3.s=sx2;
……
51.s=sx50。
算法2
1.令s=1;
2.令i=1;
<=

小于等于
Dist<=1
True
>
>
大于
Dist>1
False
>=

大于等于
Dist>=1
False
==
=
等于
Dist==1
False
!=

不等于
Dist!=1
true
例如:判断一个数X是否为100到200之间的一个数。条件表达式为:100<=x<=200
字符的比较对应字符ASCII码值的大小;字符串的比较则按照字典顺序进行。
S=0;n=1000
for i in range(1,n+1):
item=1/(i*i);s=s+item
pi=sqrt(6*s)
print("pi的值是",pi)
from math import sqrt
S=0;n=1000;i=1
while i<=n:
item=1/(i*i);s=s+item;i=i+1
3.循环当num>0;
3.1reversenum=reversenum*10+num%10;
3.2num=num//10;
4.输出 reversenum。
程序设计
num=int(input(“请输入一个数:”))
reversenum=0;
while(num);
reversenum=reversenum*10+num%10;
解程序的选择结构和循环结构。
熟练应用选择结构和循环结构实现简单算法,并感受不同算法
的效率。
完成本项目学习,须回答以下问题:
1、数值数据的常用运算有哪些?
2、如何设计并实现选择结构算法?
3、如何设计并实现循环结构算法?
01
PART
设计算法实现数学公式计算
数值数据及其运算 实现循环结构的语句
项目七:用计算机计算圆周率-设计简单数值数据算法
1.分析问题
循环控制变量赋初值
欧拉公式
2
1
1
1
= 1 + 2 + 2 + 2 + ⋯⋅
6
2
3
4
1.设置累加器变量S的初始值为0;
2.s=s+1/(1X1)
3.s=s+1/(2X2)
4.s=s+1/(3X3)
……
累加可以用一个公式来表示:s=s+item
item=1/(iXi)
第一步:累加item到S,即s=s+item
谢谢观看
——体验数据处理的方法和工具
s=s*(2*i)/(2*i-1)*(2*i+1)
print(s*2)
02
PART
设计算法实现用随机投点计算
条件表达式 实现选择结构的语句
项目七:用计算机计算圆周率-设计简单数值数据算法
条件表达式
1、关系运算符
Python运算符
数学符号
名称
示例(dist=0.87)
结果
<
<
小于
Dist<1
True
相关文档
最新文档