[第13课]一维数组

上传人:豆浆 文档编号:48355637 上传时间:2018-07-14 格式:PPT 页数:17 大小:2.59MB
返回 下载 相关 举报
[第13课]一维数组_第1页
第1页 / 共17页
[第13课]一维数组_第2页
第2页 / 共17页
[第13课]一维数组_第3页
第3页 / 共17页
[第13课]一维数组_第4页
第4页 / 共17页
[第13课]一维数组_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《[第13课]一维数组》由会员分享,可在线阅读,更多相关《[第13课]一维数组(17页珍藏版)》请在金锄头文库上搜索。

1、一维数组NOI辅导之Introductionv 前面已经学过了PASCAL中所有的简单数据类型 ,即:字符型、整型、实型、逻辑型、枚举型、子界 型,今天开始学习构造类型。(PASCAL把数据分成 哪几种类型?P119)首先来看下面两个程序:1、输入100个数,然后再按输入的相反顺序打印出来。2、输入50个学生的成绩,然后算出平均成绩,把低于平均分的成绩打印出来。1、输入100个数,然后再按输入的相反顺序 打印出来。v 来看看用数组怎么解决这个问题:FOR I:=1 TO 100 DO READ(A I ); FOR I:=100 DOWNTO 1 DO WRITE(A I );AI就叫做数组元

2、素。 A叫数组名, AI 叫做数组A的第 I 个元素。在编程时用到一批类型相同的数据,为了处理上的 方便,通常以数组的形式来定义这一批数据。 v 2.输入50个学生的成绩,然后算出平均成绩,把低于平均分 的成绩打印出来。 v 一.格式:type chengji= array 1.50 of integer;varcj:chengji;var cj:array1.50 of integer;=类型名下标 (下限-上限 )数组所有元素 的数据类型数组名下标可以是数字,也可以是字符,甚 至可以是枚举和子界型。 但必须是顺序型的数据看看下面的数组定义:TYPECOLOR=(RED,YELLOW,BLU

3、E,WHITE,BLACK);ROWTYPE=ARRAY 1.8 OF REAL;COLTYPE=ARRAY A.E OF INTEGER;COLORTYPE=ARRAY COLOR OF CHAR;VARA:ROWTYPE;B:COLTYPE;C:COLORTYPE; 这三个数组的数组元 素是怎样的呢?二.内存分配v 定义了数组,计算机就会在内 存中划分出一段连续的存储单 元用来存放数组元素的值。 v 例如: Var a:array3.8 of integer; Begina3:=8;a4:=2;a5:=0;a6:=0;a7:=7;a8:=9; End.820079a3 a4 a5 a6 a

4、7 a8每个存储单元有多大的容量?三.数组元素的写入和输出v 写入赋值:数组名代表的并不是一个变量,而是一批变量,因而 ,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结 构来完成这一功能。 for i:=1 to 10 do read(ai); 从键盘读入数组元素的值;最常用的方法 for i:=1 to 10 do ai:=i;数组元素a1到a10的值分别为1到10;数据赋初值 for i:=1 to 10 do ai:=0;数组元素清0;最常用的数据初始化的方法 for i:=1 to 10 do ai:=random(100);随机产生10个100以内的数,赋给各数组元素 v

5、 若事先知道数组元素的值,在常量说明区也可以给这些变量性质的 数组元素赋值。1.CONSTA:ARRAY 1.5 OF INTEGER=(1,2,3,4,5);B:ARRAY C.E OF INTEGER=(100,200,1000);2.TYPEARR=ARRAY1.5 OF INTEGER;CONST A:ARR=(1,2,3,4,5);v数组元素的输出:和数组元素的输入相同,数组元素的输出也不能由一个 write语句直接完成。同样要逐个数组元素输出。通常也用循环 结构来完成这一功能:for i:=1 to 10 do write(ai, );数组元素之间用空格分隔 writeln; 三.

6、数组元素的写入和输出例题1:借助一维数组,生成斐波那契 数列的前20项。v 分析:斐波那契数列为:1 1 2 3 5 8 13 21 34 55 89 144 233 377 6765 v 该数列的特点是:后一项为前两项之和 v 若将该数列存入名为a的数组 内,则:a1=1a2=1a3=a1+a2an=a(n-1)+a(n-2)Program feibo Vara:array1.20 of integer;i:integer; Begina1:=1; a2:=1;for i:=3 to 2o doai:=ai-1+ai-2;for i:=1 to 2o dowrite(ai, ); End.练

