3、变量、赋值语句

2023-01-16 0 349

1、表达式和表达式类别

实例2.1:

将有理数65储存到计算机系统缓存中,并输入。

//exam2.1 #include <iostream>using namespace std; int main() { int a; //表述auth表达式a a=65; //将有理数65取走a中 cout<<a<<endl; //输入a的值 return 0; }

运转结论:

65

聊著:比python麻烦事哦,还得先表述再取走再输入。

auth内部空间挤占4二进制,容许存放在a中的统计数据为:-2147483648~2147483647范围内的有理数。

实例2.2:int

写作上面流程的运转结论,想来表达式a的促进作用:

//exam2.2 #include <iostream>using namespace std; int main() { int a; //表述auth表达式a a=65; //将有理数65取走a中 cout<<a<<endl; //输入a的值 a=100; //将有理数100取走a中 cout<<a<<endl; //输入a的值 return 0; }

运转结论:

65

100

聊著:好神奇,我还以为第一个65会被覆盖住呢。。。

实际这是两次输入,第二次取走100的时候,的确覆盖住原来的表达式了。

2、C++的表达式名

命名规则:

1)表达式名只能出现字幕(A-Z,a-z)、数字(0-9)或下划线。【和Python一样】

2)第一个字符不能是数字

3)不能是C++关键字:

聊著:friend竟然是个关键字。。。神奇

3、变量、赋值语句

4)区分大小写,1A和1a是两个不同的表达式

3、表达式的表述

表达式表述的促进作用是,在缓存开辟一个类别标识符指定类别的内部空间,用表达式名标识。

取走表达式前,首先要表述表达式,

格式:

类别标识符 表达式名1,表达式名2,…,表达式名n;

实例2.4:float

将实数65。5储存到计算机系统缓存表达式a中,并且输入:

//exam2.4 #include <iostream>using namespace std; int main() { float a; //表述浮点型表达式a a=65.5; //将实数65.5取走a中 cout<<a<<endl; //输入a的值 return 0; }

运转结论:

65.5

浮点型内部空间挤占4二进制,容许存放在a中的统计数据为:-3.4E+38~3.4E+38(7位有效数字)范围内的实数。

实例2.5:char

将字符“A”储存到计算机系统缓存表达式a中,并输入:

//exam2.5 #include <iostream>using namespace std; int main() { char a; //表述字符型表达式 a=A; //将字符A取走a中 cout<<a<<endl; //输入a的值 return 0; }

运转结论:

A

字符型内部空间挤占1二进制,容许存放在a中的统计数据是编码为-128~127范围内对应的字符,但一般情况,我们更多使用字符类别存放键盘字符。

实例2.6:

求长为7.5cm,宽为10.6cm的矩形面积,要求先将矩形长和宽统计数据分别储存到表达式x、y中。

//practice2.6 #include <iostream>using namespace std; int main() { float a,b; //表述浮点型表达式a b a=7.5; b=10.6; //将长宽分别取走a、b中 cout<<“长方形面积为”<<a*b<<“平方厘米”<<endl; //输入a的值 return 0; }

运转结论:

长方形面积为79.5平方厘米

书中给的实例代码:

#include <iostream>using namespace std; int main() { float x=7.5; float y=10.6; cout<<“Area of a rectangle:”<<x*y<<endl; //输入a的值 return 0; }

运转结论:

Area of a rectangle:79.5

附录B中的短auth长auth啥的看哭了,咋这么多基本统计数据类别,都很常用么? P57

作业:

1、表达式名哪些合法,哪些不合法,说明原因:

3zh 不合法,数字不能放开头

ant 可以

_3cq 可以

my 可以

friend 关键字,不可以

Mycar 可以

my_car 可以

all 可以

55a 不可以,数字不能放开头

a_abc 可以

while 不可以,关键字不能做表达式名

daf-32 不可以

x.13 不可以,字母数字下划线,点不可以

Var(3) 不可以,括号不可以

maxn 可以

max&min 不可以,&特殊符号不可以

4、表达式句子和数学表达式

实例2.7:

求半径为7cm的圆面积:

//exam2.7-1 #include <iostream>using namespace std; int main() { float radius; float area; radius=7; area=3.14159265*radius*radius; cout<<“Circular area = “<<area<<endl; //输入a的值 return 0; }

运转结论:

Circular area = 153.938

