06第六课 循环结构程序设计(全课)解析

合集下载

循环结构程序设计教案ppt课件

循环结构程序设计教案ppt课件

}
解法2 do_while 语句
#inlcude <stdio.h>
main()
{ int s = 0, i = 1;
do{ s = s + i; i++; }
解法3 for 语句 #inlcude <stdio.h>
while ( i <= 100 );
printf( "1+2+3+…+100=%d\n“ , s ); }
for ( i = 1;i <= n;i++ ) s+= i;
2 若表达式e2省略,即不判断循环条件,循环无法终止—死循环(应避免), 该结构一定要有break之类的跳出循环控制语句
for( i=1; ;i++) s+= i;
i = 1; while (1) { s+= i; i++;}
3 表达式e3可以省略,放入后面的循环体语句s中
Ex 计算
s111 1 2 3 100
i <=100


s += 1.0 / i; i++;
#include <stdio.h> main() {
int i = 1; float s = 0;
while( i <= 100 ) { s += 1.0 / i; i++; }
printf( "s=%f\n", s ); }
{ a = a + 1; b = b + 1;
}
例如:a = 0;b = 0; for ( i = 1;i <= 10;i++ ) { a = a + 1; b = b + 1; }

第六课循环结构程序设计(全课)解析ppt课件

第六课循环结构程序设计(全课)解析ppt课件
x :E n Writeln( x) ; End. 21
repeat-until语句 (直到循环)
n repeat 语句用于"重复执行循环体,一直 到指定的条件为真时为止"。语法格式为:
repeat
语句1;


语 句 n;
until 布 尔 表 达 式 ;
其中Repeat、 until是Pascal保留字,
n
31
作业
n 1、编写一个译码程序,把一个英语句子译成数字 代码。译码规则是以数字1代替字母A,数字2代
替字母B, … 26代替字母Z,如遇空格则打印
一个星号‘*’,英文句子以‘ .‘结束。 n 2、五个好朋友聚在一起,第一个带了很多糖块送
给大家,他使每人的糖块在原来基础上翻了一倍。
接着第二个人也同样向每人发糖块,他也使每人

用 5 0 0元 钱 买 了 90只 鸡 ,

鸡 一 只 1 0元 , 小 鸡 一 只 5 母 鸡、 公 鸡、 小 鸡 各 买 多
分析:设母鸡I只,公鸡J只,则小鸡为90 I- J-只, 则15*I+ 10* J+(90-I-J)*5=500,显然一个方
程求两个未知数是不能直接求解。必须组合出所有 可能的I,j值,看是否满足条件。这里I的值可以 是0到33,J的值可以0到50。
repeat语 句 的 保 留 字 repeat和 until已 经 起
语句括号作用,可以包含多个语句而无须
begin和end。
25
当循环和直到循环的区别
n 3、repeat语句中,当布尔表达式为true时 结束循环,而while语句中,是当表达式为
false时 才 结 束 循 环 。 当 描进述行由的计计算算操时作,后

第6章循环结构程序设计.ppt

第6章循环结构程序设计.ppt
第6章循环结构程序设计
循环结构程序设计
For循环结构 For循环用于控制循环次数预知的循环
结构。它的语法如下: For 循环变量=初值 To 终值 [Step 步长]
语句块1 [Exit For] [语句块2] Next [循环变量] 其中:循环变量必须是一个数值型的变
量,一般多用整型。
开始(start) ……
使用 While...Wend 语句来增加计数变量的值。假如条件Counter <
20判断值为 True,那么循环内的语句将一直执行下去。
Form_click()
Dim Counter
Counter = 0
' 设置变量初值。
While Counter < 20 ' 测试计数器的值。
Counter = Counter + 1 ' 将计数器的值加一,这句一定要有,否
• Private Sub Command1_Click()
• List1.Clear
• For n = 1001 To 1100 Step 2
• s=0
• For i = 2 To Int(Sqr(n))
• If n Mod i = 0 Then

s = 1 : Exit For
• End If
• Next
循环变量的初值
循环结构程序设计
循环变量小 于终值 T 语句块1
Exit For F
语句块2
F T
改变循环变量的值(循环变量加步长)
…… 结束(end)
利用For循环结构显示1000以内的所有能被37整
除的自然数。
设计步骤如下:
(1) 窗体界面的设计与属性设置。

第6章 循环结构程序设计 ppt课件

第6章 循环结构程序设计  ppt课件

main() { int s=0,n=1;
loop1: if (n>100) goto loop2; s=s+n; n++; goto loop1; loop2: printf("S=%d",s); }
ppt课件
6
例2:统计从键盘输入一行字符的个数。
#include"stdio.h"
void main()
if (n>100) break; }
printf("s=%d\n",s);
} ppt课件
18
4. for语句中的三个表达式都可以是逗号表达式,即每个表 达式都可由多个表达式组成。
main() { int n,s; for(n=1,s=0;n<=100;n++) s=s+n; printf("s=%d\n",s); }
C语言不限制程序中使用标号的次数,但各标号不得重名。
goto语句的语义是改变程序流向,转去执行语句标号所标识
的语句。
ppt课件
4
用goto语句与if语句实现循环
形式1: loop1:
语句; if (表达式) goto loop1;
形式2: loop1:
if (表达式) goto loop2; 语句; goto loop1;
void main() { int s=0,n=1; while (n<=100) { s=s+n; n++; } printf("S=%d",s); }
void main() { int s=0,n=1; do { s=s+n; n++; } while (n<=100); printf(“s=%d",s); }

C语言循环结构程序设计 ppt课件

C语言循环结构程序设计 ppt课件

int i,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("Sum = %d\n",sum);
}
2021/3/26
C语言循环结构程序设计 ppt课件
25
C语言循环结构程序设计
do~while语句的一般形式为: do { 循环体语句; }while (表达式);
Do~whil e循环流程
(2) 求解表达式2,若其值为真(值为非0), 则执行for语句中指定的内嵌语句,然后 执行下面第(3)步。若为假(值为0),则 结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语 句
2021/3/26
C语言循环结构程序设计 ppt课件
2021/3/26
C语言循环结构程序设计 ppt课件
12
C语言循环结构程序设计
说明:
(4) 可以省略表达式1和表达式3,只有表达式2,即只
给循环条件。如:
for(;i<=100;)
while(i<=100)
{sum=sum+i; 相当于 {sum=sum+i;
i++;}
i++;}
在这种情况下,完全等同于while语句。可见for语句
while(i<=100)
{
控制循环次
sum+=i;

i++;
}
printf("Sum = %d\n",sum);

第06讲循环结构程序设计PPT课件

第06讲循环结构程序设计PPT课件
t=t*i NEXT i
s=s+t
循环初值: i=1, 循环终值: i->10
循环体:
t=t*i
PRINT “T=10!=“;t ,“s=“;
END 问:求:t=n!,如何改s ?
返回
2021问/2/11:求:s=1!+2!+雷3宏设!计+,4版!权+所5有!+……+10!
例4.使用EXIT FOR语句,强行退出循环。
功能:当条件为真,执行循环体,到WEND后再判断条件;否则条件为假,执 行WEND后面的语句。
说明: (1)<条件>可是关系型表达式或逻辑型表达式,甚至可是一个常数,QB将一切
非零的数都视作“真”。
(2) WHILE和WEND必须成对使用。
(3)程序运行时遇到死循环,可以用Ctrl+Break键,使之强制终止程序。
功能:先判断循环〈条件〉,当条件为真(WHILE) 或为假(UNTIL)时,执行〈循环体〉;否则,退 出循环。程序运行到LOOP时,返回到DO语句处, 继续判断条件.
实例: <实例6> <实例7>
2021/2/11
雷宏设计,版权所有
返回
例6.观察下列程序的运行结果。
程序为: CLS x=10 DO WHILE x>=0 PRINT x, x=x-3 LOOP END
BASIC提供的循环语句,可分为已知 循环次数的步长的时候得以终止。
2021/2/11
雷宏设计,版权所有
返回
循环结构流程图
(T) (F)
2021/2/11
雷宏设计,版权所有
返回
固定次数的循环语句(FOR…NEXT)

C语言程序设计循环结构程序设计PPT课件

C语言程序设计循环结构程序设计PPT课件
printf("sum=%d\n",sum); }
程序输出结果:
sum=5050
2020/12/17
注意:
13
如果while的 (表达式) 值为0,则循环体一
次也不执行 (例如当i的初值=101) 。
在循环体中必须有使循环趋向结束的操作, 否则循环将无限进行(死循环)。
在循环体中,语句的先后位置必须符合逻 辑,否则会影响运算结果。
思考程序段的输出?
…… i=1; sum=0; while (i<=100)
{ i++; sum=sum+i; }
运行后,输出: sum=5150
原因是什么?
2020/12/17
注意(续):
14
总结:为了保证循环正常运行,应该特 别注意: – 循环控制条件的描述
– 控制条件的初始状态(初始值)
– 循环体内部对控制条件的影响
表达式非0?
Y 语句
循环控制条件
N-S结构图 当表达式为真 N
语句
循环体
2020/12/17
例如:
11
【例5.1】编写程序,求100个自然数的和 即: s=1+2+3+ … +100
思路:寻找加数与求和的规律
加数i——从1变到100,每循环一次,使i增1, 直到i的值超过100。i的初值设为1。
求和——设变量 sum 存放和,循环求 sum=sum+i,直至i超过100。
do-while循环的算法
16
流程图
N-S结构图
循环体
循环体 当表达式为真
表达式非0?
Y
N
用do-while语句 求100个自然数的和

