《基本程序设计》PPT课件.ppt
《《基本程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《基本程序设计》PPT课件.ppt(138页珍藏版)》请在三一办公上搜索。
1、1,第三章 基本程序设计,2,#include iostreamusing namespace std;void main()int i=1,j=1;couti+i+i+endl;coutiendl;cout(+j)+(+j)+(+j)endl;coutjendl;cout+j+j+j+endl;,3,3.1 顺序结构程序设计,例3.1.1“鸡兔同笼问题”:在一个笼子里养着鸡与兔,但不知其中鸡有多少只,兔有多少只。只知道鸡和兔的总数是a,鸡与兔的总脚数是b,求鸡与兔各有多少只。思路分析:首先从题目本身开始,找出解决问题的基本思路。每只鸡有两只脚,每只兔有四只脚。假设有x只鸡和y只兔,则根据已知
2、条件可列出如下方程组:x+y=a 2x+4y=b对该方程组做进一步的转换可得:,4,5,#includeusing namespace std;void main()int a,b,x,y;couta;coutb;x=(4*a-b)/2;y=(b-2*a)/2;cout鸡的数量为:xendl;cout兔的数量为:yendl;,6,编程技巧:,1在顺序结构的程序设计中,主函数(即main函数)的函数体的执行顺序为语句的书写顺序。即写在前面的语句先执行,写在后面的语句后执行,且每条语句都会被执行一次;2组成顺序结构的常见语句有:(1)说明语句,包括变量、常量定义;(2)表达式语句,由表达式(一般为
3、赋值表达式)加分号构成;(3)输入/输出流语句;(4)复合语句,由 括起来的多条语句组成,具体应用见例;(5)空语句,由独立的分号构成,具体应用见例3在程序中,输入语句的前面通常应该增加一条输出语句,用于提示操作者应该输入几个什么数据类型的数据。,7,例3.1.2 输入一位同学的三门课程考试成绩,计算该同学的平均成绩,要求输出数据的形式如下例:科目 成绩 英语 67 程序设计 78.5 大学物理 89 该生的平均成绩为:78.17,8,思路分析:本程序要求的计算内容很简单,在输入考试成绩score1,score2,score3的基础上,通过运算式子average=(score1+score2+
4、score3)/3可以求出该生的平均成绩。本例的重点在输出数据的位置控制上,如题目示例所示:要求前四行输出的两列信息要对齐,且最后计算出的平均成绩的小数部分只显示两位数字。,9,10,#include iostream#include iomanipusing namespace std;void main()double score1,score2,score3,average;coutscore1score2score3;average=(score1+score2+score3)/3;coutsetw(10)科目setw(12)成绩endl;coutsetw(10)英语setw(12)s
5、core1endl;coutsetw(10)程序设计setw(12)score2endl;coutsetw(10)大学物理setw(12)score3endl;coutfixed;cout.precision(2);cout该生的平均成绩为:averageendl;,11,编程技巧:,1对于输出的多列信息对齐的问题可以通过控制输出的数据所占的位置宽度来实现。实现方法为:在输出该数据前先通过setw(n)来设置该数据输出时所占的最少位置宽度n。使用时需注意;(1)setw(n)所设置的位置宽度只对其后输出的一个数据生效;(2)使用setw(n)时需增加文件包含#include iomanip;,
6、12,2该设置也可以通过cout.width(n);来实现。即语句coutsetw(10)科目setw(12)成绩endl;可更换为:cout.width(10);cout科目;cout.width(12);cout成绩;注意:此方法不再需要文件包含#include iomanip。请大家自行对比这两种方法的优缺点。,13,3在输出一个浮点数时,系统会在科学记数法和小数点法两种形式里按照一定的规则(通常在整数部分超过6位时采用科学记数法)自动选择采用哪种形式输出。若想规定不管什么样的浮点数均使用小数点形式输出,可采用coutfixed;语句来实现4以小数点形式输出浮点数时,系统默认输出的浮点数
7、的整数和小数部分的总位数最多只有6位数字。若想规定输出的浮点数的小数部分的位数可通过cout.precision(n);语句来实现。其中n代表小数部分的位数(若数据的实际位数超过n,则按4舍5入规则处理后输出;若数据的实际位数少于n,则其余位数用0补齐)。5.t:跳8个空格,14,1、在输出该数据前先通过setw(n)来设置该数据输出时所占的最少位置宽度n。setw(n)所设置的位置宽度只对其后输出的一个数据生效;使用setw(n)时需增加文件包含#include iomanip2、cout.width(n);与setw(n)一样 只是不需要#include iomanip“3、输出一个浮点数
8、coutfixed4、cout.precision(n);5.t:跳8个空格,15,3.2 选择结构程序设计,例3.2.1 从键盘输入一个数,计算并输出该数的绝对值。思路分析:对于0和正数而言,其绝对值就是该数本身;对于负数而言,其绝对值为该数与-1相乘的结果。本题算法的实质就是判断什么情况下需要执行“该数与-1相乘”这个操作,同时意味者该操作对应的语句虽然书写在了程序中,但在某种情况下是可能不会被执行的。,16,17,#includeusing namespace std;void main()float m;coutm;if(m0)m=-1*m;cout你输入数据的绝对值为:mendl;,
9、18,编程技巧:,1在程序中,如果书写的某些语句只有在特定的条件成立的情况下才会被执行时,需要把这些语句书写在一路分支选择结构的实现语句if中。(1)if关键字的后面跟一对圆括号(),圆括号中书写需要判断的条件;(2)如果在特定的条件成立的情况下才会被执行的语句超过一条时,这些语句要放在一对花括号 中,此时这一对花括号及其中括起来的所有语句一起组成一条复合语句。,19,2关系运算符,20,注意:,(1)若满足条件,关系表达式的值为布尔值true;(2)若不满足条件,关系表达式的值为布尔值false;(3)关系运算符若为两字符,在书写时两字符间不能加空格;(4)=与=的区别:如x=1为条件表达式
10、,判断x是否等于1。x=1为赋值表达式,将数值1存入变量x中;(5)两个浮点数之间一般不用=来判断是否相等;(6)关系运算符的优先级低于算术运算符,高于赋值运算符。,21,例3.2.2输入一个年份,判断该年是否为闰年,并输出判断结果。闰年的条件:(1)能被4整除,但不能被100整除的年份;(2)能被100整除,又能被400整除的年份,22,思路分析:,假设用year表示年份,则判断year年是否为闰年的问题就转换成了判断数字year是否满足闰年的条件(1)或者条件(2)。在该条件(1)中又要求两个子条件“能被4整除”和“不能被100整除”同时成立。要表示多个条件之间的这种逻辑关系就需要用到本例
11、编程技巧部门中介绍的逻辑运算符。本例中要求根据对year年份的不同判断结果决定输出不同的信息,因此在条件成立时执行一种操作,条件不成立时执行另一种操作。这两种操作不管条件如何,均必有一种操作且只有一种操作会被执行。,23,#include using namespace std;void main()int year;coutyear;if(year%4=0,24,25,注意:(1)由逻辑运算符构成的逻辑表达式的运算结果也是布尔值;(2)逻辑非(!)放在一个条件表达式的前面,用于表示该条件的相反条件。即若原条件成立,则增加逻辑非后表示的条件一定不成立;(3)逻辑与(&)运算符的前后各书写一个条
12、件,只有前后的两个条件都成立时,由逻辑与表示的条件才成立;(4)逻辑或(|)运算符的前后同样需要各书写一个条件,但它只要求这两个条件中有任何一个条件成立就可以了。即只有前后的两个条件都不成立时,由逻辑或表示的条件才不成立;(5)逻辑非运算符的优先级与算术运算的+和-平级,逻辑与和逻辑或运算符的优先级低于关系运算符,高于赋值运算符。,26,运算符优先级,括号+,-,sizeof,-(取负运算)!*,/,%+,-,=,=,!=&|?:赋值运算=逗号运算,,低,高,27,1、if语句及if-else语句2、if-else语句的嵌套3、switch语句,28,顺序结构的实现方法分支结构的实现方法循环结
13、构的实现方法,三种基本控制结构的实现,29,实现选择结构的方法,30,条件的描述方法,31,构成条件可以为:,变量、常量、函数,32,实现选择结构的语句,33,if语句 三种形式,34,嵌套形式,35,36,#include using namespace std;void main()char ch;cinch;if(ch=A,37,语句1;语句2;语句n;,38,从键盘输入两个实数x和y,如果y的值大于x则交换x,y的值并输出x,y.,#includeusing namespace std;void main()double x,y,t;coutxy;if(yx)t=x;x=y;y=t;c
14、outx,yendl;,39,#includeusing namespace std;void main()double x,y;cinx;if(x8.0)y=6.0*x-5.0;else y=10.0-3*x;coutx=xty=yendl;,40,输入一个年份,判断是否闰年。闰年条件:,(1)能被4整除,但不能被100整除的年份;(2)能被100整除,又能被400整除的年份。,41,#include using namespace std;void main()int year;bool IsLeapYear;coutyear;IsLeapYear=(year%4=0,42,运行结果:En
15、ter the year:20002000 is a leap year,43,嵌套形式,44,嵌套形式规则嵌套,45,46,例:输入两个整数,比较两个数的大小,#includevoid main(void)int x,y;coutxy;if(x!=y)if(xy)coutyendl;else coutxyendl;else coutx=yendl;,47,运行情况1:Enter x and y:5 8 xx=y运行结果3:Enter x and y:12 8 xy,48,49,50,51,52,例将等级成绩按下表转换成对应消息输出 等级成绩 消息A或a优秀B或b 良好C或c 一般D或d及格
16、F或f 不及格,53,#includeusing namespace std;void main()char grade;coutgrade;if(grade=A|grade=a)cout优秀endl;else if(grade=B|grade=b)cout良好endl;else if(grade=C|grade=c)cout一般endl;else if(grade=D|grade=d)cout及格endl;else if(grade=F|grade=f)cout及格endl;elsecoutErrorendl;,54,判断两个float型数值相等要小心,因为float型数值在内存中不能精确的
17、存储,所以判断两个float型数值相等不相等,一般比较两个值的差是否小于某值。,55,#include#include using namespace std;int main()float num1=float(10.0);float num2=float(3.0);float quotient=0.0;quotient=num1/num2;,56,if(fabs(quotient-3.33333).00001)cout Yes,the quotient quotient is equal to 3.33333 endl;elsecout No,the quotient quotient i
18、s not equal to 3.33333 endl;return 0;,57,#include#include using namespace std;int main()char letter=;cout letter;if(toupper(letter)=P)cout Pass endl;elsecout Fail endl;return 0;,58,#include#include using namespace std;int main()string name=;cout age;if(age 21)cout name is over 21.endl;elsecout name
19、is not over 21.endl;return 0;,59,#include#include using namespace std;void main()string a1=20040417;string str;coutstr;if(str=a1)coutThe password is correct.press any key to enter!;else cout密码错!endl;,60,switch语句一般形式,61,switch 语句,62,63,#include void main(void)int day;cout day;switch(day)case 0:cout S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本程序设计 基本 程序设计 PPT 课件
链接地址:https://www.31ppt.com/p-4851291.html