(共34张PPT)
§3 几种基本语句
3.1 条件语句
学习目标
1.掌握条件语句的含义、格式.
2.会用条件语句将具体问题的框图转化为算法语句.
3.会利用条件语句解决实际生活中的应用问题.
课堂互动讲练
知能优化训练
3.1
条件语句
课前自主学案
课前自主学案
温故夯基
1.画算法框图时,经常用到选择结构,即根据_______中的条件是否成立,从而执行不同的步骤.
2.算法中的三种基本逻辑结构是__________、_________、_________.
3.赋值语句是算法程序设计中的基本语句.
判断框
顺序结构
选择结构
循环结构
知新益能
1.条件语句
条件语句是表达_________最常用的语句.
2.两种条件语句的算法框图及格式
选择结构
If语句 复合If语句
算法框图
If语句 复合If语句
语句格式 If _____Then
_______
Else
_______
End If If _______Then
_______
Else
If _______Then
_______
Else
_______
End If
End If
条件
语句1
语句2
条件1
语句1
条件2
语句2
语句3
问题探究
1.如何理解条件语句的执行步骤?
提示:(1)条件语句是选择结构的
一种表现形式.计算机执行这种
形式的条件语句时,首先对If后
的条件进行判断,如果条件符合,就执行Then后的语句1,若条件不符合,就执行Else后的语句2,然后结束这一条件语句.
(2)If语句的变形
在条件语句中,“Else 语句2”部分是选择项,可以缺省,此时条件语句变成:
If 条件 Then
语句
End If
计算机执行此类条件语句时,对表
达式结果进行判断,若表达式结果
为真,则执行表达式后面的语句,
否则直接跳过语句,执行后面的其他语句.其对应的框图如图.
(3)在有些较为复杂的算法中,有时需要对按条件执行的某一语句特别是Else后的语句2继续按照另一个条件进行判断,这时可以再利用另一个条件语句进行判断,这就形成了条件语句的嵌套.一般形式如下:
框图如下:
2.何时使用“If—Then”语句与“If—Then—Else”语句?
提示:当判断语句的两个出口语句都需要执行时,使用“If—Then—Else”语句;当判断语句的两个出口语句只有一个需要执行时,使用“If—Then”语句.
课堂互动讲练
对条件语句的理解
考点突破
条件语句必须以If开始,在语句中,语句1,语句2,不一定是一个语句,也可以是多个;在编写复合If语句中的条件时,“If”与“End If”是配对的,一般有几个If,就有几个“End If”.
例1
以下给出的是用条件语句编写的一个算法,根据该算法回答问题.
(1)若输入-3,则输出结果是________;
(2)若输入4,则输出结果是________;
(3)该算法的功能是求函数________的值.
【解析】 (1)中,若输入-3,则条件1为真,所以执行Then后的语句1,输出y=3x=3×(-3)=-9.
(2)中,若输入4,则条件2为假,所以执行语句3,输出y=3.
(3)该算法表达的功能是求分段函数
【名师点评】 这是一复合If语句的算法,要读懂题意,分清执行了哪个语句.
简单If语句主要有两种格式:If—Then格式与If—Then—Else格式,选用那种格式,由具体题目来确定,判断条件,两个出口语句只有一个需要执行时,使用“If—Then”格式,而两个出口语句都需要执行时,使用“If—Then—Else”格式.
简单If语句的应用
例2
【解】 用变量x,y分别表示自变量和函数值.步骤如下:
(1)输入x值.
(2)判断x的范围,若x≥0,则用函数y=x-1求函数值,否则用y=3x2+1求函数值.
(3)输出y的值.
程序框图如左图所示,程序如右图所示.
【名师点评】 本题是已知分段函数的解析式求函数值的问题,当输入一个x值,由于x的范围不同,因而用来计算函数值的解析式也不同,因此要计算函数值必须先判断x的范围,因而要设计求函数值的算法必须用选择结构,相应程序的书写也应用条件语句书写.
自我挑战1 编写程序:输入任意一个实数,输出其绝对值.
解:程序框图如左图所示,程序如右图所示.
复合If语句的应用
在一些较为复杂的算法中,有时需要在判断的后面接着进行判断,亦即在执行语句1或语句2的过程中又需要进行条件的判断,这就形成了复合的选择结构,我们可以利用复合条件语句来描述这种类型的算法.
给出一个算法:
1.输入x;
2.若x<0,则y=x+1;
3.若x=0,则y=0;
4.若x>0,则y=x;
5.输出y.
(1)指出该算法的功能;
(2)将该算法用框图表示出来;
(3)用基本语句写出该算法.
例3
(2)框图如图所示.
(3)用基本语句描述为:
输入x;
If x<0 Then
y=x+1
Else
If x=0 Then
y=0
Else
y=x
End If
End If
输出y.
【失误点评】 在解答过程中易漏掉最后一个End If,导致该错误的原因是对复合If语句的格式理解不透彻.
自我挑战2 到银行办理个人异地汇款(不超过100万元)时,银行要收取一定的手续费.汇款额不超过100元,收取1元手续费;超过100元但不超过5000元,按汇款额的1%收取;超过5000元一律收取50元手续费.用条件语句描述汇款额为x元时,银行收取手续费为y元的过程.画出流程图并写出算法语句.
算法框图如下:
用复合If语句描述如下:
输入x;
If x>0 And x≤100 Then
y=1
Else
If x≤5000 Then
y=0.01x
Else
y=50
End If
End If
输出y.
方法感悟
1.条件语句主要用来实现算法中的选择结构,如判断一个数的正负、比较两个数的大小、对一组数据排序等很多问题的解决都需要用条件语句来描述.
2.复合If语句一般用在含有两个或两个以上的选择结构中,编写程序时,要明确各种条件与相应语句之间的对应关系,最好通过框图理清判断的先后次序.
3.对于多种条件语句的嵌套,要用多个条件语句来表达,在Else语句之后,再用条件语句的形式来完成.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共31张PPT)
本章优化总结
专题探究精讲
本章优化总结
知识体系网络
知识体系网络
专题探究精讲
设计算法框图
设计较简单的算法框图,我们可以通过对问题的分析,建立相应的数学模型或过程模型,进而选择顺序结构、选择结构、循环结构中的一种或几种,画出框图即可.如果设计的框图较为复杂,就要采取“逐步求精”的思想设计框图,先将问题中的简单部分明确出来,再逐步对复杂部分进行细化,然后一步一步逐步向前推进的思想设计框图.
例1
【思路点拨】 由于前后的运算重复了多次相同的运算,所以可采用循环结构.
画法步骤:
(1)画顺序结构图,即起止框及两个处理框,并分别填入循环初始条件(如图中①);
(2)画循环结构图,先画循环体即两个处理框(一个累加,一个计数),再画循环终止条件,即判断框并判断i>99,若不成立,则流向循环体进行再循环(如图中②);
(3)画输出框输出x以及终止框表示算法结束(如图中③).
算法框图如图:
【名师点评】 循环结构必包含顺序结构和选择结构,所以本题具有一定的典型性和示范性;如累加、累乘等需要反复执行的算法设计中,宜使用循环结构,这时要密切注意“循环体”、“循环变量”和“循环终止条件”三个重要组成部分的框图设计.
算法框图与基本算法语句的互化
算法框图和基本语句是描述算法的两种重要方法.框图用流程线、矩形框、菱形框等描述算法,具有直观、形象的特点,能使我们迅速而准确地认识某一算法;基本语句将自然语言与程序设计语言结合起来描述算法,比画框图省时省力,且更容易转化为程序.
1.根据框图写基本语句
根据框图写基本语句关键在于:
(1)要明确框图的结构(顺序结构、选择结构、循环结构);
(2)要明确各框图符号的含义;
(3)要明确各结构及框图符号对应的基本语句.
写出如图所示的算法框图描述的算法基本语句.
例2
【解】 用语句描述为:
输入x;
If x>1 Then
y=x2-1
Else
If x<-1 Then
y=x2+1
Else
y=2x+1
End If
End If
输出y.
【名师点评】 (1)在本算法中,条件语句中嵌入了另一个条件语句,在每一个语句结束时都要写End If;(2)上述两个语句的先后层次关系,我们用缩进若干空格的办法来体现,从而使算法层次分明,便于检查.
2.根据基本语句画框图
根据基本语句画框图要做到:
(1)要明确基本语句是由哪些关键语句构成(条件语句、循环语句);
(2)要明确各类语句定义符的含义;
(3)要明确各类语句对应的框图符号.
例3
请阅读下列用For语句给出的算法,画出算法框图并说明该算法的处理功能.
【思路点拨】 由For语句的形式,我们知道i是循环变量,初始值为1,终止值为19,i每次的增量为2,循环体为:S=S+i.
【解】 算法的框图如图所示,因此,这个算法实际上处理的是求和S=1+3+5+7+9+11+13+15+17+19.
【名师点评】 运用For语句首先要明确循环变量,以及循环变量的初始值和终止值,其次要注意循环体.
算法结果的判断
由于学习本章的目的是体会算法的思想,所以已知算法框图或算法语句,判断其结果是高考考查本章知识的主要形式,这也是课程标准和考试说明对本章的要求.其判断方法是具体运行所给的算法框图或算法语句,即可得到算法的结果.
例4
【思路点拨】 根据程序框图(算法流程图)分析出该程序框图的功能进行求解.
【答案】 D
【名师点评】 识别运行算法框图和完善算法框图是高考的热点.解答这一类问题,第一,要明确算法框图的顺序结构、选择结构和循环结构;第二,要识别运行算法框图,理解框图所解决的实际问题;第三,按照题目的要求完成解答.对算法框图的考查常与数列和函数等知识相结合,进一步强化框图问题的实际背景.
用算法语句编写程序解决实际问题
算法设计和算法框图是程序设计的基础,我们根据算法的三种逻辑结构(顺序结构、选择结构、循环结构),对应五种不同功能的基本算法语句(输入语句、输出语句、赋值语句、条件语句、循环语句),同时兼顾基本语句的格式要求,特别值得注意的是条件语句中条件的表达和循环语句中有关循环变量的取值范围,从而完成程序设计.
相传古代印度国王舍罕要褒赏他的聪明能干的宰相达依尔(国际象棋发明者),问他需要什么,达依尔回答说:“国王只要在国际象棋的棋盘第一个格子里放1粒麦子,第二个格子里放2粒麦子,第三个格子里放4粒麦子,以后按此比例放麦子,一直放到第六十四格(国际象棋棋盘是8×8=64格),我就感恩不尽,其他我什么也不要了.”国王想:“这有多少?还不容易?”让人扛来一袋小麦,但不到一会儿全用没了,再扛来一袋很快又没有了,
例5
结果全印度的粮食全部用完还不够,国王奇怪,却怎样也算不清这笔账.现在我们用计算机来算一下需要多少体积的小麦(提示:1 m3约有1.42×108粒麦子).画出算法框图,并用基本语句描述算法.
【思路点拨】 根据题意,第一个格子里放1粒,第二个格子里放2粒,第三个格子里放4粒,每一格的数量都是前一格的2倍,故第六十四格子里应放263粒,这样一共需要的麦粒数就是1+2+22+…+263.麦粒数求出后,用它除以1.42×108,就是所需要麦粒的体积.显然这是一个累加求和问题,故可以利用循环结构进行算法设计.
【解】 算法框图如图所示.
用语句描述为:
S=0
n=1
For i=1 To 64
S=S+n
n=2i
Next
V=S/(1.42*108 )
输出V
【名师点评】 (1)循环结构有两种格式:For语句与Do Loop语句.(2)赋值语句是算法语句必不可少的语句.一定要注意它们各自的格式及要求,尤其是赋值语句,它在算法语句中有重要的应用.特别应掌握引入第三变量,利用三个赋值语句交换两个变量的值的方法.(3)条件语句和循环语句是解决一些较复杂问题的算法语句必须用到的两种语句.在用循环语句时,一是要注意两种格式的循环语句在解决同一问题时,条件的表述不同;二是注意计数变量的取值范围,以免出现多一次循环和少一次循环的错误.
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共32张PPT)
3.2 循环语句
学习目标
1.理解两种结构的循环语句——For语句和Do Loop语句.
2.掌握两种循环语句的一般形式并会应用.
3.通过具体实例使学生明确两种循环语句的区别和联系.
课堂互动讲练
知能优化训练
3.2
循环语句
课前自主学案
课前自主学案
温故夯基
1.用算法语句描述算法时,选择结构需要用__________来描述.
2.条件语句主要用来实现算法中的选择结构,一般有两种格式,一种是______________格式;另一种是_________格式.
条件语句
If—Then—Else
If—Then
知新益能
循环语句的两种形式
适用范围 一般形式
For语句 For语句是表达循环结构最常见的语句之一,它适用于__________循环次数的循环结构 For循环变量=_____________
_______
_____
预先知道
初始值To终值
循环体
Next
适用范围 一般形式
Do Loop语句 在一些循环结构中,___________循环的次数,要根据其他形式的终止条件停止循环,在这种情况下,一般用_________语句来描述. Do
_______
Loop While_____
_____
预先不知道
Do Loop
循环体
条件
为真
问题探究
1.如何理解两种循环语句?
提示:(1)对For语句的理解
当程序执行时,遇到For语句,首先初始值赋给循环变量,记下终值,并比较初始值和终值,如果初始值不超过终值,开始执行循环体,执行到Next语句时循环变量加1并且与终值比较,若不超过终值,则继续执行循环体,否则退出循环.一直这样运行,直到循环变量超过终值.
程序中的Next是结束循环,并不是将所有的程序结束.
(2)对Do Loop语句的理解
当程序执行到Do Loop循环语句时,先执行一次循环体,再检查是否满足While后的条件,如果条件满足则继续执行,如果条件不满足则退出循环,即Do Loop循环语句至少执行一次循环体,这与For语句不同,因为For语句先检查循环条件,再执行循环体,因而它有可能完全不执行循环体.
在执行循环语句时,循环条件起着关键作用,因而在确定循环条件时,一定要仔细,防止出现与要求相反的错误.
2.循环语句与条件语句有什么关系?
提示:循环语句中一定会有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环.但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
课堂互动讲练
For语句的应用
考点突破
使用For语句设计程序的一般思路:(1)确定循环次数;(2)把反复要做的工作,作为循环体放在For与Next之间.
例1
编写一个计算1+2+3+…+10000的值的一个算法,画出算法框图,并用For语句描述这个算法.
【思路点拨】 每次加的数都比前一个大1,这是该问题的规律,由此,我们可以在计算机上使用For语句,把循环变量的增量设为1,这样就实现了每次加的数比前一个大1.
【解】 算法步骤如下:
(1)S=0;
(2)i=1;
(3)S=S+i;
(4)i=i+1;
(5)如果i≤10000,那么转(3),否则输出S.
算法框图如图所示.
For语句描述算法为:
S=0
For i=1 To 10000
S=S+i
Next
输出S
【名师点评】 解决此类问题,应从确定循环的次数以及循环变量的初值、步长以及终值入手进行分析,只有确定了循环次数,才能利用For循环,同时要注意设定好循环变量的初值、步长和终值,避免出现多一次循环或少一次循环的情况.
自我挑战1 使用For语句设计算法,计算1+3+5+…+999的值.
解:用For语句描述为:
S=0
For i=1 To 1000 Step 2
S=S+i
Next
输出S
用Do Loop语句编写程序时,一定要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环,以防出现表达式正好相反的错误.
Do Loop语句的应用
例2
求平方值小于1000的最大整数,画出算法框图,并用Do Loop语句描述这个算法.
【思路点拨】 解答本题我们可以从最小的正整数1开始进行检验其平方值是否超过1000,若不超过将其增加1再进行检验,直到平方超过1000,结束检验,因此可用循环结构设计算法.
【解】 算法框图如下:
用Do Loop语句描述算法为:
i=1
Do
S=i*i
i=i+1
Loop While S<1000
i=i-2
输出i
【名师点评】 (1)由于本例中事先无法确定循环次数,故采用了Do Loop语句,特别应注意输出的应是i-2,注意举例体会,如本例中当i=31时,S=31×31=961,i=i+1=32.∵961<1000继续循环,∴S=32×32=1024,i=i+1=33.
∵1024>1000,∴停止循环,此时i=33,但是我们要找的是i=31,所以输出i-2.
(2)计算机执行Do Loop语句,先执行一次循环体,若符合条件,继续执行循环体;当不符合条件时,跳出循环,执行Do Loop语句后的语句.
(3)在解答本题的过程中,易出现S=i*i与i=i+1顺序颠倒的错误,导致这种错误的原因是对程序执行的顺序没有搞清.
自我挑战2 根据以下程序,画出相应的程序框图,并指明该算法的功能.
n=1
s=1
Do s=s*n
n=n+1
Loop While s<5000
n=n-1
输出n
解:该算法的程序框图如图所示,该算法的功能为求使1×2×…×n<5000的最大整数.
For语句和Do Loop语句的比较
判断含有循环语句的算法的执行结果关键是明确循环终止条件.在Do Loop语句中,当条件不满足时终止循环;而在For语句中,当循环变量取终值时,再执行一次循环体才终止循环.
编写算法语句计算12+22+32+…+9992,并画出相应的算法框图.
例3
【解】 法一:用For语句描述为:
s=0
For i=1 To 999
s=s+i2
Next
输出s
算法框图如图所示:
法二:Do Loop语句如下:
s=0
i=1
Do
s=s+i2
i=i+1
Loop While i≤999
输出s
算法框图如下:
方法感悟
1.遇到For语句,首先把初始值赋给循环变量,记下终值,并比较初始值和终值,如果初始值不超过终值,开始执行循环体.
2.For循环语句描述算法的步骤如下:
(1)选择一个变量S,并赋给初始值0,再选一个循环变量,并赋值为初始值,确定循环终止条件为终值.
(2)设计循环体S=S+i,注意要使每一步的循环能够进行下去,变量的赋值不能搞错,如写为T=S+i,S=T+i等结果,将导致结果出现错误.
如果循环变量的改变量不为1而为a,则需要利用Step说明步长.
(3)按照要求输出所要求的结果.
3.Do Loop循环语句的执行流程:先进入循环体,执行循环体语句,检查是否适合条件,如果否,继续执行循环体,一直重复至满足条件为止.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共26张PPT)
2.2 变量与赋值
学习目标
1.掌握赋值语句的概念及表示形式.
2.会用变量与赋值语句将具体问题的框图转化为算法语句.
3.体会变量与赋值语句在算法中的重要作用.
课堂互动讲练
知能优化训练
2.2
变量与赋值
课前自主学案
课前自主学案
温故夯基
1.算法框图由_______和________组成.一个或几个程序框的组合表示算法中的一个______,带有方向箭头的________将程序框连接起来,表示算法步骤的执行顺序.程序框内还有必要的__________.
2._________是任何一个算法都离不开的一种算法结构;__________中包含一个判断框,根据给定的条件是否成立而选择步骤甲或步骤乙.
程序框
流程线
步骤
流程线
文字说明
顺序结构
选择结构
知新益能
变量与赋值的定义和作用
变量 赋值
定义 在研究问题的过程中可以取_________的量. 在算法中把变量a的值赋予变量b,这个过程称为赋值,记作_____,其中“=”称为赋值符号.
作用 使算法的表述变得非常简洁、清楚. 赋值在算法中十分重要,当赋予一个变量新值的时候,原来的值将被______取代.
不同数量
b=a
新值
问题探究
赋值语句的一般格式是什么?应用赋值语句时应注意哪几点?
提示:赋值语句的一般格式为:变量名=表达式
(1)“表达式”可以是一个数据、常量和算式.如果“表达式”是一个算式时,赋值语句的作用是先算出“=”右边表达式的值,然后将该值赋给“=”左边的变量,表达式大体可分为三类:常数、含有其他变量的表达式,含有变量自身的表达式.
(2)赋值语句左边只能是变量名字,而不是表达式,例如:x=3.6是对的,而3.6=x是错误的.
(3)赋值号左右不能对换,赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量.
(4)不能利用赋值语句进行代数式的演算(如化简、因式分解等),在赋值语句中的赋值号右边的表达式的
每一个“变量”都必须事先赋给确定的值,在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”,如a=b=3是错误的.
(5)赋值号左边的变量如果原来没有值,则在执行赋值语句后会获得一个值;如果原来已有值,则在执行赋值语句后,以赋值号右边的表达式的值替代原来的值,即将原来的值“冲掉”.如N=N+1的意思是将N的原值再加1后再赋给N,即N的值增加1.
课堂互动讲练
赋值语句的一般格式及含义
考点突破
解决此类问题,应从赋值语句的格式入手,分清数学等式中的“=”与赋值语句中的“=”是关键点.
判断下列赋值语句是否正确,为什么?
(1)5=m;
(2)x+y=0;
(3)a=b=2;
(4)N=N2.
【思路点拨】 逐一验证每个“赋值”语句是否符合赋值语句的格式及书写规律,然后下结论.
例1
【解】 (1)不正确.正确语句应是m=5.因为赋值语句中,赋值号“=”左端只能是变量,不能是常量.
(2)不正确.赋值语句不能给一个表达式赋值.
(3)不正确.因为在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.
(4)正确.该赋值语句的功能是把当前变量N的值平方后再赋给变量N.
【名师点评】 赋值语句的几种形式
(1)将常数赋给变量,例如:a=1
(2)将含有其他变量的表达式赋给变量
例如:a=1
b=2a+1
(3)将含有变量自身的表达式的值赋给变量
例如: i=2
i=3i+1
(4)右边的表达式中既含有变量自身,又含有其他变量
例如: i=1
S=0
S=S+i
自我挑战1 判断以下赋值号的应用是否正确(其中以下字母均为变量)
(1)y=x2-4=(x+2)(x-2);
(2)i=i+1;
(3)x=y y=x.
解:(1)不正确,因为在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.
(2)正确,其意义是将变量的值增加1,再赋给变量i.
(3)不正确,x=y与y=x意义不一样,x=y的意义是将变量y的值赋给x;而y=x是将变量x的值赋给y.
赋值语句不仅可以给变量赋值,还可以进行运算,并且可以对同一个变量重新赋给新的值.
用赋值语句表达算法
用赋值语句写出用公式法求一元二次方程x2-3x+2=0的根的算法,并画出算法框图.
例2
【名师点评】 要想学会用赋值语句表达算法,首先应该弄清楚变量与赋值的含义以及赋值的规则.
赋值语句就是将表达式所代表的值赋给变量,在计算机执行赋值语句时,先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量,出题方向常常是对赋值语句写法规则的考查,要求我们从一开始学习赋值语句时,就严格按照正确的规则书写.
解:算法框图如图所示.
赋值语句的综合应用
赋值语句是将表达式的值赋给变量,要加深对赋值语句及赋值号“=”的理解,要注意赋值语句中变量取的是最后值.
电信公司推出的一种手机通话费方案为:如果全月的通讯时间不超过150分钟,则收固定的通话费15元;如果全月的通讯时间超过150分钟,则在固定的通话费之外,对超过150分钟的部分按每分钟0.30元收费.无论哪种方案都要捆绑一种2元的手机业务.画出计算手机月费的算法框图.
例3
【解】 在通讯时间t≤150时通话费为y=15;
在t>150时通话费为y=15+0.30(t-150).
算法为:
1.输入t.
2.比较t与150,如果t≤150,
则y=15.
否则y=15+0.30(t-150).
3.y=y+2.
4.输出y.
算法框图如图.
【名师点评】 要编写程序解决某个实际问题时,首先要在实际问题中建立数学模型,再设计算法,可以先画出算法框图以理顺算法中各步骤之间的逻辑关系,然后根据其中逻辑关系选用相应的语句编写程序.
方法感悟
1.在研究问题的过程中可以取不同数值的量称为变量,变量的名称一般由英文字母组成,不同的变量要有不同的变量名.
2.赋值语句的左边是变量名,右边是表达式,表达式可以是常数、含有其他变量的表达式、含有变量自身的表达式.
3.可以把变量想象成一个盒子,赋值就相当于往盒子里放东西,这个盒子可以装不同的数值,但是一次只能装一个,当赋予它新值的时候,原来的值将被新值取代,当变量参与运算操作时,它表示的是想象中盒里装的值.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共30张PPT)
§2 算法框图的基本结构及设计
2.1 顺序结构与选择结构
学习目标
1.掌握算法框图中的两种算法结构——顺序结构、选择结构及其特点.
2.通过具体的实例体会用算法框图表示算法的优点.
3.会用算法框图表示简单的算法.
课堂互动讲练
知能优化训练
2.1 顺序结构与选择结构
课前自主学案
课前自主学案
温故夯基
1.在数学中,算法通常是按照一定规则解决某一类问题的明确和有限的______.
2.有序列插入排序的常见算法有______________
和_______________.
步骤
直接插入排序
折半插入排序
知新益能
1.算法框图
在算法设计中,算法框图可以______、______、______地表达解决问题的思路和步骤.
准确
清晰
直观
2.算法的两种结构
顺序结构 选择结构
定义 按照步骤__________的一个算法,称为具有“顺序结构”的算法,或者称为________________. 在算法流程中,需要进行判断,判断的结果决定后面的步骤,像这样的结构通常称作选择结构.
图形
表示
依次执行
算法的顺序结构
3.基本框图及其表示的功能
图形符号 名称 功能
终端框(起止框) 表示一个算法的起始和结束
输入、输出框 表示一个算法输入和输出的信息
处理框 赋值、计算
判断框 判断某一个条件是否成立,成立时在出口处标明“是”;不成立时标明“否”
流程线 连接框图
提示:顺序结构是最简单的算法结构,语句与
语句之间,框与框之间按从上到下(或从左到
右)的顺序进行,它由若干个依次执行的步骤
组成,它是任何一个算法都离不开的一种算法结构,如图所示,虚线框内表示一个顺序结构,其中A和B两个框是依次执行的,只有执行完A框所指定的操作后,才能接着执行B框所指定的操作.
问题探究
1.如何理解算法框图中的顺序结构?
2.算法框图中的选择结构应注意哪些问题,它的主要作用是什么?
提示:
课堂互动讲练
顺序结构的算法框图
考点突破
顺序结构是从上而下依次执行命令,每步只执行一次,不会引起程序步骤的跳转.它只能解决一些简单的问题,步骤之间不能随便调换,调换可能会使算法不运行,或出现错误.单独的顺序结构一般出现在这样几种题目中:根据公式求值、求一般函数(非分段函数)的函数值等;再者顺序结构是其他结构的基础,会出现在其他结构运行的前后,是算法必需的一个基本结构.
一次考试中,某同学的语文,数学,英语,物理,化学的成绩分别是a,b,c,d,e,设计一个计算该同学的总分和平均分的算法,并画出算法框图.
【思路点拨】 先算出总分,再算平均分,最后输出结果,因此只用顺序结构就能表达出算法.
例1
【名师点评】 初次学习画算法框图,首先应写出算法步骤,再用相应的框图表示出来,待熟练后,可不写出算法步骤,直接画出算法框图.
选择结构不同于顺序结构的地方:它不是依次执行操作指令进行运算,而是依据条件作出逻辑判断,选择执行不同指令中的一个.一般地,这里的判断主要是判断“是”或“否”,即判断是否符合条件的要求,因而它有一个入口和两个出口,但最后只有一个终结口.
选择结构的算法框图
例2
【思路点拨】 因为分段函数的自变量在不同范围内时函数关系式不同,因而当给出一个自变量x的值求它对应的函数值时,必须先判断x的范围,然后确定该范围内的函数关系式,计算相应的函数值,该例仅用顺序结构是办不到的,算法中要加入判断框,应用选择结构才能解决.
【解】 算法分析:用变量x,y分别表示自变量和函数值.步骤如下:
1.输入x的值.
2.判断x的范围,若x≥0,
则用函数y=x2-1求函数值,
否则,用y=2x2-5求函数值.
3.输出y的值.
算法框图如图所示.
【名师点评】 凡先由条件作出判断,然后再决定进行哪一个步骤的问题,在画框图时,必须用到选择结构.求分段函数的函数值的框图的画法,如果是分两段的函数,只需引入一个判断框,如果是分三段的函数,需引入两个判断框,四段的函数需引入三个判断框,依此类推.
自我挑战1 某居民区的物业管理部门每月向居民收取卫生费,计费方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.设计一个算法,根据输入的人数,计算应收取的卫生费,并画出算法框图.
算法步骤如下:
第一步 输入x;
第二步 若x≤3,则y=5;
否则,执行y=5+1.2(x-3);
第三步 输出y.
算法框图如图.
框图的应用
已知算法框图的函数问题,将框图所表示的算法翻译成自然语言,是由用自然语言表达的算法画出算法框图的逆向过程.对这两种语言的互译有助于熟练掌握算法的设计,而将算法框图翻译成自然语言相对而言比较陌生,是一个难点.
如图所示是解决某个问题而绘制的框图,仔细分析各图框内的内容及图框之间的关系,回答下面的问题:
(1)该框图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x取5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
例3
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b等于0
【思路点拨】 解答本题可先分析框图的功能,然后根据函数关系式中变量间的关系依次解答,同时还要注意框图中不同形式的框图表示的功能.
【解】 (1)该框图解决的是求函数f(x)=ax+b的函数值的问题.其中输入的是自变量x的值,输出的是x对应的函数值.
(2)y1=3,即2a+b=3, ①
y2=-2,即-3a+b=-2. ②
由①②得a=1,b=1.∴f(x)=x+1.
∴当x取5时,5a+b=f(5)=5×1+1=6.
(3)输入的x值越大,输出的函数值ax+b越大,因为f(x)=x+1是R上的增函数.
(4)令f(x)=x+1=0,得x=-1,因而当输入的x值为-1时,输出的函数值为0.
【名师点评】 对于基本算法语句的阅读题,先分析语句的类型,再分析语句所表示的具体含义,才能顺利地进行解答.
自我挑战2 (2010年高考湖南卷)如图是求实数x绝对值的算法程序框图,则判断框①中可填________.
解析:根据非负数的绝对值是它本身,负数的绝对值是它的相反数,以及0的特殊性,可知填x>0或x≥0.
答案:x>0或x≥0
方法感悟
1.顺序结构是从上到下依次执行的框图,不会引起程序步骤的跳转.
2.在一个算法中,若含有条件判断,画算法框图时,一般用选择结构.
3.画算法框图的规则:
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画;
(3)除判断框外,大多数算法框图中的程序框只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;
(4)在图形符号内描述的语言要非常简练清楚.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共33张PPT)
第2章 算法初步
课标领航
本章概述
本章从知识内容的安排上有算法与程序框图,基本算法语句.本质上就是以计算机能够实现的算法作为研究内容.
本章的重点是体会算法的思想,理解算法的含义,能用自然语言、程序框图、程序语句正确地表示解决问题的算法.本章的难点是正确分析解决问题的方法,恰当应用三种基本的逻辑结构画出程序框图,准确利用几种基本的算法语句设计出可执行的算法程序,从而顺利解决问题.
学法指导
结合实例,体会算法思想.在学习本章时,从熟知的问题出发,在初步感受算法思想的基础上,结合对具体数学实例的分析,体会程序框图在解决问题中的作用.通过模仿、操作、探索、学会设计程序框图来描述解决问题的过程.掌握将具体实例的程序框图转化为程序语句的过程.
§1 算法的基本思想
学习目标
1.初步感受算法的思想,理解算法的含义.
2.体会设计算法的基本思路,明确算法的特征.
3.掌握有序列插入排序的基本概念,体会有序列插入排序的算法思想.
课堂互动讲练
知能优化训练
§1 算法的基本思想
课前自主学案
课前自主学案
温故夯基
1.初中学过的求解一元二次方程组时消元的方法有___________和___________.
2.二分法求方程解的基本思想是:将方程的有解区间平分为___________,然后判断解在哪个小区间;继续把有解区间_________进行判断,如此周而复始,直到求出满足_____要求的近似解.
代入消元法
加减消元法
两个小区间
一分为二
精度
知新益能
1.算法的含义、性质及作用
2.排序
为了便于____________,常常根据某种要求把被查询的对象用_______________表示出来,并把_____按______排列,是信息处理中一项基本的工作,通常称为排序.
3.有序列
通常称按_____排列的数据列为有序列.
4.有序列插入排序的常见算法
有序列插入排序的常见算法有_______________和_____________,其中_____________的思想与二分法的思想是一致的.
查询和检索
数字(或者符号)
数字
大小
顺序
直接插入排序
折半插入排序
折半插入排序
5.对无序的数据列排序
对一组无序的数据列进行排序时,通常将这组无序的数据列的第一个数据看成一个______________有序列,将第二个数据插入到这个有序列得到一个有序列;然后,将第三个数据插入到上面的有序列中,又得到一个有序列……按照这种方法,直到将最后一个数据插入到有序列中,得到一个有序列,这样实质上就是完成了对______的数据列排序,最后得到的有序列就是对无序的数据列排序的结果.
只有一个数的
无序
问题探究
1.算法与数学问题解法的区别与联系?
提示:(1)联系
算法与解法是一般与特殊的关系,也是抽象与具体的关系.如,教材中由具体的二元一次方程组的求解过程(解法)出发,归纳出了二元一次方程组求解的步骤;同时指出,这样的求解步骤也适合有限制条件的二元一次方程组,这些步骤就构成了二元一次方程组的算法.算法的获得要借助一般意义上具体问题的求解方法,而任何一个具体问题都可利用这类问题的一般算法解决.
2.算法的主要特征有哪些?
(3)有序性:算法从初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的步骤序列.
(4)不唯一性:求解某一个问题的算法不是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题都可以设计合理的算法去解决,如心算、计算器计算都要经过有限的、事先设计好的步骤加以解决.
3.为什么排序还要设计算法?
提示:由于人类具有主观能动性,将数据a插入有序列{a1,a2,…,an}中时,能很快找到适当的位置,而计算机解决此类问题时,其解决方式不同.计算机每次只能比较两个数据的大小,不能直接“看”出应插在有序列{a1,a2,…,an}的哪个位置,因此要想用计算机解决排序问题必须要设计算法,使得每次仅比较两个数据大小.本节学习直接插入排序法和折半插入排序法就体现了这一点:每次仅比较两个数据的大小.其中折半插入排序法是二分法思想的应用,减少了比较数据大小的次数,减少了资源的浪费,是比较科学的排序算法.
课堂互动讲练
算法的有关概念
考点突破
下列说法正确的是( )
A.算法就是某个问题的解题过程
B.算法执行后可以产生不同的结果
C.解决某一个具体问题时,算法不同,结果不同
D.算法执行步骤的次数不可以很大,否则无法实施
例1
【思路点拨】 利用算法的意义及特征逐一分析验证.
【解析】 选项A,算法不能等同于解法;选项C,解决某一个具体问题,算法不同结果应该相同,否则算法构造的有问题;选项D,算法执行的步骤可以是很多次,但不可以是无限次.
【答案】 B
【名师点评】 算法一般是机械的,有时要进行大量重复的计算,只要按部就班地去做,总能算出结果,通常把算法过程称为“数学机械化”,“数学机械化”的最大优点是它可以由计算机来完成.
传统的数学问题的求解过程就是一个具体的算法,只要我们把平时的计算方法严格地按清晰的步骤描述出来,使之条理化即可,如解方程(组)、解不等式(组)、求函数值等一类问题的算法描述.
算法问题的设计
例2
【思路点拨】 二元一次方程组的解法的主要解题思想是消元的思想,有代入消元和加减消元两种消元方法,下面用加减消元法写出它的求解过程.
【解】 记a1x+b1y=c1, ①
a2x+b2y=c2. ②
算法步骤如下:
【名师点评】 算法的思维模式是将解题过程程序
化,就是设计为一个可操作的程序,只要按顺序操
作各个步骤就可以完成任务.
设计具体问题的算法应注意的问题:
(1)认真分析问题,找出解决此问题的一般数学方法.
(2)借助有关的变量或参数对算法加以表述.
(3)将解决问题的过程划分为若干步骤.
(4)用简练的语言将各个步骤表示出来.
自我挑战 写出求1+2+3+4+5+6的一个算法.
解:法一:第一步,计算1+2,得到3.
第二步,将第一步中的运算结果3与3相加,得到6.
第三步,将第二步中的运算结果6与4相加,得到10.
第四步,将第三步中的运算结果10与5相加,得到15.
第五步,将第四步中的运算结果15与6相加,得到21.
第六步,输出运算结果.
排序问题
直接插入排序法包括有序列直接插入和无序列直接插入,其中以有序列插入排序为基础,对于含有n个数的无序列来说,最多只要进行(n-1)次有序列插入即可完成排序.
折半插入排序法的思想同二分法的思想基本一致,主要寻找“中间数据”,所插数据与中间数据比较得出.
分别用直接插入排序法和折半插入排序法将56插入有序列{1,8,12,36,49,57,68,79}中,写出相应的算法.
【思路点拨】 让56与79、68…从右往左比较下去,直到合适位置即直接插入排序法;先确定数据个数,找到中间数据与56进行比较,然后把剩下数据中间位置数据依次与56比较,直到得到56的位置即折半插入排序法.
例3
【解】 直接插入排序法:
1.56与79比较,56<79,56应在79的左边;
2.56与68比较,56<68,56应在68的左边;
3.56与57比较,56<57,56应在57的左边;
4.56与49比较,56>49,56应在49的右边.
因此将56插入到49与57之间,得到一个新的有序列:
{1,8,12,36,49,56,57,68,79}.
折半插入排序法:
1.将56与中间位置的数36比较,56>36,故56应该在36的右边;
2.将56与剩余的数的中间位置的数57比较,56<57,故56应该在57的左边;
3.再将56与49比较,56>49,故56应该在49与57之间.
由此得插入56后的新的有序列:{1,8,12,36,49,56,57,68,79}.
【名师点评】 两种算法的共同点是每次将新数据与有序列中的数据进行比较;不同点是直接插入排序法总是将数据A与原有序列中的数据从右到左依次进行比较,而折半插入排序法总是将新数据与该有序列中的“中间位置”的数据进行比较.
方法感悟
1.算法实际上就是解决某一类问题的步骤或方法,在解决问题时形成的规律性的东西,按照算法所描述的规则与步骤,一步一步地做,最终便能解决问题.
2.从具体的实例出发理解算法的含义,体验算法的确定性、有序性、有限性、不唯一性和普遍性等特征.在设计算法时要使语言尽量接近计算机能够读懂的语言.
3.算法的基本思想就是我们在分析问题时的想法
由于想法不同,思考问题的角度不同,着眼点不一样,同一问题存在不同算法,算法有优劣之分.
4.从无序列数据排列的方法上来看,有序列插入排序法是解决无序列数据排列问题的基础与关键,这里还要求学生掌握无序数据排序法的思想原理和具体方法,搞清与有序列插入法的联系,做题时看准要求,明确是按从大到小的顺序还是从小到大的顺序进行排序,教材中的有顺序是指从小到大的顺序.将无序列排序除可用直接插入排序法,还可采用冒泡排序,此法步骤可较之直插排序简单的多.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用(共31张PPT)
2.3 循环结构
学习目标
1.掌握循环结构的有关概念.
2.理解循环结构的两个基本模式,会用循环结构描述算法.
3.体会循环结构在重复计算中的重要作用.
课堂互动讲练
知能优化训练
2.3
循环结构
课前自主学案
课前自主学案
温故夯基
变量与赋值的定义与作用
知新益能
1.循环结构的有关概念
(1)定义:__________相同操作的结构.
(2)组成:
反复执行
反复执行
开始和结束
是否继续执行循环体
2.用循环体来描述算法
在画出算法框图之前,需要确定三件事:
(1)确定_____变量和_____条件;
(2)确定算法中_________的部分,即_______;
(3)确定循环的_____条件.
循环
初始
反复执行
循环体
终止
3.三种基本结构的比较
名称 特征 作用
顺序结构 完成一个步骤,再进行另一个步骤,即按______完成一组工作
选择结构 根据对______的判断决定下一步工作 体现了数学中__________的思想
循环结构 ______完成一部分工作的算法设计 _________
顺序
条件
重复
分类讨论
简化算法
提示:(1)循环结构如图所示,A是循环
体,P是循环的终止条件,在运行过程
中先执行一次循环体,再对条件进行判
断,如果条件不满足,就继续执行循环
体,当条件满足时终止循环.
(2)循环结构要在某个条件下终止循环,这就需要选择结构来判断.因此,循环结构中一定包含选择结构,以保证在适当时候终止循环,不允许“死循环”.
问题探究
1.如何理解循环结构?
(3)循环结构只有一个入口和一个出口.
(4)在循环结构中通常都有一个计数变量和累加变量.计数变量用于记录循环次数,累加变量用于输出结果.计数变量和累加变量一般是同步执行的,累加一次,计数一次.循环结构内不存在无终止的循环.循环结构中几个常用的变量:
计数器:即计数变量,用来记录某个事件发生的次数,如i=i+1,n=n+1.
累加器:即累加变量,用来计算数据之和,如sum=sum+i.
累乘器:即累乘变量,用来计算数据之积,如p=p*i.
对于这些变量,在程序开始,一般要先赋初值,可根据实际问题合理选择初始值,一般情况下,计数器可设初值为0或1,累加器为0,累乘器为1.
2.三种基本结构有何区别与联系?
提示:(1)三种基本结构的共同特点
①只有一个入口.
②只有一个出口.请注意一个菱形判断框有两个出口,而一个选择结构只有一个出口,不要将判断框的出口和选择结构的出口混为一谈.
③结构内的每一部分都有机会被执行到,也就是说每一个框都有一条从入口到出口的路径通过.像图中的A,没有一条从入口到出口的路径通过,它就是不符合要求的算法框图.
④结构内不存在死循环,即无终止的循环.
(2)三种基本结构的联系与区别
①顺序结构是任何一个算法都离不开的基本的、简单的结构.
②选择结构和循环结构的区别是:循环结构具有重复性.选择结构具有选择性,不重复.联系是:循环结构中必定包含选择结构,用以判断循环的条件.
课堂互动讲练
利用循环结构解决累加、累乘问题
考点突破
在解决一些有规律的科学计算问题,尤其是累加、累乘问题时,往往可利用循环结构来实现算法.
例1
画出求1×3×5×…×99的值的算法框图.
【解】 算法如下:
1.S=1;
2.i=3;
3.如果i≤99,则执行4,否则执行6;
4.S=S×i;
5.i=i+2;
6.输出S并结束算法.
算法框图如图所示.
自我挑战1 如图所示的是计算22+42+62+…+1002的值的算法框图,指出算法框图中的错误.并画出正确的算法框图.
解:该算法框图中共有四处错误.第一处
错误,流程线上没有箭头.第二处错误,
第四个图框中的p=p+i,应改为p=p+i2.
第三处错误,判断框的流程线上没有标明
“是”或“否”的字样,应在向下的流程
线上标注“是”,在向右的流程线上标注
“否”.第四处错误,在第四个图框和判
断框间漏掉了在循环体中起重要作用的框图,内容为i=i+2,使程序无法退出循环,应在第四个图框和判断框之间添加图框,内容为i=i+2.
正确的算法框图如图所示.
在使用循环结构时,需恰当地设置累乘(加)变量和计数变量;在循环结构中要设置循环终止的条件,在算法框图中不允许出现死循环.
确定循环变量的最值
已知1+2+3+…+n>10000.试写出寻找满足条件的最小正整数n的算法,并画出相应的算法框图.
例2
【思路点拨】 解答本题可先思考如何设计循环变量及循环体,同时要关注每一次循环后输出的变量的情况.
【解】 算法如下:
1.p=0;
2.i=0;
3.i=i+1;
4.p=p+i;
5.如果p>10000,则执行6,否则执行3,4;
6.输出i.
算法框图如图所示:
循环结构在实际问题中的应用
解决此类问题的关键是读懂题意,建立合适的模型,找到问题的计算公式.
例3
某工厂2005年初有资金1000万元,技术革新后,该厂资金的年增长率为20%,试写出计算该厂2011年年底的资金的算法,并画出流程图.
【思路点拨】 (1)利用资金的年增长率为20%,可得出求资金的规律;(2)利用循环结构,选择年数为计数变量.
【解】 算法如下:
(1)i=1;
(2)S=1000;
(3)若i>7成立,则输出S,结束算法,
否则执行第(4)步;
(4)S=S×(1+0.2);
(5)i=i+1,返回第(3)步;
(6)输出S.
算法框图如图所示:
【名师点评】 利用循环结构表示算法时,一定要注意在哪一步开始循环,重要的是选择准确的表示累计的变量.
自我挑战2 某篮球队6名主力队员在最近三场比赛中投进的三分球个数如下表所示:
队员i 1 2 3 4 5 6
三分球个数 a1 a2 a3 a4 a5 a6
如图是统计该6名队员在最近三场比赛中投进的三分球总数的程序框图,则图中判断框应填_______,输出的s=________.
解析:图中判断框应填i≤6,输出的s=a1+a2+…+a6
答案:i≤6 a1+a2+…+a6
方法感悟
1.画算法框图时应注意的问题
(1)画算法框图时,首先设计算法步骤(自然语言),再将算法步骤转化为算法框图(图形语言).如果已经非常熟练掌握了画算法框图的方法,那么可以省略设计算法步骤而直接画出算法框图.
(2)画算法框图时,容易漏掉终端框,其原因是没有掌握画算法框图的规则:任何算法框图必须有终端框,终端框表示算法框图的开始和结束,否则是不完整的.
2.设计某一个算法的算法框图的步骤
(1)用自然语言表述算法步骤;
(2)确定每一个算法步骤所包含的逻辑结构,并用相应的算法框图表示,得到表示该步骤的算法框图;
(3)将所有步骤的算法框图用流程线连接起来,并加上终端框,得到表示整个算法的算法框图.
知能优化训练
本部分内容讲解结束
点此进入课件目录
按ESC键退出全屏播放
谢谢使用