云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 挺好的pascal教程

挺好的pascal教程

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 7:03:13

type 类型标识符=array[常量1…常量2] of 元素类型

在type部分定义了数组类型后,就可以在var部分定义该类型的数组了。 var

数组名:数组类型名 例如:

type

xsmd=array[1..10] of integer var

x:xsmd;

在type部分,定义了一个名为xsmd的数组类型,这个数组包含10个元素,元素的下标范围是1到10,每个元素的数据类型都是整形。

在var部分,我们定义了一个名为x的数组,它具有xsmd所定义的所有特征。因此数组x包含10个元素,分别是x[1]、x[2]、x[3]、…、x[10],每个元素的数据类型都是整形。

第二种:

不定义数组类型标识符,直接定义数组变量,

var

变量名:array[下标下界..下标上界] of 元素类型

例如:

var x:array[1..10] of integer

这段程序直接定义了一个名为x的数组,它包含10个元素,元素的下标范围是1到10,每个元素的数据类型都是整型。

需要注意的是:

数组的下标可以是任何一种有序类型,例如整型、字符型、布尔型、枚举型等,并且可以从这个类型中的任意一个值开始编排,而不一定从1开始;数组的基类型可以是pascal语言中的任何数据类型,包括自定义类型。

错误的是:下界大于上界、不是有序类型、上下界是变量 例子:中学版p109 演示:中学版p109

二、一维数组

一维数组是指只有一个下标的数组,元素只按一个方向排列,适用于处理一行数据。例如上面我们所举得例子。

一维数组举例: 1、 type

wyj=array[1..10] of real var

a,b:wyj;

定义wyj为一个数组类型,这个数组由10个元素组成,它的下标为1到10。每个元素类型为real。

a、b都是wyj类型的数组变量, a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 1.25 3.17 4.89 2.31 -0.57 5.24 7.81 -3.52 1.93 8.45 下标可以是表达式。例如当i=3时,a[i]的值为4.89,a[2*i-1]的值是-0.57 2、 type

day=(sun,mon,tue,wed,thu,fri,sat); a1=array[day] of integer; a2=array['a',..'z'] of boolean; a3=array['a'..'z'] of integer; var c:a1; d:a2;

e:a3;

数组c由7个整型元素组成,下标是枚举类型day,其值可以用来表示在一星期内每天出席的人数。例如 c[sun] c[mon] c[tue] c[wed] c[thu] c[fri] c[sat] 35 28 30 32 34 29 30 数组d由26个布尔型元素组成,数组的元素可以用来表示相应的字母是否出现,若出现了,值就为true,未出现值就为false。例如 d['a'] d['b'] d['c'] d['d'] d['e'] ... d['z'] true false true true false ... false 数组e由26个整型元素组成,数组元素的值可以用来表示相应字母出现的次数,例如: d['a'] d['b'] d['c'] d['d'] d['e'] ... d['z'] 8 0 5 4 0 ... 0 例2、对下列问题定义数组 1、100名学生的数学成绩

2、表示50名学生的及格或者不及格情况。 解1、var sxcj:array[1..100] of real; 解2、var dj:array[1..50] of boolean;

例3、输入10个数,同时输出这些数。 program li_3; var

n:array[1..10] of integer; i:integer; begin

for i:=1 to 10 do begin

read(n[i]); write(n[i]); end; readln; end.

例4、输入10个数,要求程序按输入时的逆序把这10个数打印出来。 program li_4; var

n:array[1..10] of integer; i:integer; begin

for i:=1 to 10 do read(n[i]); readln;

for i:=10 downto 1 do write(n[i]); writeln; end.

例5、借助一维数组,生成斐波那契数列的前20项。 program li_5; var

n:array[1..20] of integer; i:integer; begin

n[1]:=1; n[2]:=1;

for i:=3 to 20 do n[i]:=n[i-1]+n[i-2]; for i:=1 to 20 do write(n[i],' '); readln; end.

