如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章数组与记录类型本章要点:理解数组的概念,含义与定义方法掌握引用数组元素的方法理解记录的概念,含义与定义方法掌握使用记录常用方法4.1循序渐进学理论1数组的定义(1)静态数组注意事项:数组类型和数组变量:程序不能直接使用类型,可以使用变量;定义时可以二合一;varayyay1,array2:array[0…100]ofreal;访问数组元素,通过数组名加方括号,括号内为数组下标值,下标值符合取值范围,下标可以为表达式;标准函数Low和High可以返回数组的最小和最大下标值,Length可以返回数组的长度;数组赋初值通常通过循环;二维静态数组二维数组是指一个一维数组中的元素类型本身又是一个一维数组。其一般形式为;Type〈数组标识符〉=Array[〈下标类型1〉]ofArray[〈下标类型2〉]of〈元素类型〉;理解为每行就是一个元素,即又是一个一维数组的递归定义;也可以把上述形式简写成下面的形式:Type〈数组标识符〉=Array[〈下标类型1〉,〈下标类型2〉]of〈元素类型〉;通常使用第二种方式的定义;例如:Typetp=array[1…5]ofarray[1…10]ofreal;tmax=array[1…5,1…20]ofinteger;VarTr1:tp;tr2:tmax;array1:[1…5,1…8]ofinteger;二维数组赋初值通常采用二重循环;多维静态数组多维静态数组的一般格式为:Type〈数组类型标识符〉=array[〈下标类型1〉,〈下标类型2〉,…,〈下标类型n〉]of〈基类型〉;TypeTest1=array[1..10,1..10,1..30]ofinteger;VarMyarray:array[0..5,0..6,0..8]ofreal;使用静态数组的注意事项零基准数组。所谓零基准数组,就是下标从零开始的数组,例如:array[0..5]ofchar数组的整体赋值。假设有两个数组array1和array2,其变量定义如下:Vararray1,array2:[1..10]ofchar;如果要把array2中每一个元素的值相应赋值给array1中的元素,一般是使用For语句,例如:ForI:=1To10Doarray1[i]:=array2[i];把数组作为过程或函数的形参。ProcedureMyProc(varArray1:Array[1..10]ofInteger);Began…End;上述程序中,数组的定义和传递并在一起进行,并且Array1是作为变量参数实现地址传递。另外,数组也可以作为函数的返回类型。开放式数组数组作为形参传递给过程或函数是,长度可以不确定,可以传递不同长度的数组作为实数;例如:定义两个长度不同的数组Varx1:array[1…10]ofreal;Varx2:array[3…8]ofreal;Proceduremyproc(x:arrayofreal)Begin…end;BeginMyproc(x1);Myproc(x2);End;开放数组是零基准数组,因此数据和下标可能不相符开放数组可以作为数值参数,变量参数,常量参数实现传递也可以直接使用Myproc([1,2,3,4]);Myproc([1,2,3.4.5.6])【例4-1】利用数组求出任意10个数中的最大及最小值。如程序所示【例4-2】利用二维数组建立一个8×8的方阵,该矩阵对角线元素为8,其余元素为1,结果显示在列表组件ListBox1中。如程序所示procedureTForm1.Button1Click(Sender:TObject);vari,ma,mi:integer;a:array[1..10]ofinteger;beginfori:=1to10dobeginrandomize;//初始化随机函数a[i]:=random(i*100);//产生10个随机数edit1.text:=edit1.text+inttostr(a[i])+''end;ma:=a[1];mi:=a[1];fori:=2to10dobeginifma<=a[i]thenma:=a[i];ifmi>=a[i]thenmi:=a[i]end;edit2.text:=inttostr(ma);//输出最大值edit3.text:=inttostr(mi);//输出最小值end;procedureTForm1.FormCreate(Sender:TObject);vara:array[1..8,1..8]ofinteger;i,j:integer;st