第5章 选择结构程序设计1

合集下载

大学计算机基础第5章

大学计算机基础第5章

时期 阶段
任务
文档
需求分析 系统的目标及应完成的工作 需求规格说明书
开发
总体设计 软件设计
详细设计 软件编码 编写程序代码
总体设计说明书 详细设计说明书 程序、数据注释
黑盒测试、白盒测试、单元 测试后的软件、
软件测试 测试、集成测试、确认测试、大纲、方案与结
系统测试

运行 软件维护 运行和维护
维护后的软件
1)软件生命周期模型:是描述软件开发过程 中各种活动如何执行的模型。 2)常见的软件生命周期模型有:瀑布模型、 增量模型、螺旋模型、喷泉模型、变换模型及 基于知识的模型等。
上图是软件生存周期的瀑布模型。
5、软件工具与软件开发环境
软件工具:就是帮助开发软件的软件。 软件开发环境(或称软件工程环境):是全面支 持软件开发全过程的软件工具的集合,这些软 件工具按照一定的方法和模式组合起来,共同 支持软件生命周期内的各个阶段和各项任务的 完成。
结构化方法的软件开发过程
软件计划后 结构化分析
结构化设计
编码并测试 结构化程序设计
面向对象方法的软件开发过程
软件计划后 面向对象分析
面向对象设计
软件测试 面向对象编程
1、结构化分析方法
1)结构化分析(简称SA)方法是面向数据流 进行需求分析的方法。该方法使用简单易读 的符号,运用抽象的概念模型,根据软件内 部数据传递、变换的关系,自顶向下逐层分 解,描绘出满足功能要求的软件模型
DFD图的数据流可分为两种类型:变换流和事务流 变换流:信息沿着输入通路进入系统,同时将信息的外
部形式转换成内部形式,通过变换中心处理之 后,再沿着输出通路转换成外部形式输出 事务流:信息沿着输入通路到达一个事务中心,事务中 心根据输入信息的类型在若干个动作序列中选 择一个来执行,这种信息流称为事务流

第5章 选择结构程序设计

第5章 选择结构程序设计

通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。

语句组1

机器人程序设计(C语言)(第2版)章节练习题及参考答案

机器人程序设计(C语言)(第2版)章节练习题及参考答案

第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。

其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。

2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。

微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。

3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。

在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。

4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。

使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。

使用时需要1根USBA转B 信号线。

5.简述串口调试工具的特点。

串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。

6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。

Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。

c语言(第五章选择结构) c语言 教学课件

c语言(第五章选择结构) c语言 教学课件
▪ 非闰年的判别:
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1

c语言选择结构教案

c语言选择结构教案

输出y的值
3、if语句
if语句的三种形式:单分支选择if语句、双分支 选择if语句、多分支选择if语句。 1)单分支选择if语句 语句形式: if (表达式) 语句; 例:if(x>y)printf(“%d”,x); 语句执行流程: 假(0) 表达式 真(非0) 语句
例5.1:从键盘输入两个数a 和b,按代数值由小到大的 顺序输出这两个数。 #include <stdio.h> main() {float a,b,t; scanf("%f,%f",&a,&b); if(a>b) {t=a;a=b;b=t;} printf("%5.2f,%5.2f\n",a,b); }
作业: P112 3, 3 ,4
注意: (1)当if语句中出现多个“if”与“else”的时 候,要特别注意它们之间的匹配关系,否则就 可能导致程序逻辑错误。“else”与“if”的匹配 原则是“就近一致原则”,即“else”总是与它 前面最近的“if”相匹配。 (2)if语句中条件的写法应尽量简单。
小结:
if语句的三种格式及其各自的执行流程 if语句的三种格式及其各自的执行流程
2)、双分支选择if语句 语句形式: if (表达式)语句1; else 语句2 ; 例:If(x>y) printf(“%d”,x); else printf(“%d”,y); 假(0) 表达式
真(非0)
语句执行流程:
语句1
语句2
例:输入三角形的三个边长,求出三角形的面积。 #include “math.h” main() { float a,b,c; float s; /*s为三角形的半周长*/ printf(“请输入三角形的三边a,b,c:”); scanf(“%f%f%f”,&a,&b,&c); if (a+b>c&&a+c>b&&b+c>a) /*判断输入的a,b,c能否构成三角形*/ {s=(a+b+c)/2.0; /*求出三角形的半周长*/ printf(“三角形周长s=%f”,s);} else printf(“不能构成三角形\n”); }

