八年级信息技术教案第六章 各就各位数组.docx

上传人:b****8 文档编号:27758507 上传时间:2023-07-04 格式:DOCX 页数:12 大小:18.02KB
下载 相关 举报
八年级信息技术教案第六章 各就各位数组.docx_第1页
第1页 / 共12页
八年级信息技术教案第六章 各就各位数组.docx_第2页
第2页 / 共12页
八年级信息技术教案第六章 各就各位数组.docx_第3页
第3页 / 共12页
八年级信息技术教案第六章 各就各位数组.docx_第4页
第4页 / 共12页
八年级信息技术教案第六章 各就各位数组.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

八年级信息技术教案第六章 各就各位数组.docx

《八年级信息技术教案第六章 各就各位数组.docx》由会员分享,可在线阅读,更多相关《八年级信息技术教案第六章 各就各位数组.docx(12页珍藏版)》请在冰豆网上搜索。

八年级信息技术教案第六章 各就各位数组.docx

八年级信息技术教案第六章各就各位数组

八年级信息技术教案第六章各就各位---数组

第六各就各位---数组

一、学习目标

1.掌握数组的声明和数组元素的引用

2.掌握动态数组与数组重定义以及与静态数组的差别

3.掌握利用数组进行排序、查找等操作

4.掌握控数组的概念以及应用

二、教学重点

声明数组、初始化数组以及引用各个数组元素

三、教学难点

数组的概念以及应用

四、教学方法

1.演示法。

2.实践法。

五、教学手段与教学媒体

多媒体网络教室。

六、时安排

1时。

七、教学过程

教学内容、步骤与方法

第一节整装待发----认识数组

一、概念

例如要求一个班0名学生的平均成绩:

下标变量Si用数组表示为:

S(i)

1、有关说明:

(1)数组与普通变量一样,用存放数据;

(2)数组中的数据必须是同一类型;

2、数组与循环结合

fri=1t0

 inputs(i)

nexti

s=0

fri=1t0

 s=s+s(i)

nexti

prints/0

end

二、数组的建立和引用

1、数组的建立

(1)DI<数组名>(下标上界)

或DI<数组名>(上界1,上界2)

说明:

一般情况下,下标值从0开始

如:

DIA()即定义了a(0)、a

(1)、…、a();

若要修改下标起始值,可用下面语句:

PTINBASEN

如:

PTINBASE1

   DIa()

则定义了个变量a

(1)、a

(2)、a(3)、a(4)、a();

若数组下标上界不超过10则可不必用DI定义数组。

(2)DI<数组名>(n1tn2)

下标值的范围:

-32768~32767

数组名与变量名的定义相同;

允许在同一模块中,数组名与变量名同名,它们不代表同一对象;

DIa(100)

A=3

DI语句中的上界可是常数或变量、表达式;

如:

DIa(10)

DIa(n)

DIa(n+2)

但变量值一定先赋值

定义全局数组

DISHAREDa(0)

用DI语句可定义变量类型

DI<变量>AS<类型>

其中<类型>是:

INTEGER(整型)、LNG(长整型)、SINGLE(单精度型)、DUBLE(双精度型)、STRING(字符串型);

但<变量>不能加类型定义符,如下写法是错误的:

DIA≈ASLNG

在用DI语句定义了一个变量类型后,该变量名后面加上类型定义符或不加类型定义符都是合法的,且代表同一个对象。

例如:

DIaASLNG

a=12346

a≈=77777

printa,a≈

END

运行结果如下:

7777777777

但程序中不能再用a作其它类型的变量名。

2、数组的引用

引用数组元素(下标变量),即在括弧中指定下标;

在程序中,数组与其它变量的使用相同,即可参与运算,可以被赋值;

在引用数组时,数组名、类型、维数以及下标的范围,应与定义时一致;

同一模块中,数组和变量可同名,但数组与数组不能同名;

下列情况是不允许的:

DIa(10,10)   或 DIa(0,0)

DIa

(1)DIa%

(1)

3、静态数组和动态数组

静态数组——建立数组后,其维数和大小不能改变;

动态数组——在程序执行教程中,可改变大小或者被释放;

QBASI规定:

在DI语句中用常数指定下、上界的数组为静态数组,如果用变量(或表达式)指定上下界的数组为动态数组。

(1)重定义语句

REDI<数组名>(上界)

如:

DIS(20),X(20,30)

……

√REDIS(0)

×REDIX(30)

只改变同名数组的大小,但不能改变维数;

(2)释放数组语句

ERASE<数组名>

释放数组所占据的空间;

例1:

释放和重定义数组:

n=10

DIa(n)

FRi=1Tn

 a(i)=i

 PRINTa(i);

NEXTi

PRINT

ERASEa

REDIa(16)

FRi=1T16

 a(i)=i

 PRINTa(i);

NEXTi

PRINT

END

说明:

如果不使用ERASE语句释放数组,不能用DI语句对同一个数组两次定义;

用REDI可改变数组的大小,而不必先用ERASE语句释放数组;

无论用DI或REDI定义一个与原数组同名的数组,可以改变数组中各维的上下界,而不能改变数组的维数。

(3)数组上、下界函数

