分支结构程序设计单元总结

标题 分支结构程序设计单元总结

一:单元知识点及难点
第一课 关系运算符
>=为大于等于 <=为小于等于 ==为等于 !=为不等于

关系表达式的结果为逻辑值真(非0值)或假(0)
例如:1==2 表达式的结果为0
1!=2表达式的结果为1

第二课 逻辑运算符
’&&逻辑与 (双目运算符)||逻辑或(双目运算符) !逻辑非 (单目运算符)
逻辑运算符也存在优先级,注意区分!!
整型数据也可参与逻辑运算
整型数据在参与逻辑运算时根据其值是0或非0,分别当做逻辑值“假”或“真”进行处理。
尤其注意逻辑表达式中的“短路计算”,在逻辑表达式中一旦确定整个表达式的值,就会立刻停止计算。

 #include<iostream>
using namespace std;
int main (){
    int a,b,c,d;
    a=2;b=3;c=0;
    d=(a>b)&&(c=4);
    cout<<d<<" "<<c<<endl;
    return 0;
}

比如闰年表达式中运用逻辑运算符:(x%400==0)||((x%4==0)&&(x%100!=0))

第三课 if语句
if语句有两种表达形式
以旅游题目为例;
表达一:

#include<iostream>                                    
using namespace std;                                
int main (){                                                 
    int n;                                                        
    cin>>n;                                                       
    if(n<=5)                                                     
    cout<<n*300<<endl;                                  
    else                                                        
    cout<<n*280<<endl;                             
    return 0;                              
}   

表达二:

 #include<iostream>
  using namespace std;
   int main (){
   int n,b;
cin>>n;
  b=n*300;
 if(n>5)
  b=n*280;
  cout<<b<<endl;
  return 0;
 }

注意复合语句中if条件句的使用

第四课 if语句的嵌套
if语句使用时注意的问题:分支结构可以嵌套很多层;if与else的配对关系;良好的代码风格。
以判断闰年为例:

#include<iostream>
using namespace std;
int main (){
    int x;
    cin>>x;
   if(x%400==0)
   cout<<"YES"<<endl;
   else
   if(x%4==0)
   if(x%100!=0)
   cout<<"YES"<<endl;
   else
   cout<<"NO"<<endl;
   else
   cout<<"NO"<<endl;
    return 0;
}

第五课:条件表达式
格式:<表达式1>?<表达式2>:<表达式3>
运算规则为首先计算表达式1的值,若为真,则计算表达式2,并将其结果作为整个表达式的值,否则只计算表达式3的值,并将其结果作为整个表达式的值。
以判断闰年为例:

#include<iostream>
using namespace std;
int main(){
    int x;
    cin>>x;
    cout<<(x%400==0?"YES":(x%4==0?(x%100!=0)?"YES":"NO"):"NO"))<<endl;
	return 0;
	}

第六课:switch语句
一般格式:
switch(表达式){
case常量表达式1:语句组1;【break;】
case常量表达式2:语句组2;【break;】

case常量表达式n:语句组n;【break;】
【default:语句组n+1】
}
注意问题:
(1)switch后面的表达式,取值只能是整型,字符型,布尔型或枚举型。case后面的常量表达式,其值类型要与switch后面的表达式类型一致。
(2)任意两个case后的表达式的值必须各不相同,否则将引起歧义。
(3)语句组可以是一条语句,也可以是一个复合语句。
(4)多个case语句可以共用一组程序。
以优惠购物为例:

#include<cstdio>
using namespace std;
int main(){
	char id;
	float price,discount;
	scanf("%c\n",&id);
	scanf("%f",&price);
	switch(id){
		case  'P' :discount=0.7;break;
		case  'G' :discount=0.8;break;
		case  'S' :discount=0.9;break;
		default:discount=0.95;
	}
	printf("%.2f\n",price*discount);
	return 0;
}	

第七课分支结构应用举例
以随机函数为例:

#include<cstdio>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
		int a,b,c;
		srand(time(0));
		int x=1,y=9;
		a=x+rand()%(y-x+1);
		b=x+rand()%(y-x+1);
		x=1;
		y=4;
		c=x+rand()%(y-x+1);
		switch(c){
					case 1:printf("%d+%d=%d\n",a,b,a+b);break;
					case 2:printf("%d+%d=%d\n",a,b,a-b);break;
					case 3:printf("%d+%d=%d\n",a,b,a*b);break;
					case 4:printf("%d/%d=%d\n",a,b,a/b);break;
				}
			return 0;
		}

C++中的rand()函数返回[0,RAND_MAX]之间的随机整数,其中,RAND_MAX一般为32767。但是,在调用rand()之前一般要先设置“随机种子”,通常可以用srand(time(0))来实现。rand()函数和srand()函数需要包含“cstdlib”头文件,time()函数需要包含“ctime”头文件。
一般来说,产生a~b之间的随机整数可以表示为:
a+rand()%(b-a+1).
二:章节易错点整理
1.使用关系运算注意:等于与赋值的区别;实型数据(浮点数)的关系运算;运算的优先级。
2.尤其注意逻辑表达式中的“短路计算”,在逻辑表达式中一旦确定整个表达式的值,就会立刻停止计算。
3.注意复合语句中if条件句的使用。
4.if语句使用时注意的问题:分支结构可以嵌套很多层;if与else的配对关系;良好的代码风格。
5.运算规则为首先计算表达式1的值,若为真,则计算表达式2,并将其结果作为整个表达式的值,否则只计算表达式3的值,并将其结果作为整个表达式的值。
6.任意两个case后的表达式的值必须各不相同,否则将引起歧义。
三:学习中遇到的困难及如何解决
1.做if else语句练习时语句杂多情况下我直接硬写未做必要区分导致结果错误,使我懂得必要时需要用{}括起来做分隔。
2.做章节习题判断闰年时,试过很多语句总是例句正确,提交失败RONG ANSWER,想起老师上课说要把各种极端情况都调试一遍,我又重新看课本理清或与非内涵,试了各种情况,终于通过。
3.做switch语句练习时,漏掉了break,有时还漏掉default,提醒了我一定要细心!!
四,章节学习总体心得
在第一课运算中定义变量int x=6,y=4,z=5则x == x >= y的学习中同时明白了运算级别的顺序。在第二课程序中:体会了假与逻辑与的 逻辑运算,明白了逻辑运算符在实际应用中的含义。学会了if语句的两种格式,同时理解了分支结构和复合语句,明白如何去解决实际问题。理解了if语句的嵌套,明白嵌套原理,尤其注意每个大嵌套中的小嵌套的逻辑顺序,必要时需要用{}括起来做分隔,便于区分。再重复用各种办法写闰年的程序过程中体会了各种方法的表达意义,大体明白了各种方法的注意事项与应用,及如何解决实际问题。理解了switch语句在实际应用中的运算方法。明白分支结构整体框架 学会了运用分支结构去简化问题 学会了用更便捷的方式查找出自己的错误。最后,据老师所讲,要想程序正确,则在调程序时要把极端情况都要调试一遍!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值