程序的三种基本结构PPT课件
合集下载
程序的三种基本结构PPT精选课件

1. 输入一个分数score
2 .score<60
输出 E
3 .60<=score <70 输出 D
4. 70<=score <80 输出 C
5 .80<=score <90 输出 B
6 .90<=score
输出 A
11
#include<stdio.h>
main( )
{ int score;
程序
scanf(“%d”, &score);
}
假 表达式
语句2
8
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
if ( score<60) printf(“E” );
else if ( score <70)
printf(“D” );
else if (score <80)
printf(“C” );
else if (score <90)
printf(“B” );
else
printf(“A” );
}
12
说明: if后面的表达式类型任意
• 运行情况如下: 3,7,1
7
• 1, 3, 7
•2.双分支选择语句的形式:
•if(表达式) 语句1 else 语句2
程序的三种基本结构.ppt

B
真 P假 AB
多分支选择结构
k
k=k1 k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
循环结构 当型循环结构
假 P
真
A
当P为真 A
直到型循环结构
A
假 P 真
A 直到P为真
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
第5章 选择语句
• 5.1 if 条件语句 • 5.2 switch多分支选择语句 • 5.3 程序举例
1. 输入一个分数score
2 .score<60
输出 E
3 .60<=score <70 输出 D
4. 70<=score <80 输出 C
5 .80<=score <90 输出 B
6 .90<=score
输出 A
#include<stdio.h>
main( )
{ int score;
程序
scanf(“%d”, &score);
0(N) 表达式
1(Y)
if (x < 0) y = 3 - x ;
语句Biblioteka printf(“y= %6.2f”, y );
}
任给a,b,c三个数,按从小到大的顺序输出。
分析: (1)对于a,b任意两个数:
若a<b,则输出 a , b ; 否则输出 b , a ;
( 2 ) 对于三个数,有6种可能: a<b<c a<c<b b<a<c b<c<a c<a<b c<b<a
程序的三种基本结构

}
假 表达式
语句2
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
下一页
看下面的例子
switch ( i )
{case 1:printf(″A\n″);
case 2: printf (″ B\n ″);
case 3:printf( ″C\n″);
case 4:printf(″D\n″);
default:printf(″E\n″);
}
假设i=3时,则会从i=3 时做起始语句。运行结 果见右图。如果给每条 语句加上break这样就 只执行一条语句。
printf(“a!=b”);
正
确 配
修改: if (a==b)
对 方
{ if(b==c)
法
printf(“a==b==c”);
}
else
printf(“a!=b”);
实现if ~ else 正确配对方法:加{ }
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分支可供选择, 而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分 以为‘A’等,80~89分为‘B’等,70~79分为‘c’ 等,……);人口统
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
假 表达式
语句2
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
下一页
看下面的例子
switch ( i )
{case 1:printf(″A\n″);
case 2: printf (″ B\n ″);
case 3:printf( ″C\n″);
case 4:printf(″D\n″);
default:printf(″E\n″);
}
假设i=3时,则会从i=3 时做起始语句。运行结 果见右图。如果给每条 语句加上break这样就 只执行一条语句。
printf(“a!=b”);
正
确 配
修改: if (a==b)
对 方
{ if(b==c)
法
printf(“a==b==c”);
}
else
printf(“a!=b”);
实现if ~ else 正确配对方法:加{ }
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分支可供选择, 而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分 以为‘A’等,80~89分为‘B’等,70~79分为‘c’ 等,……);人口统
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
结构化程序设计的三种基本结构

第3章 结构化程序设计的三种 基本结构
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
流程图、程序的三种基本结构、语句、顺序结构

