网学网为需要VB的朋友们搜集整理了 《VB程序设计》中“选择法排序”的课堂教学 相关资料,希望对各位网友有所帮助!
一、前言:程序设计是五年制高职计算机专业的必修课。这是一门抽象、深奥,有一定难度的专业课,根据职业学校学生的生理和心理特点以及所掌握知识的贮备量等,在一年级开设VB语言程序设计课,是很科学的安排。VB语言是各种计算机高级语言中比较容易学习和使用的一种,是学习计算机程序设计的入门语言,是今后进一步学习其它计算机专业课的基础。但是,VB语言的容易只是相对的,比起学生以前接触的学科,它具有逻辑性强,处理问题周密、严谨的特点,由于逻辑思维能力的局限和知识贮备量的不足,很多学生在学习VB语言时感到很不适应,在理解上有一定的困难,掌握情况不理想。例如:数组的有关内容是教材(《VB程序设计及应用》,高等教育出版社,李淑华主编)中的一个难点,而一维数组排序的有关程序又是难点中的难点,很多学生学到这儿都大呼“难懂”,有的学生甚至将此形容为“天书”。这就对教师的课堂教学提出了较高的要求,若一味灌输,学生死记硬背,则肯定收敛甚微。对此,笔者作了一些探讨。下面就以“选择法排序”的课堂教学为例,谈谈笔者所做的尝试。
二、侧重算法,掌握根本所谓“算法”,粗略地讲,是为解决某一个特定问题而采取的确定的有限的步骤。算法是程序设计的根本和灵魂,只要掌握了算法,用任何一种计算机语言编写程序都不会太困难。下面先介绍排序的概念:所谓排序,通俗地讲,即将N个凌乱无序的数按由小到大(即升序)或由大到小(即降序)重新排序。典型的排序算法有选择法、冒泡法、插入法等。选择法排序的算法如下(N个凌乱无序的数已经一一读入一维数组A中):对数组A的N个元素进行N-1趟选择,第1趟,选出N个数(A(1)~A(N))中最小的数,放入A(1)中(原A(1)中的元素和其对调);第二趟,选出N-1个数(除A(1)外,即A(2)到A(N))中最小的数(即N个数中第二个小的数),放入A(2)中(原(A(2)中的元素和其对调);……第N-1趟,选出剩下的两个数(即A(N-1),A(N),此时,从A(1)~A(N-2)已排好序)中最小的放入A(N-1),剩下的一个数(即N个数中的最大数)放入A(N)中,排序完成。以上算法是课堂内容的中心,因此,教师在新课伊始,就用投影胶片打出此算法,并详细解释,这里,教师应着重解释“选择”、“第一趟”、“对调”等关键字,然后抽出3~5分钟由学生讨论、熟悉、记忆。在讨论中,学生会有疑问,这个操作如何具体完成?如何用程序描述?教师由此进一步讲解。
三、分解算法,推导程序为了便于解释选择法排序的算法,有必要将算法分解细化。首先来讨论第一趟选择,即如何从N个数组元素中找出最小数所在的那个元素的位置(即该元素的下标,因为数组元素和下标之间存在着一一对应的关系),并完成将该元素中的值与第一个元素的值进行对调,为此教师用胶片投影:假定用变量P指向数组中最小数的位置(即该元素的下标),则A(P)即为最小数。一开始,假设A(1)中的值最小,使P=1。然后将A(P)与A(2)比较,若A(2)小于A(P),则P=2,否则P的值不变。接着把A(P)与A(3)去比,若A(3)小于A(P),则使P=3,否则P的值不变,此时P已指向A(1)到A(3)中最小数所在位置,A(P)中已是A(1)到A(3)中的最小值。接着把A(P)与A(4)比,与A(5)比,……与A(N)相比,并进行相同的操作(提醒学生注意P的值可能不断变化),最后P已指向A(1)~A(N)之间最小数所在的元素,A(P)为N个数中的最小值。然后将其与第一个元素对调。为了配合这一部分内容,教师以下列5个数为例,在黑板上演示如下具体过程:5 7 4 3 6 P=1,A(P)=55 7 4 3 6 P=1,A(P)=55 7 4 3 6 P=3,A(P)=45 7 4 3 6 P=4,A(P)=35 7 4 3 6 P=4,A(P)=5第一趟选择结束,说明以上5个数中,最小值所在位置为4,最小值A(4)与A(1)对调,结果:3 7 4 5 6(板书)。那么,这个过程如何用VB程序实现呢?根据上述分析,师生共同讨论如下(推广到N个数):P=1IF A(P)>A(2)THEN P=2 ……3 ……3 …… ……N ……NT=A(1):=A(P):A(P)=T有了以上分析过程,再用循环来归纳,学生就比较容易理解了