7、习:输入50个人的成绩,然后算出平均分,显示低于平均分的成绩。PROGRAM JJZX(INPUT,OUTPUT); VARA:ARRAY 1.50 OF REAL;I:INTEGER; J:REAL BEGINJ:=0; WRITELN(输入成绩:);FOR I:=1 TO 50 DOBEGINREADLN(AI);J:=J+AI 求总分END;J:=J/50; 求平均分FOR I:=1 TO 10 DO IF AIJ THEN WRITELN(AI); END。v 解:表中有两组数据,设表示物品 件数的一组为a,表示物品单价的 一组为b。 v a,b两组数据以序号为关联,具有 相应的顺序关

8、系。按如下方法处理 : v 定义s,a,b三个数组,按相应 顺序关系,给a,b赋值(件数和对 应单价) ; v 每读入一对数据(件数和对应单 价),以同一序号的件数和对应单 价计算出同一物品的计价: v s i =a i * b i ; 用 s i 记入第i种物品的计价 v t = t + s i 用 简单变量累加总计价 v 循环做步骤,做完后输出s数 组所记入的各物品计价及总计价t 。vProgram Exam51; vVar a: array1.8 of integer; a数组为整数型 v s,b: array1.8 of real; s和b数组为实数型 v t: real; v i:

9、integer; vBegin v t:=0; v for i:=1 to 8 do 输入并计算八种物品 v begin v write(a, i, =) ; v Readln(a i ) ; 输入件数 v write(b, i, =) ; v readln(b i ); 输入单价 v s i :=a i * b i ; t:=t+s i v end; v write(i:2, :2); 输出表头i v for i:=1 to 8 do 打印物品序号 v write(i:8); 输出项宽度为8 v writeln; v write(a:2, :2); 输出表头a, v for i:=1 to

10、8 do 打印物品件数a数组 v write(a i :8); 输出项宽度为8 v writeln; 换行 v write(b:2, :2); v for i:=1 to 8 do 打印物品单价b数组 v write(b i :8:2); 输出项宽度为8,小数2位 v writeln; 换行 v write(s:2, :2); v for i:=1 to 8 do 打印物品计价s数组 v write(s i :8:2); 输出项宽度为8,小数2位 v writeln; 换行 v writeln(Totol=, t:8:2); 打印总价t v Readln vend.将a数组中第一个元素移到最后

11、数组末 尾,其余数据依次往前平移一个位置。v 【问题分析】 为完成题目所要求的操作,其 算法应该包括以下几个主要步 骤: 把第一个元素的值取出入在 一个临时单元 temp中; 通过 a2a1, a3a2, a4a3, anan- 1,实现其余元素前移 将 temp值送入an. v program p6-4; const n=10; var a:array1.n of integer; i:integer; temp:integer; begin writeln(reak,n,datas); for i:=1 to n do read(ai); temp:=a1; for i:=1 to n-1

12、 do ai:=ai+1; an:=temp; writeln(Result:); for i:=1 to n do write(ai:3); end. 编程输入十个正整数,然后自动按从大 到小的顺序输出。(选择排序 ) v 问题分析】 要把十个数按从大到小顺序排列 ,则排完后,第一个数最大,第 二个数次大,。 v 因此,我们第一步可将第一个数 与其后的各个数依次比较,若发 现,比它大的,则与之交换,比 较结束后,则第一个数已是最大 的数(最大的泡往上冒) 。 v 同理,第二步,将第二个数与其 后各个数再依次比较,又可得出 次大的数。 v 如此方法进行比较,最后一次, 将第九个数与第十个数比较,以 决定次大的数。于是十个数的顺 序排列结束。 v 请看动画 http:/ /case7.htmlv 如对5个进行排序,这个五个数 分别为8 2 9 10 5。按排序方法, 过程如下: 初始数据 :8 2 9 10 5 第一次排序:8 2 9 10 5 9 2 8 10 5 10 2 8 9 5 10 2 8 9 5 第二次排序:10 8 2 9 5 10 9 2 8 5 10 9 2 8 5 第三次排序:10 9 8 2 5 10 9 8 2 5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号