2.编程解决问题 教学设计
1教学目标
知识与技能:
(1)了解编制程序解决问题的一般过程
(2)了解算法概念,了解流程图
(3)会用流程图设计和描述算法。
过程与方法:在自主学习常用的程序流程图符号中了解流程图,在小组合作绘制流程图中加强对算法的理解,学习用流程图设计和描述算法。
情感、态度与价值观:教育学生正确对待学习生活中的实际问题,培养学生多角度思考问题的能力。
2学情分析
高中数学有涉及到,但学生掌握的不够;学生没有一点程序的基础
3重点难点
会用流程图设计和描述算法。
4教学过程
活动1【讲授】教学过程
一、编制程序解决问题的大致过程
师:现在请同学们讨论交流一下,编制程序解决问题的大致过程是怎么的呢?
生:讨论交流
(设计意图:在小组讨论交流中学会合作。)
2、师:组织、引导学生在全班范围内交流编制程序解决问题的大致过程。
(首先分析与确定实际问题中各种数据间的关系,然后设计出解决这个问题的方法和步骤,再使用某种程序设计语言编制程序,达到最终解决问题之目的。在程序设计中,把解决问题的方法和步骤称为算法。)
生:在全班范围内交流。
(设计意图:共享成果。)
算法的特性
1.有穷性
2.确定性
3.有效性
4.有零或多个输入
5.有一个或多个输出
描述算法的4种方法
自然语言流程图伪代码程序语言
二、用自然语言描述s=1+2+......+ 100 的算法。
1、师:提出任务:用自然语言描述s=1+2+......+ 100 的算法。
生:学生思考问题
(设计意图:引导学生发现问题。)
2、师:下面先让我们来设想一下,怎样解决?
提问:以下每一步提问做什么,诱导学生按日常逻辑思维思考回答。
S1:把0放入S单元;
S2:把1放入i单元;
S3:将S+i赋给S;
S4;i值加1;
S5:判断i是否小于等于100? 是,转S3;否则转S6;
S6:输出S的值,结束。
三、常用的程序流程图符号
1、师:用文字叙述描述算法比较繁且不直观,人们又想出了一种用流程图描述算法的方法。用流程图设计和描述算法直观形象,便于理清思路,易于理解。课本列出了国际上通用的绘制流程图的符号及其含义,请同学们自主学习。
2、了解常用的程序流程图名称、符号、意义
(设计意图:培养学生的自主学习的习惯和能力。)
3、师生学习常用的程序流程图符号
四、用流程图描述s=1+2+......+ 100 的算法。
[1(68)] 2、师:结合上表,对上述用自然语言描述s=1+2+......+ 100 的算法绘制流程图。
生:操作
培养学生的自主学习的习惯,引导他们学会如何去发现、去思考,如何去寻找解决问题的方法
五、学生练习
1、师:同学们已会根据实际情况绘制流程图,我们比一比看哪位同学又快又好地完成:设计一个算法并画出流程图,找出并显示任意3个数中的最大数。
生:明确要完成的操作要求。
2、生:操作
师:巡视并发现操作又快又好的同学
3、操作快且好的学生展示作品,其他学生进行评价。
(设计意图:在学生掌握一定的技能基础上进行这样挑战性活动,更能激发学生的兴趣,让更多的学生展示自己的作品,让他们体味成功的快乐。)
六、师生总结
七、课外拓展
VB 表达式
八、课后反思
课件48张PPT。编程解决问题 --算法与流程图授课班级:高二(4)班
信息技术组 邓永栋
2016年6月22日
用编程解决问题一般过程:
1、分析问题
2、设计算法
3、编写程序
4、调试运行 程序的灵魂——算法与流程图 算法基础
流程图的基础
如何表示一个算法
结构化程序设计方法算法的概念
算法(Algorithm):将为了解决问题所制订的步骤、方法。
利用计算机涉及到两类算法问题:
(1) 数值性计算问题
(2) 非数值性计算问题
对算法的学习包括五个方面的内容:
设计算法、表示算法、确认算法、分析算法、验证算法算法的特性
1.有穷性
2.确定性
3.有效性
4.有零或多个输入
5.有一个或多个输出如何表示一个算法
用自然语言表示算法
用流程图表示算法
用传统流程图表示三种基本结构
用伪代码表示算法
用计算机语言表示算法 描述算法的4种方法自然语言
流程图
伪代码
程序语言 用自然语言表示算法
自然语言是最简单的描述算法的工具。
【范例1】 用自然语言描述s=1+2+......+ 100 的算法。
算法描述:
S1:把0放入S单元;
S2:把1放入i单元;
S3:将S+i赋给S;
S4;i值加1;
S5:判断i是否小于等于100? 是,转S3;否则转S6;
S6:输出S的值,结束。用流程图表示算法
流程图相对于自然语言来说更直观形象,易于理解简洁直观。
一个流程图包括以下几部分:
① 表示相应操作的框;
② 带箭头的流程线;
② 框内外必要的文字说明 流程图中的元素及含义
流程图主要用两种:传统流程图和N-S流程图。
1.传统流程图
2、N-S流程图
流程图用伪代码表示算法
伪代码是介于自然语言与计算机语言之间的一种算法描述工具。
【范例1】 用伪代码描述s=1+2+......+100的算法。
01 s置初值为0;
02 i置初值为0;
03 while(i≤100)
04 {
05 s=s+i
06 i=i+1
07 }
08 输出s的值; 用计算机语言表示算法
计算机语言通常分为三类:
1、机器语言
2、汇编语言
3、高级语言。 用传统流程图表示三种基本结构
1、顺序结构 2、选择结构用传统流程图表示三种基本结构
3、循环结构3.顺序结构是最简单的算法结构,语句与语句之间,框与框之间按从上到下的
顺序进行.
其结构形式为
4.选择(条件分支)结构:依据指定条件 执行不同指令的控制结构.
其结构形式为选择5.循环结构循环结构根据指定条件决定是否 执行一条或多条指令的控
制结构.
其结构形式为重复1.任何一个算法都必须有的基本结构是( )
A.顺序结构 B.选择(条件分支)结构
C.循环结构 D.三个都有
答案:A2.a表示“处理框”,b表示“输入、输出框”,c表示“起、止框”,d表示“判断框”,以下四个图形依次为( )
A.abcd B.dcab C.bacd D.cbad
答案:D3.如图所示给出的四个流程图,其中满足while语句结构的有( )
A.4个 B.3个 C.2个 D.1个
解析:其中(2)(3)(4)是“当”型的循环结构.
答案:B4.一个算法的程序框图如图所示,如果输入的x值是-20,
则输出的结果是________.
答案:20 顺序结构是由若干个依次执行的处理步骤组成的,这是任何一个算法都离不开的基本结构.
顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.
利用顺序结构可解决简单的已知公式求值问题.【例1】 已知点P(x0,y0)和直线l:Ax+By+C=0,求点P(x0,y0)到直线l的距离d,写出其算法并画出程序框图.
思维点拨:利用点到直线的距离公式可写出算法,而程序框图利用顺序结构比较简单.解答:算法如下:
第一步,输入x0,y0及直线方程的系数A,B,C.
第二步:计算Z1=Ax0+By0+C.
第三步:计算Z2=A2+B2.
第四步,计算d= .
第五步,输出d.
程序框图(如右图):变式1.阅读下边的流程图,若输入的a,b,c分别为21,32,75,
则输出的a,b,c分别是( )
A.75,21,32 B.21,32,75 C.32,21,75 D.75,32,21
解析:由流程图知
输入a=21,b=32,c=75,x=21,a=75,c=32,b=21,
输出a=75,b=21,c=32.
答案:A
其输出结果是a=1271. 利用选择(条件分支)结构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断框.而判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要逐个分析判断框内的条件.
2. 解决分段函数的求值问题及比较大小等问题,一般采用条件结构.【例2】 函数y= ,写出求该函数值的算法及程序框图.
解答:算法如下:
第一步:输入x.
第二步:如果x>0,则y=-2;如果x=0,则y=0;如果x<0,则y=2.
第三步:输出函数值y.
相应的程序框图如下图:变式2.给出一个算法的程序框图如图所示:该程序框图的功能是( )A.求出a,b,c三个数中的最大值 B.求出a,b,c三个数中的最小值
C.将a,b,c按从小到大排列 D.将a,b,c按从大到小排列
解析:此程序可解决求三个数的最小值,也可利用教材中排序程序解决若干数最大值和最小值问题.
答案:B【例3】 画出计算12-22+32-42+…+992-1002的值的程序框图.
解答:程序框图如下图:对于数列求和、判断一个正整数是否为积数,用二分法求函数的零点等问题可利用循环结构去解决.变式3.画出求 的值的程序框图.
解答:解法一:当型循环程序框图: 解法二:直到型循环程序框图:【方法规律】
1.在画程序框图时首先要进行结构的选择,套用格式,若求只含有一个关系式的函数的函数值时,只用顺序结构就能够解决;若是分段函数或执行时需要先判断才能执行后继步骤的,就必须引入选择(条件分支)结构;如果问题里涉及的运算进行了许多重复的步骤,且数之间有相同的规律,就可引入变量,应用循环结构,当然应用循环结构里边一定要用到顺序结构与条件结构.比如计算1+2+3+…+100,12+22+…+1002,1×3×5×…×99等类型题目,都应用循环结构设计算法,绘制算法程序框图.2.在具体绘制程序框图时,要注意以下几点:
(1)流程线上要有标志执行顺序的箭头.
(2)判断框后边的流程线应根据情况标注“是”或“否”.
(3)框图内的内容包括累加(积)变量初始值,计数变量初始值,累加值,前后两个变量的差值都要仔细斟酌,不能有丝毫差错.
(4)分支条件结构或判断框内内容的填写,有时大于等于,有时大于,有时小于,有时还是小于等于,它们的含义是各不相同的,要根据所选循环结构的类型,正确地进行选择. (2009·浙江)某程序框图如图所示,该程序运行后输出的k的值是( )
A.4
B.5
C.6
D.7【答题模板】
解析:根据程序框图中的S=S+2S可知,本题表示的算法是求和运算,其中满足的约束条件是S<100,由此输出项数k的值.
当k=0,S=0,S<100,S=0+20=1;k=1,S<100,S=1+21=3;k=2,S<100,S=3+23=11;k=3,S<100,S=11+211=2 059;k=4,S>100,输出k=4.
答案:A 【分析点评】
1. 本题所求的结果是求满足某一不等式的最大正整数问题,与2008年山东卷13题类似.
2. 在本题的解答过程中,第一个可能出现的错误是将原流程图看做形如等比数列1,2,4,…,2k的求和运算,其实在每一步循环中,新增数据是2S,而不是2k;第二个可能出现的错误是输出结果,本题中满足条件S<100的k的最大值是2,当k=3时,其和S>100,但因它的顺序结构中,又进行了k=k+1的运算,所以输出的k是4.3.本题如将处理框S=S+2S改为S=S+2k,则表示求“使S=1+2+4+…+2k<100”的最大正整数的问题了.
4.算法初步在高考中的基本考点就是程序框图,特别是带有循环结构的程序框图,解决这类问题要注意如下两点:(1)分析清楚具体计算的步骤,即先设计出算法,如本题,采用逐个相加的方法,计数变量k就应该限制在不大于30上,根据数列的构成规律确定累加变量的赋值方法;(2)注意各个框和流程线的实际意义,如本题,判断框的出口是“否”,说明不满足判断框中的条件时退出循环. VB基本运算和表达式1.算术类基本运算 VB基本运算和表达式2.关系类基本运算
?
?关系运算用来比较两个数据的大小,或用来判断等号两边的数据是否相等。
关系运算的结果是一个逻辑值,若两个数据之间有指定的关系成立,则计算的结果值为真(True),否则计算的结果值为假(False)。
VB基本运算和表达式3、逻辑类基本运算 逻辑运算用来连接简单的逻辑表达式,以描述对于复杂情况的判断。结构化程序设计方法
结构化程序设计的思想:自顶向下、逐步求精;
即首先把一个复杂的大问题分解为若干相对独立的小问题。如果小问题仍较复杂,则可以把这些小问题又继续分解成若干子问题,这样不断地分解,使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止。 综合应用——求一元二次方程的根 【范例7】求一元二次方程:ax2+bx+c=0的根。综合应用——求一元二次方程的根 【范例7】求一元二次方程:ax2+bx+c=0的根。实例1. 求1!+3!+5!+……+N!的值。N由键盘输入,且为奇数。实例2. 将1到100之间能用3或5整除的数打印出来。