"課程:程式設計" 修訂間的差異

出自 陳富國維基館
前往: 導覽搜尋
(新頁面: =課程資源=<br>*成績冊<br>*課程投影片<br>*原課程網址(參考)<br>*程式設計課程臉書社團<br> 電腦被廣泛地應用在各行各業,從科學、商業、個...)
 
行 1: 行 1:
=課程資源=<br>*成績冊<br>*課程投影片<br>*原課程網址(參考)<br>*程式設計課程臉書社團<br>
+
=課程資源=
 +
*成績冊
 +
*課程投影片
 +
*原課程網址(參考)
 +
*程式設計課程臉書社團
 +
電腦被廣泛地應用在各行各業,從科學、商業、個人、學習等都可看到各式各樣的程式(在行動裝置上程式被稱作App),學習程式撰寫在於學習程式語言工具如何被用來解決各領域的問題,本章列出所有的問題,分析問題,並且告知可用何種程式語言元素來解決,透過連結來存取解決問題所需程式元素的說明,建立起該程式元素的應用技巧與知識。
  
電腦被廣泛地應用在各行各業,從科學、商業、個人、學習等都可看到各式各樣的程式(在行動裝置上程式被稱作App),學習程式撰寫在於學習程式語言工具如何被用來解決各領域的問題,本章列出所有的問題,分析問題,並且告知可用何種程式語言元素來解決,透過連結來存取解決問題所需程式元素的說明,建立起該程式元素的應用技巧與知識。<br>
+
=課程大綱=
 
+
==課程簡介==
<br>=課程大綱=<br>==課程簡介==<br>使學生熟悉結構化之程式語言並學習設計C++程式之過程以建立C++程式設計之能力。<br>==教學目標==<br> 1. 熟悉結構化之程式語言。<br> 2. 學習設計程式之過程。<br> 3. 建立程式設計之能力。<br> 4. 培養學生操作電腦之能力。<br> 5. 利於學生獲得相關證照之取得。<br> 6. 增加學生對程式設計之興趣。<br> 7. 激發學生利用程式設計之能力輔助日後相關課程之學習。<br>==指定書目==<br>快速掌握C++程式設計, 文淵閣工作室編著, 文魁行銷股份有限公司, ISBN-13:978-986-620-612-2 。<br>==參考書目/資料==<br>程式設計電腦輔助學習教材(上網學習)<br>==教學進度==<br>第 1週<br>(02/19-02/24)<br>學期進度說明、評分方式,前學期課程回顧<br>第 2週<br>(02/25-03/03)<br>變數型態及範圍<br>第 3週<br>(03/04-03/10)<br>指標變數與傳址呼叫<br>第 4週<br>(03/11-03/17)<br>遞迴<br>第 5週<br>(03/18-03/24)<br>結構與同位-1<br>第 6週<br>(03/25-03/31)<br>結構與同位-2<br>第 7週<br>(04/01-04/07)<br>檔案輸入與輸出-1<br>第 8週<br>(04/08-04/14)<br>檔案輸入與輸出-2<br>第 9週<br>(04/15-04/21)<br>期中考試(筆試與上機考試)<br>第 10週<br>(04/22-04/28)<br>檔案輸入與輸出-3<br>第 11週<br>(04/29-05/05)<br>檔案輸入與輸出-4<br>第 12週<br>(05/06-05/12)<br>應用程式設計-成績檔輸入、統計、報表、成績檔輸出<br>第 13週<br>(05/13-05/19)<br>應用程式設計-成績檔輸入、統計、報表、成績檔輸出<br>第 14週<br>(05/20-05/26)<br>物件導向程式設計基礎-類別與物件<br>第 15週<br>(05/27-06/02)<br>物件導向程式設計基礎-類別與物件<br>第 16週<br>(06/03-06/09)<br>物件導向程式設計基礎-繼承<br>第 17週<br>(06/10-06/16)<br>物件導向程式設計基礎-多重繼承<br>第 18週<br>(06/17-06/23)<br>包括筆試與上機考試<br>評分方法<br> ‧ 平常成績 30% (到課率、作業、小考等)<br> ‧ 期中考 30%<br> ‧ 期末考 40%<br>
+
使學生熟悉結構化之程式語言並學習設計C++程式之過程以建立C++程式設計之能力。
 
