欢迎来到天天文库
浏览记录
ID:62122444
大小:82.82 KB
页数:14页
时间:2021-04-15
《pascal语言编程之FOR循环语句.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章循环结构程序设计第一节循环语句(for语句)2016年11月在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。在pascal语言中,循环结构程序通常由三种的循环语句来实现。分别为for循环、当循环和直到循环。将一组重复执行的语句成为循环体,而控制重复执行或终止执行由重复终止条件决定。重复语句是由循环体及重复终止条件两部分组成。例:求1+2+3+..+N的和。如何编程呢?第一节循环语句(for语句)一、for语句的一般格式for<控制变量>:=<表达式1>to<表达式2>do<语
2、句>;for<控制变量>:=<表达式1>downto<表达式2>do<语句>;其中for、to、downto和do是pascal保留字。表达式1与表达式2的值称为初值和终值。循环的语句格式:for变量名:=初值to终值do语句;例:s:=0;fori:=1to10dos:=s+i;writeln(‘s=’,s);二、for语句执行过程1.先将初值赋给左边的变量(称为循环控制变量);2.判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤6;3.如果未超过终值,则执行do后面的语句(称为循环体);4.循环变量递增(对
3、to)或递减(对downto)1;5.返回步骤2;(重新返回判断循环控制变量是否超出);6.循环结束,执行for循环下面的一个语句。三、说明1.循环控制变量必须是顺序类型。可以是整型、字符型、枚举型等,但不能为实型。2.循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则为递减。3.所谓循环控制变量的值“超过”终值,对递增型循环,“超过”指大于,对递减型循环,“超过”指小于。4.循环体可以是一个基本语句,也可以是一个复合语句。5.循环控制变量的初值和终值一经确定,循环次数就确定。但在循环体内对循环变量的
4、值进行修改,常常会使得循环提前结束或进入死环。建议不要在循环体中随意修改控制变量的值。(即变量作为循环控制变量后,在循环体中不能再次使用)6.for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。例:求1+2+3+..+N的和。如何编程呢?源程序:programex;vars,i,n:integer;beginwrite(‘entern=’);read(n);s:=0;fori:=1tondos:=s+i;writeln(s:5);end.四、应用举例例1.输出1-100之间的所有偶数。源程序:programex;
5、vari:integer;beginfori:=1to100doifimod2=0thenwriteln(i:5);end.例2.求N!=1*2*3*…*N,这里N不大于10。(n!为n的阶乘运算)分析:程序要先输入N,然后从1累乘到N。源程序:programjiecheng;vari,n:integer;s:longint;beginwrite(‘entern=‘);read(n);s:=1;fori:=2tondos:=s*i;write(n,’!=’,s);end.数据类型的长度:Integer-32768..327
6、67longint-2147483648..2147483647防止因数据长度不够,而造成溢出错误!例3、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。分析:①用for循环列举出所有的两位数,x为循环变量;(两位数,数量确定,循环次数随之确定fori:=10to99)②用公式a:=xdiv10分离出x的十位数字;(div取整运算)③用公式b:=xmod10分离出x的个位数字;(mod求余运算)④用公式y:=b*10+a合成新数y;⑤用式子y-x=36筛选出符合
7、条件的数x并输出。思考:1.最小的两位数;最大的两位数:;2.如何得到十位和个位上的数?3.怎样合成新数?4.怎样确定符合条件的两位数?源程序:programex;vara,b,x,y:integer;beginforx:=10to99dobegina:=xdiv10;b:=xmod10;y:=b*10+a;ify-x=36thenwriteln(y:2);end;end.程序的嵌套!例4:输入一个自然数,求这个自然数的所有约数之和。知识点睛:约数,又称因数。整数a除以整数b(b≠0)除得的商正好是整数而没有余数,我们就说
8、a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。分析:1.从键盘中读入一个自然数;2.求该自然数的约数,从1到x逐个判断,看xmody是否为0;3.将约数逐个相加(累加);源程序:programyueshu;varx,y,s:integer;beginwrite(‘enterx’);read
此文档下载收益归作者所有