如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第二章基本控制结构程序设计算法:算法是解决问题的步骤。计算机算法的特征:可执行性(每一步)确定性(每一步)有穷性(不能陷入死循环)可输入输出信息算法是程序设计学习的重点。2.1.2算法的表示任何算法的描述都可以分解为三种基本结构或它们的组合2.2.1if语句例如:a+b>c+d/*等同于(a+b)>(c+d),结果为0或1*/y=a>b/*计算a>b的值0或1赋给y,y的值为0或1*/a>b>c/*等同于(a>b)>c,先求a>b的值,再将结果0或1与c比较大小*/设有定义floata=3.2;intb=5;则:3>a>b//结果是?已知:inta=10,b=20,c=30;floatx=1.8,y=2.4;逻辑表达式求值的优化:分析:读入三个数,先求出两个数中较大者,再将该大数与第三个数比较,求出最大数。intmain(){inta,b,c,max;cout<<"输入三个正数:";cin>>a>>b>>c;cout<<"a="<<a<<'\t'<<"b="<<b<<'\t‘<<"c="<<c<<endl;if(a>=b)max=a;elsemax=b;if(c>max)max=c;cout<<“最大数为:”<<max<<endl;return0;}例2.4输入一个年份,判断是否为闰年2.2.2if语句的嵌套2.2.2if语句的嵌套【例2.8】求一元二次方程ax2+bx+c=0的根。其中系数a(a≠0)、b、c的值由键盘输入。分析:输入系数a(a≠0)、b、c后,令delta=b2–4ac,结果有三种情况:*若delta=0,方程有两个相同实根;*若delta>0,方程有两个不同实根;*若delta<0,方程无实根。#include<iostream>#include<cmath>usingnamespacestd;intmain(){floata,b,c;floatdelta,x1,x2;cout<<"输入三个系数a(a!=0),b,c:"<<endl;cin>>a>>b>>c;cout<<"a="<<a<<'\t'<<"b="<<b<<'\t‘<<"c="<<c<<endl;delta=b*b-4*a*c;if(delta==0){cout<<"方程有两个相同实根:";cout<<"x1=x2="<<-b/(2*a)<<endl;}elseif(delta>0){delta=sqrt(delta);x1=(-b+delta)/(2*a);x2=(-b-delta)/(2*a);cout<<"方程有两个不同实根:";cout<<"x1="<<x1<<'\t'<<"x2=“<<x2<<endl;}elsecout<<"方程无实根!"<<endl;//delta<0return0;}请在VC++平台上运行,输入不同的系数,使程序所有分支都可以被执行一次。2.2.3条件运算符“?:”2.2.3条件运算符“?:”#include<iostream>usingnamespacestd;intmain(){charch;cout<<"ch=";cin>>ch;if(ch>='A'&&ch<='Z')ch+=32;cout<<ch<<endl;return0;}switch(表达式){case常量表达式1:语句1case常量表达式2:语句2…case常量表达式n:语句ndefault:语句n+1}表达式根据考试成绩的等级打印出百分制分数段。讨论:1)case和default仅起语句标号作用,不能控制程序流程2)一旦选中一个case分支后,将继续往下顺序执行语句序列3)添加break语句可以跳出switch语句体,达到控制流程作用例根据考试成绩的等级打印出百分制分数,允许输入大写或小写字母。if语句switch语句·形成分支控制流程·不形成程序控制流程·用于复杂条件判断·表达式的值为数值集合时作多分支控制,可读性较好【例2.3】求4个整数的和。#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<<"sum="<<sum<<endl;return0;}while(i<=n)sum+=i++;while(sum+=i++,i<=n);//循环体为空语句这两种表达方式与例2.11中的循环语句从执行结果看是完全等价的。需要说明的是,虽然C++可以让代码最大限度优化,但往往