NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt

NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt

ID:49368460

大小:181.00 KB

页数:15页

时间:2020-02-04

NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt_第1页
NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt_第2页
NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt_第3页
NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt_第4页
NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt_第5页
资源描述:

《NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组1.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数组(一)1、一维数组Type类型标识符号=array[下标类型]of元素类型;Var数组名:类型标识符;orVar数组名:array[下标类型]of元素类型;定义:例6-1定义如下数组:(1)表示20种商品的价格;(2)表示30件邮件的安全邮递情况;(3)统计50个学生在一次考试(满分为100,最低分为0分)中各分数的分布情况;(4)统计一篇文章中各字母的出现频率(所有字母均小写)。Varprice:array[1..20]ofreal;mail:array[1..30]ofboolean;score:array[0..100]ofinteg

2、er;number:array[‘a’..’z’]ofinteger;共有20个实型数,price[1]-price[20]共有50个布尔型数,mail[1]-mail[30]共有101个整型数,score[0]-score[100]共有26个整型数,number[‘a’]-number[‘z’]想一想:下列数组这定义对不对,如不对,为什么?Vara:array[1..n]ofchar;b:array[10..1]ofinteger;c:array[integer]ofboolean;d:array[1.0..3.0]ofreal;e:arra

3、y[1..50000]ofreal;说明:a数组中n为变量;b数组中,下标的上下界应从小到大;c、e数组元素个数太多,空间分配不够;d数组下标为实型,不是有序类型。一维数组的基本操作:1、数组的赋值、输入、输出例6-1按顺序读入10个数,再以逆序的方式输出。分析:可以定义一个10个元素的数组,用循环读入、输出。Programex10-1(input,output);varx:array[1..10]ofinteger;I:integer;beginforI:=1to10doread(x[I]);writeln(‘fanxushuchu:’);f

4、orI:=10downto1dowrite(x[I]:3);end.本例将数组下标作为循环变量,便于数组的输入、输出运行结果:10310-27789091–4821218–4199078–2703110fanxushuchu:数组元素的赋值可以用赋值语句。2、数组元素的移动例6-2将a数组中第一个元素移动到最后数组末尾,其余数据依次往前平移一个位置。P85分析:(1)先将第一个元素取出放在临时单元中;(2)将a[2]a[1]、a[3]a[2]…a[n]a[n-1](3)再将临时单元tempa[n]Programex6-2(input,o

5、utput);constn=10;vara:array[1..n]ofinteger;I:integer;temp:integer;beginforI:=1tondoread(a[I]);temp:=a[1];forI:=1ton-1doa[I]:=a[I+1];a[n]:=temp;forI:=1tondowrite(a[I]:3);End.思考:如果将最后一个元素移到第一个位置,其余数据依次向后平移一个位置,如何修改?如果将数组实现逆序交换,又该如何修改程序?…1234n-1n234n-1n1…例6-3对于数组a,输入一个测试数据x,如果x

6、存于数组a,则把x元素删除;否则将x插在相应的位置,要求数组仍然有序(假设数组递增)分析:本题是一个查找问题。查找的最常用方法是顺序查找和二分查找。我们先采用顺序查找,二分查找以后再讲。顺序查找的过程是:从头开始,根据给定的值,依次与数组中的数进行比较,相同即为找到,若查遍整个数组仍然没有,则表示该元素不存在。由题意知:本题查询的条件是数组的元素小于x,若发现有数据与x相等,则将删除该数,否则,若数组中的数大于x,则此处就是插入x的位置。注意:如果是删除,则将x后的数向前平移一个;如果是插入,则先将x插入点的元素依次向后平移。3、数组元素的查找

7、、插入、删除Programex6-3(input,output);constn=100;vara:array[1..n+1]ofinteger;{如果x插入,数组x将增加一个数据}x:integer;I,j:integer;beginforI:=1tondoread(a[I]);read(x);a[n+1]:=x;{将a[n+1]设为x,可以作为后面比较的结束标志}I:=1;whilea[I]

8、’){x大于数组a中所有元素,无需处理}elseifa[I]=xthenbegin{找到x,删除}writeln(‘foundanddeleted.R

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。