官术网_书友最值得收藏!

順序結構

順序結構如同自然語言中的文章一樣,按照事件的發展順序,依次自上而下書寫需要的程序語句,并以語句出現的順序來執行。

【例題描述】 魔法石檢驗

魔法的能量是從魔法石中提取的,如圖2.1所示。每一塊魔法石的價值由一個三位整數表示,其中百位數表示等級,十位數表示類別,個位數表示純凈度。現已知一個魔法石的三位數表示,試分別輸出該魔法石的等級、類別、純凈度。

圖2.1

題目本質是分解一個三位整數,而取余運算可以得到數據的各個位數。因此對實際分解過程進行模擬,即不斷取余,依次得到數據的各個位數。例如分解數據398,采用的方案為:

(1)取其個位:398%10=8

(2)取其十位:398/10%10=9

(3)取其百位:398/100=3

參考程序如下所示:

1 //魔法石檢驗
2 #include <iostream>
3 using namespace std;
4 
5 int main()
6 {
7  int num;                   //先定義變量
8  int hundred,ten,indiv;
9  cout<<"請輸入一個三位數";
10  cin>>num; //輸入一個三位數
11  hundred=num/100; //分解百位數
12  ten=num/10%10; //分解十位數
13  indiv=num%10; //分解個位數
14  cout<<"百位數為"<<hundred<<endl; //輸出
15  cout<<"十位數為"<<ten<<endl;
16  cout<<"個位數為"<<indiv<<endl;
17  system("pause");
18  return 0;
19 }

【例題描述】 小數的四舍五入

魔法世界用于魔法石能量檢驗的儀器可以精確到小數點后7位,但一般使用時只需對小數點后第三位四舍五入就可以了,現輸入一個實數,實現小數點后第三位的四舍五入,例如輸入1.235,輸出1.24。

設輸入的實數為x,假設要操作的數據x=2.3567,如果希望保留兩位小數從第三位實現四舍五入,那么執行x=(int)(x*100+0.5),即2.3567×100+0.5來實現第三位的進位。

要想保留兩位小數,則取整以后進行整除,即x/=100。

參考代碼如下所示:

1 //小數的四舍五入
2 #include <iostream>
3 #include <iomanip>
4 using namespace std;
5 
6 int main()
7 {
8  double x;
9  cout<<"請輸入一個雙精度數";
10  cin>>x;
11  x=(int)(x*100+0.5);
12  x/=100;
13  cout<<setprecision(2)<<fixed<<x<<endl;
14  system("pause");
15  return 0;
16 }

【上機實踐】 求三角形面積

如圖2.2所示,三角形魔法陣是魔法師公認的最強大的陣形之一,因為三角形有著穩固、堅定、耐壓的特點。現輸入三角形的三邊長,求三角形面積(假設輸入的a、b、c能構成三角形)。

圖2.2

已知三角形三條邊的長度a、b、c,求三角形面積S,可以使用海倫公式,海倫公式是這樣的:

,則

求一個數的平方根可以使用sqrt函數,例如sqrt(16)的結果是4。使用sqrt函數需在程序開頭寫#include <math.h>,即包含數學頭文件。

核心偽代碼為:

1 注意要包含數學頭文件
2 定義浮點數a,b,c,p,area
3 輸入a、b、c的值
4 計算p的值
5 計算面積值area
6 輸出面積值area

注意,計算p的值不能這樣寫:p=1/2*(a+b+c),而應該寫成p=1.0/2*(a+b+c),或者p=(a+b+c)/2。為什么要用1.0而不是1呢,這是因為如果是1/2,系統將會視之為兩個整型數據相除,得到的值也是一個整型數,即1/2的結果舍棄小數部分后結果為0,而0乘以任何數也為0。

這種錯誤一般都非常隱蔽,在編程中要特別小心。

【上機實踐】 求一元二次方程的根

含有一個未知數,且未知數的最高次數是2的整式方程叫作一元二次方程,其一般形式為ax2+bx+c=0(a≠0)。如圖2.3所示,魔法學院圖書館珍藏著據說是上古時代古巴比倫人的《泥板文書》的魔法古籍中,就記載有求解一元二次方程根的解法。現已知一元二次方程ax2+bx+c=0,其中a、b、c由鍵盤輸入,試求出方程的根。為了簡便起見,假設輸入的a、b、c三個值后b2-4ac≥0。例如當程序運行時輸入165,輸出結果為x1=-1 x2=-5。

圖2.3

此題可以使用求一元二次方程式的求根公式

則x1=p+q,x2=p-q

核心偽代碼為:

1 定義a,b,c,disc,p,q
2 輸入a,b,c的值
3 計算b*b-4*a*c值給disc
4 計算p的值
5 計算q的值
6 輸出x1、x2的值
主站蜘蛛池模板: 章丘市| 湖北省| 嘉义市| 韶关市| 洞头县| 晋宁县| 冷水江市| 扎赉特旗| 诏安县| 邓州市| 宜良县| 隆林| 庄河市| 岑溪市| 周至县| 喀喇沁旗| 洪雅县| 洛扎县| 鄯善县| 曲阜市| 台山市| 五莲县| 射阳县| 呼和浩特市| 星子县| 仙桃市| 溧阳市| 秀山| 凭祥市| 克东县| 和硕县| 吉水县| 邢台县| 洛宁县| 砀山县| 犍为县| 遵化市| 永州市| 文登市| 陕西省| 浦东新区|