pascal语言编程之while循环
循环结构-while语句
BRAND PLANING
Pascal暑假微课系列
知不知道循环次数?
CONTENTS
01 pascal循环
02 while语句
04 已经知道循环次数
05 ——for语句
03 不知Байду номын сангаас循环次数 06 repeat语句
(当型循环)while语句
添加标题
while 布尔 表达式 do 循环体语句
var x,sum:integer; while x<=101 do x:=x+5; end.
begin begin end;
一级算法:
1. 初始化sum为0,x为1; ① while x<=101 do
2. begin ① 把x累加到sum中 ② x增加5
3. end ① 输出sum
○ 分析:设x累加的数,x最小为1,最大为101,和是sum,它们都是整数类型。
一.初始化sum为0,x为1;
二.while x<=101 do ○ begin
添加标题
格式:
添加标题
注意:
添加标题
(当型循环)while语句
添加标题
添加标题
为使while循环正常终止,布 尔表达式中所含变量的值, 在循环体中一定要有所更改;
while循环中,do后面的语句 可以是一个简单语句,也可 以是用begin—end形成的复
合语句。
例:编程计算1+6+11+……+101=
三.把x累加到sum中 ○ sum:=sum+x
二级求精:
四.x增加5 ○ x:=x+5 ○ end
Free Pascal 第4讲 循环结构while
输出:
4
var n,I,s:longint; begin readln(n); s:=0; for i:=1 to n do if n mod i=0 then s:=s+1; writeln(s); end.
var n,i,s:longint; begin readln(n); s:=0; i:=1; while i<=n do begin if n mod i=0 then s:=s+1; i:=i+1; end; writeln(s); end.
编写能够打印输出如下图形的程序。
# ## ### #### ##### ###### #######
########### ######### ####### ##### ### #
图形1
图形2
var i,j:integer; begin for i:=1 to 7 do begin for j:=1 to i do write('#'); writeln; end; end.
var s : real; n : integer;{n分母} begin s:=0; n:=0; while s<=10 do{当s的值还未超过10时} begin n:=n+1;{分母1} s:=s+1/n;{将下一项值累加到s} end; writeln(n);{输出结果} end.
while循环
求n=1+2+3+……+100
Repeat命令
n:=0; t:=i; REPEAT n:=n+t; t:=t+1; UNTIL t>100;
例1: 求两个数a,b(<1000)的最小公倍数。 样例: 输入:
pascal循环讲义
信息学讲义循环与数组(课程由老师自行设置,仅提供一个建议)第1—2课计数循环(for)语句◆是一种已知循环次数(如班级中的总人数)的循环结构◆通过计数来控制重复语句的执行次数◆分为两种:◆递增型循环◆递减型循环一、递增型for循环◆格式:for 循环控制变量:=初值to 终值do循环体语句;{可以是复合语句}◆例:for i:=5 to 10 do write(i);或写成:for i:=5 to 10 dowrite(i);二、功能与执行流程◆先把初值赋给循环控制变量;◆再将初值与终值进行比较:当初值小于等于终值时,执行循环体;功能与执行流程◆再使循环控制变量在其原值基础上加1,继续与终值比较。
◆若仍然小于等于终值,则再次执行循环体;GOTO 3;◆否则(即此时循环变量已大于终值),循环结束,执行循环语句的下一条语句注意:◆如果循环体中有多条语句,可以将其设计成复合语句(即用begin和end括起来)◆循环变量的初值和终值可以是常量、变量或表达式,如:n:=5;for i:=n to n*n do ……;◆循环变量必须与初值、终值的数据类型相同,并且必须是有序(整型、字符型、布尔型等,不能是实型,因为循环控制变量是按序变化的)◆在递增型for结构中,循环控制变量按SUCC(x)函数规律变化;在递减型for结构中,按PRED(x)函数规律变化。
例如:◆当x为整型值时,后续值为原值加1,前趋值为原值减1;◆x为字符型数据时,其前趋或后继值按ASCII码顺序计算,如…k‟的前趋是…j‟,后继是…l‟◆循环体中可以是单个语句,也可以是复合语句,如:for i:=10 to 30 dobeginm:=m+i;writeln(m,‟ …,i);end;◆初值与终值在开始重复之前计算,在重复执行的过程中,其值不受影响;◆在循环中,一般情况下,不要对循环控制变量进行赋值操作◆在递增型for循环中,如果一开始初值就大于终值,则不执行循环,即循环的次数为0;◆循环控制变量的步长为1或-1问题:◆循环结束时,循环控制变量的值是多少?◆该如何来调整循环控制变量的步长?例题◆例4-22:计算1+2+3+…+100之和。
第五讲循环结构(for、while与repeat语句)
第四章第3节循环结构的程序设计For循环在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种的循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
一、计数循环(for/to/do)语句的一般格式for <控制变量>:=<表达式1> to <表达式2> do <语句>;for <控制变量>:=<表达式1> downto <表达式2> do <语句>;其中for、to、downto和do是Pascal保留字。
表达式1 与表达式2的值也称为初值和终值。
二、For语句执行过程①先将初值赋给左边的变量(称为循环控制变量);②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;③如果末超过终值,则执行do后面的那个语句(称为循环体);④循环变量递增(对to)或递减(对downt o)1;⑤返回步骤②;⑥循环结束,执行for 循环下面的一个语句。
三、说明①循环控制变量必须是顺序类型,初值和终值可以是常量、变量、表达式,且与控制变量类型一致。
例如,可以是整型、布尔型、字符型等,但不能为实型。
②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。
但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。
循环结构
[作业] 1、下列程序段是计算_______ 公式的。 S:=0; t:=1; for i:=1 to 10 do Begin t:=t*I; s:=s+t end; (A) s=1+2+3+4+…+10 (B) s=1*2*3*4*…*10 (C)s=1!+2!+3!+…+10! (D) s=1+2*3+3*4+4*5+…+9*10 注:N!表示1*2*3*…*N ,如3!=1*2*3 本题的循环体不止一句,是一个复合语句,用begin 和 end 圈起来了。 2、var x1,x2,I,x:integer; 该题采用列表法,将变量的值分步写出来。 begin x1:=3; i x x2 x1 x2:=8; 0 8 3 for i:=1 to 5 do 1 begin x:=(x1+x2)*2; 2 x1:=x2; x2:=x; 3 end; 4 writeln(‘x=’,x); 5 end. 运行结果:
[例2]求1+2+3+4+……+N的 和小于等于10000的最小的N。
程序如下: var n,s:integer; begin n:=0; s:=0; while s<10000 do begin n:=n+1; s:=s+n; end; writeln(‘N=’,n) end.
[注意]其中的 n和s必须在循环 语句之前赋初值。
[例1]体育彩票。体育彩票的号码由7位数字组成,现 用电脑帮你编一程序产生随机数。
重复7次,可以使用循环语句来实现。 Var a, I :integer; Begin randomize; {启动程序的随机数开关} For i:=1 to 7 do Begin a:=random(10); {a取一个小于10的整数,但不取负数,可以取0} write (a); end; end.
Pascal_循环结构_dayu
练习9: 输入20个数,求它们的最大 值、最小值和平均值。
PROGRAM STU8(INPUT,OUTPUT); VAR A,S,MIN,MAX:REAL; I:INTEGER; BEGIN S:=0; WRITE(’1:’);READLN(A); MIN:=A;MAX:=A; FOR I:=2 TO 20 DO BEGIN WRITE(I,’:’);READLN(A); IF A>MAX THEN MAX:=A; IF A<MIN THEN MIX:=A; S:=S+A END; WRITE(‘MAX=‘,MAX,’MIN=‘,MIN,’S=‘,S/20) END.
VAR X,Y:REAL; OPER : CHAR; BEGIN READ(X,OPER); WRITE(X:8:2,OPER); WHILE OPER <>’=‘ DO BEGIN READ(Y); WRITE (Y:8:2); CASE OPER OF ‘+’: X:=X+Y; ‘-’ : X:=X-Y; ‘*’ : X:=X*Y; ‘/’ : X:=X/Y END; READ(OPER); WRITE (OPER); END; WRITELN(X:8:2) END.
循环结构程序设计
• 尽管计算机的运算速度很快,然而要把大 量的计算处理都一步步写成语句,并输入 计算机,其工作量是很大的,有时是难以 完成的。这时需要用到循环。 • FOR 语句 • WHILE语句 • REPEAT语句
例 计算3的算术平方根
• PROGRAM SD(INPUT,OUTPUT); • BEGIN • WRITE(SQRT(3)); • END.
练习: 输入20个数,统计它们中正数、 负数和零的个数。
pascial循环语句
循环语句备课笔记一、什么是程序?程序=算法+数据结构我们可以这样来理解算法:要用计算机解决一个复杂问题,一般要经历下面四个步骤:(1)分析问题;(2)根据分析,设计求解的方法和步骤。
即算法设计;(3)用图形、自然语言或类计算机语言来表达已经设计好的算法;(4)用计算机语言实现算法,并在计算机上编辑、调试和测试程序。
数据结构是数据存在的形式。
下面我们用实例来讲述用自然语言描述算法:例1:交换A和B的值(1)赋A和B的初值;(2)把A的值给X;(3)把B的值给A;(4)把X的值给B;(5)输出A和B的值。
二、FOR语句(单重循环)FOR语句构成的循环有递增和递减循环两种形式:(1)、递增型FOR循环。
FOR 循环控制变量:=循环初值TO 循环终值DO 循环语句(2)、递减型FOR循环。
FOR 循环控制变量:=循环初值DOWNTO 循环终值DO 循环语句(多重循环)循环体由多个语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。
例如,以下FOR循环输出5行,每行输出10个星号(*)FOR i:=1 to 5 DOBEGINFOR j:=1 TO 10 DOWrite('*');Writeln;END;初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。
也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。
FOR语句练习题:1、试打印出1~20的自然数。
2、打印出30至60的偶数。
3、自然数求和:编一个程序,求从1至100的自然数的和。
4、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。
5、把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数。
求所有符合这样条件的四位数。
6、用“*”号打印出如下的长方形图案。
************************************7、打印出九九乘法表:1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=134*4=16::9*1=99*2=18…9*9=818、从七张扑克牌中任取三张,有几种组合方法?请编程输出所有组合形式。
pascal循环语句
FOR 循环控制变量:=循环初值 TO 循环终值 DO
实例
打印出20以内的整数,中间用空格隔开: program number(input,output); var 1 2 3 ……19 20 i:integer; begin for i:= 1 to 20 do write(i ,‘ ‘); readln; end.
FOR 循环控制变量:=循环初值 TO 循环终值 DO
练习
打印出以下图形(4行每行5个): 11111 22222 33333 44444
program tuxing(input,output); var i,j:integer; begin for i:= 1 to 4 do bebin for j:=1 to 5 do begin write(i); end; writeln; end; readln; end.
实例
求1+2+3+4+5的和: program sum(input,output); 1 2 3 4 5 var sum:integer begin
sum= 1+2+3+4+5
sum=15 sum=10
sum
sum=6 sum=3 sum=1 sum=0
write(sum); readln; end.
FOR 循环控制变量:=循环初值 TO 循环终值 DO
知识回顾
While语句 1.WHILE循环的执行形式: WHILE 布尔表达式 DO 语句 例如: k:=10; WHILE k>0 DO BEGIN Writeln (k); k:=k-1 END; 其中 (1)WHIlE 和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。 (2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循 环 体中需要包含多个语句则应该如上例所示,采用一条复合语句。
Pascal程序设计(第4课)-While和Repeat循环
【回顾】 回顾】
在Pascal中,实现循环程序设计的语句有三种: Pascal中 实现循环程序设计的语句有三种: For语句:规定循环次数的循环形式; For语句:规定循环次数的循环形式; 语句 While语句:满足条件时执行循环的形式; While语句:满足条件时执行循环的形式; 语句 Repeat语句:反复执行直到满足条件停止的循环形式。 Repeat语句:反复执行直到满足条件停止的循环形式。 语句
在Pascal中,实现循环结构的For语句的一般形式为: Pascal中 实现循环结构的For语句的一般形式为: For语句的一般形式为 <循环变量 循环变量> <初值 初值> <终值 终值> For <循环变量> := <初值> To <终值> Do <循环体> 循环体> For语句还有另外的一种形式: For语句还有另外的一种形式: 语句还有另外的一种形式 <循环变量 循环变量> <初值 初值> <终值 终值> For <循环变量> := <初值> Downto <终值> Do <循环体> 循环体>
★例:计算 直到最后一项的绝对 值小于10 时停止计算,其中x由键盘输入。 值小于10-7时停止计算,其中x由键盘输入。
分析:这是一个级数求和的问题, 分析:这是一个级数求和的问题,其项数决定于最后一项 的绝对值的大小是否小于10 如果它大于10 的绝对值的大小是否小于10-7,如果它大于10-7,继续求下一 并累加到和上,否则结束求和。 项,并累加到和上,否则结束求和。 设自变量为x 和为sum,每一项为t 设自变量为x,和为sum,每一项为t,都说明为实 sum 另外定义一个常量w表示误差10 可以用来控制精确度。 型。另外定义一个常量w表示误差10-7,可以用来控制精确度。
_Pascal语言基础知识 循环
Readln(a,b,c) 读入边长
流 程 图
求p
求s
输出面积s
程序从第一句开始,依次 var 顺序执行语句直到结束, a,b,c:integer; 中间无分支和循环,这种 程序结构称为顺序结构 p,s:real; begin readln(a,b,c); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln(s:0:2); end.
• • • • • • • • • • • • • •
【例7】:将例题6的程序用repeat语句改写。 program ex7(input,output); var ch:char; i:integer; begin i:=0; repeat read(ch); if (ch=’a’) or (ch=’A’) then i:=i+1; until ch=’#’; writeln(‘i=’,i) end.
【例4】:输入两个数(均不为零)及一个算术运算符,输 出其运算的结果 程序代码: program ex3(input,output); var x,y,s:real; ch:char; begin writeln(‘input x & y & ch:’); readln(x,y); readln(ch); case ch of ‘+’:s:=x+y; ‘-‘:s:=x-y; ‘*’:s:=x*y; ‘/’:s:=x/y end; writeln(x,ch,y,’=’,s) end.
• • • • • •+3+4+· · · +100之和。 算法分析: 对于求和,我们使用的是累加的办法。 程序代码: program ex1(input,output); var i,sum:integer; begin sum:=0; for i:=1 to 100 do sum:=sum+I; writeln(‘sum=’,sum) end. 补充说明:类似sum迭加变量这样的功能称为“累 加器”;类似i这样的变量称为“计数器”;“计 数器”和“累加器”是在程序中经常使用的基本操 作语句。
pascal循环结构程序
课堂作业二:看程序写结果
(1)program lx_5; var I,x,t:integer; begin t:=0; for I:=1 to 3 do begin read(x); t:=t+x; writeln(‘x=’,x, ‘t=’,t) end end.
绝对值函数ABS(X)
1、绝对值是指去掉正负号的数值,故绝对值 函数ABS(X)就是把自变量X的值去掉符 号。
2、例:ABS(-119)=119 ABS(119)=119
3、绝对值函数的自变量可以是整数或实数, 其相对应的函数的值也是整数或实数。
平方函数SQR(X)和平方根函数SQRT(X)
1、平方即指某个数自己乘以自己。 即SQR(X)=X*X=X2
某市一路公共汽车共有8站从起点发车每到一站先从车上下来一半乘客然后再上来两位乘客到终点前车上还有乘客站从起点发车每到一站先从车上下来一半乘客然后再上来两位乘客到终点前车上还有乘客5人问在起点站发车时车上有多少人
循环结构程序
信息学奥林匹克培训讲座(四)
PASCAL基础知识——函数
函数就是指一种运算。 格式为函数名+(+自变量+) 其中自变量可以是数、字符、变量或表达式。函 数的值为经过某种形式的计算得出的结果。
指求X的后面一个值。 5、例:succ(-119)=-118 succ(119)=120
succ(‘x’)=‘y’ succ(‘R’)=pred(‘S’)
pred(false)=true 6、后继函数的自变量可以是整数、字符或布尔量, 其相对应的函数值也是整数、字符或布尔量。
奇函数ODD(X)
1、奇数指除不2尽的数。奇函数ODD(X) 指X为奇数时,函数的值为真,当X为偶数 时,函数的值为假。
FREE-PASCAL入门-循环结构程序(DOC)
循环结构程序设计第1节 For循环程序实例【问题描述】计算一副扑克牌的点数,其中牌A为1点,牌J、Q、K分别为11、12、13点,大、小王不算点。
【问题分析】根据题意,要计算一副扑克牌的点数,可以先求出一种花色牌的点数和,再乘以4即可。
进一步分析,求一种花色牌的点数和,即是求1~13的连续自然数之和。
我们用S表示所求数的和,用T表示加数,这样可以让T从1变化到13,每次让T不断加入到S中,就可以求出S的值,最后乘以4即可。
【算法设计】◆自然语言①置初值,即S=0,T=1;②使S=S+T ,所求出的和仍放入S中;③使T增加1,即T=T+1;④如果T小于等于13,转第二步,否则转第五步;⑤输出计算结果。
◆程序流程图和结构化流程(N-S)图【程序设计】[程序清单]program ex3_1;vars,t:integer;begins:=0; {S置初值为0}for t:=1 to 13 do {For循环语句}s:=s+t;writeln(‘total:’,s*4);end.[运行示例]total:364【知识拓展】1.在程序处理过程中,经常需要对某一条或一组语句重复执行多次,以最终完成某项任务,这就是循环。
对于重复次数已知,而不依赖循环中语句的结果,常用计数循环(f or / to /do 语句)。
2.for循环语句格式:格式一:for 控制变量:= 初值to 终值do循环体语句;格式二:for 控制变量:= 初值downto 终值do循环体语句;其中for、to、downto、do为保留字,do后面的语句称为循环体。
其中循环控制变量可以是整型、字符或布尔型,但不能为实型。
一般地,可以是顺序类型数据。
初值、终值表达式通常要与控制变量的类型相同。
在for语句中如果使用的是to,称为递增型计数循环语句,如果使用的是downto,称为递减型计数循环语句。
3.For语句的执行过程:①先将初值表达式的值计算出来并赋给循环控制变量。
Pascal循环结构的回顾(上)
其中for、to、downto和do是Pascal保留字。表达式1 与表达式2的值也称为初值和终值。
对于for循环有时也称为计数循环 ,因为我们用循环控 制变量来控制 循环体执行的次数,循环体执行的次
数是(初值和终值之差的绝对值+1)
2021/4/9
5
注意下面几点
马鞍山·信息学竞赛辅导网
(1)循环控制变量必须为顺序型.可以是整型、字符型、布尔型、枚举型、子 界型,不能为实型。如:for I:=1.5 to 4.5 do write(I)是错误的。
右20图21/4表/9 示1+2+…+100的循环结
马鞍山·信息学竞赛辅导网
Num:=0; For i:=1 to 100 do Num:=num+I;
NUM:=0 I:=1
I<=100
N
Y
NUM:=NUM+I I:=i+1
4
马鞍山·信息学竞赛辅导网
一、for语句的一般格式
for <控制变量>:=<表达式1> to <表达式2> do <语句>;
end.
20思21/4考/9 :编程完成求输入的10个整数的积
8
例3:
马鞍山·信息学竞赛辅导网
判断任意一个输入的整数n是否为素数。
分析:素数的定义----除了1和本身没有其他因数。 样例程序一:从2到n-1依此判断是否存在n的因子
Var n,k:integer;
flag:boolean;
Begin
在Pascal语言中,循环结构程序通常由三种的循环语句 来实现。它们分别为FOR循环、当循环和直到循环。循 环结构具体分成三种
Pascal语言简介(2)
例2 从键盘上读入年和月,输出该月有多少天。
program pcase2; var year,month,day:integer; runnian:boolean; begin write('Enter year and month:'); readln(year,month); case month of 1,3,5,7,8,10,12: day:=31; 4,6,9,11: day:=30;{————以上处理31天和30天的情况} 2:begin runnian:=(year mod 400=0) or ((year mod 4=0) and (year mod 100<>0)); case runnian of true: day:=28; false: day:=29; end; end; {————以上处理2月的情况:闰年28天,平年29天} end; end.
循环结构程序设计 For语句
1.递增型FOR循环。 FOR 循环控制变量:=循环初值 TO 循 环终值 DO 循环的语句(或语段)
例: FOR I:=5 TO 10 DO WRITELN (I); 输出的结果为: 5 6 7 8 9 10 即循环一 共执行了6次 如果要重复多个语句,一定要用 BEGIN-END形式: 例: FOR I:=1 TO 10 DO BEGIN WRITELN (I); WRITELN (10-I); END;
program ex2(input,output); var n,ge,shi,bai,qian:integer; begin writeln(‘input a number:’): readln(n); qian:=n div 1000; bai:=n div 100 mod 10; shi:=n mod 100 div 10; ge:=n mod 10; n:=ge*1000+shi*100+bai*10+qian; writeln(n); end.
pascal语言
初识PASCAL 一个完全的PASCAL程序结构框架如下:PROGRAM程序名(程序参数表);CONST常量声明;TYPE类型声明;VAR变量声明;FUNCTION函数名(参数表):函数类型;函数声明;PROCEDURE过程名(参数表);过程声明;BEGIN程序主体;END.变量的定义一、变量定义方法VAR变量名1:变量类型1;变量名2:变量类型2;变量名3,变量名4:变量类型3;二、变量命名规则1、首字符必须是英文2、只能由英文、数字和下划线组成。
三、变量类型常用的几个变量类型如下表:输入输出语句一、输出语句格式Writeln(项目1,项目2,……,项目n); {输出内容后换行} Write(项目1,项目2 ,……,项目n); {输出内容后不换行}二、输入语句格式Read(变量1,变量2,……,变量n);{从键盘输入n个数据,以空格格开}Readln(变量1,变量2 ,……,变量n);{从键盘输入n个数据,以空格格开,读完后换行}三、赋值语句用法变量名:=表达式;{把右边表达式的值计算出来,结果赋给左边的变量} 举例:a:=3;a:=a+1;s:=(a+b)*(c+d);文件输入输出方法一、装配文件assign(input,’文件路径’);{文件路径一般为相对路径,相对程序的工作目录} reset(input);assign(output,’文件路径’);rewrite(output);二、输入输出方法read(x);write(x);三、关闭文件close(input);close(output);{输出文件必须关闭,否则可能不能正确保存}程序的基本控制结构一、顺序结构1、顺序结构的程序按照书写顺序依次执行begin语句1;语句2;end;2、实例输入两个整数x,y,计算x,y的差并输出。
Program example;varx,y,s:integer;beginread(x,y);s:=x-y;writeln(s);end.二、分支结构1、分支结构又叫选择结构或条件结构If条件then语句1 {注意这里不可以加分号,因为IF语句到这里没有结束,后面还有ELSE语句}else语句2;2、没有ELSE的IF语句If条件then 语句1;3、实例输入3个整数,输出最大的数。
pascal语言编程之while循环
例6、求恰好使s=1+1/2+1/3+…+1/n的值大于10时n的值。 分析:“恰好使s的值大于10”意思是当表达式s的前n-1项的和小于或等于 10,而加上了第n项后s 的值大于10。从数学角度,我们很难计算这个n 的值。故
从第一项开始,当s 的值小于或等于10 时,就继续将下一项值累加起来。当s的值
While语句的形式为:
while <布尔表达式> do <语句>; 其意义为:当布尔表达式的值为true时,执行do后面的语句。
While语句的执行过程为:
1.判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4; 2.执行循环体语句(do后面的语句); 3.返回步骤1; 4.结束循环,执行while的下一个语句。 说明:这里while和do为保留字,while语句的特点是先判断,后执行。当布 尔表达式成立时,重复执行do后面的语句(循环体)。 总结:while的执行过程:判断、执行、返回、结束。
练习:
1、用WHILE循环完成如下3题:
①求s=1+2+3+4+…+10 ②求s=1+1/2+1/3+…+1/100 ③求π的值。 已知π/4=1 – 1/3 +1/5 – 1/7 + 1/9 - ……,要求最后一项小于10-6为止。 2、输入任一的自然数A, B, 求A , B的最小公倍数。 3、Faibonacci数列前几项为: 0,1,1,2,3,5,8,…,其规律是从第三项起, 每项均等于 前两项之和。求前30项,并以每行5个数的格式输出。 4、小球从100高处自由落下,着地后又弹回高度的一半再落下。求第20次着地时, 小球共通过多少路程? 5、鸡兔同笼,头30,脚90, 求鸡兔各几只?
while循环
while 循环语法形式:while(条件){需要循环执行的语句;}while 是“当”的意思。
请首先和if语句作一个比较:if(条件){条件成立时执行的语句;}二者除了关键字不一样以外,结构完全一样。
但一定要注意,在条件成立时,if语句仅仅执行一遍,而while语句则将反复执行,直到条件不再成立。
请看while循环的流程图:程序从“前面的语句”开始执行,然后进行条件判断,如果条件成立,则执行一次“每次循环执行的语句”,再后请特别注意红色部分,这是我们碰上的,第一次会往后走流程:红线就像汽车拐弯,掉头到条件处(并不包括前面的语句),然后再进行下一次的条件判断……直到某一次判断时条件不成立了,程序“继续后面的语句”。
我们用while的语法套用生活中的实际例子,可以直观地看出while的用法。
假设有一个爱哭的小娃娃,有一天她要求父母给买一条小红裙,可惜父母不同意,于是她就开始一个循环:while ( 父母不给买小红裙){我哭;}这段“代码”的意思是:当“父母不给买小红裙”,那么,小女孩就一遍一遍地哭。
这就是我们和循环流程的第一个遭遇战。
所举的例子看似直观:“小孩一遍遍地哭,直到父母给买裙”,但真正要用程序的语言来正确地表达出来,需要很多方面要考虑到,必竟,程序是严谨的。
首先,一个合适的判断是否继续的条件相当重要。
小女孩要继续哭,仅仅“父母不给买小红裙”,这显示不符合事实,想想我们小时候,再会哭,最终也有累的时候,所以,要想继续哭,我们的条件有两个:“父母不给买小红裙”并且“我还没有哭累”。
while ( 父母不给买小红裙&& 我还没有哭累){我哭;}其次,大多数情况下,条件需要被恰当地改变。
小女孩在不停地哭,那么她如何知道父母是否买了红裙呢?所以,她不能只顾哭,还得在哭的间隙观察大人是否同意买裙。
至于是否哭累,我们假设小女孩有一个疲劳度,每哭一次疲劳度加1,当疲劳度到达200时,可怜的小女孩累了……while(父母不给买小红裙&& 疲劳度< 200){我哭;我偷看爸妈是否同意买裙;疲劳度++;}例一:用while 语句实现求从1到100的累加和。
信息学奥赛课件 pascal4循环结构
当值为假时,终止循环
➢ 注意: 为了能使while循环正常终止, 循环体中必须能使布尔表达式 的值为假;否则将出现死循环。
《PASCAL程序设计》第4课 — 循环结构
例3:输入若干个字符,终止符是#,计算字母A和a出现的次数
【算法分析】
直到型循环( repeat语句)
➢ 格式: repeat 循环体
until 布尔表达式;
➢ 执行过程: 先执行一次循环体,再判断布尔表达式的值。 若为假,继续循环,直到为真时退出循环
➢ 特点: 先执行后判断,至少执行1次 循环体若包含多条语句,不需要begin..end复合
《PASCAL程序设计》第4课 — 循环结构
【思考】 s=2+4+6+…+100; s=12+22+32+…+1002; s=1-1/2+1/3-1/4…+1/99-1/100;
《PASCAL程序设计》第4课 — 循环结构
例2:编程找出四位整数abcd中满足下述关系的数
(ab+cd)*(ab+cd)=abcd 【算法分析】
四位整数的范围是1000-9999,但所求的数具体是什么,无 法确定,只有在这个范围内逐一搜索,输出符合条件的数。 显然,这可以使用for循环 难点:分离四位整数的高两位与低两位?
【程序如下】
program p2; var i,gw,dw,s:integer;
begin for i:=1000 to 9999 do begin gw:=i div 100; dw:=i mod 100; s:=(gw+dw)*(gw+dw); if s=i then writeln(‘符合条件的数:’,i); end;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例7、求两个正整数m和n的最大公约数。 分析:求两个正整数的最大公约数采用的辗转相除法求解。以下是辗转的算法:分 别用m,n,r表示被除数、除数、余数。 ①求m/n的余数r.
②若r=0,则n为最大公约数.若r≠0,执行第③步.
③将n的值放在m中,将r的值放在n中. ④返回重新执行第①步。 程序如下: program ex4_4; var m,n,a,b,r:integer; begin write(’Input m,n:’);readln(m,n); a:=m;b:=n;r:=a mod b; while r<>0 do begin a:=b;b:=r; r:=a mod b; end; writeln(’The greatest common divideis:’,b:8); end.
While语句的执行过程为:
1.判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4; 2.执行循环体语句(do后面的语句); 3.返回步骤1; 4.结束循环,执行while的下一个语句。 说明:这里while和do为保留字,while语句的特点是先判断,后执行。当布 尔表达式成立时,重复执行do后面的语句(循环体)。 总结:while的执行过程:判断、执行、返回、结束。
练习:
1、用WHILE循环完成如下3题:
①求s=1+2+3+4+…+10 ②求s=1+1/2+1/3+…+1/100 ③求π的值。 已知π/4=1 – 1/3 +1/5 – 1/7 + 1/9 - ……,要求最后一项小于10-6为止。 2、输入任一的自然数A, B, 求A , B的最小公倍数。 3、Faibonacci数列前几项为: 0,1,1,2,3,5,8,…,其规律是从第三项起, 每项均等于 前两项之和。求前30项,并以每行5个数的格式输出。 4、小球从100高处自由落下,着地后又弹回高度的一半再落下。求第20次着地时, 小球共通过多少路程? 5、鸡兔同笼,头30,脚90, 求鸡兔各几只?
第四章 循环结构程序设计
第二节 当循环(while语句)
2016年11月
一、while循环 对于for循环有时也称为计数循环,当循环次数未知,只能根据某一条件来决 定是否进行循环时,用while语句或repeat语句实现循环更方便。
While语句的形式为:
while <布尔表达式> do <语句>; 其意义为:当布尔表达式的值为true时,执行do后面的语句。
例6、求恰好使s=1+1/2+1/3+…+1/n的值大于10时n的值。 分析:“恰好使s的值大于10”意思是当表达式s的前n-1项的和小于或等于 10,而加上了第n项后s 的值大于10。从数学角项开始,当s 的值小于或等于10 时,就继续将下一项值累加起来。当s的值