《循环和数组.ppt》由会员分享,可在线阅读,更多相关《循环和数组.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、循环和数组循环和数组 知识回顾知识回顾分析:1、重复执行的操作:输入一个数;判断这个数是什么数?2、重复次数?10次习题一习题一 输入输入1010个数个数,统计它们中正统计它们中正数、负数和零的个数。数、负数和零的个数。样程:program xt1;var a:real;x,y,z,i :integer;begin x:=0;y:=0;z:=0;for i:=1 to 10 do begin readln(a);if a0 then x:=x+1 else if a=0 then y:=y+1 else z:=z+1 end;write(x,y,z);end.习题二习题二键入一个自然数,求这个
2、自然数键入一个自然数,求这个自然数的所有约数之和的所有约数之和S。输入一个自然数输入一个自然数 X累加器清零累加器清零 s0For I1 to x doX mod I=0truefalseSS+I输出结果输出结果例如,当例如,当n=n=,r=3,r=3时,所有组合为时,所有组合为:total=10 total=10 组合的总数组合的总数 练习一练习一 找出找出n n个自然数个自然数(1,2,3,(1,2,3,n)n)中中r r个数的组合。个数的组合。分析分析 n个数中r的组合,其中每r个数中,数不能相同。另外,任何两组组合的数,所包含的数也不应相同。例如,、与、。为此,约定前一个数应大于后一个
3、数。当r=3时,可用三重循环进行搜索。样程:Program lx1;const n=5;r=3;var i,j,k,t:integer;begin t:=0;for i:=n downto r do for j:=i-1 downto r-1 do for k:=j-1 downto 1 do begin t:=t+1;writeln(i:3,j:3,k:3);end;writeln(total=,t);end.一、数组元素的移动习题:将a数组中第一个元素移到数组的末尾,其余数据依次往前平移一个位置(数组元素个数n及数组元素均从键盘输入,n100)。例如:输入:51023345383输出:23
4、34538310123n-1n234n-1n1演示:算法:算法:1、把第一个元素的值取出放在一个临时、把第一个元素的值取出放在一个临时单元单元temp中;中;2、通过、通过a1a2、a2a3、a3a4、an-1an,实现其余元素前移;实现其余元素前移;3、将、将temp值送入值送入an。Var a:array1.100 of longint;n,temp,i:longint;begin readln(n);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(
5、ai,);end.样程:二、数组元素的查找与删除练练习习:对对于于一一个个数数组组a,元元素素个个数数为为n(n值值从从键键盘盘输输入入,nmaxtruefalsemaxaipifor ip to n-1 do aiai+1nn-1;输出新数组输出新数组;输出输出max样程:program ex;vara:array1.100 of integer;n,max,p,i:integer;begin readln(n);for i:=1 to n do read(ai);p:=1;max:=a1;for i:=2 to n do if aimax then begin max:=ai;p:=i;e
6、nd;for i:=p to n-1 do ai:=ai+1;n:=n-1;for i:=1 to n do write(ai,);writeln;writeln(max);end.练习一:练习一:每个正整数每个正整数N的立方都可以表示为的立方都可以表示为N个连个连续奇数的和。例如:续奇数的和。例如:13123353379114313151719要求设计一程序:读入要求设计一程序:读入N并按上面的形式并按上面的形式输出。输出。例如:例如:输入:输入:4 输出:输出:43=13+15+17+19练习二:练习二:问题描述问题描述 编编写写一一个个评评分分程程序序,接接受受用用户户输输入入1010个
7、个选选手手的的得得分分,然然后后去去掉掉一一个个最最高高分分和和一一个个最最低低分分,求求出出某某选选手手的的最最后后得得分分(平平均分)。均分)。样例输入样例输入 1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10 样例输出样例输出 5.55.5练习三:练习三:输输入入一一个个由由1010个个整整数数组组成成的的序序列列,其其中中序序列列中中任任意意连连续续三三个个整整数数都都互互不不相相同同,求求该该序序列列中中所所有有递递增增或或递递减减子序列的个数。子序列的个数。例如:例如:输入:输入:1 110108 85 59 93 32 26 67 74 4输出:输出:6 6对应的递增或递减子序列为:对应的递增或递减子序列为:1 1101010108 85 55 59 99 93 32 22 26 67 77 74 4