程序设计基础第4章.ppt

上传人:小飞机 文档编号:6596228 上传时间:2023-11-16 格式:PPT 页数:53 大小:1.10MB
返回 下载 相关 举报
程序设计基础第4章.ppt_第1页
第1页 / 共53页
程序设计基础第4章.ppt_第2页
第2页 / 共53页
程序设计基础第4章.ppt_第3页
第3页 / 共53页
程序设计基础第4章.ppt_第4页
第4页 / 共53页
程序设计基础第4章.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《程序设计基础第4章.ppt》由会员分享,可在线阅读,更多相关《程序设计基础第4章.ppt(53页珍藏版)》请在三一办公上搜索。

1、程序设计基础,主讲教师:崔莉莉办公室:15号楼503Email:第1阶段起步入门网站:课程论坛:崔莉莉工作室,5 控制程序分支流程的编程,表达式关系运算符逻辑运算符条件运算符逗号运算符语句二路分支流程if多路分支流程switch,学习要点:,关系运算符和表达式关系运算符种类:=!=结合方向:自左向右双目运算符优先级别(高于赋值表达式,低于算术表达式),例 ca+b/c(a+b)ab!=c/(ab)!=c a=bc/a=(bc),关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例 int a=3,b=2,c=1,d;ab(ab)=c b+cb,/表达式值1,/表达式值1,/表达式值0,/d

2、=1,关系运算注意:,例 int i=1,j=7,a;a=i+(j%4!=0);则a=,2,例 a0 结果为 A100 结果为,1,0,例:要求写出判断整数x是否为偶数的表达式 x%2=0或x%2!=1,关系运算注意:,例:要求写出判断字符型变量ch的值是否为小写字母“y”的表达式。ch=y,例:要求写出判断字符型变量ch的值是否为数字“0”的表达式 ch=0,例 注意区分“=”与“=”int a=0,b=1;if(a=b)couta equal to b;elsecouta not equal to b;,例 注意区分“=”与“=”int a=0,b=1;if(a=b)cout“a equa

3、l to b”;elsecout“a not equal to b”;,赋值表达式,运行结果“a equal to b”,关系表达式“等于”,运行结果“a not equal to b”,要求:实型变量score,存放着一门课程的成绩,写出判断该成绩是否及格(即成绩不低于60)的表达式。score=60要求:实型变量score,存放着一门课程的成绩,写出判断该成绩是否优秀(即成绩不低于90)的表达式。score=90,关系表达式书写示例1,关系表达式书写示例2,要求:实型变量score1和score2分别存放一位学生的两门课程的成绩,写出判断该学生的平均成绩是否及格的表达式。(score1+s

4、core2)/2=60要求:实型变量score1、score2和score3,分别存放一位学生的三门课程的成绩,写出判断总分是否超过270的表达式 score1+score2+score3 270,关系表达式书写示例3,要求:实型变量a、b、c存放着一元二次方程ax2+bx+c=0 的三个系数,写出判断该方程是否有实根的表达式 b*b 4*a*c=0要求:写出判断整数x能被3整除的表达式 x%3=0要求:写出判断整数x不能被3整除的表达式 x%3!=0,逻辑运算符和表达式逻辑运算符种类:!&|逻辑运算真值表,逻辑与(&):有0为0,全非零项为1逻辑或(|):有非零项为1,全0为0逻辑非(!):

5、取反,运算量:0表示假,非0表示真,运算结果:0表示假,1表示真,优先级:,结合方向:,例:判断小写字母的逻辑表达式:(ch=a)错误例:a0)&(i101)错误例:0i101,例:判断非小写字母的逻辑表达式:(chz)|(ch9)|(ch0),例:判断小写字母的逻辑表达式:(ch=a)例:判断非小写字母的逻辑表达式:!(ch=a),优先级:,结合方向:,例 ab&xy a=b|x=y!a|ab,/(a=x)&(x=b),/(ab)&(xy),/(a=b)|(x=y),/(!a)|(ab),在双目运算符中,算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑运算符,且服从左结合。单目运

