課程:程式設計

出自 陳富國維基館
於 2013年3月15日 (五) 23:55 由 Wells (對話 | 貢獻) 所做的修訂 (新頁面: =課程資源=<br>*成績冊<br>*課程投影片<br>*原課程網址(參考)<br>*程式設計課程臉書社團<br> 電腦被廣泛地應用在各行各業,從科學、商業、個...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋

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

電腦被廣泛地應用在各行各業,從科學、商業、個人、學習等都可看到各式各樣的程式(在行動裝置上程式被稱作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++中,求餘數的運算子為%。
程式範例解答
#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(){

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.結束
程式範例解答
#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;

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