程序的结构
流程图 程序的三种结构 语句 顺序结构
程序的三种结构
程序的三种结构
顺序结构
选择结构
循环结构
顺序结构
各操作是按先后顺序执行的 是最简单的一种基本结构。 各操作是按先后顺序执行的。是最简单的一种基本结构。 顺序执行
A B
其中A和B两个框是顺序执行的。即在完成 框所指定 其中 和 两个框是顺序执行的。即在完成A框所指定 两个框是顺序执行的 完成 的操作后,必然接着执行B框所指定的操作 框所指定的操作。 的操作后,必然接着执行 框所指定的操作。
流程内的死循环
程序的三种基本结构
顺序结构、选择结构、 顺序结构、选择结构、循环结构 已经证明, 已经证明,任何程序均可只用这三种结构实现 只用这三种结构的程序,叫结构化程序。 只用这三种结构的程序,叫结构化程序。 程序设计核心思想 自顶向下, 自顶向下,精益求精 模块化( 语言的基本组成单位) 模块化(C语言的基本组成单位)
流程图所使用的符号及含义
图框 圆角矩形 平行四边形 矩形 菱形 名称 起止框 功能 表示一个算法的 开始和结束 表示一个算法的 输入和输出信息 赋值,执行计算语句, 赋值,执行计算语句, 结果的传送 表示判断某一个条件 表示判断某一个条件 是否成立 表示执行步骤的路径 流程进行的方向
输入输出框 处理框 判断框 流程线
N-S流程图使用的流程图符号 流程图使用的流程图符号
P A B
1.顺序结构 1.顺序结构 2.选择结构 2.选择结构 选择结构 当P1成立 成立 不成立
A
A
B
直到P 直到 1成立
A
3.循环结构 3.循环结构 循环结构
程序的结构
流程图 程序的三种结构 语句 顺序结构
程序设计3(3种基本结构)

流程图:
3.2.5 条件运算符(了解即可) 若if语句中,在表达式为“真”和“假”时,且都 只执行一个赋值语句给同一个变量赋值时,可以用 简单的条件运算符来处理。例如,若有以下if语句: if (a>b) max=a; else max=b; 可以用下面的条件运算符来处理: max=(a>b)?a∶b; 其中“(a>b)?a∶b”是一个“条件表达式”。它是 这样执行的:如果(a>b)条件为真,则条件表达式 取值a,否则取值b。
3.3.5 示例:
4பைடு நூலகம்
1
1 3 1 5 1 7
例:多项式如下:π/4 =1 - 1/3 + 1/5 - 1/7 + 1/9 ... 计算的项数n由键盘输入,求π。结果保留2位小数。 #include <iomanip> int main(){ int n, sign=1; double sum=0.0; cin>>n; for(int i=1; i<=n; i+=2) { sum = sum + sign*1.0/i; sign = -sign; } // 设置浮点数的小数个数2位 cout<<fixed<<setprecision(2)<<4*sum<<endl; return 0; }
3.3.3 for
for语句使用最为灵活,不仅可以用于循 环次数已经确定的情况,而且可以用于循环 次数不确定而只给出循环结束条件的情况, 它完全可以代替while语句。一般形式为: for(表达式1;表达式2;表达式3) 语句
它的执行过程如下: (1) 先求解表达式1。 (2) 求解表达式2,若其值为真, 则执行for语句中指定的内嵌语句, 然后执行下面第(3)步。若为假, 则结束循环。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执 行。
流程图程序的三种基本结构语句顺序结构ppt课件共17页

不正确循环流程图
A p1
图中没有一条从入口 到出口的路径通过A框
A B 流程内的死循环
程序的三种基本结构
顺序结构、选择结构、循环结构 已经证明,任何程序均可只用这三种结构实现 只用这三种结构的程序,叫结构化程序。
程序设计核心思想 自顶向下,精益求精 模块化(C语言的基本组成单位)
N-S流程图使用的流程图符号
A B
1.顺序结构
P
成立
不成立
A
B
A
直到P1成立
2.选择结构
当P1成立
A
3.循环结构
更多精品资源请访问
docin/sanshengshiyuan doc88/sanshenglu矩形 菱形名称 起止框 入输出框 处理框 判断框 流程线
功能
表示一个算法的 开始和结束
表示一个算法的 输入和输出信息
赋值,执行计算语句, 结果的传送
表示判断某一个条件 是否成立
表示执行步骤的路径 流程进行的方向
程序的结构
流程图 程序的三种结构 语句 顺序结构
程序的三种结构
程序的三种结构
不成立
P
成立
A
出口
直到型结构
先特执点行:某先一执部行分,的操后作判,断再,判S断最条少件要,执当条行件一成次立。时,退出循
环;条件不成立时,继续循环。 入口
A
不成立
P
成立 出口
程序的三种基本结构共同特点
只有一个入口。 结构内的每一部分都有机会被执行到。 结构内不存在“死循环”(无终止的循环)。
程序的结构
流程图 程序的三种结构 语句 顺序结构
流程图
算法描述了解决问题的方法和步骤,而程序是这套方法 和步骤在计算机上的实现。
程序的三种基本结构(共24张PPT)