+
==教學目標==
 
+
1. 熟悉結構化之程式語言。
 
+
2. 學習設計程式之過程。
=程式問題解決中心 (Problem Solving Center)=<br>=基本與數學問題==<br>==因數的判斷(易)==<br>問題:求一數f是否為某數N的因數,也就是說,f是否能整除N。<br>做法:整除的判斷即檢查N被f除後,餘數是否為0。在C/C++中,求餘數的運算子為%。<br>程式範例解答<br>#include &lt;iostream&gt;<br>using namespace std;
+
3. 建立程式設計之能力。
 
+
4. 培養學生操作電腦之能力。
void main(){<br> float f, N;<br> cout&lt;&lt;"請輸入N(被除數)與f(除數)"<br> cin&gt;&gt;f &gt;&gt; n;<br> if(N%f == 0){<br> cout&lt;&lt; cout &lt;&lt; f &lt;&lt; "可整除" &lt;&lt; N &lt;&lt; endl;<br> } <br> system("pause");<br>}<br>==閏年的判斷(易)==<br>問題:公元年哪時候二月會閏月?<br>做法:判斷y是否被400整除,可以被4整除不被100整除。<br>程式範例解答<br>#include &lt;iostream&gt;<br>using namespace std;
+
5. 利於學生獲得相關證照之取得。
 
+
6. 增加學生對程式設計之興趣。
void main(){<br> int year;<br> cout&lt;&lt;"請輸入年份"<br> cin&gt;&gt;year;<br> if(year%=400==0)||(year%4==0&amp;&amp;year%100!=0){<br> cout&lt;&lt; "西元" &lt;&lt; year &lt;&lt; "年是閏年" &lt;&lt; endl;<br> }<br> else{<br> cout&lt;&lt; "西元" &lt;&lt; year &lt;&lt; "年是閏年" &lt;&lt; endl;<br> } <br> system("pause");<br>}<br>==質數的判斷(中)==<br>問題:一數N若為質數,N的因數僅有1與本身數N,也就是說若2~(N-1)中有N之因數(可整除N),那麼N即不是質數。<br>做法:<br>1.使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)<br> (迴圈開始)<br>2.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,若i可整除N,設定isPrime為false,跳出迴圈<br> (迴圈結束)<br>3.判斷isPrime為true輸出N為"質數",否則,輸出輸出N為"不是質數"。<br>程式範例解答<br>#include &lt;iostream&gt;<br>using namespace std;
+
7. 激發學生利用程式設計之能力輔助日後相關課程之學習。
 +
==指定書目==
 +
快速掌握C++程式設計, 文淵閣工作室編著, 文魁行銷股份有限公司, ISBN-13:978-986-620-612-2 。
 +
==參考書目/資料==
 +
程式設計電腦輔助學習教材(上網學習)
 +
==教學進度==
 +
第 1週
 +
(02/19-02/24)
 +
學期進度說明、評分方式,前學期課程回顧
 +
第 2週
 +
(02/25-03/03)
 +
變數型態及範圍
 +
第 3週
 +
(03/04-03/10)
 +
指標變數與傳址呼叫
 +
第 4週
 +
(03/11-03/17)
 +
遞迴
 +
第 5週
 +
(03/18-03/24)
 +
結構與同位-1
 +
第 6週
 +
(03/25-03/31)
 +
結構與同位-2
 +
第 7週
 +
(04/01-04/07)
 +
檔案輸入與輸出-1
 +
第 8週
 +
(04/08-04/14)
 +
檔案輸入與輸出-2
 +
第 9週
 +
(04/15-04/21)
 +
期中考試(筆試與上機考試)
 +
第 10週
 +
(04/22-04/28)
 +
檔案輸入與輸出-3
 +
第 11週
 +
(04/29-05/05)
 +
檔案輸入與輸出-4
 +
第 12週
 +
(05/06-05/12)
 +
應用程式設計-成績檔輸入、統計、報表、成績檔輸出
 +
第 13週
 +
(05/13-05/19)
 +
應用程式設計-成績檔輸入、統計、報表、成績檔輸出
 +
