版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构不厌其烦的重复的执行的相同工作。计算机的优点:实际生活中,很多工作都是具有重复性的。如计算整个初一年级的考试成绩。同样的程序段,反复地执行多次,这就是循环的概念。11.顺序结构2.选择结构3.循环结构语句1语句2End.布尔表达式语句1语句2程序设计的三种基本结构:TrueFalse布尔表达式语句1后面的语句truefalse2三种循环语句(1)for语句(2)当型循环while语句(3)直到型循环repeat语句3for语句for语句的一般格式:for<循环控制变量>:=<初值>to
<终值>do
语句;for<循环控制变量>:=<初值>downto<终值>do
语句;1.递增型循环2.递减型循环(初值<=终值)(初值>=终值)4for语句1.递增型循环2.递减型循环var
i:integer;beginfori:=1to10dowrite(i:3);end.var
i:integer;beginfori:=10downto1dowrite(i:3);end.5for语句的执行过程:1.先将初值赋给“循环控制变量(也称循环变量)”;2.判断循环变量的值是否超过终值(对递增型来说,“超过”是大于,对递减型来说,“超过”是小于),如果超过则跳到步骤6;3.如果未超过终值,则执行do后面的语句(循环体);4.如果不是最后一次循环,那么循环变量递增(对to)1或递减(对downto)1;5.返回执行步骤26.循环结束,执行for循环下面的语句;var
i:integer;beginfori:=1to10dowrite(i:3);end.6i<=10Write(i)下一个语句i:=i+1i:=1TFfori:=1to10dowrite(i:3);i>=1Write(i)下一个语句i:=i-1i:=10TFfori:=10downto1dowrite(i:3);1.递增型循环2.递减型循环7使用for语句的注意事项:1.循环变量一般习惯使用i,j,k等字母来表示,循环控制变量必须为顺序类型。如整型,字符型等,但不能为实型和int64类型……);var
i:real;beginfori:=1.5to2.5dowrite(i:3);end.8使用for语句的注意事项:2.循环变量的值递增或递减的规律是:选用to则为递增,按succ(x)(后继)函数规律变化;
选用downto则为递减,按pred(x)(前驱)函数规律变化;var
i:char;beginfori:=‘a’to‘z’dowrite(i:3);end.整数则加减1;字符型,则按ASCII码表的顺序计算
succ(‘a’)=‘b’pred(‘d’)=‘c’9var
i,k:integer;beginfori:=1to10do;
k:=k+1;end.使用for语句的注意事项:3.do后面如果有分号,说明循环体是空var
i,k:integer;beginfori:=1to10dok:=k+1;end.do后面有分号,所以循环体是空执行完for语句后,再执行1次k:=k+1for语句的循环体是k:=k+1每次循环都要执行,共执行10次10var
i:integer;beginfori:=1to10do
begin
k:=k+1;
writeln(k);
end;end.使用for语句的注意事项:4.循环体可以是一个语句也可以是一个多个语句;如果是多个语句,则用begin和end括起来,构成一个复合语句;11使用for语句的注意事项:var
i:integer;beginfori:=1to10do
i:=5;end.5.不得在循环体内随意修改循环变量的值;循环变量的初值和终值一经确定,循环次数就确定了。循环变量的值有自己的变化规律,如果随意在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死循环,所以禁止在循环体重随意修改循环变量的值。以上for循环是一个死循环,i永远等于5,不可以达到终止值1012使用for语句的注意事项:var
a,b,i:integer;begina:=1;b:=4;fori:=atobdobegina:=3;b:=5;write(i:3);endend.执行for语句,初值a=1,终值b=4已经确定,则循环次数也已确定为4次。虽然在执行循环体时,a、b又被赋了新值3、5,但着并不影响循环的次数。6.For语句中的初值、终值可以是顺序类型的常量、变量和表达式;13使用for语句的注意事项:fori:=1to10dobeginifi=2thenbreak;end;fori:=1to10dobeginifimod2=0thencontinue;
ans:=ans+i;end;7.终止循环用break语句;结束本次循环直接进入下次循环用continue语句;{循环计到i=2就结束了,后面的3~10不用执行}1~10的循环中,奇数次i就执行ans:=ans+i偶数次i就跳过,不需执行ans:=ans+i
14使用for语句的注意事项:s:=0;fori:=1to1dos:=s+1;8.若循环变量的初值=终值,循环体执行一次;若循环变量的初值>终值,循环体不执行;{循环体s:=s+1执行1次,s的值为1}s:=0;fori:=1to0dos:=s+1;{循环体s:=s+1没有执行,s的值为0}15编程练习1.输出1~20之间的所有偶数。【输入】无【输出】输出1-20之间所有的偶数,输出的偶数之间用空格隔开。Var
i:integer;beginfori:=1to20doifimod2=0thenwrite(i,‘‘);end.16编程练习2.输出1~30之间的所有偶数的个数.【输入】无【输出】输出1-30之间所有偶数的个数。Var
I,s:integer;beginfori:=1to30doifimod2=0thens:=s+1;
writeln(s);end.【分析】设i为循环控制变量,偶数个数放在s中,利用循环变量i的值从1变化到30的规律,逐一寻找偶数的个数,找到偶数就s:=s+1.17编程练习3.输出1~n之间的所有奇数的个数.【输入】一个整数n(n<1000)【输出】1~n之间的所有奇数的个数。【输入样例】7【输出样例】4Var
I,s,n:integer;Begin
readln(n);fori:=1tondoifimod2<>0thens:=s+1;
writeln(s);end.18累加器4.求1+2+3+…+100的和.
s:=0;{变量s存储累加和}fori:=1to100do
s:=s+i;write(s);195.求1+2+3+…+n的和。(n<10000)
编程练习【输入】一个整数n(n<10000)【输出】输出1+2+3+...+n的和。【输入样例】100【输出样例】5050类型标识符名称数据范围字节数格式integer整型-32768~327672带符号16位longint长整型-2147483648~21474836474带符号32位int64int64-9223372036854775809~9223372036854775808【分析】因为n<10000,当n=100时,和为5050,但n=1000,和为500500,但integer的范围是-32768~32767,所以若定义s存储累加和,肯定不够“装”,故需定义更大的数据类型,如longint,甚至更大的int64。206.求12+22+…+n2的和。(n<100)
编程练习【输入】一个整数n(n<100)【输出】12+22+…+n2的和。【输入样例】3【输出样例】14fori:=1tondo
s:=s+i*i;21编程练习7.输出1~n之间的所有偶数的和.【输入】一个整数n(n<200)【输出】1~n之间的所有偶数的和。【输入样例】7【输出样例】12fori:=1tondoifimod2=0then
s:=s+i;22编程练习【输入】一个整数n(n<=1000)【输出】1+1/2+1/3+…+1/n的和。【输入样例】100【输出样例】5.198.求1+1/2+1/3+…+1/n的和。(n<=1000)【保留两位小数】fori:=1tondo
s:=s+1/i;23编程练习【输入】无【输出】abc…zZYX..CBA
。9.打印出字母串“abc…xyzZYX..CBA”fork:='a'to'z'do
write(k);fork:=‘Z'
downto
‘A'do
write(k);能否用writeln?24阶乘n的阶乘:1~n的累乘即n!=1*2*3*…*n规定:0!=1
1!=1n!=n*(n-1)!∵n!=n*(n-1)*(n-2)*…*3*2*1
(n-1)!∴n!=n*(n-1)!
25累乘器10.求1*2*3*…*n的积.即求n!
s:=1;{变量s存储累乘的积,必须初始化为1,不能为0,因为0乘以任何数都是0}fori:=1tondo
s:=s*i;write(s);
readln(n);26累乘器s:=1;fori:=1tondo
s:=s*i;write(s);
readln(n);10.求1*2*3*…*n的积.即求n!这条语句少了,思考一下,会出现什么现象?当n的值为10时,S的值已经是3628800虽然s定义成longint,但当输入12以上的数时,会出现错误的结果,说明结果超出了longint能够储存范围。这时需要定义更大的类型,如int64,或干脆定义成实型变量用科学计数法来近似表示这个数,如real、extended。27上例中用到了“递推”算法。所谓递推算法是指在一个数的序列值中,下一项的值在前一项的值的基础上推算出来的,即下一项对前一项有某种依赖关系。例如,为求5!,应先知道4!的值,然后再乘以5;为求6!必先求出5!。也就是说,从1!可以推出2!,从2!可以推出3!,从3!可以推出4!,以此类推。求n!的递推公式为:
a1=1 (n=1)an=n*an-1 (n>1)a1=1是“初始条件”或“边界条件”。只要找出递推关系,就可以由循环来处理,一项一项地推算出来以后各项。在程序中用同一个变量s来存储每一次推出来的值,由前一个s推出后一个s是递推。28例4.5
已知一对兔子,每个月可以生一对小兔,而小兔经过一个月生长后也可每月生一对小兔。即兔子的对数是:第一个月1对,第二个月2对,第三个月3对,第四个月5对,…,假设兔子的生育期是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?【分析】
根据题目给出的条件,得到算法:设当前月兔子有x对,它的前一个月有lastx对,前二个月有prevx对,明显存在一个递推关系,即x=lastx+prevx。Programex4_5;Vari,lastx,prevx,x:integer;beginprevx:=1;lastx:=2;fori:=3to12dobeginx:=lastx+prevx;prevx:=lastx;lastx:=x;end;writeln(x);end.运行结果:23329简单枚举11.一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y刚好比x大36,请编程求出所有这样的两位数。【输入】无【输出】输出符合条件的两位数,数与数之间换行输出。【分析】①用for循环列举出所有的两位数,x为循环变量;②用公式a:=xdiv10分离出x的十位数字;③用公式b:=xmod10分离出x的个位数字;④用公式y:=b*10+a合成新数y;⑤用式子y-x=36筛选出符合条件的数x并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024工商银行借款合同
- 2024年视力保健用品项目评估分析报告
- 2024至2030年中国大便阀接牙行业投资前景及策略咨询研究报告
- 2024至2030年中国防水式活动法兰热电阻行业投资前景及策略咨询研究报告
- 2024至2030年中国白麻板材数据监测研究报告
- 2024至2030年中国喷砂抛光珠数据监测研究报告
- 近代自然科学(19世纪前后)
- 湖南省邵阳市(2024年-2025年小学五年级语文)统编版竞赛题(上学期)试卷及答案
- 中医药治疗房颤
- 传媒账号签约合同模板
- 2024年学校柔性引进专家聘用合同
- 医学专题-4双相障碍
- 脑出血一病一品
- 甲状腺消融术护理查房
- 人工智能大学生生涯规划
- 中医生活起居护理-疏仁丽
- 2024年甘肃省普通高中信息技术会考试题(含24套)
- 外贸公司管理制度
- 庄园推广策划方案
- 子路曾皙冉有公西华侍坐教案
- 《冬季鸡舍通风》课件
评论
0/150
提交评论