资源描述
关于算法的教学建议(一)——算法基础
知识点
必须落实的要点
选用例题、练习
例题、练习处理
算法与算法描述
l 算法的概念与特征:
Ø 算法:为解决某一问题而设计的确定的有限的步骤。
Ø 主要特征:
² 有穷性: 一个算法必须保证执行有限步骤之后结束。
² 确切性: 算法的每一步骤必须有确切的含义。
² 能行性: 算法的每一步骤都能有效地执行,并得到确定的结果。
² 输入:一个算法有0个或多个输入。
² 输出:一个算法有一个或多个输出,没有输出的算法是毫无意义的。
l 算法的描述方法:
Ø 用自然语言表达;
Ø 用流程图表达;
Ø 用程序表达。
l 流程图最常用的符号:
Ø 起止框;
Ø 输入输出框;
Ø 处理框;
Ø 判断框;
Ø 流程线和连接圈。
【例1】渡河问题。一个农夫带着一条狼、一只山羊和一篮蔬菜过河,但只有一条小船,并且每次只能让农夫带一样东西过河。农夫在场的情况下一切相安无事,一旦农夫不在,狼会吃羊,羊会吃蔬菜。问聪明的农夫如何解决过河问题。
【例2】用自然语言描述:从键盘输入两数,求两数之和并输出。
【例3】将上题用流程图来描述。
【例4】提供一种语言,编写一个实现求和问题的程序,说明如何用程序描述算法。
【例1】采用游戏方式,让学生体验解决此问题设计的步骤,引入算法概念,从而说明算法的主要特征。
【例2】按解决问题的先后次序描述步骤。
说明:此时,只宜出现顺序结构。
【例3】主要是依据自然语言画流程图,降低直接画流程图的难度。本例中强调各图形符号的作用,规范画法,尤其是流程线的自上而下的流向。
【例4】 教师可以选择较简单的典型语言环境(如VB,TC,QB等)。
华师大版教材中的问题:P37三个end。
用计算机解决问题的一般过程
l 用计算机解决问题的一般过程:
Ø 分析问题;
Ø 设计算法;
Ø 编写程序;
Ø 上机调试和维护。
l 算法中基本步骤:
Ø 输入-处理-输出。
【例5】已知圆半径,求面积。
【例6】上例中增加求周长,设计出算法,并用流程图表示。
【例5】按解决问题的过程进行分析。
l 分析问题:
分析解决问题所需要的数据(条件)——输入;
确定要计算机解决什么问题,即“做什么”——处理;
明确最后得到的结果——输出。
此例中要求输入圆半径,计算圆面积,输出圆面积。
l 设计算法:
设计出解决某一问题的一组(有限个)求解步骤,即怎么做。本例用计算圆面积公式即可得到结果。请学生用自然语言与流程图分别描述出来。
需指出的是,为计算机设计算法就必须依据计算机的工作原理(冯·诺依曼型计算机),因为设计的算法和程序最终要让计算机去执行的。有些问题的算法计算机与人工的方法是不同的,例如:记录原始数据和中间结果,计算机要利用存储器,而人工需要纸和笔;又如解方程,计算机只能根据公式进行数值运算而人工则能进行代数运算。
l 编写程序(略)。
本例中“输入半径”、“计算面积”、“输出面积”等步骤,流程图中只能用文字表达,暂不涉及变量及表示变量的字母,但需强调的是处理后输出的必要性。
【例6】处理时,学生可能会画出两个流程图,此时应说明:可在一个流程图中实现输出两个结果。
常量与变量名
l 常量:指在程序执行过程中事先设置、其值不发生改变的量,即一个具体的数值。
l 变量:
Ø 变量:指在程序运行过程中,取值可以改变的量,一般用字母表示。在计算机内部变量对应了一定的存储单元。
Ø 变量命名的基本规则
² 只能由字母、数字和下划线三类字符组成,但第一个字符必须是字母。
² 字母大小写都可以,变量名长度适当。
Ø 变量名与实际意义
Ø 变量类型
【例7】上例中设圆的半径为5cm,如果半径用字母r表示,周长用字母c表示,面积用字母s表示,求圆的周长和面积。设计出算法,并用流程图表示。
【例8】判断下列变量名是否正确。a,c1,class*1, sum,3f,grade、a@a , data, a/a。
【例9】举些生活中常用数据用变量来表示,并起一个合适变量名。例如:mark-成绩数据,name-姓名,no-学号等。
【例10】上述变量分别是哪种变量的类型。
【例7】分清常量与变量。
Ø 本例中数字5就是常量。
Ø 本例中r、c、s就是变量。
Ø 流程图中,可以把“输入半径”、“计算周长”、“计算面积”、“输出面积”改为“输入r”、“计算c”、“计算s”、“输出s”。
【例8】熟悉变量名的命名规则。
【例9】确定合适变量名,是便于理解与记忆。
【例10】变量的类型要求知道数值型、字符型两种。
变量的赋值
l 变量赋值的格式:
Ø 变量←常量 或变量←变量。
Ø 变量=常量 或变量=变量
l 功能:
将赋值号右边常量的值或变量的值存放在左边变量名对应的存储单元中,成为左边变量的值。
【例11】 a=3
a=5
【例12】b=a
c=a
d=a
b=3
【例11】说明变量的变量名与变量值。
a 变量名
3
变量值
存储单元
Ø 变量名实际上是一个符号地址,对应一定的内存储单元。
Ø 变量值指内存储单元中的值。
Ø 变量一般先赋值,后调用,重新赋值后,变量的值改变。
【例12】说明变量的值“取之不尽,一冲就丢”。
Ø 变量a的值赋给b后,变量a中的值还在,可以继续赋给c与d ,说明变量值可以重复调用,变量值“取之不尽”,与“读”存储器对应。
Ø 当执行到b=3时,b变量值中原来的值被改写为3了,原来值没有了,说明变量值一旦重新赋值后,立即被新值代替,变量值“一冲就丢”,与“写”存储器对应。
运算符与表达式
l 运算符及运算次序:
Ø 算术运算符 +、-、*、/、mod。
Ø 字符运算符 &或+。
Ø 关系运算符 >、<、>=、<=、=、<>。
Ø 逻辑运算符 and、or、not。
Ø 算术运算最优先,关系运算次之,最后为逻辑运算,括号可以改变次序。
l 表达式:
Ø 表达式:指用运算符将常量、变量连接起来有意义的式子。
Ø 表达式的类型:
² 算术表达式。
² 字符表达式。
² 关系表达式。
² 逻辑表达式。
l 采用列表法记录变量值变化的过程与结果
【例13】写出变量a,b,c,d的值。
(1)a=2 (2)a=2
b=a+a b=3
c=a+b b=a+b
b=a-b
a=a-b
(3)a=”开” (4)a=0
b=”放” a=a+3
c=a+b
d=b+a
【例14】判断下列关系表达式结果是true或false。
(1)30>3
(2)12<=5
(3)30>3 and 12<=5
30>3 or 12<=5
【例15】说出下列表达式运算的次序。
a+b>c and b+c>a and c+a>b
【例16】表达式表示法:
s←a*h/2或s=a*h/2
a←a+2或a=a+2
【例17】将下列描述用赋值语句表示。
(1)设圆的半径为5cm,将它存放在变量r中,将圆周长赋值给变量c,面积赋值给变量s。
(2)假设一元二次方程的系数存放在变量a,b,c,将判别式赋给变量d。
(3)将“信息科技”字符信息赋值给变量title。
(4)某商店一商品价格存放在变量price中,将price打对折,赋值给变量price中。
(5)将国民生成总值gnp翻2翻。
【例18】某学校需购买n套学生课桌椅,已知每套单价200元,另加总价的3.5%的送货费,请计算学校应付款是多少?请画出流程图。(单价用变量j表示,套数用n表示,总价用m表示,应付款用p表示)
【例13】(1)说明赋值语句中赋值号右边可以是一个式子,引出运算符与表达式。
Ø 表达式可以是单个的常量或变量。
Ø 关系表达式与逻辑表达式的举例在【例14】中。
Ø 可以采用列表法记录变量值变化的过程与结果,例1(2)
a
b
c
d
a=2
2
b=3
3
b=a+b
5
b=a-b
-3
a=a-b
5
当变量值变化时列出新值,取值时取出最后一次的结果。
【例14】知道逻辑型常量true或false,以及关系表达式的结果为逻辑值true或false知道。
Ø 关系运算符与逻辑运算符。
Ø 关系运算和逻辑运算的结果是逻辑值true或false。
Ø 逻辑运算次序 先not 后and 再or
Ø 关系运算符与逻辑运算符可在分支结构单元学习时再举些实例。
【例15】各类运算次序。
算术运算最优先,关系运算次之,最后为逻辑运算,括号可以改变次序。
【例16】两种表示法的含义相同,都是将符号右边的表达式的值赋给左边的变量,要注意的是符号左右用同一字母表示的变量的含义和值都不同。赋值语句格式可统一为:变量=<表达式>,先运算,后赋值。
【例17】为以后的例题准备。
Ø 学生容易将运算符*省略掉。
Ø 字符类型变量的赋值。
Ø p1=price/2 price=p1 p1起了过渡的作用,在算法中可以写成price=price/2 ,说明同一变量可以不断地反复地进行赋值,变量值取最新(近)一次赋值为准,若学生不能理解可以先给price赋一个确定值500,然后一一列出赋值后变量的值。
Ø 不引进累加器和计数器,在循环结构单元中说明。
【例18】按计算机处理问题的一般过程。
l 分析问题:
输入:所需要的数据单价是已知的,套数需从键盘输入。
处理:计算应付款,应付款= 总价+总价*0.035,总价=单价*套数 ;(也可写成一个表达式:应付款=单价*套数*1.035 )。
输出:应付款。
l 设计算法:
先用自然语言描述,再画出流程图,检查流程图的规范性。注意表达式中乘号的写法。根据教学实际情况,教师可更改流程图中的步骤。
l 编写程序(略)。
l 上机调试与维护(略)。
说明:这部分教学中,一定要注意以下几点
* 有关概念要注意准确和清晰,切忌模糊,使学生一开始就能有正确的认识。
* 要注意循序渐进,还没有出现的概念和知识,决不能事先应用。
各知识点的落实,最后要在解决问题的流程图中统一体现。
展开阅读全文