第 14週
 +
(05/20-05/26)
 +
物件導向程式設計基礎-類別與物件
 +
第 15週
 +
(05/27-06/02)
 +
物件導向程式設計基礎-類別與物件
 +
第 16週
 +
(06/03-06/09)
 +
物件導向程式設計基礎-繼承
 +
第 17週
 +
(06/10-06/16)
 +
物件導向程式設計基礎-多重繼承
 +
第 18週
 +
(06/17-06/23)
 +
包括筆試與上機考試
 +
評分方法
 +
‧ 平常成績 30% (到課率、作業、小考等)
 +
‧ 期中考 30%
 +
‧ 期末考 40%
  
 +
=程式問題解決中心 (Problem Solving Center)=
 +
=基本與數學問題==
 +
==因數的判斷(易)==
 +
問題:求一數f是否為某數N的因數,也就是說,f是否能整除N。
 +
做法:整除的判斷即檢查N被f除後,餘數是否為0。在C/C++中,求餘數的運算子為%。
 +
程式範例解答
 +
#include <iostream>
 +
using namespace std;
 +
void main(){
 +
float f, N;
 +
cout<<"請輸入N(被除數)與f(除數)"
 +
cin>>f >> n;
 +
if(N%f == 0){
 +
cout<< cout << f << "可整除" << N << endl;
 +
}
 +
system("pause");
 +
}
 +
==閏年的判斷(易)==
 +
問題:公元年哪時候二月會閏月?
 +
做法:判斷y是否被400整除,可以被4整除不被100整除。
 +
程式範例解答
 +
#include <iostream>
 +
using namespace std;
 +
void main(){
 +
int year;
 +
cout<<"請輸入年份"
 +
cin>>year;
 +
if(year%=400==0)||(year%4==0&&year%100!=0){
 +
cout<< "西元" << year << "年是閏年" << endl;
 +
}
 +
else{
 +
cout<< "西元" << year << "年是閏年" << endl;
 +
}
 +
system("pause");
 +
}
 +
==質數的判斷(中)==
 +
問題:一數N若為質數,N的因數僅有1與本身數N,也就是說若2~(N-1)中有N之因數(可整除N),那麼N即不是質數。
 +
做法:
 +
1.使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)
 +
(迴圈開始)
 +
2.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,若i可整除N,設定isPrime為false,跳出迴圈
 +
(迴圈結束)
 +
3.判斷isPrime為true輸出N為"質數",否則,輸出輸出N為"不是質數"。
 +
程式範例解答
 +
#include <iostream>
 +
using namespace std;
 
void main(){
 
void main(){
 
+
int N = 11;
int N = 11;<br> int i = 2;<br> bool isPrime = true;
+
int i = 2;
 
+
bool isPrime = true;
while (i &lt;= N-1 &amp;&amp; isPrime){<br> if (N&nbsp;% i == 0) {<br> isPrime = false;<br> break;<br> }<br> i++;<br> }
+
while (i <= N-1 && isPrime){
 
+
if (N % i == 0) {
if (isPrime){<br> cout &lt;&lt; "是質數";<br> } else {<br> cout &lt;&lt; "不是質數";<br> }
+
isPrime = false;
 
+
break;
system("pause");<br>}<br>==質因數(中+)==<br>問題:印出一數N的質因數<br>做法:<br>判斷2~(N-1)是否為N的因數,並且是否為質數<br> (i迴圈開始)<br>1.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,i若能整除N,則<br> (j迴圈開始)<br> 1.1 使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)<br> 1.2 使用一迴圈敘述,使用迭代變數j,下限值為2,上限值為i-1,若j可整除i,設定isPrime為false,跳出j迴圈<br> (j迴圈結束)<br> 1.3 若isPrime為tru則輸出j<br> (i迴圈結束)<br>2.結束<br>程式範例解答<br>#include &lt;iostream&gt;<br>using namespace std;<br>void main(void){<br> int n;<br> cout&lt;&lt;"請輸入";<br> cin&gt;&gt;n;<br> for(int i=2;i&lt;= n-1;i++ ){<br> if(n%i==0){<br> bool Isprime=true;<br> for(int j=2;j&lt;=i-1&amp;&amp; Isprime;j++){<br> if(i%j==0){<br> Isprime=false;<br> break;<br> }<br> }<br> if (Isprime){<br> cout&lt;&lt;i&lt;&lt;endl;<br> }<br> }<br> }<br> system("pause");<br>}<br>求一數的次方(易/中)<br>問題:n的p次方 = 將n自乘p次。<br>迴圈解步驟:<br> 1. 宣告一浮點數 powerOfn = 1<br> 2. 使用一個迴圈跑p次,powerOfn = powerOfn*n; (若p為負數,取其絕對值,也就是將p乘-1,可用stdlib裏的abs函式)<br> 3. 若p是負數,則powerOfn = 1/powerOfn;<br> 4. 印出powerOfn<br>遞迴解<br> ‧ 請看下面程式範例解答,追蹤一次。(請參考用遞迴做到迴圈效果的說明。)<br>程式範例解答<br>#include &lt;cstdlib&gt;<br>#include &lt;iostream&gt;<br>#include &lt;stdlib.h&gt; //為了使用abs取絕對值函式
+
}
 
+
i++;
 +
}
 +