LBUND(<数组名>,<维数>)——下界函数

UBUND(<数组名>,<维数>)——上界函数

例:

INPUTn,

DIa(nT)

FRi=LBUND(a,1)TUBUND(a,1)

 a(i)=i

 PRINTa(i);

NEXTi

PRINT

DIb(10,1)

FRi=1TUBUND(b,1)

 FR=1TUBUND(b,2)

   b(i,)=10*i+

   PRINTb(i,);

 NEXT

NEXTi

PRINT

END

三、数组的应用

第二节一字排开-----一维数组

1、一维数组

只有一个下标的数组。

(1)数据统计

例:

输入n个学生的成绩,求平均成绩。

PTINBASE1

INPUT“nuberfstudentsis:

”;n

DIs(n)

FRi=1tn

 INPUTs(i)

 su=su+s(i)

NEXTi

aver=su/n

PRINT“aver=“;aver

END

例:

输入n个学生的学号和成绩,要求输出平均成绩和高于平均分的学生学号及成绩。

PTINBASE1

INPUT“nuberfstudentsis:

”;n

DInu(n),sre(n)

FRi=1tn

 INPUTnu(i),sre(n)

 su=su+sre(i)

NEXTi

aver=su/n

PRINT

PRINT“平均分是:

”;aver

PRINT

PRINT“高于平均分的学生有:

PRINT“学号”,”成绩”

FRi=1Tn

 IFsre(i)>averTHENPRINTnu(i),sre(i)

NEXTi

END

(2)、数据排序

例:

从键盘输入10个数。

要求按由小到大的顺序将它们打印出;

•比较交换法

a1、a2、a3、a4、a、a6、a7、a8、a9、a10

第一次:

a1与a2、a3、a4、a、a6、a7、a8、a9、a10比较

第二次:

a2与a3、a4、a、a6、a7、a8、a9、a10比较

第三次:

a3与a4、a、a6、a7、a8、a9、a10比较

第四次:

a4与a、a6、a7、a8、a9、a10比较

第五次:

a与a6、a7、a8、a9、a10比较

第六次:

a6与a7、a8、a9、a10比较

第七次:

a7与a8、a9、a10比较

第八次:

a8与a9、a10比较

第九次:

a9与a10比较

PTINBASE1

DIa(10)

FRi=1T10

 INPUTa(i)

NEXTi

FRi=1T9

 FR=i+1T10

   ifa(i)>a()THENSAPa(i),a()

 NEXT

NEXTi

FRi=1T10

 PRINTa(i);

NEXTi

END

6选择法

PTINBASE1

DIa(10)

FRi=1T10

 INPUTa(i)

NEXTi

FRi=1T9

 =i

 FR=i+1T10

   ifa()>a()THEN=

 NEXT

 if<>iTHENSAPa(),a(i)

NEXTi

FRi=1T10

 PRINTa(i);

NEXTi

END (3)数据查找(检索)例:

设有n个学生,每个学生的数据包括:

学号、姓名、性别、年龄、平均分等;要求输入一个学号,程序输出该学生的所有数据。

•顺序查找法

  假设:

nu(i)为学生学号,na$(i)为姓名,nu为查找对象。

SUBSearh

FRi=1Tn

 IFnu=nu(i)THEN

   PRINT“nu”;nu(i)

   PRINT“nae”;na$(i)

   EXITFR

 ENDIF

NEXTi

IFi>nTHENnu;”ntfund”

ENDSUB

•折半查找法(二分查找法);

对按一定规律(由小到大或由大到小)排列好的数据进行检索;假设:

nu(i)为按从小到大排列的学生学号,na$(i)为姓名,nu为查找对象。

SUBSearh

tp=1

bt=n

find=0

D

 id=INT((tp+bt)/2)

 IFnu=nu(id)THEN

   PRINT“nu”;nu(i)

   PRINT“nae”;na$(i)

   find=1

 ELSEIFnu<nu(id)THEN

   bt=id-1

 ELSEIFnu>nu(id)THEN

   tp=id+1

 ENDIF

LPUNTIL((bt<tp)R(find=1))

IFfind=0THENnu;”ntfund”

ENDSUB

2、二维数组

矩阵的表示:

ai——双下标变量a(i,)→二维数组

数组定义:

DIA(,n)

a(i,)→b(,i)

例:

输出魔阵——每行、每列和对角线之和均相等。

排列规律:

(1)、先将“1”放在第一行当中;

(2)、从“2”开始到N*N止,各数中每一个数存放的行比前一个数的行数减1,列数加1;

(3)、如果上一个数的行数为1,则下一个数的行数为n(最后一行);

(4)、当上一个数的列数为n时,下一个数的列数为1,行数减1;

()、如下一个数应放的位置已被其它数占据,则下一个数放在上一个数的下面。

四、过程中的数组参数

1、作为下标变量

子程序定义:

SUBA(x,)

……

ENDSUB

调用:

DIT(10)

……

allA(t

(1),t

(2))

2、作为数组:

定义:

调用ALLB(p(),g())

将主程序中的P、G传给子程序中的a,b数组传递采取“地地传递”方式。

即子程序中对形象参值的修改,将会改变实参值

教学后记:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1