一维数组 2.ppt_第1页
一维数组 2.ppt_第2页
一维数组 2.ppt_第3页
一维数组 2.ppt_第4页
一维数组 2.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 数组,var p:real; n,i,x,s:integer; begin readln(n); s:=0; for i:= 1 to n do begin read(x) s:=s+x; end; p:=s/n; writeln(p:0:2); end.,编程实现,输入n个100以内的整数,输出平均分,保留两位小数,如何要求在输出平均值同时还要输出高于平均值的数,程序如何修改?,要求有变量保存生成的数,如果要保留n个数要有多少变量?,var p:real; n,i,x,s:integer; begin readln(n); s:=0; for i:= 1 to n do begin

2、read(x); s:=s+x; end; p:=s/n; writeln(p:0:2); end.,编程实现,输入n个100以内的整数,如何要求在输出平均值同时还要输出高于平均值的数。(n在20以内),var p:real; n,i,s:integer; x:array1.20 of integer; begin readln(n); s:=0; for i:= 1 to n do begin read(xi); s:=s+xi; end; p:=s/n; writeln(p:0:2); for i:=1 to n do if xip then write(xi, ) end.,样例: 输入

3、: 3 50 60 55 输出: 55.00 60,a1,a2,a3,an,a1,a2,a3,an,数组,名字相同下标不同的一组数,Pascal数据类型,简单类型 标准类型: 整型、实型、字符型、布尔型、字符串型 自定义类型:枚举型、子界型 构造类型数组类型、集合类型、记录类型和文件类型 指针类型,type,integer real char boolean string,a1,a2,a3,an,一维数组,数组定义,type data=array1.50 of integer; var x:data;,数组是一个整体,数组名是一个整体的标识,要想使用数组中的元素,只能通过下标才能实现。数组下标

4、可以是一个表达式。下标类型必须是有序的,可以是整型、字符型、布尔型、枚举型、子界型等,var x:array 1.50 of integer;,方式一,先构造,再定义,x为数组变量,方式二,构造与定义同时,对下列问题定义数组 1、100名学生的数学成绩 2、表示50名学生的及格或不及格情况 3、每天学生出勤情况,按星期一至星期五计算,数组的基本操作,数组的输入、输出 数组元素的查找 数组元素的移动 数组元素的插入 数组元素的删除,题目:1117-1122,1.输入10个数,按顺序输出这10个数 for i:=1 to 10 do begin read(ai); write(ai); end.,

5、题1117:【入门】数组逆序 Description 给你m个整数,将其逆序输出 Input 第一行一个整数m(3 = m = 100 ):数的个数 第二行m个整数(空格隔开)(这些数在0-9999999之间) Output m个整数(空格隔开) Sample Input 3 1 7 5 Sample Output 5 7 1,题1118:【入门】数组元素的查找 给你m个整数,查找其中有无值为n的数,有则输出该数第一次出现的位置,没有则输出-1。 Input 第一行一个整数m:数的个数 ( 0 = m = 100 ) 第二行m个整数(空格隔开)( 这些数在 0-999999范围内 ) 第三行为

6、要查找的数n Output n的位置或-1 Sample Input 4 1 2 3 3 3 Sample Output 3,顺序查找法,从头开始,根据给定的值,依次与数组中元素进行比较,相同即为找到,若查遍整个数组仍然没有,则表示该元素不存在。,数组元素的查找,i,X,题1118:【入门】数组元素的查找 给你m个整数,查找其中有无值为n的数,有则输出该数第一次出现的位置,没有则输出-1。 Input 第一行一个整数m:数的个数 ( 0 = m = 100 ) 第二行m个整数(空格隔开)( 这些数在 0-999999范围内 ) 第三行为要查找的数n Output n的位置或-1 Sample

7、Input 4 1 2 3 3 3 Sample Output 3,program ex1118; var m,i,n:integer; a:array1.101 of longint; f:boolean; begin readln(m); for i:=1 to m do read(ai); read(n); f:=false; for i:=1 to m do if n=ai then begin f:=true; break; end; if f=true then writeln(i) else writeln(-1); end.,n,【基础】小冬冬历险记 【试题描述】 小冬冬历险记

8、:小冬冬来到一条河边,河中有排成一直线的几个石墩,每个石墩上面有一枚金币,小冬冬为了凑一些盘缠,决定跳到这些石墩上拿这些金币,读入小冬冬一次跳跃的最大距离和每个石墩离开岸边的距离(不考虑石墩本身的大小,只要一次跳跃的最大距离大于等于石墩的间隔距离就算可以到达),问最多能拿到几枚金币。 如下示意图: 【输入描述】 第一行:一个整数x,即一次跳跃的最大距离(1x30) 第二行:石墩的个数n(0n20) 第三行:n个整数,用空格隔开,表示每个石墩离开河岸的距离ai(0ai500)(输入石墩的距离已排序) 【输出描述】 一个整数,即可以拿到的最多金币数 【输入样例】 5 6 4 8 13 20 25

