[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02

上传人:油条 文档编号:55346104 上传时间:2018-09-27 格式:PPT 页数:70 大小:404KB
返回 下载 相关 举报
[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02_第1页
第1页 / 共70页
[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02_第2页
第2页 / 共70页
[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02_第3页
第3页 / 共70页
[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02_第4页
第4页 / 共70页
[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02》由会员分享,可在线阅读,更多相关《[电脑基础知识]吴文虎《程序设计基础第2版》PPT-02(70页珍藏版)》请在金锄头文库上搜索。

1、1,4.4 分支结构 例 3-1 的解要用到分支语句,即需要判断当四句话中有 3 句为真时,我们要将该人判定为做好事者。请看如下程序段,2,if (sum = 3) /如果sum真的 等于3 时, 做 cout “This man is “ char(64+k) endl; g=1; / 有解标志 g 置 1 将数字 64k 转为字符 这一段程序可以读作:如果sum真的 等于3 时, 做下面两件事: (1)输出做好事的人; (2)将本题的有解标志置为 1。 其中(sum=3)为条件判断语句中的条件,根据其真假使程序分支。,3,下面我们画出分支程序的NS流程图,这种图直观清晰,一目了然。,图 4

2、.4,4,一般格式 if ( 表达式 ) 语句 1; 如果表达式为真,执行语句 1;否则什么都不做. if ( 表达式 ) 语句块 1; 如果表达式为真,做语句块 1 的内容;否则什么都不做;,5,if ( 表达式 ) 语句 1; else 语句 2; 如果表达式为真,执行语句1;否则执行语句2 if ( 表达式 )/ 如果表达式为真,执行语句块1 语句块 1; else / 否则,执行语句块2 语句块 2; ,6,举例:实现如图函数,图 4.5,7,能不能将图改一下呢?用 3 条 if 语句 t x0 f y=1; t x=0 f y=0 ; t x0 f y= -1; t-true f-f

3、alse,8,if ( x0 ) y=1; /如果x大于0, y赋值为1 if ( x=0 ) y=0; /如果x等于0, y赋值为0 if ( x0) y=1; / 如果x0,将1赋给 y else / 否则 if (x=0) / 如果x=0,将 0 赋给 y y=0; else y=-1; / 否则(x0),将 -1赋给 y ,9,/* /* 程 序 名:4_4.cpp(分支程序示例) * /* 作 者:wuwh * /* 编制时间:2001年8月 * /* 主要功能:实现符号函数 * /*,10,#include / 预编译命令 using namespace std ; int mai

4、n() / 主函数 / 主函数开始 int x=0 , y=0 ; / 声明x,y为整型变量,并初始化为0 cout x ; / 从键盘输入整数送至 x 中 if (x0) / 如果x0,将1赋给 y y=1; else if (x=0) / 如果x=0,将 0 赋给 y y=0; else y=-1; / 否则(x0),将 -1赋给 y cout “当x=“ x “时, y=“ y endl; / 输出x,y的值 return 0 ; /主函数结束,11,NS图,图 4.6,12,NS图,有了上述了解之后,我们来看解“谁做的好事”的程序框图,图 4.7,13,现在我们来分析“谁做的好事”的N

5、S流程图。它是由两大块组成的,如图4.8,图 4.8,第一块 循环结构,第二块 分支结构,14,第一块是循环结构,功能是产生被试对象,依次为A、B、C、D。并测试四句话有多少句为真,如有3句为真,则可确定做好事者,同时置有解标志为1。 第二块为分支结构,功能是判断是否无解,如为真,则输出无解信息。 这是粗看。再往细看,第一块的循环体又由两块组成,如图4.9, 中含两条赋值语句 中含一条分支语句,15,我们讲这一段是希望你掌握NS图,这对今后的学习会有好处。按照程序框图很容易写出程序(如下页所示),thisman = 64+k; sum=( thisman!=A ) + ( thisman=C

6、) + ( thisman=D ) + ( thisman!=D );,图 4.9,sum = 3,真,假,输出该被测试者; 有解标志置1;,16,/ * / * 程 序 名:4_5.cpp * / * 作 者:wuwh * / * 编制时间:2001年8月 * / * 主要功能:谁做的好事 * / *,17,/ #include / 预编译命令 using namespace std ; int main() / 主函数 / 主函数开始 int k=0,sum=0,g=0 ; / 定义整型变量,均初始化为0 char thisman= ; / 定义字符变量,初始化为空 for(k=1;k=4

7、;k=k+1 ) / k是循环控制变量 / for 循环体开始 thisman = 64+k; sum=( thisman!=A )+ ( thisman=C ) + ( thisman=D ) + ( thisman!=D ); if (sum=3) / 如果3句话为真,则输出该人 cout “做好事者为“ char(64+k) endl; g=1; / 有解标志置1 / for 循环体结束 if (g!=1) cout “Cant found!“ endl; / 输出无解信息 return 0 ; / 主函数结束,18,#include void main() int k =0, sum

8、=0 , g =0; char thisman = ; for ( k = 1; k = 4 ; k = k+1 ) thisman = 64 + k; sum = ( thisman != A ) +( thisman=D ) + ( thisman=C ) + ( thisman !=D ); if ( sum=3 ) cout “做好事者为“ char(64+k) endl; g=1; if (g!=1) cout “Cant found!“ endl; ,19,换个思路 数字 1 表示 A 数字 2 表示 B 数字 3 表示 C 数字 4 表示 D 让 K 表示要找的人,K从1到4,表

9、示从A 找到D,这时 A说:不是我; 可形式化为 K !=1; B说:是C ; 可形式化为 K=3; C说:是D; 可形式化为 K=4; D说:他胡说; 可形式化为 K!=4;,20,/ * / * 程 序 名:3_6.cpp * / * 作 者:wuwh * / * 编制时间:2001年8月 * / * 主要功能:谁做的好事 * / * #include / 预编译命令 void main() / 主函数 / 主函数开始 int k=0,sum=0,g=0; / 声明变量为整数类型,且均初始化为0 for(k=1;k=4;k=k+1) / 循环从k为1到4, sum=0; / 循环体内的初始

10、化,用sum累计真话数 if (k!=1) sum=sum+1; / 如A的话为真,则让sum加1; if (k=3) sum=sum+1; / 如B的话为真,则让sum加1; if (k=4) sum=sum+1; / 如C的话为真,则让sum加1; if (k!=4) sum=sum+1; / 如D的话为真,则让sum加1; if (sum=3) / 若有三句话为真,则做下列两件事 cout “This man is “ char(64+k) endl; / 输出做好事者 g=1; / 让有解标志置1 if (g!=1) / 则输出无解信息 cout “Cant found!“ endl;

11、 / 主函数结束,21,for ( k = 1; k = 4; k = k+1 ) sum=0; if ( k != 1 ) sum = sum+1; / 如A的话为真, 则让sum加1; if ( k =3 ) sum = sum+1; / 如B的话为真,则让sum加1; if ( k =4 ) sum = sum+1; / 如C的话为真,则让sum加1; if ( k != 4 ) sum = sum+1; / 如D的话为真,则让sum加1; . . . ,22,/ * / * 程 序 名:3_7.cpp * / * 作 者:wuwh * / * 编制时间:2001年8月 * / * 主要

12、功能:谁做的好事 * / * #include / 预编译命令 int main() / 主函数 / 主函数开始 int k=0,g=0; / 声明变量为整数类型,且均初始化为0 for(k=1;k=4;k=k+1) / k既是循环控制变量,也表示第k个人 / for 循环体开始 if (k!=1)+(k=3)+(k=4)+(k!=4)=3) / 如果4句话有3句话为真,则输出该人 cout “做好事者为“ char(64+k) endl; g=1; / 有解标志置1 / for 循环体结束 if (g!=1) / g!=1则输出无解信息 cout “Cant found!“ endl; return 0; / 主函数结束,上述程序可以简化为:,23,for ( k = 1; k = 4 ; k = k+1 ) if (k!=1)+(k=3)+(k=4)+(k!=4)=3) cout “做好事者为“ char(64+k) endl; g=1; A说 B说 C说 D说,24,for( k= 1; k= 4; k= k+ 1 ) if ( ( ( k != 1) + ( k = 3) + /如果4句话有3句真话,就 ( k = 4) + /输出做好事者 ( k != 4 ) ) = 3 ) cout “做好事者为” char( 64+ k )endl; g = 1; ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号