Python程序设计 第4章 循环结构程序设计(第6次课)

Python程序设计 第4章 循环结构程序设计(第6次课)
(2)假设1个班级中有n名同学,统计男同学和女 同学各有多少名。该问题的求解需要重复执行n次, 对每1个同学依次进行判断,同时统计男同学和女 同学的人数。
Copyright © SWFU-CISD, 2012. All rights reserved. 1-8
计算机编程导论
4.2 循环结构概述
(3)给定2个整数,求它们的最大公约数和最小 公倍数。例如:给定6和9,求最大公约数时, 循环过程从6依次பைடு நூலகம்减至1,当循环到3时,判 断得6和9都能被3整除,于是终止循环,求得 最大公约数是3.;求最小公倍数时,循环过程 从9依次递增至54,当循环到18时,判断得18 同时能被6和9整除,于是终止循环,求得最小 公倍数是18。
练习: 1. 求1+3+5+…+99 2. 求2*4*6*…*12
Copyright © SWFU-CISD, 2012. All rights reserved.
1-21
计算机编程导论
第6次上机作业: 1.计算,参考值: S=1.718282 1 1 1 S 1 1*2 1*2*3 1*2*3*50 2.编程求斐波拉契数列的前20项,已知该数列 的第一、二项分别是0、1,从第三项开始,每 一项都是前两项之和。例如:0, 1, 1, 2, 3, 5, 8, 13……
Copyright © SWFU-CISD, 2012. All rights reserved. 1-12
输出 s 结束 图 4-3 累加若干整数值的框图
计算机编程导论
程序:
#Exp4_1.py print '请输入若干正整数进行求和操作,当输入负数时结束: ' s=0 x = input("请输入一个整数: ") while x >= 0: s=s+x x = input("请输入一个整数: ") print '整数之和=', s