表达式运算符用于对表达式进行表达式,分为简单表达式(=)、复合算术表达式(+=、-=、*=、/=、%=)和复合位运算表达式(&=、|=、^=、>>=、<<=)三类共11种。

实例2.8:

写作上面流程,理解表达式句子:

//exam2.8 #include <iostream>using namespace std; int main() { int a=5; cout<<a<<endl; a=a+2; cout<<a<<endl; a=a+5; cout<<a<<endl; return 0; }

运转结论:

5

7

12

聊著:这点和python挺像的

实例2.9:

写作上面流程,想来复合算术表达式的功能:

//exam2.9 #include <iostream>using namespace std; int main() { int a,b; a=b=3; a+=b; cout<<a<<endl; cout<<b<<endl; return 0; }

运转结论:

6

3

实例2.10:

编程实现两个表达式x、y之间值的交换。

//practice2.10 #include <iostream>using namespace std; int main() { int a=3,b=7,c=0; c=b; b=a; a=c; cout<<a<<endl; cout<<b<<endl; return 0; }

运转结论:

7

3

书上给出的实例代码:

#include <iostream>using namespace std; int main() { float x,y,t; x=10.5; y=30.6; cout<<x<<” “<<y<<endl; t=x;x=y;y=t; cout<<x<<” “<<y<<endl; return 0; }

运转结论:

10.5 30.6

30.6 10.5

-2020.8.19-

5、表达式的自增和自减

auth和浮点型表达式的值加1可以使用自增运算符“++”

【这里和python还是有区别的,python用的是一个加号】

用法:

1)表达式名++;

2)++表达式名;

注意,这两种都可以使表达式的值加1,但是是有差异的。

实例2.11:

写作流程和流程运转结论,想来,表达式自增两种用法的共同点和它们的区别。

//exam2.11 #include <iostream>using namespace std; int main() { int n1,n2=5; //表述表达式,并给n2表达式赋初值 n2++; //自增n2 cout<<“n2=”<<n2<<endl; ++n2; cout<<“n2=”<<n2<<endl; n1=n2++; cout<<“n1=”<<n1<<” n2=”<<n2<<endl; n1=++n2; cout<<“n1=”<<n1<<” n2=”<<n2<<endl; return 0; }

运转结论:

n2=6

n2=7

n1=7 n2=8

n1=9 n2=9

单独使用自增的时候,n2++ 和 ++n2无差异,结论是一样的;

但是在表达式句子中,

第11行,n1=n2++; 先将n2表达式给n1,然后n2再加1,所以n1是直接被表达式的结论——7,n2是7自增1后的结论,8;

第13行,n1=++n2; n2先加1后表达式给n1,执行后n1和n2的值相同,都是8+1=9.

整型或浮点型表达式的值减1可以使用自减运算符“–”,其用法与自增类似。

6、流程中的数学表达式

数学表达式 由统计数据、表达式、运算符、数学函数、括号组成,流程中的数学表达式需要用语言能后接受的运算符和数学函数表示。

实例2.12:

已知a=5.5 b=6.7 c=9.3,编程求式子 (-b+4ac)/2a

//practice 2.12 #include <iostream>using namespace std; int main() { float a=5.5; float b=6.7; float c=9.3; cout<<“结论等于”<<(b+4*a*c)/(2*a)<<endl; return 0; }

运转结论:

结论等于17.9909

书上的实例代码:

//exam 2.12 #include <iostream>using namespace std; int main() { float a,b,c,f; a=5.5; b=6.7; c=9.3; f=(b+4*a*c)/(2*a); cout<<f<<endl; return 0; }

运转结论:

结论等于17.9909

实例2.13:

为了激励员工稳定工作,小红所在的公司每年都在元月一次性提高员工的当年的月工资。小红2012年的月工资为4000,在2014年时他的月工资增加到5290元,她在2015年的月工资按2012到2014年的月工资的平均增长率继续增长,那么小红2015年的月工资是多少?

做错了!!!

//practice 2.13 #include <iostream>#include <cmath>using namespace std; int main() { cout<<“2015年工资是”<<5290*(sqrt(5290/4000))<<“元”<<endl; return 0; }

运转结论:

2015年工资是5290元

错误原因应该是中间值是float 但没标注就默认int,数值上有偏差了,要分布来,注意统计数据类别

修改后:又错了!!!

//practice 2.13-1 #include <iostream>#include <cmath>using namespace std; int main() { float x; float y; x=sqrt(5290/4000); y=5290*x; cout<<“2015年工资是”<<y<<“元”<<endl; return 0; }

