文档介绍:第七章数组类型
PASCAL中数据类型
一维数组
多维数组
紧缩字符数组
常见的错误
PASCAL中数据类型
数据类型
基本
类型
构造
类型
指针类型
标准
类型
用户自定
义类型
实数类型
整数类型
字符类型
布尔类型
枚举类型
字界类型
数组类型
集合类型
记录类型
文件类型
顺序
类型
无序类型
一维数组
1、数组类型用来解决简单类型不能解决的问题:
(1)输入50个数,要求程序按输入时的逆序把这50个数打印出来。
(2)输入100名学生某门课程的成绩,要求把高于平均分的成绩打印出来。
程序:
readln(a1,a2,a3,a4,a5);
readln(a6,a7,a8,a9,a10);
readln(a11,a12,a13,a14,a15); ……
如果要求对一千个、一万个数进行处理,可以想象程序会是什么样子。
2、一维数组的定义
TYPE
数组类型名=array [下标] of 数组元素类型;
VAR
数组类型变量表:数组类型名;
例如:
TYPE
art=array [1..10] of real;
VAR
a,b:art;
或者:
VAR
数组类型变量表:
array [下标] of 数组元素类型;
例如:
VAR
a,b:array [1..10] of real;
注意:
1、数组名必须为标识符。
2、下标:必须为顺序类型。一般为枚举类型或字界类型。下标个数决定数组的维数。
3、基类型:数组元素的类型,可以是除文件类型的所有类型。所有数组元素类型相同。
4、TP允许定义一维数组的同时给一维数组的各个元素赋值。但放在常量说明区。如:
Const
a1: array [1..5] of integer = (1,2,3,4,5);
或:type arr=array [1..5] of integer;
const a1 : arr=(1,2,3,4,5);
3、数组元素的引用
(1)引用形式
数组名[下标表达式]
如:a[1]:=1;writeln(a[1]);
(2)数组元素可以象同类型的变量那样使用,可以出现在相应的表达式中、赋值号左边以及输入输出语句中,但不能整体读、写。
(3)同类型的数组可以整体拷贝(赋值)和作为参数传递。如:数组a和数组b是同一类型的,如果数组a有值,则:b:=a 。等价:
for I:=1 to 10 do b[i]:=a[i];
4、一维数组的存放
1
2
3
4
5
a[1]
a[2]
a[3]
a[4]
a[5]
顺序存放数组元素
例如:Const
a1: array [1..5] of integer = (1,2,3,4,5);
例1:输入5个考分数,计算它们的总分。
program xoi00_03;
Type TScore=Array[1..5] of integer;
var score:TScore; i:integer;sum:integer;
begin
for i:=1 to 5 do
begin
write('Enter Number #',i);
readln(score[i]);
end;
sum:=0;
for i:=1 to 5 do
begin
sum:=sum+score[i];
end;
writeln('Total Score is:',sum);
end.
例2:从键盘输入10个数,将这10个数逆序输入,
并求这10个数的和,输出这个和。
program p1;
var
a: array[1..10] of integer;
i, s: integer;
begin
for i := 1 to 10 do
read(a[i]);
for i := 10 downto 1 do
write(a[i], ' ');
writeln;
s := 0;
for i := 1 to 10 do
s := s + a[i];
writeln('s=', s);
end.