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