1.1 简单的C++程序 // PRogram 1_1.cpp #include<iostream.h> void main() { cout<<"Let's learn to write a C++ Program."; cin.get(); } 此程序由6行组成, 1)第1行为注释,程序的每行如出现符号" // ",则其右的所有符号为注释。注释是帮助阅读程序的说明,与该程序运行没有关系。在程序被编译时,注释被当作空格处理。此行指出本程序以文件"program 1_1.cpp"存储。 2)第二行#include是一条编译预处理指令,它告诉编译系统在编译本程序时把系统提供的头文件iostream.h的内容插入到第二行的位置,它在程序中的作用与第5行的输出语句有关。 3)第3~6行是程序的主体,由一个主函数组成。其中main是主函数名,第一个void指出该函数无返回值。括号()表示函数,括号内为函数的参数表,但此函数无参数,故用void表示,它与空括号的效果相同。 第4~6行称为函数体,用{ }括起来。函数体内可以包含任意多行语句。 第5行是本程序中唯一要执行的任务:向屏幕输出(显示)一字符串。 cout是一个标准输出文件名,这里表示屏幕。符号“<<”是运算符,它指示计算机把其右端用双引括起来的字符串输送到cout文件即屏幕。由于cout和<<的说明都在系统提供的头文件iostream.h中,因此,凡是程序中需要使用cout、<<等标准输入输出功能时,第二行包含的指令#include必须列出。 4) cin.get()表示按任意键继续。 5)此程序的执行结果为在屏幕上显示: Let's learn to write a C++ Program.
---------------------------------------
1.1.2 求两个数的和 程序如下: // program 1_2.cpp #include<iostream.h> void main() { int a,b,sum; // 定义了三个整型变量 a=43; // 把整数常量赋给变量a b=37; sum=a+b; // a与b相加的和赋给变量sum cout<<"The sum is"<<sum; cout<<endl; // endl 是回车换行的作用 } 程序运行结果如下: This sum is 80
----------------------------
1.1.3 计算圆面积 程序代码如下: // program 1_3.cpp #include<iostream.h> void main() { const float pai=3.14; // 用const 说明了一个float型常量pai,m由于pai是常量,所以在 // 程序中这个值不会被改变 float radius; // 说明了一个float型变量radius,用于存放半径值 cout<<"Enter radius: "; cin>>radius; // cin 为iosream.h中说明的文件,作用为接收键盘输入。如此 // 时从键盘输入一个数2.5,就把输入的这个值送入变量radius. float area=pai*radius*radius; // 说明了一个float型常量area,用于存放计算后的面积 cout<<"/n The area of circle is : "; cout<<area<<endl; // 输出面积 } 程序运行结果如下: Enter radius: 2.5 The area of circle is 19.625
下面的程序有了“判定”的能力。此程序用于温度值(攝氏与华氏温度)的换算,输入温度值并指出该值是攝氏(C)还是华氏(F)温度,然后程序根据不同的输入(攝氏或华氏)进行不同的换算。 2.1 按条件进行判定 // program 2_1.cpp #include<iostream.h> void main() { float t,tc,tf; char corf; const float fac=1.8,inc=32; cout<<"Enter temperature: "; cin>>t; // 输入温度值 cin>>corf; // 指出是攝氏(C)或华氏(F) if(corf=='c'corf=='C') { tc=t; tf=t*fac+inc; } else if(corf=='F'corf=='f') { tf=t; tc=(t-inc)/fac; } else tc=tf=0.0; cout<<endl<<"The temperature is: "; cout<<tc<<"C="<<tf<<"F/n"; } 程序运行结果如下: Enter temperature: 40.2C The temperature is 40.2C=104.36F
-----------------------------------
下面是使用switch(开关)语句的程序。switch提供了多分支选择的方法。
5.2 简单的计算器程序 这个程序完成的功能是:输入两个数,然后输入运算符,在屏幕上显示运算结果。 // program 2_2.cpp 程序运行结果如下: #include<iostream.h> void main() { int x,y; char op; cout<<"first integer: "; cin>>x; cout<<endl<<"Second integer: "; cin>>y; cout<<endl<<"Operator(+,-,*,/,%): "; cin>>op; switch(op) // switch 开关分支语句从这里开始,根据表达式的值分支 { case '+': // 假如 op=='+' cout<<endl<<x<<"+"<<y<<"="<<x+y; break; // 执行完毕,退出switch分支。下面的break语句的作用相同 case '-': // 假如op=='-' cout<<endl<<x<<"-"<<y<<"="<<x-y; break; case '*': // 假如op=='*' cout<<endl<<x<<"*"<<y<<"="<<x*y; break; case '/': // 假如op=='/' cout<<endl<<x<<"/"<<y<<"="<<x/y; break; case '%': // 假如op=='%' cout<<endl<<x<<"%"<<y<<"="<<x%y; break; default: cout<<endl<<"Wrong!"; } } 程序运行结果如下: first integer: 12 second integer: 7 operator(+,-,*,/,%): * 12*7 = 84
---------------------------------------
上面的这个程序可以由用户任意输入两个整数及运算符,完成指定的运算,但是它的不便之处是当有多次运算要进行时,每算完一次必须重新启动程序。下面的程序使用循环控制语句,使得程序可以进行多次运算。 // program 2_5.cpp #include<iostream.h> void main() { int x,y,quit=1; char op,cont; while(quit) // whiel 循环语句,括号里面是一个表达式,称为控制表达式。当这个表 { // 达式的值为1时继续循环体内的代码。从这个大括号开始,进入循环体。 cin>>x; cin>>y; cin>>op; switch(op) { case '+': cout<<endl<<x<<"+"<<y<<"="<<x+y; break; case '-': cout<<endl<<x<<"-"<<y<<"="<<x-y; break; case '*': cout<<endl<<x<<"*"<<y<<"="<<x*y; break; case '/': if(y==0) cout<<endl<<"Overflow!"; // 判定y是否为0,避免除0错误。 else cout<<endl<<x<<"/"<<y<<"="<<x/y; break; case '%': if(y==0) cout<<endl<<"Overflow!"; // 判定y是否为0,避免除0错误。 else cout<<endl<<x<<"%"<<y<<"="<<x%y; break; default: cout<<endl<<"Wrong!"; break; } cout<<endl<<"Do you want to continue?(y or n)"; cin>>cont; if(cont=='n') quit=0; // 当操作者输入字符'n'时,由于quit被赋值0。 // 当再次检测while表达式时,由于quit为0,所以退出while循环。 } }
这个程序所做出的改进是很明显的,只要在每次完成一次计算后,用户回答是否继续时按下'y'键(或除'n'之外的任何字符),就 可以连续运行,完成用户指定的四则运算,直到接收到字母'n'为止。在循环体内必须有改变while表达式值的语句,否则一旦进入死循环就无法跳出,这种情形称为“死循环”,编程中应注重避免。 2.3 计算e的值和求素数 e是自然对数的底,它和π一样是数学中最常用的无理数常量。其近似值的计算公式为: e=1+1/1!+1/2!+1/3!+...+1/(n-1)!+r 当n充分大时,这个公式可以计算任意精度e的近似值。为了保证误差r<ε,只需1/(n-1)! ( > r) <ε 程序代码如下: // program 2_4.cpp #include<iostream.h> void main() { const double eps=0.1e-10; int n=1; float e=1.0,r=1.0; do // 开始do循环。循环条件由后面的while中的表达式值确定。 { e+=r; n++; r/=n; } while(r>eps); cout<<"The approximate Value of natural logarithm base is: "; cout<<e<<endl; } 程序运行结果如下: The approximate Value of natural logarithm base is: 2.71828