程序框图(循环结构)课件详解

程序框图(循环结构)课件详解
累加变量:用于输出结果.累加变量和计数变 量一般是同步执行的,累加一次,记数一次.
改进上面的算法,表示输出 1,1+2,1+2+3, …,
1+2+3+…+(n-1)+n( n N* ) 的过程。
开始 输入n i=0,S=0
i=i+1 S=S + i
输出S
i>n?


结束
练习巩固 1、设计一算法,求积:1×2×3×…×100,画出流程图
直到型循环在执行了一次循环体之后,对控制循环条 件进行判断,当条件不满足时执行循环体,满足则停 止.(反复执行循环体,直到条件满足)
当型循环在每次执行循环体前对循环条件进行判断,当条 件满足时执行循环体,不满足则停止;(当条件满足时反复 执行循环体)
循环体
满足条件?


Until(直到型)循环
循环体
步骤A
i=i + 1
输出S 结束
步骤B
答:达不到预期结果;当i = 100 时,没有退出循环,i的值为101加 入到S中;修改的方法是将判断条件 改为i<100
程序框图:
开始
直到型循
i=1
环结构
S=0
S=S+i
i=i+1

i>100?

输出S
结束
开始
i=1
S=0
i=i+1
i≤100?

输出S
结束
S=S+i 是
满足条件?
是 否
While(当型)循环
(2)注意:循环结构不能是永无终止的“死 循环”,一定要在某个条件下终止循环,这就 需要条件结构来作出判断,因此,循环结构中 一定包含条件结构.