if (isPrime){
 +
cout << "是質數";
 +
} else {
 +
cout << "不是質數";
 +
}
 +
system("pause");
 +
}
 +
==質因數(中+)==
 +
問題:印出一數N的質因數
 +
做法:
 +
判斷2~(N-1)是否為N的因數,並且是否為質數
 +
(i迴圈開始)
 +
1.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,i若能整除N,則
 +
(j迴圈開始)
 +
1.1 使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)
 +
1.2 使用一迴圈敘述,使用迭代變數j,下限值為2,上限值為i-1,若j可整除i,設定isPrime為false,跳出j迴圈
 +
(j迴圈結束)
 +
1.3 若isPrime為tru則輸出j
 +
(i迴圈結束)
 +
2.結束
 +
程式範例解答
 +
#include <iostream>
 +
using namespace std;
 +
void main(void){
 +
int n;
 +
cout<<"請輸入";
 +
cin>>n;
 +
for(int i=2;i<= n-1;i++ ){
 +
if(n%i==0){
 +
bool Isprime=true;
 +
for(int j=2;j<=i-1&& Isprime;j++){
 +
if(i%j==0){
 +
Isprime=false;
 +
break;
 +
}
 +
}
 +
if (Isprime){
 +
cout<<i<<endl;
 +
}
 +
}
 +
}
 +
system("pause");
 +
}
 +
求一數的次方(易/中)
 +
問題:n的p次方 = 將n自乘p次。
 +
迴圈解步驟:
 +
1. 宣告一浮點數 powerOfn = 1
 +
2. 使用一個迴圈跑p次,powerOfn = powerOfn*n; (若p為負數,取其絕對值,也就是將p乘-1,可用stdlib裏的abs函式)
 +
3. 若p是負數,則powerOfn = 1/powerOfn;
 +
4. 印出powerOfn
 +
遞迴解
 +
‧ 請看下面程式範例解答,追蹤一次。(請參考用遞迴做到迴圈效果的說明。)
 +
程式範例解答
 +
#include <cstdlib>
 +
#include <iostream>
 +
#include <stdlib.h> //為了使用abs取絕對值函式
 
using namespace std;
 
using namespace std;
 +
