什麼是APCS?

APCS(Advanced Placement Computer Science)是指大學先修課程以及對應的檢測。APCS檢測的目的在於檢測學生是否具有修完這些課程的水準。在高中的新課綱中,程式設計的基本概念已經被納入課綱,基本上同學們應該已具有一級分到三級分的水準,或者是一年級資訊相關科系大學生等級的課程內容。四級分、五級分則需要具備資料結構及演算法等較屬於二年級資訊相關科系大學生等級的課程內容(成績說明)。

APCS檢測分兩種題型,第一種題型是屬於程式設計觀念題,第二種是屬於程式設計實作題 (試題說明)。程式設計觀念題是以C語言出題,程式設計實作題則可以使用C、C++、Java、Python來作答。

C語言以及C++語言

C語言是個很精簡的語言,可以很容易的在不同的平台上開發對應的編譯器,達到跨平台使用同一個語言的目標。C++則是基於C的語法並提供更強大的功能,主要的差別在於C++提供了物件導向的概念,不過,APCS的內容不包括物件導向的概念,所以,以APCS的角度來看,C++與C的主要差別在於C++內建了一些不太一樣的輸出輸入語法,以及基本的資料結構與演算法 (如:向量、排序等)。因此,本課程以C語言為主,C++語言為輔。

變數型態

<aside> 💡 C語言以及C++與Python最不一樣的是變數型態的處理,在Python裡,不需要宣告變數,也不需要宣告變數型態。有些人會因此覺得Python比較先進,其實不是先進或落後,而只是對變數的處理態度不同。不用宣告變數及資料型態或許會比較方便,然而,在很複雜的程式中,往往會造成不小心重複使用到同樣的變數而造成困擾。

</aside>

C語言的主要內建變數型態有整數、浮點運算數、字元(char)。整數又分為:short、int、long,主要差別在於可以儲存數字的大小。浮點運算數又分為:float、double、long double,主要差別在於可以儲存數字的大小。字元就是只存一個字元,當我們要儲存多於一個字元的內容時。基本上在C語言裡就是利用字元陣列來儲存。

<aside> 📢 另一個與Python不一樣的是,C語言以及C++必須在敘述最後加上「;」。

</aside>

宣告(declare)變數(variable)的方式是:

int a;
int b;
float c;
char d;

宣告時,通常會順便給一個起始值,因為如果沒有給起始值,後面如果使用到這個變數,會得到記憶體內原本的資料,而不是0。Python不用宣告,所以,沒有這個問題。

<aside> 💡 避免以後會有問題,建議宣告變數時就給定一個起始值。

</aside>

int a = 0;
int b = 10;
float c = 1.2;
char d = 'a';