流程图--循环结构共19页
合集下载
第7次课--循环结构

《C语言与数据结构》
第7次课----循环结构 次课----循环结构 次课----
第2章 章
循环结构举例5 循环结构举例
是否为素数。 【问题5】编程实现:判断m是否为素数。 问题5 编程实现:判断 是否为素数 分析 流程图 让m被2到 m 除,如果 被 到 都不能整除, 都不能整除,则m是素 是素 否则不是素数。 数;否则不是素数。 源程序
编制一个简单的成绩管理程序, 编制一个简单的成绩管理程序,输入班中所有 学生的某门课成绩,要求:( :(1 计算平均成绩; 学生的某门课成绩,要求:(1)计算平均成绩; 完成百分制和等级制的转换, (2)完成百分制和等级制的转换,并统计取得各等 级成绩的学生人数。 级成绩的学生人数。
《C语言与数据结构》
《C语言与数据结构》
第7次课----循环结构 次课----循环结构 次课----
第2章 章
当型循环的另一种C语言实现 当型循环的另一种 语言实现
可以用for语句实现。 语句是 语言的特色, 语句是C语言的特色 可以用 语句实现。for语句是 语言的特色,也是 语句实现 一种“当型循环语句”。 一种“当型循环语句” 其一般格式为: 其一般格式为: for (表达式1;表达式2;表达式3) 表达式1 表达式2 表达式3 表达式 语句P; 语句 ; for语句的执行过程 语句的执行过程: for语句的执行过程:
《C语言与数据结构》
第7次课----循环结构 次课----循环结构 次课----
第2章 章
当型循环的另一种C语言实现 当型循环的另一种 语言实现
最简单的应用形式或者说最易理解的形式如下: 最简单的应用形式或者说最易理解的形式如下: for (循环变量赋初值;循环条件;循环变量增值) 循环变量赋初值;循环条件;循环变量增值 循环变量赋初值 语句P; 语句 ; for语句的执行过程: 语句的执行过程: 语句的执行过程 等价的while语句: 等价的while语句: while语句 循环变量赋初值; 循环变量赋初值; (循环条件 循环条件) while (循环条件) 语句P { 语句P 循环变量增值; 循环变量增值; }
程序框图-循环结构

赋值、计算
判断某一条件是否成 立,成立时在出口处 标明“是”或“Y”, 不成立时标明“否” 或“N”.
3.顺序结构和条件结构的特点
1.顺序结构:按照步骤依次执行的一个算法,称 为具有“顺序结构”的算法,或者称为算法的 顺序结构.
顺序结构的流程图 顺序结构是最简单的 算法结构,语句与语句之间 ,框与框之间是按从上到下 的顺序进行的.它是由若干 个处理步骤组成的,这是任 何一个算法都离不开的基 本结构.
计数变量用于记录循环次数,累加变量用于输 出结果。计数变量和累加变量一般是同步执行的, 累加一次,计数一次。
主页
§ 1.1.2程序框图
开始 例4.设计一个求1+2+4+7+„+46的算法,并画出 相应的程序框图. P=0 算法如下: 1+2+3+4+…+46 i=1 t 第一步:P=0; 第二步:i=1; i=i+1 第三步:t=0; P=P+i 第四步:p=p+i; 第五步:t=t+1; i≤46 是 否 第六步:i=i+t. 输出P 第七步:如果i不大于46,返回重新执行 第四、五、六步;否则,跳出循环结束程 结束 主页 序.
奥运会主办权投票过程的算法结构:
第一步:投票; 第二步:统计票数。如果有一个城市得票 超过一半,那么这个城市取得主办权,转 入“第三步”;否则淘汰得票数最少的城 市,回到“第一步”; 第三步:宣布主办城市。
奥运会主办权投票表决流程图
第一步:投票; 第二步:统计票数。 如果有一个城市得 票超过一半,那么 这个城市取得主办 权,转入“第三 步”; 否则淘汰得 票数最少的城市, 回到“第一步”; 第三步:宣布主办 城市。 开始
判断某一条件是否成 立,成立时在出口处 标明“是”或“Y”, 不成立时标明“否” 或“N”.
3.顺序结构和条件结构的特点
1.顺序结构:按照步骤依次执行的一个算法,称 为具有“顺序结构”的算法,或者称为算法的 顺序结构.
顺序结构的流程图 顺序结构是最简单的 算法结构,语句与语句之间 ,框与框之间是按从上到下 的顺序进行的.它是由若干 个处理步骤组成的,这是任 何一个算法都离不开的基 本结构.
计数变量用于记录循环次数,累加变量用于输 出结果。计数变量和累加变量一般是同步执行的, 累加一次,计数一次。
主页
§ 1.1.2程序框图
开始 例4.设计一个求1+2+4+7+„+46的算法,并画出 相应的程序框图. P=0 算法如下: 1+2+3+4+…+46 i=1 t 第一步:P=0; 第二步:i=1; i=i+1 第三步:t=0; P=P+i 第四步:p=p+i; 第五步:t=t+1; i≤46 是 否 第六步:i=i+t. 输出P 第七步:如果i不大于46,返回重新执行 第四、五、六步;否则,跳出循环结束程 结束 主页 序.
奥运会主办权投票过程的算法结构:
第一步:投票; 第二步:统计票数。如果有一个城市得票 超过一半,那么这个城市取得主办权,转 入“第三步”;否则淘汰得票数最少的城 市,回到“第一步”; 第三步:宣布主办城市。
奥运会主办权投票表决流程图
第一步:投票; 第二步:统计票数。 如果有一个城市得 票超过一半,那么 这个城市取得主办 权,转入“第三 步”; 否则淘汰得 票数最少的城市, 回到“第一步”; 第三步:宣布主办 城市。 开始
流程图——循环结构

试画出算法2的流程图 该算法为何结构 试画出算法 的流程图.该算法为何结构 的流程图 该算法为何结构?
算法2流程图: 开始 T←1 I←2 T←T×I I←I+1 I>5 Y 输出T
结束
思考: 思考 此流程图使用那 一种循环结构? 如何用当型循环 来描述同样问题?
开始 当型循环 T←1 I←2 I←I+1 T←T×I
S ←0
S ← S + 400
S ≥ 10000
Y
N
开始
开始
S ←0
S ← S + 400
S ←0
S ← S + 400
S<10000 N 结束
问题: 问题:
Y
S ≥ 10000
Y 结束
N
仔细观察上述两个算法,有何区别与联系? 仔细观察上述两个算法,有何区别与联系?
像这种需要重复执行同一操作 重复执行同一操作的结构称为循环结构 循环结构. 重复执行同一操作 循环结构 那么这两个循环结构有什么区别呢?
N
X ← S / 10
—
输出 X
—
结束
结束
小结
1.本节课主要讲述了算法的循环结构。算法的 基本逻辑结构有三种,即顺序结构、条件结构和 循环结构。其中顺序结构是最简单的结构,也是 最基本的结构,循环结构必然包含条件结构,所 以这三种基本逻辑结构是相互支撑的,它们共同 构成了算法的基本结构,无论怎样复杂的逻辑结 构,都可以通过这三种结构来表达 。 2.循环结构要在某个条件下终止循环,这就需要 条件结构来判断。因此,循环结构中一定包含条件 结构,但不允许“死循环”。
N
I≤5 N 输出T
结束
Y
延伸、设计一个计算 , , , 的平均数的算法. 延伸、设计一个计算1,2,3,﹍,10的平均数的算法 的平均数的算法 分析:先设计一个循环依次输入 分析 先设计一个循环依次输入1-10,再用一个变量存 先设计一个循环依次输入 , 放这些数的累加和,最后除以10。 放这些数的累加和,最后除以 。 解: S1 S2 S3 S4 S5 S←0 I←1 S←S+I I←I+1 如果I大于 大于10,转 否则返回 否则返回S3. 如果 大于 转S6,否则返回
第6讲 三种循环结构

while语句的说明: 语句的说明: 语句的说明
(1) while语句属当型循环,即先 语句属当型循环 语句属当型循环, 判断条件(表达式),再执行循环体。 ),再执行循环体 判断条件(表达式),再执行循环体。
0 (假)
(2) 表达式为一条件,用于控制循 表达式为一条件, 环是否可继续执行,故称控制表达式。 环是否可继续执行,故称控制表达式。
N 输出 4*s
-7
≤
10
− 7
程序: 程序:
#include <math.h> main() () { int n=0; float s=0; ; ; do { n+=1; ; s+=pow(-1,n+1)/(2*n-1); } while ( 1./(2*n-1) >= 1e-7 ); ( ) printf(“PI = %.6f\n", 4 * s ); ( }
流程图: 流程图:
程序: 程序: main ( ) { int s, i; ;
, 定定 定 定 s, i
s=0, i=1; , ;
s = 0,i = 1; , ;
N
i≤ 100
while ( i < = 100 ) { s+=i; ;
循环条件控制语句
Y
; s+=i;
i++; ; }
循环条件改变语句
S n = S n −1
− x2 × ( 2 n − 2 )( 2 n − 1 )
main() { float x, s, t; int n = 1; scanf("%f",&x ); ( , x = 2 * 3.1415926 * x / 360; s = x; t = x; do { n = n + 1; t = t * (-1) * x * x / (( 2 * n - 2)*(2*n - 1)) )); ) ( * )) s = s + t ;} while ( t > 1e-6 ); printf(" SIN(%f)= %.3f \n ", x ,s); ( ( ) ) }
程序框图及逻辑结构——循环结构

