程序设计的基本方法(精选2篇)
程序设计的基本方法 篇1
一、课题:
二、教学目标:
⑴ 理解算法的概念,了解描述算法的两种方法――自然语言和流程图,知道各自的优缺点。
⑵ 初步掌握用流程图描述算法。
三、教学的重点和难点:
⑴ 算法的概念。
⑵ 用流程图描述算法。
四、教学过程:
新课导入
我们在日常生活中经常要处理一些事情,就拿邮寄一封信来说吧,大致可以将寄信的过程分为这样的几个步骤:写信、写信封、贴邮票、投入信箱等四个步骤。将信地投入到信箱后,我们就说寄信过程结束了。
那么在计算机中,它是如何来处理问题的呢?是否和我们日常处理事情的过程很类似呢?
回答是肯定的,例如要设计一个程序让计算机求1+1=?,那么我们就要先编写程序。在编写程序前需要先确定解决问题的思路和方法,并要正确地写出求解步骤,这就是算法。
新授课
一、算法的概念
为了更好地理解算法,举几个例子说明:
例1 交换两个变量中的数据。
先请学生考虑解决这个问题的方法,然后请一个学生说一说自己想到的解决方法。如学生回答不出来,作适当提示:如果要将醋瓶中的醋和酒瓶中的酒互换应怎么做?学生会很容易地想到要借助于一只空瓶子。
分析题意:已知变量x和y中分别存放了数据,现在要交换其中的数据。为了达到交换的目的,需要引进一个类似于空瓶子的中间变量m。交换两变量中数据的具体算法如下:
①将x中的数据送给变量m,即x→m;
②将y中的数据送给变量x,即y→x;
③将m中的数据送给变量y,即m→y。
总结:在程序设计中,交换变量中的数据常用在排序算法中。
例2 输入三个不相同的数,求出其中的最小数。
同样,先请学生思考,然后请学生说出他所想到的解决该问题的方法。
教师分析:先设置一个变量min,用于存放最小数。当输入a、b、c三个不相同的数后,先将a与b进行比较,把小者送给变量min,再把c与min进行比较,若c<min,则将c的数值送给min,最后min中就是三个数中的最小数,具体算法如下:
①若a<b,则a→min, 否则b→min;
②再将c与min进行比较,若c<min,则c→min。这样,min中存放的即是三个数中的最小数。
请学生思考以下两个问题:
⑴ 如果要求出三个不相同数中的最大数,该如何设计算法?
⑵ 如果是n个不相同的数,求出其中的最小数呢?
例3 输入两个正整数a和b (a>b)求它们的最大公约数。
提问:什么叫最大公约数?
给学生思考后回答。然后举一个用欧几里德法求最大公约数的例子,如求 56 和32的最大公约数的过程如下:
56 ,32 ,24,8,0
则8就是56和32的最大公约数。从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前一项就是a和b 的最大公约数。
算法如下:
①输入a,b(a>b);
②求a/b的余数r;
③如果r≠0则将bàa,ràb,再次求a/b的余数r,转③;
④输出最大公约数b。
总结:对于同一个问题,可以有不同的解决方法,即有不同的算法。
二、算法的描述
为了描述一个算法,可以用自然语言、流程图或其他形式进行。
前面的三个例子就是用自然语言描述的。自然语言就是人们日常使用的语言。用自然语言描述算法,人们比较容易接受。但有个缺点就是叙述比较繁琐和冗长,容易出现“歧义性”。
请学生阅读课本中的讨论与思考,然后分别请学生将自己所理解的含义表述出来。学生可能有两种理解:“老张不认识这个人”和“这个人不认识老张”,从而说明自然语言表述容易产生“歧义”。为了能够将解决问题的算法清晰、直观地表示出来,我们一起来学习流程图。
⑴ 让学生看大屏幕投影,简单介绍流程图的基本图形符号及其含义。
⑵ 用流程图描述例6-1-3的算法,并对照流程图讲解各个符号的意义和作用。
⑶ 请学生对照课本例6-1-1、例6-1-2的算法,观察图6-1、图6-2,进一步理解流程图各个符号的含义,并体会如何用流程图描述算法,时间5分钟。
巩固练习
请学生写出求一元二次方程的根的算法,要求:
① 用自然语言描述;
② 用流程图描述。
课堂总结
请学生用自己的语言总结这节课的学习内容:
⑴ 算法是指解决问题的思路和方法。
⑵ 描述算法的形式有多种,常用的有:自然语言和流程图。
用自然语言描述算法比较容易接受,但叙述冗长,容易产生“歧义”。用流程图描述算法比较清晰、直观,不容易产生“歧义”。
⑶ 流程图中常用符号的含义。
布置课后练习
节后练习1、2、4①
程序设计的基本方法 篇2
一、教学目标
1.理解算法的概念;
2.知道两种算法的描述方法―语言描述法和流程图的区别
3.能初步利用算法解决简单的问题。
4.培养学生的理论联系实际能力和动手操作能力。
二、教学重难点
1.重点:算法的描述
2.难点:算法的描述
三、教材分析
本节所讲算法主要是指计算机解决问题的方法和步骤。美国著名计算机科学家克努特教授提出了”计算机科学就是研究算法的科学”的著名论断,说明了算法在设计程序中的重要性,解决任何问题都必须设计算法,所以本节内容起来统领全章的作用。
但是,对于初学者而言,本节内容属于理论知识,具有一定的抽象性。建构主义理论认为学习是新旧知识的联系,是学习者主动建构内在心理结构的过程。而在初学者原有的认知结构中没有关于算法的认知。如果直接讲算法,学生很难实现新旧知识的联系,无法做到意义建构和有意义的学习,对于算法的含义就难以做到真正理解。按照从感性到理性、从已知到未知的认知规律,我从学生的感性认知入手,从学生的兴趣出发,将第一节和第二节调整了顺序,先教vb的基本操作,在学生能掌握vb的基本操作,并能用vb解决简单问题的基础上,通过对具体问题的讨论,使学生明白解决任何问题都需要有清晰的解决思路和解题步骤,再通过人-机解决问题方法的比较,得出计算机解决问题和人解决问题一样都需要有明确的解题步骤,而计算机的解题步骤就称为算法,这样就很自然地引入了算法的概念。易于学生接受和理解。
对于本节内容的重难点,即算法的描述,主要是通过对实际问题的解决来突破的。本节所讲算法的实例,不在于程序的难易,而在于要易于学生接受。为了便于学生理解第一个算法-交换两个变量的值。我加了交换两个杯中液体的算法设计,通过这个简单的算法的设计,可以让学生了解变量的概念及计算机内部存诸数据的原理,这样,学生对于书中的例子就很容易接受了。关于语言描述算法及流程图描述算法的特点,我的做法是通过学生对二者的比较,既掌握了二者的区别,也知道了二者的优缺点。在突出重点、突破难点的基础上,我对本节内容进行了提升,学习算法不是为了单纯的学习概念,而是为了应用,为了理论联系实际,做到用理论解决实际问题。所以我将第三种算法的描述方法―程序向学生作了介绍,三种算法的描述方式的比较,使得学生对于算法的做用有了进一步的理解,根据算法可以写出代码,并解决问题。这样既解决了学理论难的问题,又做到了对同学们的引导,最后留一些时间给学生进行上机操作,让他们有成功的体验,学了就可以致用,而且用vb编程并不象他们想象的如此难于接受。这对于学生来说,可以帮助他们减少学习vb的畏惧心理,又可以提高学习的兴趣。对于学vb的语言规则起着承前启后的作用。
四、教学方法
讨论、讲解、操作相结合。
五、教具:多媒体电脑配合课件
六、教学过程
(一)算法的概念
【教师】通过前面的学习,我们已经会用vb来解决简单的问题,请同学们将下面问题的解决步骤写出来
【问题1】两个大人和两个小孩一起渡河,渡口只有一条小船,一次只能渡过一个大人或两个小孩,他们四人都会划船,但都不会游泳。请写一写你的渡河方案。
〖学生〗学生讨论回答。
【问题2】展示课件:写出求一元二次方程ax2+bx+c=0的实数根的解题步骤。
〖学生〗学生讨论回答。
【答案展示】
【问题3】如果让计算机来解决这个问题应该怎么做呢?
〖学生〗学生讨论回答。
【答案展示】
1、让计算机根据a、b、c的值,求出△(delta);
2、让计算机判断△(delta)的值;
3、让计算机求出x1;
4、让计算机求出x2 。
5、让计算机输出x1、x2的值
【教师】由此可以知道,计算机解决问题和人解决问题一样需要有清晰的解题步骤。而对于计算机而言,这种解题步骤就称为算法。
【课件展示】算法的概念:
我们解决问题都需要遵循一定的方法和思路并正确的列出各个求解步骤。计算机解决问题的求解步骤叫做算法。
或:
计算机处理程序的过程与我们平时解决问题的过程是十分相似的,也就是在规定的条件下完成一定的操作序列。而这样的操作序列对于计算机而言就是算法。
【课件展示】美国著名计算机科学家克努特教授(d.e.knuth)提出了“计算机科学就是研究算法的科学”的著名论断
二、算法的描述
1、语言描述
【算法描述1】描述交换两个杯中液体的算法
〖学生〗学生讨论
【课件展示】动态显示交换过程。并展示文字描述。
【算法描述2】交换两个变量中的数据。
【教师】讲解计算机内部对于数据存储的原理。即按地址保存。
〖学生〗学生讨论
【课件展示】展示文字描述。并配以教师的讲解分析。
已知变量x和y中分别存放了数据,现在要交换其中的数据。为了达到交换的目的,需要引进一个中间变量m,其算法如下:
① 将x中的数据送给变量m,即x→m;
② 将y中的数据送给变量x,即y→x;
③ 将m中的数据送给变量y,即m→y。
【算法描述3】输入三个不相同的数,求出其中的最小数。
〖学生〗学生讨论
【教师】引导学生讨论解题思路:
先设置一个变量min,用于存放最小数。当输入a、b、c三个不相同的数后,先将a与b进行比较,把小者送给变量min,再把c与min 进行比较,若c
【课件展示】展示文字描述。
【教师】引导学生讨论语言描述的特点:易于理解和接受。但对于复杂的问题描述太麻烦。
【教师】请说出下面这句话的含义:“这个人连老张也不认识”
〖学生〗学生讨论回答
【教师】由此可以看出语言描述有时有岐义,但计算机解决问题时每一步必须有清楚的定义,不能有二义性或模棱两可的解释,我们可以用另外一种方法来描述算法
2、流程图
【课件展示】算法2、3的描述流程图:
【课件展示】
流程图的概念:
流程图是用一组几何图形表示各种类型的操作,在图形上用简明扼要的文字和符号表示具体的操作,并用带有箭头的流线表示操作的先后次序。
图形符号
名 称
含 义
起止框
表示算法的开始或结束
输入、输出框
表示输入输出操作
处理框
表示处理或运算的功能
判断框
用来根据给定的条件是否满足决定执行两条路径中的某一路径
流线
表示程序执行的路径,箭头代表方向
连接符
表示算法流向的出口连接点或入口连接点,同一对出口与入口的连接符内必须标以相同的数字或字母
【课件展示】算法描述方法的比较:
(1)第一个算法描述方法的比较(语言描述法、流程图、程序)
【教师】引导学生讨论出算法的特点,并初步理解。
(2)第二个算法描述方法的比较(语言描述法、流程图、程序)
【教师】请同学们利用vb将这两种算法实现。
【思考题】输入三个不相同的数,求出其中的最大数。请分别用语言、流程图、程序进行算法描述。
〖学生〗学生上机操作实践
【教师】教师辅导
【教师】总结、下课。
作者简介:刘群,女,江苏省丰县中学一级教师,研究生在读。曾获市优质课一等奖、市优秀电教课一等奖、市教学技能比赛个人全能二等奖、市职工计算机比赛个人第五名、团体一等奖。