9、26 【输出样例】 3 【解题提示】 一次跳跃的最大距离为5,每个石墩间的距离为4、4、5、7、5、1(第一个数字4是第一个石墩离开岸边的距离,后面的数字是当前石墩离开前一个石墩的距离),只有前三个石墩才能到达,后面跳不过去了(因为一次跳跃达不到7),就拿不到了,所以只能拿到3枚金币。,program ex; var a,b:array1.30 of integer; x,n,i,s:integer; begin read(x); read(n); for i:=1 to n do read(ai); b1:=a1; for i:=2 to n do bi:=ai-ai-1; for i:=1

10、 to n do if bix then break else inc(s); write(s); end.,1120: 【入门】数组元素的移动 题目描述 数组元素的移动,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后原来的第x个位置的元素放在最后 输入 有3行 第一行有一个整数n 第二行有n个整数 第三行有一个整数x 输出 移动后的数组 样例输入 8 1 2 3 4 5 6 7 8 1 样例输出 2 3 4 5 6 7 8 1,第一步:,1,第二步:,第三步:,取出A1中的数放t中,后面所有元素向前移动,将t中的值放到A10处,数组元素的移动,1,1120:

11、 【入门】数组元素的移动 题目描述 数组元素的移动,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后原来的第x个位置的元素放在最后 输入 有3行 第一行有一个整数n 第二行有n个整数 第三行有一个整数x 输出 移动后的数组 样例输入 8 1 2 3 4 5 6 7 8 1 样例输出 2 3 4 5 6 7 8 1,program ex1; var i,t,n,m:integer; x:array1.100 of longint; begin readln(n); t:=xm; for i:=1 to n do read(xi); for i:= m to n-1

12、 do xi:=xi+1; xn:=t; begin for i:=1 to n-1 do write(xi, ) writeln(xn); end.,program ex1; var i,t,n,x:longint; a:array1.100 of longint; begin readln(n); for i:=1 to n do read(ai); readln(x); t:=ax; for i:= x to n-1 do ai:=ai+1; an:=t; for i:=1 to n-1 do write(ai, ) writeln(an); end.,题1122:数组元素的删除,把一个

13、数组的第x个位置的元素删除掉 Input 有三行 第一行有一个整数n 第二行有n个整数 第三行有一个整数x,为要删除的位置 Output 输出更新后的数组 Sample Input 5 1 2 3 4 5 3 Sample Output 1 2 4 5,数组元素的删除,删除一组数组中的第p个元素,1121: 【入门】数组元素的插入 题目描述 在一个数组的第x个位置插入一个新的数y 输入:有四行 第一行有一个整数n ( 5 = n = 10 )第二行有n个整数 第三行有一个整数x,为要插入的位置 第四行有一个整数y,为要插入的整数 输出:更新后的数组 样例输入 5 7 2 3 4 5 2 9 样

14、例输出 7 9 2 3 4 5,-n,-a ,-x,-y,1121: 【入门】数组元素的插入,A6,A5,A4,A3,A2,A1,5,4,3,2,7,9,第2个位置上,如何移动的问题,5-6 4-5 3-4 2-3,1121: 【入门】数组元素的插入,A6,A5,A4,A3,A2,A1,5,4,3,2,7,5 6 4 5 3 4 2 3,for i:=5 downto 2 do,for i:=6 downto 3 do,:=,n-1,x,ai+1,ai,:=,ai,ai-1,n,X+1,1121: 【入门】数组元素的插入 题目描述 在一个数组的第x个位置插入一个新的数y 输入:有四行 第一行有

15、一个整数n ( 5 = n = 10 )第二行有n个整数 第三行有一个整数x,为要插入的位置 第四行有一个整数y,为要插入的整数 输出:更新后的数组 样例输入 5 7 2 3 4 5 2 9 样例输出 7 9 2 3 4 5,A6,A5,A4,A3,A2,A1,-n,-a ,-x,-y,5,4,3,2,7,for i:= downto do,n,x,ai+1:=ai,题1119:【入门】元素插入有序数组,Input 第一行一个整数n :等待插入的数 第二行一个整数m :数列中数的个数 第三行m个整数(空格隔开) Output 一行整数:新的数列(空格隔开) Sample Input 2 4 1

16、 3 4 5 Sample Output 1 2 3 4 5,p,插入的位置要找,var m,n,i,w:longint; x:array1.100 of longint; begin readln(n); readln(m); for i:=1 to m do read(xi); w:=1; while (nxw) and (w=m) do inc(w); for i:=m downto w do xi+1:=xi; xw:=n; for i:=1 to m do write(xi, ); write(xm+1); end.,练习 小明做操,【试题描述】 做操的时间到了,小明在教室还在思考刚刚老师讲的一道题目,当他想通这个题时,同学们都已经在操场上排好队了,他赶快跑到操场上找到自己的班级队伍,希望尽快找到以前排队的位置,准备做操,小明记得应该排在第x学号同学的后面。你能不能来帮帮小明呢? 【输入描述】 输入(两行): n x y(现在队伍的长度、第x同学的学号、小明的学号) n个同学的学号(5位整数) 【输出描述】 n+1个学号(小明加入队伍后队伍中的每个数据) 【输入样例】 4 34123 23483 34812

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论