float base_power(float b,int p)
 +
{
  
float base_power(float b,int p)<br>{<br> <br> if(p==0)<br> return 1; <br> else if (p&gt;0)<br> return base_power(b,p-1)*b; <br> else <br> return base_power(b,p+1)/b; <br> <br>}
+
if(p==0)
 
+
return 1;  
float bp(float b, int p)<br>{<br> float r=1.0;<br> for (int i = 1; i &lt;= abs(p); i++) r *= b;<br> if (p &lt; 0) <br> r = 1/r;<br> return r;<br>}
+
else if (p>0)
 
+
return base_power(b,p-1)*b;  
void main(int argc, char *argv[])<br>{<br> int base,power,result;<br> cout&lt;&lt;"請輸入base值";<br> cin&gt;&gt;base;<br> cout&lt;&lt;"請輸入power值";<br> cin&gt;&gt;power;<br> cout &lt;&lt; base_power(base, power);<br> system("PAUSE");<br>}<br>完全數(中)<br>公因數(中)<br>公倍數(中)<br>費式級數(中)<br>九九乘法表(中)<br>魔方陣(中++)<br>巴斯卡三角形(中++)<br>河內塔(難)<br>字串操作<br>長度計算<br>尋找字元<br>字串串接<br>取子字串<br>字串反轉<br>字元出現次數統計<br>資料分級<br>考試分數<br>溫度<br>風速<br>資料排序<br>氣泡排序法<br>插入排序法<br>資料統計<br>成績總分<br>成績報表<br>銷售/生產統計<br>銷售/生產報表<br>商業應用<br>找零程式<br>各式時刻表<br>月曆<br>檢查碼的計算與驗證-身份證為例<br>成績報表<br>程式設計概念<br>電腦與程式<br>程式語言<br>程式執行環境<br>程式整合開發工具<br>程式基礎<br>輸出入敘述<br>變數與資料型態<br>程式敘述與運算子<br>選擇與判斷敘述<br>重覆敘述<br>格式化輸出敘述<br>陣列<br>字元與字串<br>函式與公用函式(一)<br>程式進階<br>函式-遞迴呼叫與公用函式(二)<br>指標與位址<br>指標與字串<br>指標與二維陣列<br>結構<br>物件導向程式設計基礎<br>物件與類別<br>方法多載<br>繼承與覆寫<br>程式觀念考題破解中心<br>c++考題清單<br>基本程式語法<br>決策程式語法<br>迴圈<br>呼叫/遞迴<br>01 02 03 04 05 06
+
else  
 
+
return base_power(b,p+1)/b;  
07 08 09 10 11 12<br>01 02 03 04 05 06
 
 
 
07 08 09 10 11 12<br>01 02 03 04 05 06
 
 
 
07 08 09 10 11 12<br>01 02 03 04 05 06
 
  
07 08 09 10 11 12<br>
+
}
 +
float bp(float b, int p)
 +
{
 +
float r=1.0;
 +
for (int i = 1; i <= abs(p); i++) r *= b;
 +
if (p < 0)
 +
r = 1/r;
 +
return r;
 +
}
 +
void main(int argc, char *argv[])
 +
{
 +
int base,power,result;
 +
cout<<"請輸入base值";
 +
cin>>base;
 +
cout<<"請輸入power值";
 +
cin>>power;
 +
cout << base_power(base, power);
 +
system("PAUSE");
 +
}
 +
完全數(中)
 +
公因數(中)
 +
公倍數(中)
 +
費式級數(中)
 +
九九乘法表(中)
 +
魔方陣(中++)
 +
巴斯卡三角形(中++)
 +
河內塔(難)
 +
字串操作
 +
長度計算
 +
尋找字元
 +
字串串接
 +
取子字串
 +
字串反轉
 +
字元出現次數統計
 +
資料分級
 +
考試分數
 +
溫度
 +
風速
 +
資料排序
 +
氣泡排序法
 +
插入排序法
 +
資料統計
 +
成績總分
 +
成績報表
 +
銷售/生產統計
 +
銷售/生產報表
 +
商業應用
 +
找零程式
 +
各式時刻表
 +
月曆
 +
檢查碼的計算與驗證-身份證為例
 +
成績報表
 +
程式設計概念
 +
電腦與程式
 +
程式語言
 +
程式執行環境
 +
程式整合開發工具
 +
程式基礎
 +
輸出入敘述
 +
變數與資料型態
 +
程式敘述與運算子
 +
選擇與判斷敘述
 +
重覆敘述
 +
格式化輸出敘述
 +
陣列
 +
字元與字串
 +
函式與公用函式(一)
 +
程式進階
 +
函式-遞迴呼叫與公用函式(二)
 +
指標與位址
 +
指標與字串
 +
指標與二維陣列
 +
結構
 +
物件導向程式設計基礎
 +
物件與類別
 +
方法多載
 +
繼承與覆寫
 +
程式觀念考題破解中心
 +
c++考題清單
 +
基本程式語法
 +
決策程式語法
 +
迴圈
 +
呼叫/遞迴
 +
01 02 03 04 05 06
 +