•printf("Input a,b,c:\n");
•scanf("%d,%d,%d",&a,&b,&c); •if(a>b) • {temp=a;a=b;b=temp;} •if(a>c) • {temp=a;a=c;c=temp;} •if(b>c) • {temp=b;b=c;c=temp;} •printf("%d,%d,%d",a,b,c);
实现if ~ else 正确配对方法
例: if (a==b)
if(b==c)
printf(“a==b==c〞);
else printf(“a!=b〞);
修改: if (a==b) { if(b==c) printf(“a==b==c〞); } else printf(“a!=b〞);
实现if ~ else 正确配对方法:加{ }
任给a,b,c三个数,按从小到大的顺序输出。
70~89
7,8
else…... else…...
#include <stdio.
else…... 分析: 设score为整型数,在score≥90 的范围内,score可能取100, 99,.
各个case的出现次序不影响执行结果。
{temp=a;a=c;c=temp;}
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分 支可供选择,而实际问题中常常需要用到多分支的选 择。例如,学生成绩分类〔90分以为‘A’等,80~89分 为‘B’等,70~79分为‘c’ 等,……〕;人口统计分类〔 按年龄分为老、中、青、少、儿童〕;工资统计分类 ;银行存款分类;……等。当然这些都可以用嵌套的if 语句或多分支来处理,但如果分支较多,那么嵌套的if 语句层数多,程序冗长而且可读性降低。C语言提供 switch语句直接处理多分支选择,它的一
•scanf("%d,%d,%d",&a,&b,&c); •if(a>b) • {temp=a;a=b;b=temp;} •if(a>c) • {temp=a;a=c;c=temp;} •if(b>c) • {temp=b;b=c;c=temp;} •printf("%d,%d,%d",a,b,c);
实现if ~ else 正确配对方法
例: if (a==b)
if(b==c)
printf(“a==b==c〞);
else printf(“a!=b〞);
修改: if (a==b) { if(b==c) printf(“a==b==c〞); } else printf(“a!=b〞);
实现if ~ else 正确配对方法:加{ }
任给a,b,c三个数,按从小到大的顺序输出。
70~89
7,8
else…... else…...
#include <stdio.
else…... 分析: 设score为整型数,在score≥90 的范围内,score可能取100, 99,.
各个case的出现次序不影响执行结果。
{temp=a;a=c;c=temp;}
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分 支可供选择,而实际问题中常常需要用到多分支的选 择。例如,学生成绩分类〔90分以为‘A’等,80~89分 为‘B’等,70~79分为‘c’ 等,……〕;人口统计分类〔 按年龄分为老、中、青、少、儿童〕;工资统计分类 ;银行存款分类;……等。当然这些都可以用嵌套的if 语句或多分支来处理,但如果分支较多,那么嵌套的if 语句层数多,程序冗长而且可读性降低。C语言提供 switch语句直接处理多分支选择,它的一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•scanf("%d,%d,%d",&a,&b,&c);
•if(a>b)
• {temp=a;a=b;b=temp;}
•if(a>c)
• {temp=a;a=c;c=temp;}
•if(b>c)
• {temp=b;b=c;c=temp;}
•printf("%d,%d,%d",a,b,c);
•}
• 运行情况如下: 3,7,1
程序的三种基本结构
– 结构化程序设计
• 基本思想:任何程序都可以用三种基本结构表示,限 制使用无条件转移语句(goto)
• 结构化程序:由三种基本结构反复嵌套构成的程序叫 ~
• 优点:结构清晰,易读,提高程序设计质量和效率
– 三种基本结构
• 顺序结构
A
流程图
B
A B
N-S图
.
1
选择结构
真
假
P
二分支选择结构 A
真 语句1
.
假 表达式
语句2
8
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) {
float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
.
9
• 3.多分支选择语句的形式:
• if (表达式1)
语句1
• else if (表达式2)
语句2
•
else if(表达式3)
语句3
•
else if (表达式m)
语句m
•
else
语句n
•
流程图
F
表达式
1 T
F
表达式
2 T
F
表达式
3 T
F
表达式
4 T
语句1
语句2
语句3
.
语句4
语句5
10
多分支问题
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
写一个程序完成下列功能:
1. 输入一个分数score
2 .score<60
输出 E
3 .60<=score <70 输出 D
4. 70<=score <80 输出 C
5 .80<=score <90 输出 B
6 .90<=score
输出 A
.
11
#include<stdio.h>
main( )
{ int score;
( 3 )使用判断——交换法:
1.若a>b,则交换a和b,交换后a<b
2.若a>c,则交换a和c,交换后a<c
3.若b>c,则交换b和c,交.换后b<c
6
[例5.2」输入三个数,按由小到大顺序输出。
•main( )
•{int a,b,c,temp;
•printf("Input a,b,c:\n");
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
.
14
例 输入两数并判断其大小关系
/*ch4_4.c*/
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
0(N) 表达式
1(Y)
if (x < 0) y = 3 - x ;
语句
printf(“y= %6.2f”, y );
.
5
}
任给a,b,c三个数,按从小到大的顺序输出。
分析: (1)对于a,b任意两个数:
若a<b,则输出 a , b ; 否则输出 b , a ;
( 2 ) 对于三个数,有6种可能: a<b<c a<c<b b<a<c b<c<a c<a<b c<b<a
printf(“A” );
}
.
12
说明: if后面的表达式类型任意
语句可以是复合语句 如:if(ifx()a==b&if(&xx!==0=)y) printf(“a=b,x=y”);
if(if!(x3)) priinf(tfx(=“=O0K)”);
例 考i虑f(‘下a’)面p程ri序ntf的(“%输d出”,结’a’果); :
B
真 P假 AB
多分支选择结构
k=k1 k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
.
2
循环结构 当型循环结构
假 P
真 A
当P为真 A
直到型循环结构
A
假 P 真
A 直到P为真
注:A,B,A1….An可以是一个简.单语句,也可以是一个基本结3构
第5章 选择语句
• 5.1 if 条件语句 • 5.2 switch多分支选择语句 • 5.3 程序举例
.
返4回
5.1 if条件语句
•if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定 执行给出的两种操作之一。
5.1.1 if语句的三种形式
•1.单分支选择语句的形式: if(表达式) 语句
•
main( )
这种if语句的执行过程见图:
{ float x , y; scanf(“%f ”, &x); if (x>=0) y = 2 * x ;
.
7
• 1, 3, 7
•2.双分支选择语句的形式:
•if(表达式) 语句1 else 语句2
•
见图:
main() { float x , y;
scanf(“%f ”, &x); if ( x < 0 ) y = 3 - x ; else y = 2 * x ; printf(“y= %6.2f”, y ); }
#include <stdio.h>
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y; y=x; else
Compile Error!
x++; y++;
printf(“%d,%d\n”,x,y);
}
.
13
5.1.2 if语句嵌套
一般形式:
if (expr1) if (expr2) statement1 else statement2
程序
scanf(“%d”, &score);
if ( score<60) printf(“E” );
else if ( score <70)
printf(“D” );
else if (score <80)
printf(“C” );
else if (score <90)
printf(“B” );
else