数组.docx

上传人:b****5 文档编号:6854904 上传时间:2023-01-11 格式:DOCX 页数:15 大小:22.74KB
下载 相关 举报
数组.docx_第1页
第1页 / 共15页
数组.docx_第2页
第2页 / 共15页
数组.docx_第3页
第3页 / 共15页
数组.docx_第4页
第4页 / 共15页
数组.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数组.docx

《数组.docx》由会员分享,可在线阅读,更多相关《数组.docx(15页珍藏版)》请在冰豆网上搜索。

数组.docx

数组

《BASIC程序设计》数组学案

学习目标:

1、熟练掌握数组的概念及应用

2、理解下标变量与数组的区别,熟练掌握下标变量及应用

3、熟练掌握利用下标变量求极值、排序(顺序比较法,气泡法)、统计分档等程序设计方法与技巧。

基础知识及要点:

数组和下标变量

一、基本概念

数组是一批的有序数据组成的集合。

其中的每个元素称之为数组元素,又称为下标变量。

使用格式:

数组名(下标[,下标]……)

下标变量名(下标[,下标]……)

几点说明:

1、数组名命名规则和变量名一样,必须以开头,其后可以是字母、数字、小数点;也有四种类型,分别是(用尾符表示)。

而下标变量名必须和它所在的数组的数组名一致。

2、下标必须写在括号中,是一个序号,它必须是非负整数,可以有一个或多个,多个下标之间用隔开;最小的下标值为,最大的下标值即是定义数组时给定的下标值。

3、下标的个数决定数组的维数,最多维。

下标值决定数组的大小,也就是数组的容量(即数组元素的个数);每组元素最多个。

例:

一维数组A(m)有个元素。

二维数组A(m,n)有个元素。

三维数组A(m,n,k)有个元素。

4、数组名后的下标值用来确定该数组中的最大下标值,表示数组的大小;而下标变量中的下标用来确定该元素在数组中的位置。

5、下标可以是数值型的常量、变量或表达式。

当下标值为小数时,系统会自动。

二、课堂练习:

1、判断下列哪些是合法的下标变量,并说明它的类型。

①B(5)②$W(3)③C%(A+B)④X(A$)

⑤Y(A%)⑥AI$(2*I,A)⑦E2#(3,5)⑧Z(-5,0)

⑨XY!

(0,1,2)⑩R(3,5)⑾A(B(5))⑿3D(1,2)

不合法的有:

整型:

双精实型:

单精实型:

字符串型:

2、若A=1,B=2,C=3,D=4,X

(1)=2,X

(2)=5,Y

(1)=3,Y92)=-2,

Y(3)=8,求下列各个下标变量的值。

Y

(2)=Y(D-2*A)=Y(Y(A))=

Y(D/C)=X(Y

(1)+Y

(2))=X(X

(1))=

数组说明语句

一、基本知识:

一个数组在使用前一般需要说明数组的、、及。

(一)、定义数组的语句格式是:

数组名(下标)

该语句的功能是:

在内存中开辟存贮单元,以便顺序存放各数组元素的数据,并将该数组所有元素值进行初始化(数值型的为,字符型的是)

几点说明:

1、一个定义语句可以定义多个不同类型的数组,各数组之间要用隔开。

2、数组说明语句中出现的是数组,其它语句中出现的是下标变量。

3、数组应先后,未经DIM定义的数组,系统自动定义:

下标最大值为,最多维。

4、使用下标变量时,下标不可超过数组定义的最大下标值,否则会提示错误信息:

SUBSCRIPTOUTOFRANGE(下标越界)

5、一个程序中一个数组不能重复被定义。

(二)清除数组语句

格式:

ERASE数组名[,数组名]……

作用:

在程序中清除一个或多个数组。

说明:

在清除语句中只能写数组名,不要写下标。

二、补充知识:

1、数组下标值的下界默认为0,也可以将下标值的下界由0改变为1。

语句格式:

OPTIONBASEn

其中的n值只能是0或1两个值,不能是其它数字。

2、QBASIC允许用户自己指定下标的下界,即下标的下界可以不是0或1。

定义格式:

DIM数组名(下标下界TO下标上界)

例:

DIMB(-2TO4)

即定义了一个一维数组B,下标下界为-2,上界为4,共有个元素。

在这种定义格式中,要求下标值的范围是-32768至32767

三、课堂练习:

1、下面四条数组说明语句中语法正确的是()

A、DIMA$(10)B、DEFA(10)

C、DIMA(10)$D、DIMENSIONA(10)

2、语句DIMA(4,5,6)定义的数组元素个数是()

A、15B、120C、210D、456

3、语句10DIMA(20)中,A表示()

A、变量名B、下标变量名C、数组名D、数组元素名

4、语句OPTIONBASE1:

