NOIP全国青少年信息学奥林匹克联赛复习Pascal——数组PPT学习教案_第1页
NOIP全国青少年信息学奥林匹克联赛复习Pascal——数组PPT学习教案_第2页
NOIP全国青少年信息学奥林匹克联赛复习Pascal——数组PPT学习教案_第3页
NOIP全国青少年信息学奥林匹克联赛复习Pascal——数组PPT学习教案_第4页
NOIP全国青少年信息学奥林匹克联赛复习Pascal——数组PPT学习教案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1NOIP全国青少年信息学奥林匹克联赛复全国青少年信息学奥林匹克联赛复习习Pascal数组数组想一想:下列数组这定义对不对,如不对,为什么?Var a:array1.n of char; b:array10.1 of integer; c:arrayinteger of boolean; d:array1.0.3.0 of real; e:array1.50000 of real;说明:说明:a数组中数组中n为变量;为变量; b数组中,下标的上下界应从小到大;数组中,下标的上下界应从小到大; c、e数组元素个数太多,空间分配不够;数组元素个数太多,空间分配不够; d数组下标为实型,不是有

2、序类型。数组下标为实型,不是有序类型。第1页/共15页第2页/共15页Program ex6-2(input,output); const n=10; var a:array1.n of integer; I:integer; temp:integer; begin for I:=1 to n do read(aI); temp:=a1; for I:=1 to n-1 do aI:=aI+1; an:=temp; for I:=1 to n do write(aI:3);End. 1 2 3 4 n-1 n2 3 4 n-1 n 1第3页/共15页第4页/共15页Program ex6-3(

3、input,output); const n=100; var a:array1.n+1 of integer; 如果如果x插入,数组插入,数组x将增加一个数据将增加一个数据 x:integer; I,j:integer; begin for I:=1 to n do read(aI); read(x); an+1:=x; 将将an+1设为设为x,可以作为后面比较的结束标志,可以作为后面比较的结束标志 I:=1 ; while aIx do I:=I+1; 循环结束时,循环结束时,I即为需要插入或删除的位置即为需要插入或删除的位置 if I=n+1 then write(Not found a

4、nd no place to insert.) x大于数组大于数组a中所有元素中所有元素,无需无需处理处理 else if aI=x then begin 找到找到x,删除,删除 writeln(found and deleted. Result:); for j:=I to n-1 do aj:=aj+1; 数据前移数据前移 for j:=1 to n-1 do write(aj:3); end else begin 没找到没找到x,插入,插入 writeln(not found and insert. Rusult:); for j:=n+1 downto I+1 do aj:=aj-1;

5、 数据后移数据后移 aI:=x; for j:=1 to n+1 do write(aj:3); end; writeln; end. 第5页/共15页第6页/共15页Program maopao_sort(input,output); const n=10; var a:array1.10 of integer; I,j,temp:integer; begin for I:=1 to n do read(aI); for I:=1 to n-1 do for j:=n-1 downto i do if aj+1ai+1 then begin temp:=ai; ai:=ai+1;ai+1:=

6、temp; t:=false; end until t ; writeln; for I:=1 to n do write(aI:4);End.第8页/共15页分析:在标准类型分析:在标准类型中,长整型范围是中,长整型范围是-2147483648-21474483647,而二而二进制数进制数 10000000000的十的十进制数为进制数为1024,因,因此如果直接来转换此如果直接来转换会出现数据溢出。会出现数据溢出。为了能更好存储二为了能更好存储二进制的各个位数,进制的各个位数,可以采用数组。假可以采用数组。假定输入的数据是长定输入的数据是长整型,则存储二进整型,则存储二进制数的数组长度为制数

7、的数组长度为32。十十二的方法是除以二的方法是除以2反向取余法。反向取余法。 Program ex6-5(input,output); var bin:array0.50 of 0.1; x:longint; k,I:integer; Begin read(x); for I:=0 to 50 do binI:=0; 将数组清将数组清0 k:=0; while x0 do begin bink:=x mod 2; x:=x div 2; k:=k+1; end; write(二进制为二进制为:) for I:=k-1 downto 0 do write(binI:1); end. 第9页/共1

8、5页1252011841661015219118137143179设和存放在设和存放在S S中,我们不妨先确定一个序,即确定第一中,我们不妨先确定一个序,即确定第一个数的位置和最后一个数的位置。假设圆盘上的个数的位置和最后一个数的位置。假设圆盘上的2020个数个数中中5 5为第一个数,为第一个数,1212为最后一个数。则可将这为最后一个数。则可将这2020个数放个数放在在a a数组中。数组的下标取数组中。数组的下标取0-190-19。0Imax then begin max:=s;smax:=I;end; if smin then begin min:=s; smin:=I; end; end

9、; write(max:,asmax:2);for I:=1 to 3 do write(+,asmax+I mod 20:2); write(=,max); writeln(start from,smax+1); write(min:,asmin:2);for I:=1 to 3 do write(+,asmin+I mod 20:2); write(=,min);writeln(start from ,smin+1); end. 第11页/共15页第12页/共15页Program ex6-7(input,output); var score:arrayA.D of integer; nam

10、e:array1.4 of char; I,j:integer; select,ch:char; begin read(select); for ch:=A to D do scorech:=0; 将将score数组清数组清0 for I:=1 to 4 do nameI:=chr(ord(A)+I-1); name数组初始化为数组初始化为A、B、C、D while select# do begin if select in A,B,C,D then 有效票有效票 scoreselect:=scoreselect+1; 对应候选人得票数加对应候选人得票数加1 read(select); end; for I:=1 to 3 do for j:=I+1 to 4 do if scorenameIscorenamej then根据票数确定名次根据票数确定名次 begin ch:=nameI; nameI:=namej;namej:=ch; e

温馨提示

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

评论

0/150

提交评论