吴文虎 程序设计基础 第版 PPT第
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是
1
y
0 -1
x
x>0
是
否
x= =0 y=0 y=-1
y=1
否
图 4.5
4
能不能将图改一下呢?用 3 条 if 语句 t y=1; t y=0 ; t y= -1; t----true x>0 x==0 f f
x<0 f----false
f
5
if ( x>0 ) y=1; //如果x大于0, y赋值为1 if ( x==0 ) y=0; //如果x等于0, y赋值为0 if ( x<0 ) y= -1; //如果x小于0, y赋值为-1
下面我们画出分支程序的NS流程图, 这种图直观清晰,一目了然。
是
条件为真吗?
否
语句块 1
语句块 2
图 4.4
1
一般格式
1. if ( 表达式 ) 语句 1; 如果表达式为真,执行语句 1;否则什么都不做. 2. if ( 表达式 ) { 语句块 1; } 如果表达式为真,做语句块 1 的内容;否则什么都 不做;
输出该被试者; 有解标志 g=1;
真 输出无解信息;
g != 1
假
图 4.7
wk.baidu.com
10
现在我们来分析“谁做的好事”的NS流程图。 它是由两大块组成的,如图4.8 for(k=1; k<=4; k++) 第一块 循环结构 第二块 分支结构
循环体
语句1;
图 4.8
11
第一块是循环结构,功能是产生被试对 象,依次为A、B、C、D。并测试四句话有多 少句为真,如有3句为真,则可确定做好事者, 同时置有解标志为1。 第二块为分支结构,功能是判断是否无 解,如为真,则输出无解信息。 这是粗看。再往细看,第一块的循环体 又由两块组成,如图4.9, ①中含两条赋值语句 ②中含一条分支语句
// *********************************** // * 程 序 名:4_5.cpp * // * 作 者:wuwh * // * 编制时间:2001年8月 * // * 主要功能:谁做的好事 * // ***********************************
8
NS图
提示和输入整数 x
是
x>0
是
否
x= =0 y=0 y=-1
y=1 输出 y
否
图 4.6
9
NS图 有了上述了解之后,我们来看解“谁做的好事”
的程序框图
for (k=1; k<=4; k=k+1) 被试者 thisman = 64+k; sum = (被试者 thisman != ‘A’)+ (被试者 thisman == ‘C’)+ (被试者 thisman == ‘D’)+ (被试者 thisman != ‘D’); 真 sum == 3 假
7
#include <iostream> // 预编译命令 using namespace std ; int main() // 主函数 { // 主函数开始 int x=0 , y=0 ; // 声明x,y为整型变量,并初始化为0 cout << "请输入x" << endl; // 提示信息 cin >> x ; // 从键盘输入整数送至 x 中 if (x>0) // 如果x>0,将1赋给 y { y=1; } else if (x==0) // 如果x==0,将 0 赋给 y { y=0; } else { y=-1; } // 否则(x<0),将 -1赋给 y cout << "当x=" << x << "时, y=" << y << endl; // 输出x,y的值 return 0 ; } //主函数结束
14
// #include <iostream> using namespace std ;
// 预编译命令
int main() // 主函数 { // 主函数开始 int k=0,sum=0,g=0 ; // 定义整型变量,均初始化为0 char thisman=‘ ’; // 定义字符变量,初始化为空 for(k=1;k<=4;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 << "Can’t found!" << endl;} // 输出无解信息 return 0 ; 15 } // 主函数结束
2
3. if ( 表达式 ) 语句 1; else 语句 2; 如果表达式为真,执行语句1;否则执行语句2
4. if ( 表达式 )// 如果表达式为真,执行语句块1 { 语句块 1; } else // 否则,执行语句块2 { 语句块 2; }
3
举例:实现如图函数
1, x 0 y 0, x 0 1, x 0
if (x>0) { y=1; } // 如果x>0,将1赋给 y else{ // 否则 if (x==0) // 如果x==0,将 0 赋给 y { y=0; } else { y=-1; } // 否则(x<0),将 -1赋给 y }
6
//************************************ //* 程 序 名:4_4.cpp(分支程序示例) * //* 作 者:wuwh * //* 编制时间:2001年8月 * //* 主要功能:实现符号函数 * //************************************
12
①
thisman = 64+k; sum=( thisman!=‘A’ ) + ( thisman==‘C’ ) + ( thisman==‘D’ ) + ( thisman!=‘D’ );
真
sum == 3
②
假
输出该被测试者; 有解标志置1;
图 4.9 我们讲这一段是希望你掌握NS图,这对今后 的学习会有好处。按照程序框图很容易写出程序 13 (如下页所示)
1
y
0 -1
x
x>0
是
否
x= =0 y=0 y=-1
y=1
否
图 4.5
4
能不能将图改一下呢?用 3 条 if 语句 t y=1; t y=0 ; t y= -1; t----true x>0 x==0 f f
x<0 f----false
f
5
if ( x>0 ) y=1; //如果x大于0, y赋值为1 if ( x==0 ) y=0; //如果x等于0, y赋值为0 if ( x<0 ) y= -1; //如果x小于0, y赋值为-1
下面我们画出分支程序的NS流程图, 这种图直观清晰,一目了然。
是
条件为真吗?
否
语句块 1
语句块 2
图 4.4
1
一般格式
1. if ( 表达式 ) 语句 1; 如果表达式为真,执行语句 1;否则什么都不做. 2. if ( 表达式 ) { 语句块 1; } 如果表达式为真,做语句块 1 的内容;否则什么都 不做;
输出该被试者; 有解标志 g=1;
真 输出无解信息;
g != 1
假
图 4.7
wk.baidu.com
10
现在我们来分析“谁做的好事”的NS流程图。 它是由两大块组成的,如图4.8 for(k=1; k<=4; k++) 第一块 循环结构 第二块 分支结构
循环体
语句1;
图 4.8
11
第一块是循环结构,功能是产生被试对 象,依次为A、B、C、D。并测试四句话有多 少句为真,如有3句为真,则可确定做好事者, 同时置有解标志为1。 第二块为分支结构,功能是判断是否无 解,如为真,则输出无解信息。 这是粗看。再往细看,第一块的循环体 又由两块组成,如图4.9, ①中含两条赋值语句 ②中含一条分支语句
// *********************************** // * 程 序 名:4_5.cpp * // * 作 者:wuwh * // * 编制时间:2001年8月 * // * 主要功能:谁做的好事 * // ***********************************
8
NS图
提示和输入整数 x
是
x>0
是
否
x= =0 y=0 y=-1
y=1 输出 y
否
图 4.6
9
NS图 有了上述了解之后,我们来看解“谁做的好事”
的程序框图
for (k=1; k<=4; k=k+1) 被试者 thisman = 64+k; sum = (被试者 thisman != ‘A’)+ (被试者 thisman == ‘C’)+ (被试者 thisman == ‘D’)+ (被试者 thisman != ‘D’); 真 sum == 3 假
7
#include <iostream> // 预编译命令 using namespace std ; int main() // 主函数 { // 主函数开始 int x=0 , y=0 ; // 声明x,y为整型变量,并初始化为0 cout << "请输入x" << endl; // 提示信息 cin >> x ; // 从键盘输入整数送至 x 中 if (x>0) // 如果x>0,将1赋给 y { y=1; } else if (x==0) // 如果x==0,将 0 赋给 y { y=0; } else { y=-1; } // 否则(x<0),将 -1赋给 y cout << "当x=" << x << "时, y=" << y << endl; // 输出x,y的值 return 0 ; } //主函数结束
14
// #include <iostream> using namespace std ;
// 预编译命令
int main() // 主函数 { // 主函数开始 int k=0,sum=0,g=0 ; // 定义整型变量,均初始化为0 char thisman=‘ ’; // 定义字符变量,初始化为空 for(k=1;k<=4;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 << "Can’t found!" << endl;} // 输出无解信息 return 0 ; 15 } // 主函数结束
2
3. if ( 表达式 ) 语句 1; else 语句 2; 如果表达式为真,执行语句1;否则执行语句2
4. if ( 表达式 )// 如果表达式为真,执行语句块1 { 语句块 1; } else // 否则,执行语句块2 { 语句块 2; }
3
举例:实现如图函数
1, x 0 y 0, x 0 1, x 0
if (x>0) { y=1; } // 如果x>0,将1赋给 y else{ // 否则 if (x==0) // 如果x==0,将 0 赋给 y { y=0; } else { y=-1; } // 否则(x<0),将 -1赋给 y }
6
//************************************ //* 程 序 名:4_4.cpp(分支程序示例) * //* 作 者:wuwh * //* 编制时间:2001年8月 * //* 主要功能:实现符号函数 * //************************************
12
①
thisman = 64+k; sum=( thisman!=‘A’ ) + ( thisman==‘C’ ) + ( thisman==‘D’ ) + ( thisman!=‘D’ );
真
sum == 3
②
假
输出该被测试者; 有解标志置1;
图 4.9 我们讲这一段是希望你掌握NS图,这对今后 的学习会有好处。按照程序框图很容易写出程序 13 (如下页所示)