DIMA(3,4)定义的数组元素个数是()

A、任意个B、12C、7D、20

5、语句DIMA(11TO30)所定义的数组有()个元素。

A、11B、20C、30D、330

6、语句DIMDPN#(8,4)所定义的数组的数据类型是型。

7、下列关于数组的说法不正确的是()

A、数组元素的地位和作用与简单变量相当,都可用来存放一个数据。

B、允许在同一数组中同时存放不同类型的数据。

C、数组中各元素在内存中占据一组连续的存储单元。

D、数组与循环结合使用,可以很方便地对大批数据进行处理。

8、下列关于数组建立和引用的说法不正确的是()

A、引用数组元素时,下标值应在建立数组时所指定的范围内。

B、在程序中凡允许简单变量出现的地方,都可以用数组元素代替。

C、在同一个程序中,数组不可以被重复定义。

D、OPTIONBASEn命令中,n除0和1外,还可以是其它数字。

9、下列程序运行后会显示出错信息,出错的原因是()

10X=5

20DIMA(X)

30FORM=1TO7

40A(M)=M+1

50NEXTM

60END

A、数组元素A(M)的下标超出上界

B、数组说明语句不能用变量来定义下标

C、不能用循环变量M进行运算

D、计算机有病毒

10、DIMB(7,8)说明后,B数组最多有()个元素。

A、56B、57C、15D、72

11、在10DIMA(100)语句执行后,数组A的第101个元素是()

A、A(99)B、A(100)C、A(101)D、A(102)

12、指出下列程序中的错误并在相应语句处改正(不得增删语句)

1)10DIMA(10)

20FORI=5TO20

30A(I)=I

40PRINTA(I);

50NEXTI

60END

2)10FORI=1TO20

20INPUTA(I)

30S=S+A(I)

40NEXTI

50PRINTS

60END

3)10I=5:

T=1

20DIMB(I)

30INPUTB(I)

40I=I–1

50T=T*B(I)

60IFI>0THEN20

70PRINTT

80END

13、写出下列程序运行结果:

1)10DIMB(3):

BK=32)10DIMA(5)

20FORK=1TO320FORI=1TO4

30B(K)=K–130A(I)=2*I-1

40PRINTK,B(K),BK40NEXTI

50NEXTK50PRINTA(A(I)+1)

60END60END

巩固训练

(一)

1、下列程序运行输出的结果是()

10FORJ=0TO10

20READA(J)

30NEXTJ

40PRINT“A1=”;A(0)

50DATA1.88,2.55,3.66,6.66,8,77,90.5,0,0,36.5,55.5

60END

A、A(0)=1.88B、55.5C、A1=A(0)D、A1=1.88

2、下列程序运行输出的结果是()

10L=1

20FORK=1TO2

30ONLGOSUB200,300

40L=L+1

50NEXTK

60FORJ=1TO3

70PRINTA(J);

80NEXTJ

90DATA1,2,3

100END

200FORJ=1TO3

210READA(J)

220NEXTJ

230RETURN

300A

(1)=A

(1)+1

310A

(2)=A

(2)+1

320A(3)=A(3)+1

330RETURN

A、123B、234C、345D、456

3、下列程序运行输出的结果是()

10FORJ=0TO10

20READA(10)

30NEXTJ

40PRINT“A0=”;A(0)

50DATA1.88,2.55,3.66,6.66,8.77,90.5,0,0,36.5,55.5,33

60END

A、A0=0B、33C、A0=A(0)D、A0=1.88

4、下列程序运行输出的结果是()

10DIMA(10)

20FORJ=6TO10

30READA(J)

40NEXTJ

50PRINTA(5)+A(6)*A(10)

60DATA1,2,3,4,5

70END

A、5B、25C、1D、显示出错信息

5、阅读下面程序:

10FORI=1TO5

20READCH$(I)

30NEXTI

40B=1:

C=2:

D=3:

E=4

50DATAA,B,C,D,E

60END

执行上述程序后,CH$(C*D-E)的值为。

6、10DIMA(10)

20FORJ=6TO10

30READA(J)

40NEXTJ

50PRINTA(0)+A(A(6)/A(10))

60DATA1,2,3,4,5

70END

上述程序运行后,屏幕输出结果是()

A、0.2B、1.6C、0D、出错信息

7、程序运行结果是()

10FORK=10TO6STEP-1

20READA(K)

30NEXTK

40DATA1,3,5,7,9

50FORJ=3TO7

60PRINTA(J);

70NEXTJ

80END

A、13579B、97531

C、00097D、11111

8、程序运行结果是()

10FORK=10TO6STEP-1

20READA(K)

30NEXTK

40DATA1,3,5,7,9

50FORJ=1TO5

60PRINTA(J);

70NEXTJ

80END

A、13579B、97531

C、00000D、11111

