C/C++

2012/10/27 謝碧景(c)編製更新 

dload  Dev-C++ tv 教學影片win7 以上安裝<Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe (約49 MBtv 教學影片XP 安裝<devcpp-4.9.9.2_setup.exe>】

  • Win7 以上,請下載Dev-C++ → http://orwelldevcpp.blogspot.tw/
  • 若有舊版本的 Dev-C++存在,將無法安裝,故須先移除舊版本,才能安裝新版本。安裝過程中先以英文版本安裝,安裝完成後再改為中文化,即可使用。

 概述   


 練習
ex1


ex1-2

ex2-1、2

ex3-1、2、3


ex4

ex5








ex6


題1:輸入圓半徑,求圓面積、及圓周長。【提示:圓半徑 r,圓周率p,則圓面積是pr2圓周長為2pr方法2:利用: #define 建立常數)
   (檔名:ex1.cpp 上傳Moodle平台)
  • 【進階題】請輸入時間之秒數,轉換成【時:分:秒】格式輸出顯示。【提示:1小時3600秒,1分鐘60秒,參閱:運算子→比較/及%的差異】(檔名:ex1-2.cpp)

題2:求梯形面積。  【提示:(上底+下底)*高/2。參考cin 範例(檔名:ex2.cpp)

題3:輸入圓球半徑,求圓球體積。【提示:球半徑 r,p代表圓周率,則球體積是 (4/3)r3p注意:型別強制轉換 (檔名:ex3.cpp)

題4:輸入攝氏(Celsius)溫度,並轉換華氏(Fahrenheit)溫度輸出。  【提示:F=(9/5)*C+32】(檔名:ex4.cpp)

題5:求 x 的 n 次方,(例:2的n次方→方法:以 pow(x,n) 次方函數)。提示:#include <cmath> 引入函式庫,內建 pow(x,n) 函數 ,參閱:數學函數(檔名:ex5.cpp)

執行結果:
求x^n,請輸入x,n=13  5 
13^5=371293
求x^n,請輸入x,n=3  7 
3^7=2187

題6輸入一個3位數的整數,並請倒著輸出此3位數值例:輸入123,即輸出321。參閱:運算子→比較/及%的差異,及跳脫符號中 \t 移到下一定位(檔名:ex6.cpp)

執行結果:
請輸入一個3位數的整數:123
3          2         1
請輸入一個3位數的整數:789
9          8         7

 初階練習(圖形化):Hour of Code→https://code.org/learn
 進階練習(Coding):高中生程式解題系統_Online Judge→https://zerojudge.tw

 
 if 條件

  五、條件:(1)單向選擇【if...】 (2)雙向選擇【if...else...】 (3)多向選擇【if...else if...else】  講義


  單向選擇

  if (條件式)

  {

       成立敘述;

     …

  }

 
  雙向選擇

  if (條件式)

     {

   成立敘述;

   }

    else

       {

      不成立敘述;

     }

  多向選擇

 if (條件式1)

    {程式區;}

 else if (條件式2)

            {程式區2;}

         else if (條件式3)

               {程式區3;}

          else

                  {程式區else;}

  多向選擇

 switch (運算式 或 變數 )

    {

  case 值1:

          敘述1;

          break;

  case 值2:

          敘述2;

          break;

          ...........

  default:

          敘述;

    } 




 if-1(單向)
 if-2(雙向)
 if-3(數函)
題1:輸入一整數,並求其絕對值 。【流程圖:單向雙向參閱:比較運算子,方法2:數學函數 (方法3: 運用三元運算子檔名:if-1.cpp


 
 if-1(單向)
 if-2(雙向)

 






 if-1if-2
 if-3、if-4

 
 
題2: 輸入一正整數,判斷為奇數(odd)或偶數(even)。流程圖:單向雙向
        提示:% 運算子求餘數;方法1→單向選擇方法2→雙向選擇( 上傳Moodle平台檔名:if-2.cpp)

執行結果:
輸入一正整數,判斷此數是否為一個奇數或偶數。
請輸入此數:55
55
為奇數
輸入一正整數,判斷此數是否為一個奇數或偶數。
請輸入此數:56
56
為偶數

  • 【進階題】輸入兩正整數,判斷此二數是否為一個奇數與一個偶數。【流程圖:雙向多向提示:&&(且)、||(或)→邏輯運算子( 檔名:if-2-1.cpp)
執行結果:
輸入兩正整數,判斷此二數是否為一個奇數與一個偶數。
請輸入此二數:55 56
55,56恰為一個奇數與一個偶數
輸入兩正整數,判斷此二數是否為一個奇數與一個偶數。
請輸入此二數:55 55
55,55不為一個奇數與一個偶數


 if-1
 if-2
 if-3

 
  

: 輸入一個整數,請判斷這個整數為兩位數整數(請考慮10~99 與 -10~-99 兩種狀況)。【流程圖提示:&&(且)、||(或)→邏輯運算子( 檔名:if-3.cpp)

執行結果:
判斷一個輸入的數字是否為兩位數整數
請輸入此數字=35
35
為兩位數整數
判斷一個輸入的數字是否為兩位數整數
請輸入此數字=355
355
不為兩位數整數
判斷一個輸入的數字是否為兩位數整數
請輸入此數字=-35
-35
為兩位數整數
判斷一個輸入的數字是否為兩位數整數
請輸入此數字=-355
-355
不為兩位數整數

 
 if-1
 if-2
 switch







 if-1
 if-2

 



輸入一整數分數,判斷成績的分佈(80~100列為甲、60~79列為乙、0~59為丙、否則成績非0~100)。【流程圖多向選擇( 檔名:if-4.cpp)

執行結果:
請輸入成績:87
成績87分列為甲
請輸入成績:102
輸入102分錯誤,成績非0~100
請輸入成績:-2
輸入-2分錯誤,成績非0~100 
請輸入成績:60
成績60分列為乙

: 輸入身高及體重,求個人BMI值(輸出:請四捨五入至小數點下2位)?並判斷體位標準與否?
提示1:BMI=體重/(身高*身高),身高以公尺(M)為單位,體重以公斤(KG)為單位 。
     BMI<18.5 ,請輸出“體重過輕”。
   18.5≦BMI≦23 ,請輸出“標準體重”。
   23<BMI<25 ,請輸出“體重過重”。 
     BMI≧25 ,請輸出“肥胖家族”。 流程圖】( 檔名:if-5.cpp)
提示2引入#include <iomanip> 函式庫,可運用 setprecision(n) 較精確輸出結果。參閱:變數→資料型別

執行結果:
本程式將計算BMI,並判斷體位是否標準。
請輸入身高(M):1.75
請輸入體重(Kg):70
你的身高為175公分 體重為70公斤 BMI=22.86
標準體重
本程式將計算BMI,並判斷體位是否標準。
請輸入身高(M):1.8
請輸入體重(Kg):120
你的身高為180公分 體重為120公斤 BMI=37.04
肥胖家族


 if-1
 
if-2
 if-3


 








 if
:輸入月份(月份為一個正整數),判斷此月份在四季(北半球→春、夏、秋、冬)中的哪一季 ?( 檔名:if-6.cpp)
    (陽曆(即國曆)→春:3~5月,夏:6~8月,秋:9~11月,冬:12~2月)【流程圖

執行結果:
輸入月份,判斷此月份在四季中的哪一季
請輸入月份:5
5月為春季
輸入月份,判斷此月份在四季中的哪一季
請輸入月份:55
不要亂打
輸入月份,判斷此月在四季中的哪一季
請輸入月份:8
8月為夏季
輸入月份,判斷此月份在四季中的哪一季
請輸入月份:2
2月為冬季
  • 【進階題】百貨周年折扣戰,顧客購物金額折扣如下:
     10,000(含)以上→打 9.5 折
     20,000(含)以上→打 9 折
     30,000(含)以上→打 8.5 折
     40,000(含)以上→打 8 折
執行結果:
請輸入購買金額:11000
實付金額:10450
請輸入購買金額:38000
實付金額:32300


 
if-1
 if-2
 if-3
:輸入一個整數,請判斷此數是否為5或7的倍數所有情況均需輸出。流程圖 檔名:if-7.cpp)

執行結果:
請輸入一個整數:35
35為5且7的倍數
請輸入一個整數:20
20
為5的倍數,不為7的倍數
請輸入一個整數:49
49不為5的倍數,為7的倍數
請輸入一個整數:111
111不為5亦不為7的倍數


 
if-1
 if-2
 if-3
三元運算子

  

題8:輸入數,找出最大值與最小值。【流程圖( 檔名:if-8.cpp) 參閱:三元運算子

執行結果:
輸入三數,找出最大值與最小值。
請輸入此三數:3 4 5
(3,4,5)中,最大值為5 最小值為3
輸入三數,找出最大值與最小值。
請輸入此三數:5 5 6
(5,5,6)中,最大值為6 最小值為5


 if-1
 if-2
題9判斷平年及閏年。【提示:閏年的規則wiki→西元年份除以400 餘數為0,或者除以4 餘數 為0 且除以100 餘數不為0,則為閏年。流程圖→延伸:高中生程式解題系統 Online Judgea004:文文的求婚( 檔名:if-9.cpp)
 
執行結果:
請輸入西元年份:2020
西元2020年為閏年!
請輸入西元年份:2100
西元2100年為平年!


 
if-1
 if-2
 if-3
 
 10: 輸入一字元,判斷輸入的字元是英文小寫或大寫字母或數字。【方法1(參閱 ASCII符號表)   
     if (ch>='a' && ch<='z')    可判斷字元是否介於 a~z 英文字母小寫
 
    if (ch>='A' && ch<='Z')   可判斷字元是否介於 A~Z 英文字母大寫
     if (ch>='0' && ch<='9')    可判斷字元是否介於 0~9 數字

【方法2(參閱:輸入字元函式輸入字元函式 getchar()由鍵盤輸入字元,待按Enter鍵後系統只取第一個字元。getchar()函數,定義在stdio.h標頭檔

執行結果:
請輸入一字元:f
f
 is 英文小寫字母
請輸入一字元:M
M is 英文大寫字母
請輸入一字元:5678
5 is 數字
請輸入一字元:*
*
 非英文或數字字元


 

11:[找錢問題]小明用1000元買東西,求剩餘最多可找多少張500元、100元的鈔票及50、10、5、1元硬幣各幾個(以幣值最大者兌換)。

執行結果:
輸入購買的金額(1-1000):123
找錢:
500元鈔1
100元鈔3
50元硬幣1
10硬幣2
5元硬幣1
1元硬幣2
輸入購買的金額(1-1000):619
找錢:
500元鈔0
100元鈔3
50元硬幣1
10硬幣3
5元硬幣0
1元硬幣1
輸入購買的金額(1-1000):1055
金額錯誤!請輸入1-1000元
輸入購買的金額(1-1000):-3
金額錯誤!請輸入1-1000元


六、迴圈:while、do...while 及 for  講義

七、陣列: 講義

八、函式: 講義

九、檔案處理 講義

 

 C/C++ 數位學習網

 Code.org http://code.org/

 延伸學習:免費的程式入門課程資源 摘自:T客邦

ċ
main.cpp
(0k)
Jing Tw,
2012年11月11日 上午4:43