全国计算机教师教学设计及说课比赛二等奖
《Qbasic》中数组的应用教学设计
教学课题:数组的应用(2)
教学目标:
1、掌握在什么情况下要使用数组及在处理数组过程中如何控制下标的变化。
2、掌握排序算法,通过不同方式实现排序算法。
3、理解编程的基本方法,做到一题多解,拓宽学生的思维空间。
4、提高学生分析问题,解决问题,及用计算机实现问题的能力。
教学重点:排序的算法及通过循环变量对数组下标的控制来实现数组元素的处理。
教学难点:如何利用循环变量来控制数组元素的处理。
教学方法与手段:用任务驱动的方式,促进学生思考,引导学生分析问题、解决问题;结合多媒体课件演示,循序渐进地,由浅到深地讲解编写程序的基本方法。
教学课时:1个课时
教学过程:
一、复习上一节课的内容及讲评作业
1、数组的定义、动态数组、静态数组概念(提问)
2、重定义、删除数组语句(提问)
3、数组元素的引用(讲述)
4、讲评练习:用数组的方式实现输入十个数,找出最小的一个数并打印输出。(至少用两种方法解题)
指出作业存在的问题:
(1)循环变量设置与数组下标的引用结合
(2)存放最小值的变量要赋初值
(3)用行IF语句还是用块IF语句的问题(如果用行IF语句必须写在同一行,如果用块IF语句则要分行写且要以END IF结束)
给出参考答案
解法一:
DIM a(9)
FOR i=0 TO 9
INPUT a(i)
NEXT i
min=a(0)
FOR i=1 TO 9
IF min>a(i) THEN
min=a(i)
END IF
NEXT i
PRINT “最小值为:”;min
解法二:
DIM a(9)
FOR i=0 TO 9
INPUT a(i)
NEXT i
p=0
FOR i=1 TO 9
IF a(p)>a(i) THEN
p=i
END IF
NEXT i
PRINT “最小值为:”;a(p)
二、引入课题:
在编程中,一些用变量不好处理的问题,引入数组后,就可以很容易解决。我们在前面有这样一道题对三个数按从小到大顺序输出,程序:
INPUT a,b,c
IF a>b THEN
ELSE
SWAP a,b
END IF
IF b>c THEN
ELSE
SWAP b,c
IF a>b THEN
ELSE
SWAP a,b
END IF
END IF
PRINT a,b,c
三个数我们可以用IF——END IF语句实现,那假如有十个数,有一百个数呢?那就要用数组来存放这些数据,通过数组的下标变化就可以访问不同的数组元素,进而用循环语句就可以处理这些复杂的问题。
三、本节课的内容
1、给出题目:随机产生十个[0,100)之间的正整数,按从小到大顺序排序,并输出。
2、分析题目:
(1)如何产生一个0——100之间的随机正整数?
INT(RND*100)
(2) 确定要用数组解题,如何定义数组(几维?下标如何定义),如何存放十个随机数?
DIM a(9)
FOR i=0 TO 9
A(i)=INT(RND*100)
NEXT i
(3)要从小到大顺序进行排序(以比较法为例)
①在十个数当中选出一个最小的放在第一个元素位置(由学生完成选出最小值的元素的程序)
具体的方法:第一个元素的值与从第二个元素开始逐个进行比较,若有小于第一个元素值的进行交换(如何进行两个变量值的交换?),完成后第一个元素就是十个数中的最小值。
程序:
i=0
FOR j=1 TO 9
IF a(i)>a(j) THEN SWAP a(i),a(j)
NEXT j
②除了第一个元素以外,第二个到最后一个元素当中再找出第二小的元素放在第二个元素中(提出问题,由学生来修改)
程序:
i=1
FOR j=2 TO 9
IF a(i)>a(j) THEN SWAP a(i),a(j)
NEXT j
③依次类推,找到第三个、第四个…(只要修改程序段中的i的值与j的初值即可)
问题:a、找出第一小值的元素要比较几次?找出第二小值的呢?第三个呢?
b、共要几趟才能把十个数按从小到大顺序排好?
c、变量i与变量j的变化之间有什么关系?
i值的变化
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
i
|
j值的变化
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
j=i+1
|
④写出对十个数进行升序排序的程序段
程序:
FOR i=0 TO 8
FOR j=i+1 TO 9
IF a(i)>a(j) THEN SWAP a(i),a(j)
NEXT j
NEXT i
(4)如何打印输出?
程序:
FOR i=0 TO 9
PRINT TAB(5);a(i);
NEXT i
3、写出完整的程序:用比较法进行排序(三个程序段拼凑成一个完整的程序)
4、程序的总体分析:分析完整的程序的循环变量与数组的下标的变化的关系。
四、练习:随机产生100个[0,1000]之间的正整数,按从大到小顺序排序,并输出。
五、总结:1、什么情况下要用数组的应用,利用数组的优点。
2、数组下标的控制,数组与循环变量的关系
3、比较法排序算法
六、知识的拓宽:介绍其他的排序算法(选择法、冒泡法等)
七、作业:用选择法对随机产生的10个[0,100]正整数进行升序排序。
相关阅读推荐:
› 计算机教师获奖教学设计 Qbasic中数组的应用