《Pascal中子界类型、数组类型讲解.ppt》由会员分享,可在线阅读,更多相关《Pascal中子界类型、数组类型讲解.ppt(25页珍藏版)》请在三一办公上搜索。
1、Pascal变量类型,子界类型、数组类型,目录,子界类型.1 描述.1 定义.2 习题 1 年级人数.4数组类型.5 描述.5 定义.6,单击此处浏览目录第二页。,目录,读入、输出.10 定位.16 习题 2数字方阵.18,单击此处浏览目录第一页。,子界类型之描述,子界类型属于一种自定义类型,在FreePascal中可以对变量值得范围进行控制,从而更大可能增加程序的可靠性,不必对输入范围超出可认定范围而枉费心血去加判断语句。同时,在定义数组类型的变量中,也需要用到这种子界类型。,01,子界类型之定义,02,子界类型有两种定义方法分别如下。第一种:type 名称=下界.上界;变量名:你之前给ty
2、pe后面写的名字;例如:type apple=1.100;var score:apple;,子界类型之定义,03,第二种:变量名:下界.上界;例如:var score:1.100;,注意点:变量范围必须是字符型或整数类型。和case语句相同。,习题 1 年级人数,04,【题目描述】已知一年级有400人,二年级有500人,三年级501人,四年级450人,五年级510人,六年级600人。输入年级数,之后输出年纪人数。年级数必须是1到6,否则报错。【输入要求】【输入样例1】一个1到6的整数。6【输出要求】【输出样例1】整数类型,场宽5。600【输入样例2】【输出样例2】7(报错),查看答案,习题 1
3、 答案,04A,数组类型之描述,05,数组可以被看做同一类型的多个数据的一个集合。用数组下标(编号)来区分或指定每一个数组元素。FreePascal能开数组空间数量比Tubbo Pascal多很多。因此,在需要特别多空间进行数据存储时,建议使用FreePascal进行程序的编写。,一维数组之定义,一维数组有两种定义方式,分别如下:第一种:type 自定义名称=array下界.上界 of 数据类型;var 变量名:自定义名称;例如:type dress=array1.100 of integer;var a:dress;注:刚才我们定义的一维数组相当于一张1行,100列的表格。,06,一维数组之
4、定义,一维数组有两种定义方式,分别如下:第二种:var 变量名:array下界.上界 of 数据类型;例如:var a:array1.100 of longint;,07,二维数组之定义,08,二维数组有两种定义方式,分别如下:第一种:type 自定义名称=array行下标值,列下标值 of 数据类型;var 变量名:自定义名称;例如:type dress=array1.50,1.100 of integer;var a:dress;注:刚才我们定义的二维数组相当于一张50行,100列的表格。,二维数组之定义,二维数组有两种定义方式,分别如下:第二种:var 变量名:array行下标值,列下标
5、值 of 数据类型;例如:var a:array1.50,1.100 of longint;注:行下标值、列下标值可以不从1开始。,09,一维数组之读入、输出,一维数组的全部读入需要一个循环变量,下面是读入所有元素的程序:var a:array1.100 of integer;i:integer;begin for i:=1 to 100 do read(ai);end.,10,一维数组之读入、输出,一维数组的全部输出需要一个循环变量,下面是输出所有元素的程序(末尾有空格):var a:array1.100 of integer;i:integer;begin for i:=1 to 100
6、do write(ai,);end.,11,一维数组之读入、输出,如果末尾不能有空格,那么程序就是这样的:var a:array1.100 of integer;i:integer;begin write(a1);for i:=2 to 100 do write(,ai);end.,12,二维数组之读入、输出,二维数组的全部读入需要两个循环变量,靠外的一层控制行,另一层循环控制列,下面是读入所有元素的程序:var a:array1.100,1.100 of integer;i,j:integer;begin for i:=1 to 100 do for j:=1 to 100 do read(
7、ai,j);end.,13,二维数组之读入、输出,二维数组的全部输出需要两个循环变量,下面是输出所有元素的程序(末尾有空格):var a:array1.100,1.100 of integer;i,j:integer;begin for i:=1 to 100 do for j:=1 to 100 do write(ai,j,);end.,14,二维数组之读入、输出,如果末尾不能有空格,那么程序就是这样的:var a:array1.100,1.100 of integer;i,j:integer;beginfor i:=1 to 100 do write(i,1);for j:=2 to 10
8、0 do write(,ai,j);end.,15,一维数组之定位,16,a1 a2 a3 a4 a5,这是一个有5个元素的一维数组,假如说输出其中一个元素,那么程序解释如下:write(a下标);假如要读入第五个元素,那么程序是这样的,其他操作以此类推:read(a5);,二维数组之定位,17,二维数组之定位,之前呈现的是一个四行四列的二维数组,一般输出某个内容的程序是这样的:write(行号,列号);例如输出第三行第四列的程序是:write(3,4);剩下的以此类推。,18,习题2数字方阵,【题目描述】读入一个数字,利用二维数组根据要求和样例输出数字方阵。【输入要求】【输出要求】一个整数。每个数字场宽为三。【输入样例】4【输出样例】1 2 3 4 5 6 7 8 9 10 11 12 13 14 45 16,19,查看答案,习题 2 答案,var a:array1.100,1.100 of integer;n,i,j,k:longint;begin read(n);k:=1 for i:=1 to n do begin for j:=1 to n do begin write(k:3);k:=k+1;end;writeln;end;end.,The end.,