运转结论:

2015年工资是5290元

这里错的原因是,注意到了x和y的浮点型,但是忘记了如果想要按照实数计算,那算式中至少要有一个数是实数,也就是,5290或4000 至少一个我得写成 5290.0或4000.0

这次修改对了!一定要注意细节!

//practice 2.13-2#include <iostream>#include <cmath>using namespace std; int main() { float x; float y; x=sqrt(5290.0/4000.0); y=5290*x; cout<<“2015年工资是”<<y<<“元”<<endl; return 0; }

运转结论:

2015年工资是6083.5元

ps:好激动啊,终于自己掉了个坑自己又爬出来了,开心~

实验:删除上述流程中的头文件#include <cmath> ,编译运转流程看到什么错误?说明头文件的促进作用。

这就和Python中调用库都要import一样,import numpy as np 才可以使用np.blablabla…

删除后会出现这样的报错,它是找不到sqrt的, 因此啊,与数学函数相关的,要记的cmath。

3、变量、赋值语句

实例2.14:

一列火车在某地时的速度是v0=40km/h,现以加速度a=0.15m/s²行驶,求2min后的速度v和距开始点的距离s。

vt=v0+at

s=v0t+1/2 *at²

//practice 2.14 #include <iostream>using namespace std; int main() { float v0,a,v,s; int t; v0=40/3.6; a=0.15; t=2*60; v=v0+a*t; s=v0*t+0.5*a*t*t; cout<<“2分钟后的速度是”<<v<<“m/s”<<endl; cout<<“距开始点的距离是”<<s<<“m”<<endl; return 0; }

运转结论:

2分钟后的速度是29.1111m/s

距开始点的距离是2413.33m

7、常量定义

常量的值在流程中不能变化,这就不管是数学还是计算机系统,python还是C++,都这么讲,没啥特殊的。

格式:

<类别说明符>const<常量名> eg: int const X=2;

const<类别说明符><常量名> eg: const int X=2;

π用常量表述后,上面的流程可以写为:

3、变量、赋值语句

可修改为:

#include <iostream>using namespace std; int main() { const float PI=3.14159265; //表述常量PI存放π的值 float radius; float area; radius=7; area=PI*radius*radius; cout<<“Circular area = “<<area<<endl; //输入a的值 return 0; }

使用常量的好处:

1、修改方便 2、可读性强 3、为了区别常量和表达式,通常流程中常量名用大写字母表示

作业:

1、假定上面每个表达式中auth表达式x的值均为10,求x和y的值。

表达式值表达式值++x11x++11–x9x–9y=x++x=11 y=10y=5*x++x=11 y=50y=–xx=9 y=9y=x–*2+3x=9 y=21

最后一个y错了:

#include <iostream> using namespace std; int main() { int x=10,y; y=x–*2+3; cout<<x<<endl; cout<<y<<endl; return 0; }

运转结论:

9

23

符号在前,就是先加减,符号在后就是后加减

就是x–或者x++表达式给y,都是直接将x表达式给y,然后x自身增减

2、查阅附录C,写作下列流程写出运转结论后运转流程验证,分析

ceil函数、floor函数、pow函数、sqrt函数的促进作用以及ceil函数和floor函数的区别。

#include <iostream>#include <cmath>using namespace std; int main() { cout<<“ceil(3.14)=”<<ceil(3.14)<<“floor(3.14)=”<<floor(3.14)<<endl; cout<<“4^3.0=”<<pow(4,3.0)<<endl; cout<<“sqrt(9)=”<<sqrt(9)<<endl; return 0; }

运转结论:

ceil(3.14)=4floor(3.14)=3

4^3.0=64

sqrt(9)=3

ceil函数:小数取上整

floor函数:小数取下整

pow函数:a的b次幂

sqrt函数的促进作用:开方

以及ceil函数和floor函数的区别:一个取上整一个取下整

3、540棵树苗分给五、六年级同学去种,五年级有120人,六年级有150人,如果按照人数进行分配,每个年级各应分得多少棵树苗,用流程实现。

#include <iostream>using namespace std; int main() { int x=540,a=120,b=150; cout<<“五年级要分”<<x/(a+b)*a<<“棵树苗”<<endl; cout<<“六年级要分”<<x/(a+b)*b<<“棵树苗”<<endl; return 0; }

运转结论:

五年级要分240棵树苗

六年级要分300棵树苗

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务