永发信息网

Pascal语言(Boolean Pascal)中数组概念

答案:3  悬赏:50  手机版
解决时间 2021-04-16 22:21
如题所示···最好给几个 例题谢谢
最佳答案
………… 翻书,书上写的很清楚 让DigeerSun给你一本绿色的书 或者找他要电子版(你要他肯定给) 你打印就行了
全部回答

找DIGGER要电子版的PDF或DOC格式

然后你去打印

打印很便宜的

其实很简单估计你是初学者,但你一看就能会!!!!!

6.1 一维数组

1、定义: var a:array [1..10] of integer; 其中:a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,财时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。 2、数组元素的输入: 数组名代表的并不是一个变量,而是一批变量,因而,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结构来完成这一功能。下面是几个常用输入数组元素的例子: for i:=1 to 10 do read(a[i]); {————从键盘读入数组元素的值;最常用的方法} for i:=1 to 10 do a[i]:=i; {————数组元素a[1]到a[10]的值分别为1到10;数据赋初值} for i:=1 to 10 do a[i]:=0; {————数组元素清0;最常用的数据初始化的方法} for i:=1 to 10 do a[i]:=random(100); {————随机产生10个100以内的数,赋给各数组元素} 3、数组元素的输出: 和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。同样要逐个数组元素输出。通常也用循环结构来完成这一功能: for i:=1 to 10 do write(a[i],' ');{————数组元素之间用空格分隔} writeln;

4、数组的应用: 例1:从键盘输入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.

例2:用筛法求100以内的素数(质数)。

分析:素数是除了1和它本身以外没有其它约数的数。用筛法求素数的方法是:用质数筛去合数:从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了……重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。把所有非0数输出。 program p2; var a:array [1..100] of integer; i,j,k:integer; begin for i:=1 to 100 do a[i]:=i; a[1]:=0;i:=2; while i<=100 do begin k:=i; while k<=100 do begin k:=k+i; a[k]:=0; end; {————上面将所有a[i]的倍数清0} i:=i+1; while a[i]=0 do i:=i+1; {————查找接下来的第一个非0数} end; for i:=1 to 100 do if a[i]<>0 then write(a[i],' '); end.

6.2 二维数组

一维数组在编程中多用于描述线性的关系:如一组数;一组成绩;一组解答等。数组元素只有一个下标,表明该元素在数组中的位置。二维数组在编程中多数用于描述二维的关系:如地图、棋盘、城市街道、迷宫等等。而二维数组元素有两个下标:第一个下标表示该元素在第几行,第二个下标表示在第几列。

1.二维数组的定义: var a:array[1..10,1..5] of integer; 其中:a是数组名,由程序员自定;array和of是定义数组的保留字;(这两点和一维数组定义的格式一样)中括号中的两个范围表示二维数组共有多少行、多少列(第一个范围表示行数,第二个范围表示列数);最后一个表示数组元素的类型,规定和一维数组一样。如上例,定义了一个二维数组a,共有10行5列。 2.使用二维数组: 1、数组元素的指称:数组名[行号,列号]。如第三行第四个元素:a[3,4]。 对某一行进行处理。如累加第4行的数据。则固定行号为4。如:for i:=1 to 5 do s:=s+a[4,i]; 对某一列进行处理。如累加第4列的数据。则固定列号为4。如:for i:=1 to 10 do s:=s+a[i,4]; 2、二维数组的输入输出要用双重循环来控制: for i:=1 to 10 do{————控制行数} begin for j:=1 to 5 do read(a[i,j]){————第一行读入5个元素} readln;{————读入一个换行符} end; {————最常用的方法:从键盘读入数据初始化二维数组} for i:=1 to 10 do for j:=1 to 5 do a[i,j]:=0; {————最常用的方法:将二维数组清0} for i:=1 to 10 do begin for j:=1 to 5 do write(a[i,j]:4); writeln; end; {————最常用的输出方法:按矩阵形式输出二维数组的值}

例1:竞赛小组共有20位同学,这学期每位同学共参与了三项比赛,请统计每位同学的平均分。 分析:定义一个20行3列的二维数组来存放这些成绩。定义一个20个元素的一维数组来存放平均分。 program p1; var a:array [1..20,1..3] of integer; b:array [1..20] of real; i,j:integer; begin for i:=1 to 20 do begin for j:=1 to 3 do read(a[i,j]); readln; end; {————从键盘上读入20个同学的三次竞赛成绩} for i:=1 to 20 do b[i]:=0; {————先将平均分数组清0} for i:=1 to 20 do begin for j:=1 to 3 do b[i]:=b[i]+a[i,j];{————计算总分} b[i]:=b[i]/3;{————计算平均分} end; for i:=1 to 20 do write(b[i]:5:1); {————输出平均分} writeln; end.

8.1子界与枚举

1.子界类型:

当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。

定义如下:

type riqi=1..31;

zimu='A'..'Z';

var day:riqi;

ch1:zimu;

也可以直接定义:

day:1..31;

year:0..200;

ch1:'A'..'Z';

8.2 枚举类型:

通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:   (标识符1,……,标识符n)   例如:   type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)   枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:<   type daystype=('sun','mon','tue','wed','thu','fri','sat')   枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:   type daytype1=(monday,tuesday);   daytype2=(monday,wednesday);   可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)   枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。   例如:已经定义daystype   ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday   但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。   例如:枚举值的输出   case day of   sunday:write('sunday');   monday:write('monday');   tuesday:write('tuesday');   wednesday:write('wednesday');   thursday:write('thursday');   friday:write('friday');   saturday:write('saturday');   end;

练习:

1.按月、日顺序输入今年的一个日期,输出该日是星期几?已知今年元旦是星期一。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
董小飒有钱吗,为什么管董小飒叫董导?
为什么我运行convert跳出来一下就没了?
国俊饭店这个地址在什么地方,我要处理点事
入决斗场需不需要疲劳值
it认证怎么回事?
电脑没声音拉怎么办
“龙”游戏中的5级任务【跳跃】是怎么跳上去
没有一个人英语怎么说,我有一个完整的家。英
胖小通讯(河北大街东段)在哪里啊,我有事要去
是己有能还是已有能弟子规里面的
现在是国庆多少年
办理退学生月票需要什么?
关于象棋的伤感句子,关于下棋的诗句
QQ三国剑士的武器要镶嵌什么东西啊
我的电脑是在韩国买的,怎么用着这么不方便啊
推荐资讯
庆祝升学诗词,升学邀请短信古诗词
电脑扫描出eapusher.dice.se访问时被跳转指向
鑫勃达汽车美容装饰在哪里啊,我有事要去这个
冲锋岛什么职业好!龙人和毒刺!
三国做什么才升级快点、急
DNF里一件30级的传承重甲多少钱?
跪求哈利波特与死圣的正版的电子书txt的
什么叫科学?
关于用户限制问题
大山装饰在哪里啊,我有事要去这个地方
快递从河南许昌到广东惠州需要几天
街头篮球PF学什么技能
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?