C语言第五章

C语言第五章
T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。

C语言课件 第5章

C语言课件 第5章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。

#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
则: !n1 n2>=1 && n2<=31 n2|| n1>31 n1&&-3 的值=0 的值=0 的值=1 的值=1
(4)说明 1 )逻辑运算符两侧的操作数,除可以是0和非0的整数 外,也可以是其它任何类型的数据,如实型、字符型等。 „a‟&&‟b‟ 2)在计算逻辑表达式时,只有在必须执行下一个表达式才 能求解时,才求解该表达式。
练习
5.3 if语句
if语句的三种形式
形式一:
格式:if (表达式)
表达式
=0
非0
语句
语句 执行过程:
例:if (x>y) 程序举例: printf(“%d”,x); 例:判断一个数是否是偶数,若是偶数则输出。
main() {int num1; printf(" Enter num1:"); scanf("%d",&num1); if (num1%2==0) printf("The %d is a event \n",num1); }
对于&&运算,如果第一个操作数被判定为“假”,系统不再判
定或求解第二操作数。 例:设 int n1=1,n2=2,n3=3,n4=4,x=1,y=1; 对于||运算,如果第一个操作数被判定为“真”,系统不再判 定或求解第二操作数。 (x=n1>n2)&&(y=n3>n4)执行后: (x=n2>n1)&&(y=n3>n4)
例如,假设int n1=3,n2=4,n3=5;则: (1)n1>n2 0 (2)(n1>n2)!=n3 1 (3)n1<n2<n3 1 (4)(n1<n2)+n3 6 再次强调: C 语言用整数“ 1” 表示“逻辑真”,用整 数“0”表示“逻辑假”。 关系表达式的值,还可以参与其它种类的运算.
5.2 逻辑运算及其表达式
运算规则 1)&&:当且仅当两个运算量的值都为“真”时,运算结果为 “真”,否则为“假”。 2) || :当且仅当两个运算量的值都为“假”时,运算结果为 “假”,否则为“真”。 3) ! :当运算量的值为“真”时,运算结果为“假”;当运 算量的值为“假”时,运算结果为“真”。 例: int x=5;
P89
a||b
例如,下面的表达式都是逻辑表达式:
真 真 假 假 真 真 (x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0), 真 假 假 真 假 真 (year%4==0)&&(year%100!=0)||(year%400==0) 假 真 真 假 假 真 假 假 真 真 假 假
设计选择结构程序,要考虑两个方面的问题:一是
在C语言中如何来表示条件,二是在C语言中实现选择结
构用什么语句。 在C语言中表示条件,一般用关系表达式或逻辑表达 式,实现选择结构用if语句或switch语句。
本章内容:
5.1 关系运算及其表达式
5.2 逻辑运算及其表达式
5.3 if语句
5.4 switch语句 5.5 选择结构程序举例
形式三: 格式:
if (表达式1 )
else if (表达式2 ) else if (表达式3 )
语句1
语句2 语句3
执行过程:
=0
…...
[ else
语句n
]
例:if (salary>1000) tax=0.04; 非 0 if (salary>800) =0 tax=0.03; else 表达式2 else if (salary>600) tax=0.02; =0 非0 表达式3 else if (salary>400) tax=0.01; else 非0 tax=0;
2. 逻辑表达式 (1)逻辑表达式的概念 用逻辑运算符将1个或多个表达式连接起来,进行逻辑运 算的式子。用逻辑表达式表示多个条件的组合。 (year%4==0)&&(year%100!=0)||(year%400==0) (2)逻辑表达式的值 :逻辑值(非“真”即“假”)。 (3)逻辑量的真假判定──0和非0 !((year%4==0)&&(year%100!=0)||(year%400==0)) 用整数“1”表示“逻辑真”、用“0”表示“逻辑 假”。但在判断一个数据的“真”或“假”时,却以0 和非0为根据:如果为0,则判定为“逻辑假”;如果 为非0,则判定为“逻辑真”。 例: int n1=12,n2=-4;
}
例 判断输入字符种类 #include <stdio.h> main() { char c; printf("Enter a character:"); c=getchar(); if(c<0x20) printf("The character is a control character\n"); else if(c>='0'&&c<='9') printf("The character is a digit\n"); else if(c>='A'&&c<='Z') printf("The character is a capital letter\n"); else if(c>='a'&&c<='z') printf("The character is a lower letter\n"); else printf("The character is other character\n"); } 运行: Enter aa character : 运行: Enter : D 运行: 运行: Enter Enter a character acharacter : 8 : h 运行: Enter acharacter character : F1
关系表达式只能描述单一条件,例如“x>=0”。如果 需要描述“x>=0并且x<10”,就要借助于逻辑表达式。
1. 逻辑运算及其优先次序 (1)逻辑运算符及其运算规则 三种逻辑运算符: ! 逻辑非(相当于“否定” ) && 逻辑与(相当于“并且”) || 逻辑或(相当于“或者”)
逻辑 运算 真值表
a b !a !b a&&b
请动手操作: 输入任意三个整数num1、num2、num3,求三 个数中的最大值。
main() {int n1,n2,n3,max; printf(“Please input three numbers:”); scanf (“%d,%d,%d”,&n1,&n2,&n3); if (n1>n2) max=n1; else max=n2; if (n3>max) max=n3; printf("The three numbers :%d,%d,%d\n", n1, n2, n3); printf("max=%d\n",max); }