07 08 09 10 11 12
 +
01 02 03 04 05 06
 +
07 08 09 10 11 12
 +
01 02 03 04 05 06
 +
07 08 09 10 11 12
 +
01 02 03 04 05 06
 +
07 08 09 10 11 12

於 2013年3月15日 (五) 23:56 的修訂

課程資源

  • 成績冊
  • 課程投影片
  • 原課程網址(參考)
  • 程式設計課程臉書社團

電腦被廣泛地應用在各行各業,從科學、商業、個人、學習等都可看到各式各樣的程式(在行動裝置上程式被稱作App),學習程式撰寫在於學習程式語言工具如何被用來解決各領域的問題,本章列出所有的問題,分析問題,並且告知可用何種程式語言元素來解決,透過連結來存取解決問題所需程式元素的說明,建立起該程式元素的應用技巧與知識。

課程大綱

課程簡介

使學生熟悉結構化之程式語言並學習設計C++程式之過程以建立C++程式設計之能力。

教學目標

1. 熟悉結構化之程式語言。 2. 學習設計程式之過程。 3. 建立程式設計之能力。 4. 培養學生操作電腦之能力。 5. 利於學生獲得相關證照之取得。 6. 增加學生對程式設計之興趣。 7. 激發學生利用程式設計之能力輔助日後相關課程之學習。

指定書目

快速掌握C++程式設計, 文淵閣工作室編著, 文魁行銷股份有限公司, ISBN-13:978-986-620-612-2 。

參考書目/資料

程式設計電腦輔助學習教材(上網學習)

教學進度

第 1週 (02/19-02/24) 學期進度說明、評分方式,前學期課程回顧 第 2週 (02/25-03/03) 變數型態及範圍 第 3週 (03/04-03/10) 指標變數與傳址呼叫 第 4週 (03/11-03/17) 遞迴 第 5週 (03/18-03/24) 結構與同位-1 第 6週 (03/25-03/31) 結構與同位-2 第 7週 (04/01-04/07) 檔案輸入與輸出-1 第 8週 (04/08-04/14) 檔案輸入與輸出-2 第 9週 (04/15-04/21) 期中考試(筆試與上機考試) 第 10週 (04/22-04/28) 檔案輸入與輸出-3 第 11週 (04/29-05/05) 檔案輸入與輸出-4 第 12週 (05/06-05/12) 應用程式設計-成績檔輸入、統計、報表、成績檔輸出 第 13週 (05/13-05/19) 應用程式設計-成績檔輸入、統計、報表、成績檔輸出 第 14週 (05/20-05/26) 物件導向程式設計基礎-類別與物件 第 15週 (05/27-06/02) 物件導向程式設計基礎-類別與物件 第 16週 (06/03-06/09) 物件導向程式設計基礎-繼承 第 17週 (06/10-06/16) 物件導向程式設計基礎-多重繼承 第 18週 (06/17-06/23) 包括筆試與上機考試 評分方法 ‧ 平常成績 30% (到課率、作業、小考等) ‧ 期中考 30% ‧ 期末考 40%

程式問題解決中心 (Problem Solving Center)

基本與數學問題=

因數的判斷(易)

問題:求一數f是否為某數N的因數,也就是說,f是否能整除N。 做法:整除的判斷即檢查N被f除後,餘數是否為0。在C/C++中,求餘數的運算子為%。 程式範例解答

  1. include <iostream>

using namespace std; void main(){ float f, N; cout<<"請輸入N(被除數)與f(除數)" cin>>f >> n; if(N%f == 0){ cout<< cout << f << "可整除" << N << endl; } system("pause"); }

閏年的判斷(易)

問題:公元年哪時候二月會閏月? 做法:判斷y是否被400整除,可以被4整除不被100整除。 程式範例解答

  1. include <iostream>

using namespace std; void main(){ int year; cout<<"請輸入年份" cin>>year; if(year%=400==0)||(year%4==0&&year%100!=0){ cout<< "西元" << year << "年是閏年" << endl; } else{ cout<< "西元" << year << "年是閏年" << endl; } system("pause"); }

質數的判斷(中)

