文档详情

《第14课 比赛打分》参考教案.docx

发布:2025-02-23约2.72千字共4页下载文档
文本预览下载声明

学而优教有方

PAGE2/NUMPAGES2

第14课比赛打分

(一)本课教学目标

1.知识目标:能恰当运用控件数组解决程序设计中问题,理解数据排序的算法。

2.能力目标:感受随机函数在计算机模拟随机现象的作用。掌握四舍五入的算法和产生随机数的算法,掌握求最值的算法并会编写相应的程序代码。

3.情感目标:培养学生的耐心和解决问题的能力。

(二)教学重点难点

教学重点:能恰当运用控件数组解决程序设计中问题,感受随机函数在计算机模拟随机现象的作用。

教学难点:掌握四舍五入的算法和产生随机数的算法。

(三)教学设计与教学建议

1.课堂引入分析

建议本课由比赛需求引入,有奥运比赛就有比赛成绩的统计要求,如果已有的比赛打分软件不能适合比赛打分的需求,就不妨自己试着编一个适合的比赛打分程序,而这首先要了解清楚比赛的规则和比赛对裁判打分的要求。

问题提出后问题的解决是逐步完成的,解决问题的过程由“评委打分”、“统计总分和平均分”和“完善奥运分数统计程序”三部分组成。在教学中要注意三部分的关系,教学由浅到深逐步实施。

2.重点内容分析

“评委打分”的程序设计主要是为统计所作的准备,评为分数的输入采用了文本框,为了统计的方便使用了控件数组。为了调试的方便设置了“模拟打分”的命令按钮。同时也引出了随机产生分数的需要,在本课需要产生的随机数是(8,10)之间的随机数,一般地我们要学生记住下面的公式,即求(m,n)之间的随机数公式为:

Rnd*(n-m)+m其中:nm,n0,m0

如果要求〔m,n〕之间的随机整数可以用公式:

Int(Rnd*(n-m+1))+m其中:nm,n0,m0

在调试下面的程序时,可以先将Randomize函数的语句删除或暂时设置为注释语句,多次运行程序,观察、体会Randomize的作用。同学们会发现当没有Randomize时每次获得的随机数序列是相同的,反之则不同。

Rem模拟打分Randomize

PrivateSubCmdmndf_Click()

DimrAsSingle

Randomize随机数序列初始化

Fori=1To10

r=Rnd*2+8产生(8,10)之间的随机小数

Text(i).Text=Fix(r*100+0.5)/100

按四舍五入保留小数点后两位小数

Nexti

EndSub

在“统计总分和平均分”的程序设计中,求总分和求平均分的程序基本相同求平均的程序多了求平均的语句。如果窗体中的“总分”和“平均分”合为一个按钮,这两个程序也可合为一个程序。

教学中可将求总分的程序段中的Sum=0的语句和最开始的变量说明DimSumAsSingle语句设置为注释语句,修改的程序如下:

DimSumAsSingle

Rem求总分

PrivateSubCmdSum_Click()

Sum=0

Fori=1To10

Sum=Sum+Text(i).Text累加总分

Nexti

Lbl1.Caption=Sum

EndSub

运行程序会发现总分的计算结果是10个分数字符的连接字符串,建议通过观察结果说明变量说明的意义。

在“完善奥运分数统计程序”的设计中包括了“最值”的算法,“体操比赛分数统计”的算法和“排序”的算法三个内容。其中求最值的程序是其他两段程序的基础。这是因为分数的统计是去掉一个最高分和一个最低分的平均分,而排序是多次求最值的结果。

(四)DIY和“创作天地”

本课中“去掉一个最高分和一个最低分后取得平均分”的程序是在DIY中完成的,而“排序”是在创作天地中进行的,这些都可以根据学生的情况给予适当的提示、指导。

下面是DIY的运动员得分统计的参考程序:

Rem求运动员得分

PrivateSubCmdpj_Click()

DimMaxAsSingle,MinAsSingle

DimkAsSingle定义文本框中数值的暂存变量

DimAvAsSingle

k=Val(Text(1).Text)文本框1中的数据

Min=k:Max=k:Sum=k

Fori=2To10

k=Val(Text(i).Text)

IfMaxkThen求最大值

Max=k

EndIf

IfMinkThen求最小值

Min=k

EndIf

Sum=Sum+Text(i).Text

Nexti

Sum=Sum-Min-Max

Av=Sum/8

Lbl2.Caption=Fix(Av*100+0.5)/100

EndSub

显示全部
相似文档