x x=0, = 1, y y = =1 0 例:设 int n1=1,n2=2,n3=3,n4=4,x=1,y=1; (x=n1>n2)||(y=n3>n4)执行后: x=0,y=1
表达式小结:
1.正确使用表达式 当描述单一条件时可使用关系表达式;如果要描述复合条 件,就要使用逻辑表达式。 2.关系表达式和逻辑表达式的值都是逻辑值。 3.逻辑值的表示 “1”表示“逻辑真”、“0”表示“逻辑假”。 4.逻辑值的判断 如果为0,则判定为“逻辑假”;如果为非0,则判 定为“逻辑真”。 5.运算符的优先关系 !→ 算术运算 → 关系运算 → &&→ || → 赋值运算
例 求分段函数的值
y=
1 0 -1
x>0 x=0 x<0
#include <stdio.h> main() #include <stdio.h> { int x,y; main() printf("Enter an integer:"); { scanf("%d",&x); int x,y; printf("Enter an integer:"); if(x<0) y=-1; scanf("%d",&x); else if (x==0)y= 0; if(x<0) else y=-1; y=1; printf("\ninteger:%d---> value:%d\n",x,y); if (x==0)y= 0; } else y=1; 运行: Enter an integer:-12 printf("\ninteger:%d---> value:%d\n",x,y); integer:-12---> value :-1
语句1 语句2 语句3 语句n
表达式1
说明: if后面的表达式类型任意 if(x) if(x!=0) if(!x) if(x==0) 语句可以是复合语句 如: 例 考虑下面程序的输出结果 if(a==b&&x==y) printf(“a=b,x=y”); : #include if(3) <stdio.h> printf(“OK”); main() if(„a‟) printf(“%d”,‟a‟); { 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); }
相关文档
最新文档