問題:一數N若為質數,N的因數僅有1與本身數N,也就是說若2~(N-1)中有N之因數(可整除N),那麼N即不是質數。 做法: 1.使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數) (迴圈開始) 2.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,若i可整除N,設定isPrime為false,跳出迴圈 (迴圈結束) 3.判斷isPrime為true輸出N為"質數",否則,輸出輸出N為"不是質數"。 程式範例解答

  1. include <iostream>

using namespace std; void main(){ int N = 11; int i = 2; bool isPrime = true; while (i <= N-1 && isPrime){ if (N % i == 0) { isPrime = false; break; } i++; } if (isPrime){ cout << "是質數"; } else { cout << "不是質數"; } system("pause"); }

質因數(中+)

問題:印出一數N的質因數 做法: 判斷2~(N-1)是否為N的因數,並且是否為質數 (i迴圈開始) 1.使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,i若能整除N,則 (j迴圈開始) 1.1 使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數) 1.2 使用一迴圈敘述,使用迭代變數j,下限值為2,上限值為i-1,若j可整除i,設定isPrime為false,跳出j迴圈 (j迴圈結束) 1.3 若isPrime為tru則輸出j (i迴圈結束) 2.結束 程式範例解答

  1. include <iostream>

using namespace std; void main(void){ int n; cout<<"請輸入"; cin>>n; for(int i=2;i<= n-1;i++ ){ if(n%i==0){ bool Isprime=true; for(int j=2;j<=i-1&& Isprime;j++){ if(i%j==0){ Isprime=false; break; } } if (Isprime){ cout<<i<<endl; } } } system("pause"); } 求一數的次方(易/中) 問題:n的p次方 = 將n自乘p次。 迴圈解步驟: 1. 宣告一浮點數 powerOfn = 1 2. 使用一個迴圈跑p次,powerOfn = powerOfn*n; (若p為負數,取其絕對值,也就是將p乘-1,可用stdlib裏的abs函式) 3. 若p是負數,則powerOfn = 1/powerOfn; 4. 印出powerOfn 遞迴解 ‧ 請看下面程式範例解答,追蹤一次。(請參考用遞迴做到迴圈效果的說明。) 程式範例解答

  1. include <cstdlib>
  2. include <iostream>
  3. include <stdlib.h> //為了使用abs取絕對值函式

using namespace std; float base_power(float b,int p) {

if(p==0) return 1; else if (p>0) return base_power(b,p-1)*b; else return base_power(b,p+1)/b;

} float bp(float b, int p) { float r=1.0; for (int i = 1; i <= abs(p); i++) r *= b; if (p < 0) r = 1/r; return r; } void main(int argc, char *argv[]) { int base,power,result; cout<<"請輸入base值"; cin>>base; cout<<"請輸入power值"; cin>>power; cout << base_power(base, power); system("PAUSE"); } 完全數(中) 公因數(中) 公倍數(中) 費式級數(中) 九九乘法表(中) 魔方陣(中++) 巴斯卡三角形(中++) 河內塔(難) 字串操作 長度計算 尋找字元 字串串接 取子字串 字串反轉 字元出現次數統計 資料分級 考試分數 溫度 風速 資料排序 氣泡排序法 插入排序法 資料統計 成績總分 成績報表 銷售/生產統計 銷售/生產報表 商業應用 找零程式 各式時刻表 月曆 檢查碼的計算與驗證-身份證為例 成績報表 程式設計概念 電腦與程式 程式語言 程式執行環境 程式整合開發工具 程式基礎 輸出入敘述 變數與資料型態 程式敘述與運算子 選擇與判斷敘述 重覆敘述 格式化輸出敘述 陣列 字元與字串 函式與公用函式(一) 程式進階 函式-遞迴呼叫與公用函式(二) 指標與位址 指標與字串 指標與二維陣列 結構 物件導向程式設計基礎 物件與類別 方法多載 繼承與覆寫 程式觀念考題破解中心 c++考題清單 基本程式語法 決策程式語法 迴圈 呼叫/遞迴 01 02 03 04 05 06 07 08 09 10 11 12 01 02 03 04 05 06 07 08 09 10 11 12 01 02 03 04 05 06 07 08 09 10 11 12 01 02 03 04 05 06 07 08 09 10 11 12