2 变量与代数思维
2.1 关于超级计算器的几点思考
强大 / 不强大 ?
各种各样的函数在哪里?软件开发工具包SDK!
2.2 电子秤模拟——背景介绍及需求分析
在超市购买水果
- 显示屏
- 按键(不同功能,不同水果)
- 称量模块(测量并记录质量)
- 存储模块(存储水果价格)
- 计算模块(加法、乘法)
计算公式
“超级计算器”的缺陷:
- 不能设定水果价格
- 不能满足不同用户对水果的不同质量需求
“超级计算器”用作电子秤:
- 需要一种“东西”,能存储数值
- 需要一种“方法”,能接受外界输入
对应程序设计的知识点:
- 变量——存储数值
- 输入流对象cin——接受外界输入
2.3 电子秤模拟——代码实现
【任务2.1】端午节快到了,王小二同学到超市去买东西。他是一个聪明的孩子,当看到电子计价算账方便快捷后,就想编个程序模拟一下。
cin、输入流运算符>>
“超级计算器”的局限:
- 只能称两种水果
- 无法调整水果的价格
程序中蕴含的道理:
- 实际中卖的水果种类有限
- 水果价格在一定时期内基本固定
变量、代数思维、算数的思维
2.4 变量定义与变量类型
变量的基本概念、变量命名
变量的数据类型:1. 基本数据类型 2. 构造数据类型
不同类型的数据占用大小不同的内存空间。
C/C++的基本数据类型
- 整型:(1)int 整型(2)unsigned int 无符号整型(3)long int 长整型(4)unsigned long int 无符号长整型
- 实型:(1)float 浮点型(2)double 双精度型(3)long double 长双精度型
- bool:逻辑型
- char:字符型
定义变量和变量初始化
&运算,得到变量a的地址
变量赋值
2.5 猜数游戏与数据表示
猜数游戏:你心里默想一个小于50的数,接着,我问你在以下的6张卡片中,哪几张卡片里有你想的那个数?之后,我不费吹灰之力就能猜出这个数。现在试一试。
算法的代码实现、卡片号
整数在计算机中的二进制表示形式
int类型的数据在内存中占4个字节
卡片设计的原理、要放置的数
思考题:设有从1到N共N个正整数,如果想玩上面的猜数游戏,需要制作多少张卡片?各张卡片上应该分别填写哪些数字呢?
2.6 关于变量的讨论
2.6.1 变量的初始值
int num;
cout << num << endl;
如果变量自定义后没有赋值,则变量的内存单元中的值是一个随机的数值,在不同的机器上、在不同的环境下,单元的内容是不同的。
教训:使用变量之前,首先赋予一个有意义的值,否则将得不到想要的结果。
2.6.2 变量类型
int、float
类型的用途:告诉计算机如何操作数据。
类型的作用:帮助计算机运用正确的规则进行计算。
2.6.3 变量内存单元地址
变量存储在哪里 double、cout、char。
2.6.4 存“变量地址”的变量——指针
指针。
2.6.5 指针的读/写操作
对变量地址对应的内存单元的读/写操作。
链表。
2.6.6 指针的加/减操作
变量地址(内存单元地址)的加减操作
T *p = &var;
(1)p + 1 -> value of p + sizeof(T)
(2)p - 1 -> value of p - sizeof(T)
2.7 变量体现的计算思维
变量、培养计算思维
与变量相关的“计算思维”
以符号形式表达数学公式,完成一般性的求解。
本课程中变量的命名规范
小写字母、下划线。
关于赋值运算符=
2.8 程设论道
类型、变量
把握事物规律,掌握事物因果
2.9 师生问答
数据类型的划分
自定义数据类型