您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > C++基本结构程序设计
1计算机程序设计基础(C++)第3章基本程序设计2主要内容C++的基本语句C++的控制结构格式化的输出顺序结构程序设计方法选择结构的程序设计方法循环结构的程序设计方法计算机语言的基本体系结构31.赋值语句基本赋值语句的格式:其中v表示变量,e表示一个表达式作用:将赋值运算符(=)右边表达式e的值赋给左边的变量v。例:y=5.5;y=a+b*c;x=5.2*x+y/6.8;x=2.5*sin(a)+3.2*cos(b);v=e;41.表达式语句表达式语句由表达式加分号组成。一般形式:3.1C++的基本语句j++;//算术表达式语句x=12,y=9,z=-3;//逗号表达式语句xy?x:y;//条件表达式语句Max(a,b);//函数调用语句表达式;最常见的表达式语句有:由赋值表达式加分号构成的赋值语句,由函数调用表达式加分号构成的函数调用语句等。5空语句分号前没有任何内容而只有一个分号的语句称为空语句。空语句执行时不产生任何操作,只作为形式上的语句。循环中使用(for循环)。;64.复合语句用花括号{}将若干执行语句组成一个整体,在语法上作为一条语句处理。格式:{语句1;语句2;……语句n;}7语句是构造程序最基本的单位,程序运行的过程就是执行程序语句的过程。程序语句执行的次序称之为控制结构(或控制流程/流程控制)。程序语句除了顺序执行之外,还可以通过流程控制语句修改程序的执行路径。3.2C++的控制结构83.4顺序结构程序设计顺序结构的程序中,主函数(即main函数)的函数体的执行顺序为语句的书写顺序,即写在前面的语句先执行,写在后面的语句后执行,且每条语句都会被执行一次。组成顺序结构的常见语句有:说明语句,包括变量、常量定义;表达式语句;输入/输出流语句;复合语句;函数调用语句等构成。9中国古典的“鸡兔同笼问题”:在同一个笼子里养着鸡与兔,但不知其中鸡有多少只兔有多少只。只知道鸡和兔的总数是head,鸡与兔的总脚数是foot,求鸡与兔各有多少只。算法的分析:每只鸡有两只脚,每只兔有四只脚,如果假设有x只鸡和y只兔,则根据已知条件列出方程组如下:示例10#includeiostreamusingnamespacestd;voidmain(void){inthead,foot,chicken,rabbit;cout请输入鸡和兔的总数:;cinhead;cout请输入鸡和兔的总脚数:;cinfoot;chicken=(4*head-foot)/2;rabbit=(foot-2*head)/2;cout鸡的数量为:chickenendl;cout兔的数量为:rabbitendl;}在程序中,输入语句的前面通常应该增加一条输出语句,用于提示操作者应该输入几个什么数据类型的数据。定义变量head、foot、chicken和rabbity提示用户输入鸡和兔的总数head←键盘输入数据提示用户输入鸡和兔的总脚数foot←键盘输入数据chicken←计算鸡的数量,(4*head-foot)/2rabbity←计算兔的数量,(foot-2*head)/2输出鸡的数量chicken输出兔的数量rabbity11示例输入一位同学的三门课程考试成绩,计算该同学的平均成绩,要求输出数据的形式如下例:科目成绩英语67程序设计78.5大学物理89该生的平均成绩为:78.17问题分析:在输入成绩score1,score2,score3的基础上,average=(score1+score2+score3)/3可以求出该生的平均成绩。此外还需要进行输出格式的控制。12#includeiostream#includeiomanipusingnamespacestd;voidmain(){floatscore1,score2,score3,average;cout请输入三门课程的考试成绩:endl;cinscore1score2score3;average=(score1+score2+score3)/3;coutsetw(10)科目setw(12)成绩endl;coutsetw(10)英语setw(12)score1endl;coutsetw(10)程序设计setw(12)score2endl;coutsetw(10)大学物理setw(12)score3endl;coutfixed;cout.precision(2);cout该生的平均成绩为:averageendl;}(s1+s2+s3)/3avg设置输出格式输出s1,s2,s3,avg输入s1,s2,s3定义变量s1,s2,s3,avgsetw()coutfixed;cout.precision(2);13课堂练习(一)编程实现:在计算机的提示下输入某学生的学号、英语成绩、高等数学成绩、线性代数成绩,计算得出三门课程平均成绩,并按如下格式输出显示。143.6选择结构程序设计在程序中,有些语句只有在特定的条件成立的情况下才会被执行,可用选择结构来实现。C++中用于实现选择结构的流程控制语句主要有两种,即:条件分支语句(if语句)和开关分支语句(switch语句)。其中,if语句适用于两个或较少分支的选择情况,而switch语句则适合于多分支选择。•if•ifelse•switch存在三种形式的选择结构:151.一路分支if(条件表达式){语句1;语句2;………}条件?语句是否说明:“语句”可以是各种可执行的单语句(只有一条执行语句)或复合语句(有多条执行语句)。如果是单语句,花括号可省略;若是复合语句,则花括号不能省。语法格式if(条件表达式)语句;条件表达式的括号后面没有分号;//3.1.2鸡兔同笼问题#includeiostreamusingnamespacestd;voidmain(void){inthead,foot,chicken,rabbit;cout请输入鸡和兔的总数:;cinhead;cout请输入鸡和兔的总脚数:;cinfoot;if(foot%2!=0){cout输入错误;exit(1);}chicken=(4*head-foot)/2;rabbit=(foot-2*head)/2;cout鸡的数量为:chickenendl;cout兔的数量为:rabbitendl;}1617例:从键盘输入两个实数x和y,顺序输出x,y,要求在x中保存较大的那个数。算法的分析:即对x和y排序,从大到小输出。如果xy(yx),则直接输出x,y;如果xy(yx),则交换x,y的值后输出x,y。示例如何交换x,y的值?18开始输入x,y结束输出x,yyx?FTyxxyxtempyxtempy一路分支结构!输入x,yyx?TFxtempyxtempy输出x,y定义变量x,y,temp•因为x,y为变量,如果将y的值赋给x,则原来x的值会被覆盖掉。•设置中间变量,用它来保留x的值,再将y的值赋给x,然后将中间变量的值赋给y,从而实现值的互换。19#includeiostreamusingnamespacestd;voidmain(){doublex,y,temp;coutintputxandy:;cinxy;if(yx)//缺省形式if语句temp=x;x=y;y=temp;coutx','yendl;}请思考不用中间变量如何实现两个数的交换?输入x,yyx?TFxtempyxtempy输出x,y定义变量x,y,temp{}交换了两个变量的值202.两路分支if(条件表达式){语句1;}else{语句2;}else分句不能单独使用!条件?语句1成立不成立语句2语法格式说明:“语句1”,“语句2”可以是各种可执行的单语句(只有一条执行语句)或复合语句(有多条执行语句)。如果是单语句,花括号可省略,若是复合语句,则花括号不能省。21当条件为真时,跟在if条件后的一组语句被执行。if条件后面的语句被称为真路径—当条件为真时执行的语句(语句1)。两路分支条件?语句1成立不成立语句2当条件为假时,则执行else后的指令,它们被称为假路径—当条件为假时执行的指令(语句2)。22多路分支P56if(条件1)语句1;elseif(条件2)语句2;elseif()┇elseif(条件n-1)语句n-1;else语句n;在嵌套的选择结构中,有一种特殊的嵌套方式,即只有else部分嵌套有内层选择结构,通常将内层选择结构的if和外层选择结构的else书写在同一行。条件1条件2条件(n-1)T语句1语句n语句(n-1)FTTTFF语句2这种嵌套的层次通常可以无限增加,用于实现多路分支选择结构。23示例P57问题:由键盘输入一个四则运算式子,输出该运算式子和运算结果。思路分析:假设输入的数据分别为x、y,运算符号为op,本题要解决的问题实质上就是根据运算符号op是什么,来决定对x、y两个数据采用什么运算。运算符op类型?24N-S流程图y==0YNop==‘/’YNop==‘*’YNop==‘-’YNop==‘+’YN输出”分母为零!输出非四则运算!输出x*y输出x-y输出x+y输入两个数据x、y和运算符号op输出x/y定义变量x、y和opif(条件1)语句1;elseif(条件2)语句2;elseif()┇elseif(条件n-1)语句n-1;else语句n;25#includeiostreamusingnamespacestd;voidmain(){doublex,y;charop;cout请输入算式:endl;cinxopy;}ifcoutx'+'y'='x+yendl;elsecoutx'-'y'='x-yendl;ifcoutx'*'y'='x*yendl;elseifcout除式的分母为零!endl;elsecoutx'/'y'='x/yendl;elsecout非四则运算!endl;特点:需要进行多次选择判断,但是每次都依据同一表达式的值(即op的值)(op=='+')if(op=='-')else(op=='*')if(op=='/')(y==0.0)26示例问题:输入一个年份,判断该年是否为闰年,并输出判断结果。分析:闰年的条件:(1)能被4整除,但不能被100整除的年份;(2)能被100整除,又能被400整除的年份。year%4==0&&year%100!=0||year%100==0&&year%400==0输入需要判断的年份是否满足闰年的条件?TF输出该年是闰年输出该年不是闰年定义变量year27#includeiostreamusingnamespacestd;voidmain(){intyear;coutEnertheyear:;cinyear;if()else}输入需要判断的年份是否满足闰年的条件?TF输出该年是闰年输出该年不是闰年定义变量yearyear%4==0&&year%100!=0||year%100==0&&year%400==0coutyearisaleapyearendl;coutyearisnotaleapyearendl;283.嵌套选择结构P54在if……else语句中,如果在条件成立时或在条件不成立时需要根据另一个条件的成立情况来决定该执行什么操作,则需要用到嵌套的选择结构,嵌套的选择结构,即在条件成立时执行的语句部分或在条件不成立时执行的语句部分中包含另一个选择结构的实现语句。由外层选择结构执行的判断,称为主要判断。由内层选择结构执行的判断,称为次
本文标题:C++基本结构程序设计
链接地址:https://www.777doc.com/doc-3357967 .html