为了方便有效地表示上述过程,我 们引进一个变量S来表示每一步 的计算结果,i表示第i步运算
方法1:算法设计:
开始
第一步,令i=1,S=0. 第二步,计算S=S+i, 第三步,计算i=i+1, 第四步,判断i>100是否成立
i=1 S=0
S=S+i
i=i+1 否
. 若是,则输出S,结束算法; 否则,返回第二步.
算法分析:
第一步,输入2005年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于300. 若是,则输出该年的年份;否则, 返回第二步.
循环结构:
(1)循环体:设a为某年的年生产总值, t为年生产总值的年增长量,n为年份,则 t=0.05a,a=a+t,n=n+1.
(2)初始值:n=2005,a=200.
是
否
在每次执行循环 体前,对条件进 行判断,当条件 满足时,就执行 循环体,否则终 止循环.
这种循环结构称为当型循环结构,你能指出 当型循环结构的特征吗? 先判断后执行
两种循环结构异同:
循环体
循环体 满足条件?
否
满足条件?
是
是
否
直到型
当 型
注意:循环结构不能是永无终止的“死循 环”,一定要在某个条件下终止循环,这 就需要条件结构来作出判断,因此,循环 结构中一定包含条件结构.
某些循环结构用程序框图可以表示为:
循环体
满足条件?
否
是
在执行了一次循环 体后,对条件进行 判断,如果条件不 满足,就继续执行 循环体,直到条件 满足时终止循环.
这种循环结构称为直到型循环结构,你能指出直 到型循环结构的特征吗? 先执行后判断
流程图的循环结构