6、算符!、-,处于最高级,且服从右结合。利用优先关系可省略圆括号。,优先级:,结合方向:,例 a=4;b=5;!a a&b a|b!a|b 4&0|2 53&2|84-!0 c&d,值为1,值为0,值为1,值为1,值为1,值为1,/(53)&2|(8(4-(!0)值为1,优先级:,结合方向:,例:整型变量year中存放着某年的年份,写出判断该年份是否为闰年的表达式。(年份能被4整除,但不能被100整除的是闰年,年份能被400整除的也是闰年)。year%4=0&year%100!=0|year%400=0,例:要求:变量score1、score2中存放着两个成绩,用关系表达式和逻辑运算符表示以下4

7、种情况:(1)两个成绩全都及格 可理解为:第一个成绩及格,并且第二个成绩及格(score1=60)&(score2=60)(2)两个成绩中有及格成绩 可理解为:第一个成绩或者第二个成绩及格(score1=60)|(score2=60)(3)第一个成绩不及格 可理解为:否定第一个成绩及格!(score1=60)(4)有且仅有一门课程及格的表达式(x1=60)&(x2=60),条件运算符与表达式一般形式:expr1?expr2:expr3功能:若expr1的值为非0,取expr2的值作为条件表达式的值,否则取expr3的值作为条件表达式的值。,例(a=b)?Y:N(x%2=1)?1:0(x=0)?

8、x:-x(c=a&c=z)?c-a+A:c,条件运算符可嵌套如 x0?1:(x0?-1:0)高于赋值运算符,结合方向:自右向左三目运算符,例1、写出使y等于x的绝对值的表达式。表达式是:y=x 0?x:-x 或 x 0?y=x:y=-x,例2、写出把字符型变量c中的小写字母换成大写字母的表达式,其他字符保持不变。表达式是:c=(c=a)&(c=a&c=z?c-32:c,逗号运算符和表达式逗号“,”作用:作为分隔符作为运算符逗号表达式形式:表达式1,表达式2,表达式n逗号运算符结合性:从左向右逗号表达式的值:等于表达式n的值用途:常用于循环for语句中逗号运算符的优先级:逗号运算符的优先级比任何

9、其他运算符都低。,赋值运算具有自动的数据类型转换功能,当“=”两边的数据类型不相同时,C+会把右边数据转换成左边变量的类型,然后再赋值。,例:#include main()int x,y=7;float z=4;x=(y=y+6,y/z);coutx=xendl;,运行结果:x=3,例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3)x=a=3,6*a例 a=1;b=2;c=3;coutabc;cout(a,b,c)bc;,/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,/逗号表达式,表达式值18,x=3,/1,2,3,/3,2

10、,3,C+常用运算符的优先级和结合性,注:可以使用园括号()改变优先级,5.1 语句,C+规定:语句以分号;为结束标志C+语句从总体上可分成 表达式语句 空语句 复合语句 控制语句,C语言语句,1、流程控制语句,完成一定的控制功能 if()else(条件语句)for()(循环语句)while()(循环语句)do while()(循环语句)continue(结束本次循环语句)break(中止执行switch语句或者循环语句)switch(多分支选择语句)goto(跳转语句)return(从函数返回语句)说明:括号()表示条件,表示内嵌的 执行语句。,5.1.1 表达式语句,表达式语句就是:表达式

11、加上分号一般格式如下:表达式;常用的表达式语句是赋值表达式组成的赋值语句 例:total=score1+socre2;函数也是一个表达式,加上分号就成了语句 例:getch();,getche()的功能是从键盘输入一个字符,并在屏幕上显示,通常称为回显;getch()的功能也是从键盘输入一个字符,但不在屏幕上显示;要使用这两个函数,必须使用include命令把头文件conio.h包含到程序中。,5.1.2 复合语句,复合语句是用一对花括号括起来的若干语句一般格式如下:语句1;语句2;语句n;,从语法上看,复合语句是作为一个语法整体出现。在编写程序时要注意,复合语句中最后一条语句后面的分号不能省

12、略,否则会造成语法错。,如 x=a+b;y=10+abs(x);/abs(x)为求x的绝对值coutyendl;,5.1.3 空语句,仅有一个分号的语句称为空语句格式如下:;空语句被执行时,事实上什么也不做,5.2 程序的三种基本结构,结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使用无条件跳转语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序。优点:结构清晰,易读,提高程序设计质量和效率,A与B顺序操作,执行完A后,必定接着执行B。是最简单的基本结构。,1、顺序结构,也称分支结构。必包含一个判断框,根据给定条件P是否成立而选择是执行A还是B,无论P成立否,只能执行A

13、或B之一。,2、分支结构,二分支选择结构,多分支选择结构,3、循环结构重复结构,即反复执行某一部分操作,当型循环结构如P成立,执行A,完后再判断P,如还是成立,再执行A,如此反复,当某一次P不成立.脱离循环结构。特征:先判断后执行。,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,3、循环结构重复结构,即反复执行某一部分操作,直到型循环结构先执行A,再判P,不成立再执行A,再判断P,P还是不成立,再执行A,如此循环反复,直到某一次P成立脱离循环。特征:先执行后判断。,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,if语句(条件选择语句),例:if(xy)cou

14、tx;,例:if(xy)max=x;else max=y;,执行过程:,例:实现函数:#include using namespace std;int main()int num,sign;cinnum;if(num0)sign=-1;else if(num=0)sign=0;else sign=1;coutsign(x)=signendl;return 0;,如:if(a=b,说明:if后面的表达式一般为逻辑表达式或关系表达工,也可以是任意数值类型表达式,语句可以是复合语句 if(x)if(x!=0)if(!x)if(x=0),例 考虑下面程序的输出结果:#include using nam

15、espace std;int main()int x,y;cinxy;if(xy)x=y;y=x;else x+;y+;coutx,yendl;return 0;,Compile Error!,#include using namespace std;int main()int x,y;coutx;y=x;if(yabsolute value:yendl;return 0;,例 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value:12,#include using namespace std;int main()int a,b

16、;couta;coutb;if(a=b)couta=bendl;else couta!=bendl;return 0;,例 输入两个数并判断两数相等否,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,#include using namespace std;#include int main()char c;cout=0/32=0 x20,运行:Enter a character:8 The character is a digit,运行:Enter a char

17、acter:D The character is a capital letter,运行:Enter a character:h The character is a lower letter,运行:Enter a character:;The character is other character,例 判断输入字符种类,运行:Enter a character:The character is a control character,if语句嵌套:一般形式:,例 输入两数并判断其大小关系,#include using namespace std;int main()int x,y;char

18、 t;coutxty;if(x!=y)if(xy)coutYn;else coutXYn;else coutX=Yn;return 0;,运行:Enter integer x,y:12,23XYEnter integer x,y:12,12X=Y,if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,例:if(a=b)if(b=c)cout“a=b=c”;else cout“a!=b”;,修改:if(a=b)if(b=c)cout“a=b=c”;else cout“a!=b”;,实现if else 正确配对方法:加,例 考虑下面程序输出结果:#include us

19、ing namespace std;intmain()int x=100,a=10,b=20;int v1=5,v2=0;if(ab)if(b!=15)if(!v1)x=1;else if(v2)x=10;x=-1;coutx;return 0;,结果:-1,一般形式:,switch(表达式)case E1:语句组 1;case E2:语句组 2;.case En:语句组 n;default:语句组;break;,执行过程:,switch语句(开关分支语句),说明:E1,E2,En是常量表达式,且值必须互不相同语句标号作用,必须用break跳出case后可包含多个可执行语句,且不必加 swit

20、ch可嵌套多个case可共用一组执行语句switch后面圆括号内的表达式的值和case后面的常量表达式的值,可以是整型、字符型、枚举数据型的表达式,不能是浮点型。,例 switch(score)case 5:coutVery good!;case 4:coutGood!;case 3:coutPass!;case 2:coutFail!;default:coutdata error!;,运行结果:score为5时,输出:Very good!Good!Pass!Fail!data error!,例:输入学生的百分制成绩,输出相应的等级。90分以上为A等,8090分为B等,7079分为C等,606

21、9分为D等,60分以下为E等。#include using namespace std;int main()int score;cinscore;switch(score/10)/成绩为整数case 10:case 9:coutAendl;break;case 8:coutBendl;break;case 7:coutCendl;break;case 6:coutDendl;break;case 5:case 4:case 3:case 2:case 1:case 0:coutEendl;break;return 0;,例#include using namespace std;int mai

22、n()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;couta=a,b=bendl;return 0;,运行结果:a=2,b=1,#include using namespace std;#include int main()int c;coutEnter m or n or h or other:flush;c=getche();switch(c)case m:coutnGood morning!n;break;case

23、n:coutnGood night!n;break;case h:coutnHello!n;break;default:coutn?n;break;return 0;,例 根据输入字母输出字符串,程序实例1,编写程序实现功能:从键盘输入一个学生的两个成绩,然后输出两者中的高分。思路:CH4_01.CPP用两个变量score1、score2保存从键盘输入的两个成绩;(1)显示提示信息,从键盘输入两个成绩到score1、score2;(2)如果score1 score2,那么继续执行(3),否则转到(4);(3)输出score1,转到(5);(4)输出score2;(5)结束运行。,程序实例2,编

24、写程序实现功能:编写一个“猜数”游戏程序:程序自动产生一个1到8之间的随机整数,让操作者猜这个数。从键盘输入猜的数后,如果猜中,屏幕显示成功信息,否则显示“太大”或“太小”的提示信息,让操作者再次输入。3次不能猜中,则判为失败。CH4_05.CPP,说明:随机数问题:通过计算机系统产生的随机数来模拟现实世界中的随机事件。(1)int rand(void);注:rand函数返回一个伪随机数,它的随机值是00 x7fff(rand_max)使用形式:rand();头文件:stdlib.h(2)void srand(unsigned int seed);注:为使rand()产生一序列伪随机整数而设置

25、起始点。seed产生随机数的种子。使用形式:srand(seed);头文件:stdlib.h(3)int time(NULL);注:获得系统时间函数。为保证每次运行程序时产生的随机数序列不相同,通常用当前时间time作为seed值。使用形式:time(NULL);头文件:time.h,三个函数结合产生随机数的通常方法如下:#include#include void main()int x;srand(time(NULL);x=rand();,程序实例3,编写程序实现功能:编写一个给小学生做练习的程序:程序自动产生一个1位整数加、减、乘的练习,每运行一次做1道题,判断小学生输入的答案,对则给100分,否则给0分。最后给出学生的成绩。ch4_补充题.cpp,练习,(一)教学与实验辅导(第3版)实验4,结 束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号