例6、输入5个学生某门课程的成绩,打印出低于平均分的学生序号和成绩 program li_6;

var

a:array[1..5] of integer; i,tot:integer; ave:real; begin tot:=0;

for i:=1 to 5 do begin

read(a[i]); tot:=tot+a[i]; end; ave:=tot/5; for i:=1 to 5 do

if a[i]

例7,从键盘输入5个整数,按升序(从小到大)进行排序,并输出结果。 方法1:纯粹的冒泡法 program li_7; var

n:array[1..5] of integer; i,j,t:integer; begin

for i:=1 to 5 do read(n[i]); for i:=1 to 4 do for j:=i+1 to 5 do if n[i]>n[j] then begin

t:=n[i]; n[i]:=n[j]; n[j]:=t; end; for i:=1 to 5 do write(n[i],' '); end.

我们会发现这种方法两两比大小进行比较的次数是5+4+3+2=14次。(注意是比较,不是交换,交换次数要根据具体数据来)。其实以后我们学算法的时候,还有发现,其实排序有很多种方法呢。

例8. 将a数组中的第一个元素移到最后数组末尾,其余数据依次往前平移一个位置。 program li_8; const n=10; var

a:array[1..n] of integer; i:integer; begin

for i:=1 to n do read(a[i]); for i:=2 to n do write(a[i],' '); write(a[1]); readln; end.

这样做对吗? program li_8; const n=10; var

a:array[1..n] of longint; i,t:integer; begin

for i:=1 to n do read(a[i]);

t:=a[1];

for i:=1 to n-1 do a[i]:=a[i+1]; a[n]:=t;

for i:=1 to n do write(a[i],' '); end.

爸爸的话:编程要多做练习;算法不是唯一的,有很多种。 简单的一维数组练习: 1、求5个数的和是多少?

2、求n个数的和是多少?(n<100)

3、借助一维数组,生成斐波那契数列的前20项 4、输入n个数,求最大的数 program lian_4;

var a:array[1..1000] of longint; i,n,b:longint; begin read(n);

for i:=1 to n do read(a[i]); b:=a[1];

for i:=1 to n do

if b

5、输入n个数,求最大的数位于n个数的第几个 program lian_5;

var a:array[1..1000] of longint; i,n,b,t:longint; begin read(n);

for i:=1 to n do read(a[i]); b:=a[1];

for i:=1 to n do if b

t:=i; {把序号赋值给变量,不赋值给变量,找不到序号} end;

writeln('xuhao',t,' ',b); readln; end.

6、输入n个数,求第二大的数。

不同的数据量,决定了可以采用不能的方法,数据量大,适合少用循环,比如n是1个亿,如果用循环排序的方法,显然电脑计算次数多,导致效率低下。

如果数据量大,而且不是求第二大的数,而是求第m大的数,则需要用排序的方法。 下面介绍2中算法:

方法1,使用循环2次的方法求第二大。 program lian_6; var

a:array[1..1000] of longint; i,b,c,n:longint; begin

readln(n);

for i:=1 to n do read(a[i]); {读数组a中的每一个元素的值} b:=a[1]; c:=0;

for i:=2 to n do if bc) then c:=a[i]; {小于最大的,再比一下即可找出第

搜索更多关于: 挺好的pascal教程 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

type 类型标识符=array[常量1…常量2] of 元素类型 在type部分定义了数组类型后,就可以在var部分定义该类型的数组了。 var 数组名:数组类型名 例如: type xsmd=array[1..10] of integer var x:xsmd; 在type部分,定义了一个名为xsmd的数组类型,这个数组包含10个元素,元素的下标范围是1到10,每个元素的数据类型都是整形。 在var部分,我们定义了一个名为x的数组,它具有xsmd所定义的所有特征。因此数组x包含10个元素,分别是x[1]、x[2]、x[3]、…、x[10],每个元素的数据类型都是整形。 第二种: 不定义数组类型标识符,直接定义数组变量,

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com