(共26张PPT)
第2单元 编程计算
第1单元 初识数据与计算
第3单元 认识数据
第4单元 计算与问题解决
第5单元 数据分析与人工智能
信息技术
(必修1)
2.1 计算机解决问题的过程
学习目标
1、了解计算机解决问题的过程。
2、了解流程图的规范表示方法,学会使用自然语言和流程图描述算法。
3、了解算法的三种基本结构。
最强
大脑
游戏
游戏规则:
用十秒钟记忆十个物品以及他们的编号,之后根据提问回答物品的编号,看谁记住的物品编号数量多。
思考:计算机如何实现游戏?
什么是算法?
算法有哪些特征呢?
算法:解决问题的方法与步骤
算法是尼克劳斯.沃斯(N.Writh)提出的,他指出:
程序=算法+数据结构(DATA STRUCTURE)
(即算法不能单独构成程序,它必须和数据结构合二为一)
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。
算法的特征
有穷性
执行有限步之后结束,且每一步都执行时间都是有限的。
确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
输入项
有零个或多个输入。
输出项
至少产生一个输出。
可行性
原则上能精确运行,用纸和笔做有限运算后可以完成。
算法的描述方法
自然语言:人们日常生活中使用的语言,汉语,英语,日语等都是自然语言,这些自然语言描述算法符合我们的表达习惯,且容易理解。
流程图:也叫程序框图,是算法的一种图形化表示方法,与自然语言描述算法相比,用流程图描述算法形象、直观、更容易理解。
计算机是人脑的延伸,要研究计算机解决问题的过程,首先要从人解决问题的角度谈起。
你能用自已的话描述“最强大脑”游戏的解决步骤吗?
要求:详细说明计算机处理的具体对象、每一步的准确处理过程
活动一 使用自然语言描述算法
环节 自然语言
出题 1.显示游戏规则、物品及其编号10秒
2.清屏
答题 1.给出一个物品名称
2.回答编号
3.如果回答正确,答对的题数加1
4.重复以上步骤,直到答完5道题
输出结果 输出答对的题数
显示游戏规则、显示物品以及编号,屏幕停留10秒;
随机出题,给出物品,回答编号;判断回答是否正确,如果正确,则答对的题述加1。
重复以上步骤,直到答完5道题,显示答对的题数。
描述方法 优点 缺点
自然语言 通俗易懂 容易产生歧义,书写繁琐
活动二 使用流程图描述算法
图形符号 名称 功能
起止框 表示一个算法的起始和结束
输入/输出框 表示输入和输出的信息
处理框 赋值、计算等处理
判断框 表示判断的条件
流程线 指向算法运行的方向
连接符 表示流程图的接续
活动二 使用流程图描述算法
三种基本结构的流程图
顺序结构
把大象关进冰箱需要几步?
用自然语言描述
S1:拉开冰箱门;
S2:大象进入冰箱;
S3:关上冰箱门。
自上而下
用流程图表示
S1
S2
S3
分支结构
如果“大象太大无法进入冰箱”,怎么办?
用自然语言描述
如果大象太大无法进入冰箱,
那么就换一只小象进。
做出判断
用流程图表示
象太大?
进入
换小象
是
否
循环结构
如果有三只小象进冰箱,怎么解决?
用自然语言描述
一只一只地进入,直到三只小象都进入冰箱,即完成。
周而复始
用流程图表示
一只小象进入
三只都进入冰箱了?
是
否
你能用所学知识,完成“最强大脑”流程图吗?
显示10秒
满5题?
出题
答题
回答正确?
答对题数+1
活动二 使用流程图描述算法
描述方法 流程图
优点 形象、直观,容易理解
缺点 无法直接在计算机上运行
活动三 用Python语言实现游戏
在Python语言开发环境中,调试运行程序,观察运行结果。
import random #随机模块
import time #导入时间
import os #导入OS模块
print("你好,现在你有10秒钟的时间记忆下列物品及其编号")
things=["苹果","香蕉","橙子","梨子","猕猴桃","柚子",
"猴魁","铁观音","彩蛋","复活节"]
for i in range(10):
print(i,":",things[i]) #在屏幕上显示编号及物品
time.sleep(10) #延时10秒
os.system("cls") #清屏幕,隐去编号及物品
n=0 #记录答对的题数,初值为0
t2=random.sample(things,5 ) #随机抽出5个物品
for i in t2: #出5题
ans=int(input(i + "的编号是:")) #输入编号答题
if i==things[ans]:
n=n+1 #如果回答正确,答对的题数加1
print("\n你一共答对了",n,"次") #屏幕显示答对的题数
input("\n按回车键结束程序")
尝试将流程图与代码块进行匹配
t2=random.sample(things,5)
for i in t2:
ans=int(input(i + "的编号是:"))
ans=int(input(i + "的编号是:"))
if i==things[ans]:
n=n+1
time.sleep(10)
os.system("cls")
print("你好,请用10秒记忆物品及编号")
things=["苹果","香蕉","橙子","梨子",
"猕猴桃","柚子","猴魁","铁观音",
"彩蛋","复活节"]
for i in range(10):
print(i,":",things[i])
如何增加游戏难度呢?
改变物品;减少时间
打开最强大脑.py,动手试一试!
原代码 修改过的代码 程序运行的变化
time.sleep(10) time.sleep(5) 延时改为5秒
print("你好,现在你有10秒钟的时间记忆下列物品及其编号") print("你好,现在你有5秒钟的时间记忆下列物品及其编号") 提示的文字改变了
t2=random.sample(things,5) t2=random.sample(things,3) 随机出3题
学生尝试自行修改部分代码,观察程序运行的变化。
例如:
计算机解决问题的过程
调试运行
Python语言
0和1构成,计算机直接执行;
但难以理解和操作
符号化的机器语言,
为特定的计算机系统而设计
Java、 C、VB、 C++
可读性更强,便于修改和维护
程序设计语言的发展
机器语言
汇编语言
高级语言
课堂练习
1.计算机解决问题的过程( )
1)分析问题 2)设计算法
3)编写程序 4)调试运行
2.算法是解决问题的( )和( )
方法和步骤
3.描述算法可以有多种方法,比如可以用( )或( )进行描述。
自然语言 流程图
4.算法的三种基本结构( )( )( )要求:能画出流程图。
顺序结构 分支结构 循环结构
5.程序设计语言发展的过程( )( )( )
机器语言 汇编语言 高级语言
练习
6.下列关于算法的特征描述不正确的是( )
A、有穷性:算法必须在有限步之内结束
B、确定性:算法的每一步必须有确切的含义
C、输入:算法至少有一个输入
D、输出:算法至少有一个输出
7.以下不属于算法基本特征的是( )
A、可执行性 B、确定性 C、有穷性 D、无限性
8.下面说法正确的是( )
A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构
9.右侧图形符号“"在算法描述流程图中表示( )
A、算法的开始或结束
B、输入输出操作
C、处理或运算的功能
D、用来判断条件是否满足需求
10.在使用流程图描述算法中,表示变量的计算与赋值的符号框为( )
A、矩形框 B、菱形框 C、平行四边形框 D、椭圆形框
11.下列关于算法说法不正确的是( )
A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现
B、解决问题的过程就是实现算法的过程
C、算法是程序设计的"灵魂"
D、算法可以通过编程来实现
C
D
A
B
D
A
课堂小结
1、计算机解决问题的4个步骤:
分析问题——设计算法——编写程序——运行与调试
2、描述算法的2种方法:使用自然语言和流程图描述算法
3、三种基本结构的流程图
4、用Python语言实现游戏
5、程序设计语言的发展:机器语言、汇编语言、高级语言