论文部分内容阅读
目前,在中等职业学校和高等职业学校的计算机专业教学计划中开设了大量的计算机程序设计语言课程,如C语言、PASCAL语言、FORTRAN语言等面向过程的结构化程序设计语言和Delphi、Visual Basic、Visual C++等面向对象的程序设计语言,目的是使学生通过学习程序设计语言的基本思想、语法知识和编程方法,提高程序设计的能力和分析、解决实际问题的能力。然而,在实际的教学过程中,我们经常会发现不少学生,特别是初学者,遇到较为复杂的实际问题,编写程序时就会感到束手无策。究其原因,主要是由于这些学生不善于把实际问题转化为相应的数据模型而造成的。因此,如何使学生切实掌握把实际问题抽象为数学模型的思维方法和基本技能,培养学生分析问题、解决问题的能力,成为了计算机程序设计语言教学中的重要内容。
一、数学建模的基本知识
1.计算机程序设计的一般过程。一个计算机程序是指计算机为解决某个问题或完成某项任务的指令序列。计算机程序设计的过程一般可以分为以下五个步骤:(1)针对具体问题建立相应的数学模型;(2)根据数学模型设计相应的算法;(3)编写程序实现算法;(4)程序的调试与修改;(5)各种相关文档的编制。
2.数学建模的步骤。程序设计过程中,数学建模的全过程大体可归纳为以下七个步骤:(1)对某个实际问题进行观察、分析;(2)对实际问题进行必要的抽象、简化,做出合理的假设;(3)确定要建立的模型中的变量和参数;(4)根据某种“规律”(已知的各学科中的定律, 甚至是经验的规律)建立变量和参数间确定的数学关系(明确的数学问题或在这个层次上的一个数学模型);(5)解析或近似地求解该数学问题;(6)数学模型能否展示、解释甚至预测实际问题中出现的现象, 或用某种方法(例如历史数据、实验数据或现场测试数据等)来验证模型是否合理、正确;(7)如果第6步的结果是肯定的,那么就可以付之试用;如果是否定的,那就要回到第1-6 步进行仔细分析,重复上述建模过程。
3.数学建模的三要素。从数学建模的全过程可以看出,其中最重要的三个要素,也是最大的三个难点是:(1)怎样从实际情况出发做出合理的假设, 从而得到可以执行的、合理的数学模型;(2)怎样求解模型中出现的数学问题;(3)怎样验证模型的结论是合理、正确、可行的。
二、引导学生建立数学模型
利用计算机来求解一个实际问题,首先要对复杂的问题进行抽象、近似和化简,使之表示成一些可以求解的数学公式,这些公式就是这个实际问题的数学模型。如果数学模型建立不起来,那么算法就无法确定,解决这个实际问题的程序也就无法编写。
1.引导学生加强题意分析。建立数学模型,首要问题是要从实际情况出发做出合理的假设,这就要求对所要解决的实际问题进行仔细的观察和分析。这一步往往很容易被学生忽略,而作为计算机教师,一定要重视。因此,在教学过程中,我们要注重引导学生加强题意分析,使学生清楚地知道,只有对问题进行了透彻的分析,才能发现问题的特点,才能找到解决问题的关键,从而得到可以执行的、合理的数学模型。
另外,学生的现状也需要我们加强题意分析。数学建模需要对实际问题进行抽象和概括,这就需要一定的思维和概括能力。我们的学生,由于各种原因,大部分比较适应老师的注入式教学,而不大适应启发式教学;比较适应直接利用公式的计算和模仿课本及老师的例题的解题,而不大善于自己去思考、推理、归纳;对学习内容以直观形象思维和机械记忆为主,死记较多,而对知识的理解面较窄。正是由于这些原因,使得学生不能很好地全面思考、分析题意、归纳总结规律,不能很好地逐步形成建立数学模型的基本技能。
在分析问题的过程中,一般必须弄清以下问题:首先,这个问题能否用计算机来求解;其次,它给出了哪些条件,提出了哪些要求,要解决问题还需要哪些条件;最后,从已知条件出发,经过怎样的处理才能最后解决问题。在分析问题的过程中,要灵活地运用数学知识分析问题的空间形式和各种数量关系,然后用数学语言将它们表达出来。
2.利用数学知识建立数学模型。建立数学模型,老师应在教学过程中帮助学生复习他们在数学学习中已经建立起来的知识系统和观念系统,并指导他们在计算机编程中正确利用它们。用计算机解题,建立数学模型,要使学生掌握迭代观点、枚举法和数据结构等观点,同时也要有一定的数学基础。在数学学习中研究的“数”与“形”以及它们之间的各种关系及表示方法,对于建立计算机解题的数学模型是很有帮助的。
在计算机语言教学中,把实际问题抽象为数学模型,我们除已知的数学概念、数学公式可直接利用外,还有如下的方式可利用:根据题意布列方程式或方程组,根据题意建立函数式、不等式、行列式、以集合为参加对象的运算式,揭示数列中项与项之间数学关系的递推式,表示元素的排列顺序关系或组合关系的某些图形,随机数的取值区间,平面内的点在数轴或在直角坐标系中的坐标等等。
下面结合一些典型的实例来谈谈怎样利用这些数学知识建立数学模型。
①综合利用相等和不等关系建立数学模型
例1:有这样一个三位数,其尾数不大于2。若将其尾数移到首位后(其它二个数字次序不变,依次后推),新三位数是原三位数的两倍多。请求出这个三位数。
设原三位数的三个数码依次为A、B、C,则原数是100A+10B+C,根据题意可列出如下的不等关系的条件组:
100C+10A+B>2(100A+10B+C)
100C+10A+B<3(100A+10B+C)
1≤A≤91≤B≤91≤C≤2
A、B、C均为自然数。这就是本题的数学模型。
②应用方程和函数理论建立数学模型
例2:铁路部门规定每位旅客托运行李时收费标准如下:重量不超过20千克,每千克收费0.12元;超过20千克的,则超过部分每千克收费0.20元。
依题意,设行李重W千克,收费Y元,则收费与行李重量构成的函数如下:
Y=0.12W当W≤20时
Y=2.4+0.2(W-20)当W>20时
根据行李重量W的值,选择不同的计费公式,这就是本题的数学模型。
③利用递推法建立数学模型
例3:如果一对兔子出生后隔月长成大兔子,大兔子每月生下一对小兔子。假定年初有一对刚出生的小兔子,按上述规律进行繁殖,两年后共有多少对兔子?
由题意可知,兔子逐月繁殖的数量可构成如下一组数列:
1,1,2,3,5,8,……观察这一数列可知:A1=1,A2=1,从第三项开始每一项都是它的前两项之和,即An=An-1+An-2(n≥3,n表示月份)。这个递推关系是解决本题的数学模型。
④利用图论建立数学模型
例4:小明上课的座位排列在图中0号的位置,现要从0号走到15号所表示的讲台上,共有多少条路可走?
本例中的数码表示不同的位置,这些数码的排列有规律,带有体系性质。题目所给出的这个图型就是本题的数学模型。采用三重循环,每重循环的终值和初值相差3。从某一结点出发,只有两条路可走,而这两条路分别由下面两个结点的编号来体现,这两个编号值相差3。
⑤用模拟法建立数学模型
例5:某服务部每天开放8小时,以每次5分钟为一个周期,在这期间有1-4个人到达,而服务部在5分钟内可服务3人,试编程由计算机来模拟这一过程,并打印出七天内顾客每天排队的平均人数。
解决这一问题的思路是:每天8小时,共8€?2个周期,每个周期的顾客为1-4个人,可由N=INT(RND(1)€?+1)产生,则每个周期的排队人数Z=Z+N-3。若Z>0,则表示有人留下,就留到下一周期排队;Z≤0,表示没有人留下(注意:Z<0时,应设Z=0)。
三、小结
总之,对于计算机程序设计过程中数学模型的建立,涉及面很广,教师应根据学生的数学基础,加强题意分析,引导学生寻找数学模型,然后才能确定算法,编写程序。
一、数学建模的基本知识
1.计算机程序设计的一般过程。一个计算机程序是指计算机为解决某个问题或完成某项任务的指令序列。计算机程序设计的过程一般可以分为以下五个步骤:(1)针对具体问题建立相应的数学模型;(2)根据数学模型设计相应的算法;(3)编写程序实现算法;(4)程序的调试与修改;(5)各种相关文档的编制。
2.数学建模的步骤。程序设计过程中,数学建模的全过程大体可归纳为以下七个步骤:(1)对某个实际问题进行观察、分析;(2)对实际问题进行必要的抽象、简化,做出合理的假设;(3)确定要建立的模型中的变量和参数;(4)根据某种“规律”(已知的各学科中的定律, 甚至是经验的规律)建立变量和参数间确定的数学关系(明确的数学问题或在这个层次上的一个数学模型);(5)解析或近似地求解该数学问题;(6)数学模型能否展示、解释甚至预测实际问题中出现的现象, 或用某种方法(例如历史数据、实验数据或现场测试数据等)来验证模型是否合理、正确;(7)如果第6步的结果是肯定的,那么就可以付之试用;如果是否定的,那就要回到第1-6 步进行仔细分析,重复上述建模过程。
3.数学建模的三要素。从数学建模的全过程可以看出,其中最重要的三个要素,也是最大的三个难点是:(1)怎样从实际情况出发做出合理的假设, 从而得到可以执行的、合理的数学模型;(2)怎样求解模型中出现的数学问题;(3)怎样验证模型的结论是合理、正确、可行的。
二、引导学生建立数学模型
利用计算机来求解一个实际问题,首先要对复杂的问题进行抽象、近似和化简,使之表示成一些可以求解的数学公式,这些公式就是这个实际问题的数学模型。如果数学模型建立不起来,那么算法就无法确定,解决这个实际问题的程序也就无法编写。
1.引导学生加强题意分析。建立数学模型,首要问题是要从实际情况出发做出合理的假设,这就要求对所要解决的实际问题进行仔细的观察和分析。这一步往往很容易被学生忽略,而作为计算机教师,一定要重视。因此,在教学过程中,我们要注重引导学生加强题意分析,使学生清楚地知道,只有对问题进行了透彻的分析,才能发现问题的特点,才能找到解决问题的关键,从而得到可以执行的、合理的数学模型。
另外,学生的现状也需要我们加强题意分析。数学建模需要对实际问题进行抽象和概括,这就需要一定的思维和概括能力。我们的学生,由于各种原因,大部分比较适应老师的注入式教学,而不大适应启发式教学;比较适应直接利用公式的计算和模仿课本及老师的例题的解题,而不大善于自己去思考、推理、归纳;对学习内容以直观形象思维和机械记忆为主,死记较多,而对知识的理解面较窄。正是由于这些原因,使得学生不能很好地全面思考、分析题意、归纳总结规律,不能很好地逐步形成建立数学模型的基本技能。
在分析问题的过程中,一般必须弄清以下问题:首先,这个问题能否用计算机来求解;其次,它给出了哪些条件,提出了哪些要求,要解决问题还需要哪些条件;最后,从已知条件出发,经过怎样的处理才能最后解决问题。在分析问题的过程中,要灵活地运用数学知识分析问题的空间形式和各种数量关系,然后用数学语言将它们表达出来。
2.利用数学知识建立数学模型。建立数学模型,老师应在教学过程中帮助学生复习他们在数学学习中已经建立起来的知识系统和观念系统,并指导他们在计算机编程中正确利用它们。用计算机解题,建立数学模型,要使学生掌握迭代观点、枚举法和数据结构等观点,同时也要有一定的数学基础。在数学学习中研究的“数”与“形”以及它们之间的各种关系及表示方法,对于建立计算机解题的数学模型是很有帮助的。
在计算机语言教学中,把实际问题抽象为数学模型,我们除已知的数学概念、数学公式可直接利用外,还有如下的方式可利用:根据题意布列方程式或方程组,根据题意建立函数式、不等式、行列式、以集合为参加对象的运算式,揭示数列中项与项之间数学关系的递推式,表示元素的排列顺序关系或组合关系的某些图形,随机数的取值区间,平面内的点在数轴或在直角坐标系中的坐标等等。
下面结合一些典型的实例来谈谈怎样利用这些数学知识建立数学模型。
①综合利用相等和不等关系建立数学模型
例1:有这样一个三位数,其尾数不大于2。若将其尾数移到首位后(其它二个数字次序不变,依次后推),新三位数是原三位数的两倍多。请求出这个三位数。
设原三位数的三个数码依次为A、B、C,则原数是100A+10B+C,根据题意可列出如下的不等关系的条件组:
100C+10A+B>2(100A+10B+C)
100C+10A+B<3(100A+10B+C)
1≤A≤91≤B≤91≤C≤2
A、B、C均为自然数。这就是本题的数学模型。
②应用方程和函数理论建立数学模型
例2:铁路部门规定每位旅客托运行李时收费标准如下:重量不超过20千克,每千克收费0.12元;超过20千克的,则超过部分每千克收费0.20元。
依题意,设行李重W千克,收费Y元,则收费与行李重量构成的函数如下:
Y=0.12W当W≤20时
Y=2.4+0.2(W-20)当W>20时
根据行李重量W的值,选择不同的计费公式,这就是本题的数学模型。
③利用递推法建立数学模型
例3:如果一对兔子出生后隔月长成大兔子,大兔子每月生下一对小兔子。假定年初有一对刚出生的小兔子,按上述规律进行繁殖,两年后共有多少对兔子?
由题意可知,兔子逐月繁殖的数量可构成如下一组数列:
1,1,2,3,5,8,……观察这一数列可知:A1=1,A2=1,从第三项开始每一项都是它的前两项之和,即An=An-1+An-2(n≥3,n表示月份)。这个递推关系是解决本题的数学模型。
④利用图论建立数学模型
例4:小明上课的座位排列在图中0号的位置,现要从0号走到15号所表示的讲台上,共有多少条路可走?
本例中的数码表示不同的位置,这些数码的排列有规律,带有体系性质。题目所给出的这个图型就是本题的数学模型。采用三重循环,每重循环的终值和初值相差3。从某一结点出发,只有两条路可走,而这两条路分别由下面两个结点的编号来体现,这两个编号值相差3。
⑤用模拟法建立数学模型
例5:某服务部每天开放8小时,以每次5分钟为一个周期,在这期间有1-4个人到达,而服务部在5分钟内可服务3人,试编程由计算机来模拟这一过程,并打印出七天内顾客每天排队的平均人数。
解决这一问题的思路是:每天8小时,共8€?2个周期,每个周期的顾客为1-4个人,可由N=INT(RND(1)€?+1)产生,则每个周期的排队人数Z=Z+N-3。若Z>0,则表示有人留下,就留到下一周期排队;Z≤0,表示没有人留下(注意:Z<0时,应设Z=0)。
三、小结
总之,对于计算机程序设计过程中数学模型的建立,涉及面很广,教师应根据学生的数学基础,加强题意分析,引导学生寻找数学模型,然后才能确定算法,编写程序。