写出下列程序的运行结果

9、10FORJ=1TO1011、10DIMX(4)

20A(J/2)=J20FORK=0TO4

30A(J/2+1)=A(J/2)30X(K)=K*K

40NEXTJ40X(K)=X(K)+K

50FORK=1TO1050PRINTX(K);

60PRINTA(K);60NEXTK

70NEXTK70END

80END

10、10DIMA(8)12、10DIMA(5)

20FORI=1TO820FORI=1TO5

30A(I)=I*2+430A(I)=I*20+2

40NEXTI40PRINTA(I-1),

50PRINTA(6)/A

(2)50NEXTI

60END60END

二维数组

一、基础知识:

高级BASIC语言允许数组可多达255维,二维以上的称为多维数组。

实际应用中一般为一至三维。

二维数组对应一个二维表,它的第一个下标为下标,第二个下标为下标

二、例题分析:

写运行结果

10DIMA(3,4)

20FORI=0TO3

30FORJ=0TO4

40A(I,J)=I+J

50NEXTJ

60NEXTI

70FORI=0TO3

80FORJ=0TO4

90PRINTA(I,J);

100NEXTJ

110PRINT

120NEXTI

130END

三、课堂练习:

写程序运行结果:

10DIMA(5,5)

20K=1

30FORI=1TO5

40FORJ=1TO5

50A(I,J)=K

60K=1-K

70PRINTA(I,J);

80NEXTJ

90PRINT

100NEXTI

110END

 

巩固训练

(二)

写出下列程序运行结果:

1、10DIMX(2,2)

20FORK=1TO2

30FORJ=1TO2

40IFK=JTHENX(K,J)=1ELSEX(K,J)=0

50NEXTJ

60NEXTK

70FORK=1TO2

80PRINTX(K,1);X(K,2);

90NEXTK

100END

 

2、10FORJ=1TO3

20FORK=1TO3

30A(J,K)=(J-1)*3+K

40NEXTK,J

50FORJ=2TO3

60FORK=1TO2

70PRINTA(K,J);

80NEXTK,J

90END

3、10DIMA246(3,3)

20FORK=1TO3

30FORJ=1TO3

40A246(K,J)=2*K:

PRINTA246(K,J);

50NEXTJ

60PRINT

70NEXTK

80END

 

4、10DIMA(3,3)

20FORI=0TO2

30FORJ=1TO3

40A(I,J)=I*3+J

50PRINTA(I,J);

60NEXTJ

70PRINT

80NEXTI

90PRINT

100FORI=1TO3

110FORJ=0TO2

120PRINTA(I,J);

130NEXTJ

140PRINT

150NEXTI

160END

5、10DIMA(2,2)

20FORI=1TO2

30FORJ=1TO2

40READA(I,J)

50NEXTJ,I

60FORI=0TO2

70FORJ=0TO2

80A(I,J)=A(A(I,J),A(J,I))

90PRINTA(I,J);

100NEXTJ

110PRINT

120NEXTI

130DATA1,2,2,1

140END

巩固训练(三)

1、程序运行后,输出下面的结果,请选择正确的内容填空。

()

147

258

369

10FORJ=1TO3

20FORK=1TO3

30A(J,K)=

40PRINTA(J,K);

50NEXTK

60PRINT

70NEXTJ

80END

A、J+KB、(J-1)*3+KC、J+(K-1)*3D、J*K

2、要想输出下列四行三列的矩阵,请把程序补充完整

456

567

678

789

方法一:

方法二:

10DIMA(4,3),B(3,4)

20FORJ=1TO4

30FORK=1TO3

40A(J,K)=J+K

50B(K,J)=

60PRINTB(K,J);

70NEXTK

80PRINT

90NEXTJ

100END

 

10DIMA(3,4),B(4,3)

20FORJ=1TO3

30FORK=1TO4

40A(J,K)=

50B(K,J)=A(J,K)+2

60NEXTK

70NEXTJ

80FORJ=1TO4

90FORK=1TO3

100PRINTB(J,K);

110NEXTK

120

130NEXTJ

140END

3、下面程序运行后,输出结果如下:

100110120130

200210220230

300310320330

400410420430

10DIMX(4,4)

20FORL=1TO4

30FORJ=1TO4

40X(L,J)=

50PRINTX(L,T);

60NEXTJ

70PRINT

80NEXTL

90END

4、显示杨辉三角,显示10行

1

11

121

1331

……

193684126126843691

5DIMA(10,10)

10FORX=1TO

20PRINTTAB(26);

30FORY=1TOX

40IFY=1ORY=THENA(X,Y)=1:

GOTO

50A(X,Y)=A(X-1,Y)+

60PRINTA(X,Y);

70NEXTY

80

90NEXTX

100END

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

当前位置:首页 > 法律文书 > 调解书

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

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