初中八年级信息技术教案第六章 各就各位数组教案文本.docx
- 文档编号:10103110
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:9
- 大小:17.71KB
初中八年级信息技术教案第六章 各就各位数组教案文本.docx
《初中八年级信息技术教案第六章 各就各位数组教案文本.docx》由会员分享,可在线阅读,更多相关《初中八年级信息技术教案第六章 各就各位数组教案文本.docx(9页珍藏版)》请在冰豆网上搜索。
初中八年级信息技术教案第六章各就各位数组教案文本
初中:
八年级信息技术教案第六章各就各位-数组(教案文本)
Throughtheopeningofinformationtechnologycoursesintheschool,themysteryofstudentsaboutinformationtechnologyhasbeenunveiled.
(信息技术)
学校:
_________________________
年级:
_________________________
教师:
_________________________
教案设计/精品文档/文字可改
初中:
八年级信息技术教案第六章各就各位-数组(教案文本)
教材简介:
通过在学校开设信息技术课程,揭开了学生们对信息技术的神秘面纱,本教学设计资料适用于初中八年级信息技术科目,学习本教材的学生可以提高自身技能,本文档是按照教材进行修订编写,可以放心的进行教材使用。
第六章各就各位---数组
一、学习目标
1.掌握数组的声明和数组元素的引用
2.掌握动态数组与数组重定义以及与静态数组的差别
3.掌握利用数组进行排序、查找等操作
4.掌握控件数组的概念以及应用
二、教学重点
声明数组、初始化数组以及引用各个数组元素
三、教学难点
数组的概念以及应用
四、教学方法
1.演示法。
2.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
1课时。
七、教学过程
教学内容、步骤与方法
第一节整装待发----认识数组
一、概念
例如要求一个班50名学生的平均成绩:
下标变量si用数组表示为:
s(i)
1、有关说明:
(1).数组与普通变量一样,用来存放数据;
(2).数组中的数据必须是同一类型;
2、数组与循环结合
fori=1to50
inputs(i)
nexti
s=0
fori=1to50
s=s+s(i)
nexti
prints/50
end
二、数组的建立和引用
1、数组的建立
(1).dim(下标上界)
或dim(上界1,上界2)
说明:
一般情况下,下标值从0开始
如:
dima(5)即定义了a(0)、a
(1)、…、a(5);
若要修改下标起始值,可用下面语句:
optionbasen
如:
optionbase1
dima(5)
则定义了5个变量a
(1)、a
(2)、a(3)、a(4)、a(5);
若数组下标上界不超过10则可不必用dim定义数组。
(2)dim(n1ton2)
下标值的范围:
-32768~32767
数组名与变量名的定义相同;
允许在同一模块中,数组名与变量名同名,它们不代表同一对象;
dima(100)
a=3
dim语句中的上界可是常数或变量、表达式;
如:
dima(10)
dima(n)
dima(n+2)
但变量值一定先赋值
定义全局数组
dimshareda(50)
用dim语句可定义变量类型
dimas
其中是:
integer(整型)、long(长整型)、single(单精度型)、double(双精度型)、string(字符串型);
但不能加类型定义符,如下写法是错误的:
dima&aslong
在用dim语句定义了一个变量类型后,该变量名后面加上类型定义符或不加类型定义符都是合法的,且代表同一个对象。
例如:
dimaaslong
a=123456
a&=77777
printa,a&
end
运行结果如下:
7777777777
但程序中不能再用a作其它类型的变量名。
2、数组的引用
引用数组元素(下标变量),即在括弧中指定下标;
在程序中,数组与其它变量的使用相同,即可参与运算,可以被赋值;
在引用数组时,数组名、类型、维数以及下标的范围,应与定义时一致;
同一模块中,数组和变量可同名,但数组与数组不能同名;
下列情况是不允许的:
dima(10,10) 或 dima(50,50)
dima(15)dima%(15)
3、静态数组和动态数组
静态数组——建立数组后,其维数和大小不能改变;
动态数组——在程序执行教程中,可改变大小或者被释放;
qbasic规定:
在dim语句中用常数指定下、上界的数组为静态数组,如果用变量(或表达式)指定上下界的数组为动态数组。
(1).重定义语句
redim(上界)
如:
dims(20),x(20,30)
……
√redims(50)
×redimx(30)
只改变同名数组的大小,但不能改变维数;
(2).释放数组语句
erase
释放数组所占据的空间;
例1:
释放和重定义数组:
n=10
dima(n)
fori=1ton
a(i)=i
printa(i);
nexti
erasea
redima(16)
fori=1to16
a(i)=i
printa(i);
nexti
end
说明:
.如果不使用erase语句释放数组,不能用dim语句对同一个数组两次定义;
.用redim可改变数组的大小,而不必先用erase语句释放数组;
.无论用dim或redim定义一个与原来数组同名的数组,可以改变数组中各维的上下界,而不能改变数组的维数。
(3).数组上、下界函数
lbound(,)——下界函数
ubound(,)——上界函数
例:
inputn,m
dima(ntom)
fori=lbound(a,1)toubound(a,1)
a(i)=i
printa(i);
nexti
dimb(10,15)
fori=1toubound(b,1)
forj=1toubound(b,2)
b(i,j)=10*i+j
printb(i,j);
nextj
nexti
end
三、数组的应用
第二节一字排开-----一维数组
1、一维数组
只有一个下标的数组。
(1).数据统计
例:
输入n个学生的成绩,求平均成绩。
optionbase1
input"numberofstudentsis:
";n
dims(n)
fori=1ton
inputs(i)
sum=sum+s(i)
nexti
aver=sum/n
print"aver=";aver
end
例:
输入n个学生的学号和成绩,要求输出平均成绩和高于平均分的学生学号及成绩。
optionbase1
input"numberofstudentsis:
";n
dimnum(n),score(n)
fori=1ton
inputnum(i),score(n)
sum=sum+score(i)
nexti
aver=sum/n
print"平均分是:
";aver
print"高于平均分的学生有:
"
print"学号","成绩"
fori=1ton
ifscore(i)>averthenprintnum(i),score(i)
nexti
end
(2)、数据排序
例:
从键盘输入10个数。
要求按由小到大的顺序将它们打印出来;
•比较交换法
a1、a2、a3、a4、a5、a6、a7、a8、a9、a10
第一次:
a1与a2、a3、a4、a5、a6、a7、a8、a9、a10比较
第二次:
a2与a3、a4、a5、a6、a7、a8、a9、a10比较
第三次:
a3与a4、a5、a6、a7、a8、a9、a10比较
第四次:
a4与a5、a6、a7、a8、a9、a10比较
第五次:
a5与a6、a7、a8、a9、a10比较
第六次:
a6与a7、a8、a9、a10比较
第七次:
a7与a8、a9、a10比较
第八次:
a8与a9、a10比较
第九次:
a9与a10比较
optionbase1
dima(10)
fori=1to10
inputa(i)
nexti
fori=1to9
forj=i+1to10
ifa(i)>a(j)thenswapa(i),a(j)
nextj
nexti
fori=1to10
printa(i);
nexti
end
6.选择法
optionbase1
dima(10)
fori=1to10
inputa(i)
nexti
fori=1to9
k=i
forj=i+1to10
ifa(k)>a(j)thenk=j
nextj
ifkithenswapa(k),a(i)
nexti
fori=1to10
printa(i);
nexti
end (3).数据查找(检索)例:
设有n个学生,每个学生的数据包括:
学号、姓名、性别、年龄、平均分等;要求输入一个学号,程序输出该学生的所有数据。
•顺序查找法
假设:
num(i)为学生学号,nam$(i)为姓名,num为查找对象。
subsearch
fori=1ton
ifnum=num(i)then
print"num";num(i)
print"name";nam$(i)
exitfor
endif
nexti
ifi>nthennum;"notfound"
endsub
•折半查找法(二分查找法);
对按一定规律(由小到大或由大到小)排列好的数据进行检索;假设:
num(i)为按从小到大排列的学生学号,nam$(i)为姓名,num为查找对象。
subsearch
top=1
bot=n
find=0
do
mid=int((top+bot)/2)
ifnum=num(mid)then
print"num";num(i)
print"name";nam$(i)
find=1
elseifnumnum(mid)then
top=mid+1
endif
loopuntil((bot iffind=0thennum;"notfound" endsub 2、二维数组 矩阵的表示: aij——双下标变量a(i,j)→二维数组 数组定义: dima(m,n) a(i,j)→b(j,i) 例: 输出魔阵——每行、每列和对角线之和均相等。 排列规律: (1)、先将“1”放在第一行当中; (2)、从“2”开始到n*n止,各数中每一个数存放的行比前一个数的行数减1,列数加1; (3)、如果上一个数的行数为1,则下一个数的行数为n(最后一行); (4)、当上一个数的列数为n时,下一个数的列数为1,行数减1; (5)、如下一个数应放的位置已被其它数占据,则下一个数放在上一个数的下面。 四、过程中的数组参数 1、作为下标变量 子程序定义: suba(x,y) …… endsub 调用: dimt(10) …… calla(t (1),t (2)) 2、作为数组: 定义: 调用callb(p(),g()) 将主程序中的p、g传给子程序中的a,b数组传递采取“地地传递”方式。 即子程序中对形象参值的修改,将会改变实参值 教学后记: 可在这填写你的名称 YOUCANFILLINTHENAMEHere
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初中八年级信息技术教案第六章 各就各位数组教案文本 初中 年级 信息技术 教案 第六 各就各位 数组 文本