2020/2/12
29
工业反应器实例
乙苯 铁系60 催0℃化剂苯乙烯 氢气,H298K 115kJ / mol
工业上采用的反应器型式有两种: 一种是多管等温型反应器,是以烟道气为热载体,反应器放在加热炉内,由高温烟道 气,将反应所需要的热量通过管壁传递给催化剂床层。 另一种是绝热型反应器,所需要的热源是由过热水蒸气直接带入反应系统。 主要差别: 脱氢部分的水蒸气用量不同; 热量的供给和回收利用方式不同。
通常采用的等温反应器脱氢,乙苯转化率可达到40~45%,苯乙烯的选择性
可达到92~95%。
2020/2/12
32
优点:水蒸气的消耗量约为绝热式反应器的50%,乙苯转 化率高,苯乙烯的选择性高。
Q0CA0
xA
rA
0
=
Vp Vm
Q0CA0
Q0CA0
xA k xA k
1
可知:反应级数越高,容积效率越低; 转化率越高,容积效率越低。
结论:
一级不可逆反应:n 1, rA kCA kCA0 1 xA
Q0 ln 1
1
=
Vp Vm
k Q0
1 xA 1 xA ln 1
2020/2/12
18
生产能力的比较
简单反应(无副反应:无产品分布问题) 定义:单位时间、单位体积反应器所能得到的产无量(越多越好),或给定
生产任务所需反应器体积(越小越好)
【1】间歇反应器和平推流反应器的比较 相同点:具有相同的返混特征——不存在返混 对于确定的反应过程,反应结果由动力学唯一确定 不同点:虽然达到要求的VR相同,但间歇釜存在辅助时间和装料系数,所以总反 应器体积VT较大
第四章 循环结构程序设计

while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
循环程序设计PPT课件

…
表达式? N
Y
后续语句
第23页/共59页
for语句 计算表达式1
表达式2? N
Y… continue;
… 计算表达式3
后续语句
[例]:用while语句求n项和
#include<stdio.h> main() {int i,sum=0; i=1; while(i<=100)
{sum=sum+i; i++; } printf("%d\n",sum); }
while 循环程序 #include<stdio.h>
do -while 循环程序 #include<stdio.h>
main()
main()
{int i,sum=0;
{int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
while(i<=10)
do
{sum=sum+i;
main()
main()
{ int x,sum=0; scanf("%d",&x);
{ int x,sum=0;
do
结果:sum=-2
while(x>=0) 结果:sum=8 { sum=sum+x;结果:sum=0
scanf("%d",&x);
{
结果:sum=-10
scanf("%d",&x);
sum=sum+x;
do—while循环体中一定要有能使表达式值 趋于0的操作(如i++),否则会出现死循环。
表达式? N
Y
后续语句
第23页/共59页
for语句 计算表达式1
表达式2? N
Y… continue;
… 计算表达式3
后续语句
[例]:用while语句求n项和
#include<stdio.h> main() {int i,sum=0; i=1; while(i<=100)
{sum=sum+i; i++; } printf("%d\n",sum); }
while 循环程序 #include<stdio.h>
do -while 循环程序 #include<stdio.h>
main()
main()
{int i,sum=0;
{int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
while(i<=10)
do
{sum=sum+i;
main()
main()
{ int x,sum=0; scanf("%d",&x);
{ int x,sum=0;
do
结果:sum=-2
while(x>=0) 结果:sum=8 { sum=sum+x;结果:sum=0
scanf("%d",&x);
{
结果:sum=-10
scanf("%d",&x);
sum=sum+x;
do—while循环体中一定要有能使表达式值 趋于0的操作(如i++),否则会出现死循环。