《C++大学教程》学习笔记 第四章:控制语句(第一部分)

来源:互联网 发布:上海js监理工程师证 编辑:程序博客网 时间:2024/06/08 17:40

学习笔记:

1、伪代码只描述可执行语句,不包括变量声明,并且一般只包含main函数中的代码。

2、控制语句有三种结构,分别是顺序语句、选择语句、循环语句。

3、else摇摆问题:C++编译器总是把else同与它最近的if联系起来,因此如果没有正确放置花括号对就会出现逻辑错误。(书中 第92页)

4、几种循环算法:

①计数器控制的循环算法 

for(int i=1;i<100;i++)   //使用i作为计数器{std::cout << "This is number " << i << endl ;}

②标记控制循环:用一个标记数作为结束标记,当输入这个数时结束循环,这种循环为不定数循环。

std::cin >> i ;while(i!=-1)  //一个不确定次数循环使用-1作为结束标记{std::cout << "This is number " << i << endl ;std::cin >> i ;}

5、在大多数计算机中,「float」具有7位有效数字,而「double」具有15位有效数字。显然「float」可以满足使用需求,但我们有时会用「double」来「确保安全」。

6、浮点数通常是除法计算的结果,而10/3是3.33....,是一个无线循环小数。但计算机只为这样的值分配固定大小的空间,显然,浮点数只能是一个近似的值。因此,把浮点数当成准确值来用会导致错误的结果。(比如用来作为循环的判断条件)

7、基本数据类型有显示转换和隐式转换。其中隐式转换通常由系统完成,显示转换用关键字「static_cast <类型>(值)」完成,比如:average=static_cast<double>(total).

8、浮点数的格式化。「 setprecision」 指示了输出数值时的小数位数(会四舍五入),而「fixed」表示强制定点输出。(格式化符号只需写一次,后面输出就都会按照这个格式去输出,不用每次要输出的时候都写)

#include <iostream>#include <stdlib.h>#include <iomanip>using namespace std;int main(int argc, char *argv[]){  double a=2.25365;  double b=3.26533;  double c=88;  cout << "Without 「fixed」" << endl;  cout << setprecision(2) ;    //保留小数点后两位  cout << "The value of A: " << a << endl ;  // 输出 2.3 不是保留两位么?怎么会只有一位。 疑问?  cout << "The value of B: " << b << endl ;  // 输出 3.3 (四舍五入)   cout << "The value of C: " << c << endl ;  //输出 88     cout << endl ;  cout << "After 「fixed」 " << endl ;  cout << fixed  ;   //强制输出小数点位数  cout << "The value of A: " << a << endl ;  // 输出 2.25   cout << "The value of B: " << b << endl ;  // 输出 3.27 (四舍五入)   cout << "The value of C: " << c << endl ;  // 输出 88.00     system("PAUSE");}

9、用一个不可改变的变量或引用,作为自增或自减运算符的操作数是一个语法错误,如:++(x+1)。(x+1不可修改)

10、软件工程中的活动图。实心圆点代表开始,圆角矩形代表动作状态,尖角矩形代表注释符号,空心绕实心圆代表结束,动作状态与注释用虚线连接。

11、伪代码中的软件工程:自顶向下。写伪代码的时候可以采用自顶向下、逐步求精的方法开发伪代码算法。(课本 第100页)

12、在编码之前写伪代码可能让许多人感到不习惯,但《C++大学教程》作者强调:尽管这种开发方式(不写伪代码,直接编码)在简单的或者熟悉的问题上能够行得通,但在大型的或者复杂的项目中往往会导致开发陷入困境。