第六章 循环结构程序设计

第六章 循环结构程序设计

6-1.比较while语句、do–while语句和for语句的异同。

答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。

(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。

(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<stdio.h>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误?当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何?6-3 仔细阅读下面的语的程序,指出程序的运行结果。

#include"stdio.h"void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗?6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<stdio.h>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么?没有此语句将会是什么状况?6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。

《循环结构程序设计》课件

《循环结构程序设计》课件

for循环结构的执行流程
总结词
详细描述for循环结构的执行流程,包括初始化、条件判断、循环体执行和更新四个步 骤。
详细描述
for循环结构的执行流程包括四个步骤。首先,进行初始化操作,设置循环变量的初始 值。然后,进行条件判断,检查是否满足循环继续的条件。如果条件满足,执行循环体 内的语句。最后,进行更新操作,修改循环变量的值,然后再次进行条件判断,重复执
while循环结构的注意事项
总结词
关键点全覆盖
详细描述
使用while循环结构时需要注意以下几点,首先,条件表达式必须保证在某个时刻变为假,否则循环 将无限进行下去;其次,在循环体内应包含使条件表达式最终变为假的操作;最后,应避免在循环体 内使用使条件表达式永远为真的操作。
04
do-while循ห้องสมุดไป่ตู้结构
do-while循环结构的语法
总结词:简洁明了
详细描述:do-while循环结构的语法包括"do"关键字、"while"关键字、循环体和条件表达式。语法 格式为"do {循环体} while (条件表达式);"
do-while循环结构的执行流程
总结词:逻辑清晰
详细描述:do-while循环结构的执行流程是先执行一次循环 体,然后判断条件表达式,如果条件表达式为真,则再次执 行循环体,否则退出循环。循环体会一直执行直到条件表达 式不再满足为止。
循环结构的应用实例
用for循环计算1到100的累加和
总结词:简单明了
详细描述:通过使用for循环,我们可以轻松地计算从1到 100的所有整数的累加和。在每次循环中,我们将当前数 字添加到总和中,直到我们达到100。

《循环结构程序设计 》课件

《循环结构程序设计 》课件
《循环结构程序设计》 PPT课件
这份《循环结构程序设计》PPT课件将带你深入了解循环结构的概念和应用。 从基础的while循环到嵌套循环和循环控制语句,帮助你轻松理解和掌握编程 中的循环结构。
一、循环结构概述
循环结构介绍
介绍了什么是循环结构以及它的作用和优势。
常见循环结构类型
探讨了while、do-while和for等常见的循环结构 类型。
do-while循环结构语法
介绍了do-while循环的语法和语法要点。
do-while循环结构示例
通过实例演示了do-while循环在实际代码中的应用。
四、for循环
1
for循环结构介绍
介绍了for循环是什么以及它的特点和适
for循环结构语法
2
用场景。
详细解释了for循环的语法和使用方法。
3
for循环结构示例
通过示例演示了for循环的实际应用和效 果。
五、循环嵌套
循环嵌套介绍
探讨了循环嵌套的概念和在编程中的常见应用。
循环嵌套示例
通过具体示例展示了循环嵌套在解决复杂问题时的实际价值。
六、循环控制语句
循环控制语句介绍 break语句 continue语句 循环控制语句示例
解释了在循环中使用循环控制语句的目的和作用。
二、while循环
1
while循环结构介绍
解释了while循环是如何工作的以及它的特点和用法。
2
while循环结构语法来自详细介绍了while循环的语法和关键要点。
3
while循环结构示例
通过具体案例演示了while循环的实际应用。
三、do-while循环
do-while循环结构介绍

第六讲 循环结构程序设计

第六讲 循环结构程序设计

图6 -1
循环语句, 的值, 【例6.1】利用 】利用while循环语句,计算 循环语句 计算1+1/2+…+1/50的值, 的值 并打印计算结果。 并打印计算结果。 本题可看作数列{a 的求和, 本题可看作数列 k = 1/k | k=1,2,…,50 }的求和,累加求和的 , , , 的求和 通项为: 通项为:sum+1/k—>sum,所以,可以用如下伪语言算法描述。 ,所以,可以用如下伪语言算法描述。
输出sum 输出
说明
1. while语句中循环体最少执行零次、最多执行无穷次,即 语句中循环体最少执行零次、 语句中循环体最少执行零次 最多执行无穷次, 死循环” “死循环”。 2. 如果循环体是一个空语句,表示不执行任何操作。 如果循环体是一个空语句,表示不执行任何操作。 3. 循环体中应有使循环趋于结束的语句。例如,在[例6.1] 循环体中应有使循环趋于结束的语句。例如, 例 循环结束条件是i<=50, 循环体中语句 ; 将最终导致 循环体中语句i++; 中 , 循环结束条件是 i<=50的发生。 如果无此语句 , i值始终不变, 则该循环将永 的发生。 值始终不变, 的发生 如果无此语句, 值始终不变 远执行下去,这种情况称为死循环。例如, 远执行下去,这种情况称为死循环。例如, while(1) sum + = i; ; 就是一个死循环。 就是一个死循环。
6.1 当型循环 当型循环while语句 语句
当型循环又叫while循环,其一般句型为: 循环,其一般句型为: 当型循环又叫 循环 while( 表达式 ) { 循环体语句; 循环体语句; } 其中: 循环体语句, 可以是一条语句, 其中 : 循环体语句 , 可以是一条语句 , 但通常 为复合语句。 为复合语句。 while循环执行时,先处理表达式,表达式的值 循环执行时,先处理表达式, 循环执行时 循环体语句被执行, 为“真”时,循环体语句被执行,然后再去判表达 式的值,如果表达式的值仍为“ 式的值,如果表达式的值仍为“真”时,则再次执 行循环体语句;如果表达式值为“ 行循环体语句;如果表达式值为“假”,则退出循 如图5-1所示 所示。 环,如图 所示。 假 表达 式 真 循环体语句

循环结构程序设计PPT课件

循环结构程序设计PPT课件

2020/12/29
3
6.1 问题的提出
利用前面所学的知识,同学们已经可以编程解决 以下问题
计算班级3名学生的总成绩及平均成绩 计算sum=1+2+3+4+5 如果在第1题里是一个班级30名同学的成绩呢? 如果在第2题里是计算sum=1+2+3+…+n-1+n (n=1000)呢?
2020/12/29
}
2020/12/29
19
6.4 for语句
一般形式 for([表达式1];[表达式2];[表达式3]) 语句 此处无;
for
执行流程
表达式1
表达式2
假(0)
真(非0)
语句
执行表达式1 当表达式2为真时
do 语句
while(表达式);
do
此处有;
真(非0)
语句
语句
当表达式为真时
while
表达式
假(0)
特点:先执行循环体内语句,后判断表达式
2020/12/29
15
100
例:用do~while循环求 n n 1
#include <stdio.h> int main() { int n,sum=0;
{ int i,sum=0;
{ int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
do
while(i<=10)
{ sum+=i;
{ sum+=i;
i++;
i++;
}while(i<=10);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


例:计算 18!

var i:integer; x:longint; begin i:=1; x:=1; While i<=18 do begin x:=x*I; i:=i+1; end; Writeln(x); End.
例题

从键盘上输入两个整数 M, N,求它们的 最大公约数。
分析:我们只需从 M, N中更小的一个数开始,每 次让其减 1,直到这个数能同时被 M和 N数整除为 止。
练习



输入一整数A,判断它是否质数。(提示:若 从2到A的平方根的范围内,没有一个数能整除 A,则A是质数。) 求水仙花数。所谓水仙花数,是指一个三位数 abc,如果满足a^3+b^3+c^3=abc,则 abc是水仙花数。 计算1—1000之间能同时被3和5整除的整数的 和。
练习

程序
Var m,n,x:integer; Begin Write(‘Please input 2 numbers:’) Readln(m,n); If m>n then x:=n else x:=m; While (n mod x<>0) or (m mod x<>0) do begin x:=x-1; End; Writeln(x); End.
输出1-100之间的所有偶数。

var i:integer; begin for i:=1 to 100 do if i mod 2=0 then write(i:5); end.
思考:还有什么办法完成?
求N!=1*2*3*…*N ,这里N 不大于10。

var
n,i : integer;{i为循环变量} S : longint;{s作为累乘器} begin write(‘Enter n=’);readln(n);{输入n} s:=1; for i:=2 to n do{从2到n累乘到s中} s:=s*i; writeln(n,'!=',s);{输出n!的值} end.
循环嵌套


当一个循环的循环体中又包含循环结构程 序时,我们就称之为循环嵌套 。 求1!+2!+…+10!的值。
分析:这个问题是求10自然数的阶乘之和,可以用for 循环 来实现。程序结构如下: for n:=1 to 10 do begin ①N!的值t ②累加N!的值t end 显然,通过10次的循环可求出1!,2!…,10!,并同时累加起 来, 可求得S的值。而求T=N!,又可以用一个for循环来实现:
For循环通常在已知循环次数的 情况下使用,有时候我们无法预知 循环次数的情况下,就无法用for循 环来实现。
问题描述:求整数n的值,使 1+1/2+1/3+……+1/n 的值不大于10。
当(while)语句

当语句的语法格式是: while 布尔表达式 do begin 语句序列;(循环体) end; 语句2

①repeat语句的特点是:先执行循环,后判断结 束条件,因而至少要执行一次循环体。 ②repeat-until是一个整体,它是一个(构造型) 语句,不要误认为repeat是一个语句,until是另 一个语句。 ③repeat语句在布尔表达式的值为真时不再执行 循环体,且循环体可以是若干个语句,不需用 begin和end把它们包起来, repeat 和until已 经起了begin和end的作用。while循环和repeat 循环是可以相互转化的。
当循环和直到循环的区别

1、在repeat语句的结构中,布尔表达式求 值在计算操作之后,而while语句中,布尔 表达式求值在计算操作之前,也就是说 repeat至少执行一次循环体。
2、while语句的成分语句只能是一个语句。 因此,当重复动作包含多个语句时,要用 begin和end ,使它变成一个复合语句。 而repeat语句的保留字repeat和until已经 起语句括号作用,可以包含多个语句而无 须begin和end。
③循环体可以是一个基本语句,也可以是一个复 合语句。 ④循环控制变量的初值和终值一经确定,循环次数 就确定了。但是在循环体内对循环变量的值进行修 改,常常会使得循环提前结束或进入死环。建议不 要在循环体中随意修改控制变量的值。
例:计算1+2+3+……+99+100的和

program jia; var i,n,sum:integer; begin sum:=0; for i:=1 to 100 do sum:=sum+i; writeln(sum); readln; end.
程序

program ex4_5; var t,s:real; i,j,n:integer; begin S:=0; for n:=1 to 10 do begin t:=1; for j:=1 to n do t:=t*j; S:=S+t; end; writeln('s=',s:0:0); end.
分析:设母鸡I只,公鸡J只,则小鸡为90-I-J只, 则15*I+ 10* J+(90-I-J)*5=500,显然一个方 程求两个未知数是不能直接求解。必须组合出所有 可能的I,j值,看是否满足条件。这里I的值可以 是0到33,J的值可以0到50。
源程序

programr ex4_6; var i,j,k:integer; begin for i:=0 to 33 do for j:=0 to 50 do begin k:=90-i-j; if 15*i+10*j+5*k=500 then writeln(i:5,j:5,k:5); end; end.
作业



1、输入一整数A,判断它是否质数。(提示: 若从2到A的平方根的范围内,没有一个数能整 除A,则A是质数。) 2、已知四位数3025有一个特殊性质: 它的前 两位数字30和后两位数字25的和是 55, 而55 的平方刚好等于该数(55*55=3025). 试编一 程序打印所有具有这种性质的四位数. 3、如果一个数从左边读和从右边读都是同一个 数, 就称为回文数. 例如: 686就是一个回文数. 编程找出所有既是回文数又是素数的三位数.
不允许在循环体内再对循环控 制变量赋值。

a:=10;b:=50; for k:=a to b do begin k:=k+1;{这一句是错误的!!!!!} writeln (k); end;

当循环初值或循环终值中包含变量时,允许在循 环体内改变这些变量的值,并不改变原定的循环 次数。 例: a:=1;b:=10; for i:=a to b do begin a:=5;b:=4; end; 在上面例子中,A,B的值在循环的内部发生了变 化,但并不影响循环的次数,依然是10次。
while语句的执行过程为:

①判断布尔表达式的值,如果其值为真,执行 步骤2,否则执行步骤4; ②执行循环体语句(do后面的语句); ③返回步骤1; ④结束循环,执行while的下一个语句。
这里while和do为保留字,while语句的特点是先判 断,后执行。 当布尔表达式成立时,重复执行do后 面的语句(循环体)。 while语句用于“当满足某一条件时进行循环” 的情况,为了能使while重复能终止,循环前应给 循环控制变量赋上适当的值,循环体中一定要有影 响布尔表达式的操作,否则该循就是一个死循环。
其作用是,当布尔表达式的值为 TRUE时, 才会运行语句序列(循环体),否则循环将 不会被执行,即从循环头部就退出,而转向 执行 END后的语句2。
程序框图

从框图中可以看出, 要使用循环语句时, 必须要确定循环体 及条件(布尔表达 式)两个重要因素, 亦即首要考虑的是: 我要重复执行哪些 语句,我要重复到 什么时候为止!
第六课 循环结构程序设计
概念

在程序设计中,经常需要将一些功能按一 定要求反复执行多次,我们将这一过程称 为循环。
一个循环控制结构需指明以下三件事情中的 两件: 1、被重复执行的语句(循环体)
2、是否重复的条件
3、详细指明重复方式

第一种形式的for 语句是递增循环。首先将初值赋给控制变量,接 着判断控制变量的值是否小于或等于终值,若是,则执行循环体, 在执行了循环体之后,自动将控制变量的值改为它的后继值,并重 新判断是否小于或等于终值。当控制变量的值大于终值时,退出for 循环,执行for语句之后的语句。 第二种形式的for 语句是递减循环。首先将初值赋给控制变量,接 着判断控制变量的值是否大于或等于终值,若是,则执行循环体, 在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重 新判断是否大于或等于终值。当控制变量的值小于终值时,退出for 循环,执行for语句之后的语句。
ar t,s:real; i,j,n:integer; begin S:=0;t:=1; for n:=1 to 10 do begin t:=t*n; S:=S+t; end; writeln('s=',s:0:0); end.


一个炊事员上街采购,用500元钱买了90只鸡, 其中母鸡一只15元,公鸡一只10元,小鸡一只5 元,正好把钱买完。问母鸡、公鸡、小鸡各买多 少只?

program he; var n,i,sum:integer; begin write(‘n='); readln(n); sum:=0; i:=1; repeat sum:=sum+i; i:=i+1; until i>n; writeln ('sum=',sum); readln end.
注意
求0-100这间所有奇数的积。 编程计算11+22+33+……+99的值。 宰相的麦子:相传古印度宰相达依尔,是国际象 棋的发明者。有一次,国王因为他的贡献要奖励 他,问他想要什么。达依尔说:“只要在国际象 棋棋盘上(共64格)摆上这么些麦子就行了:第 一格一粒,第二格两粒,……,后面一格的麦子 总是前一格麦子数的两倍,摆满整个棋盘,我就 感恩不尽了。”国王一想,这还不容易,刚想答 应,如果你这时在国王旁边站着,你会不会劝国 王别答应,为什么?
相关文档
最新文档