Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

25 total results found

1.1 安裝 Code::Blocks

C++程式設計入門 1-開發環境

下載 至 https://www.codeblocks.org/ ,依序點選 [Downloads] →[Download the binary release]。 下載 [codeblocks-16.01mingw-setup.exe] (16.01 是版本,請找當時最新版的) 安裝 基本上都接受預設值,按 [Next] →[I Agree] →[Next]→[Install] 即可。 等待安裝結束。 選 [是] 啟動 Code::Blocks。 把安裝程式結束 [Next]→[Finish]。 ...

1.2 可在線上撰寫程式的 OnlineGDB

C++程式設計入門 1-開發環境

如果你只是在練解題,只會寫些小程式,OnlineGDB 是一個不錯的選擇,你不用安裝開發環境,只要連上 OnlineGDB 網站,就可以直接使用。 按下上面綠色的 [Run],執行結果就會顯示在下面。 當手邊沒有電腦,只有手機和平板時,這種線上開發平台就很方便。

2.1 輸出

C++程式設計入門 2-變數與輸入、輸出

使用 cout 輸出資料 在 Code::Blocks 裡建立一個專案後,它會自動產生這樣一個程式架構。 #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } main function 其中的 main() 稱為主函數(main function),它是程式的起點。程式在啟動後,會由 main 裡的第一行開始依序執行下去。 return 0; 表示帶著...

2.2 變數與輸入

C++程式設計入門 2-變數與輸入、輸出

像 1, 24, 3.14 這樣的數,我們稱為 字面常數(literal constant),它的值是固定不變的。 另外像我們在數學代數中用到的 x, y, z 等,則稱為 變數 ,它的值可以改變。 在電腦程式中,變數是很重要的。它可以用來儲存輸入的資料,計算中的數值,表示某個狀態等。 使用 cin 輸入資料 下面這段程式在執行之後,會先詢問你的年齡,在你輸入年齡並按下 [Enter] 後,輸出 "You are xx years old."。這個 xx 會是你輸入的值。 int age; cout << "Ho...

3.1 if ... else ...

C++程式設計入門 03-選擇結構

每一行程式碼都會執行到? 我們寫的每一行程式碼都有用嗎?當然有用。那每一行都會被執行嗎?這要看情況。 之前我們寫的程式,會從 main() 函數的第一行開始一行一行依序執行下去,直到程式結束。但在真實世界運作的程式是要有彈性的,例如:指紋鎖必須要在使用者指紋與內部設定吻合時,才會開鎖,否則什麼都不做。也就是這樣一個結構: 接下來我們我們以「計算絕對值」為例,來看看這種結構。 if 敘述 練習:絕對值 讀入使用者輸入的整數 $a$,計算並輸出其絕對值 $|a|$。 絕對值表示數線上原點到該數值的距離,所以若 $a\...

3.3 複合條件判斷式

C++程式設計入門 03-選擇結構

搭配使用邏輯運算子 底下是一個典型的帳密驗證程式片斷。 string id, password; cin >> id; cin >> password; if(id=="admin") { if(password=="123456") { cout << "登入成功" << endl; } else { cout << "登入失敗" << endl; } } else { cout << "登入失敗" << endl; } ...

2.3 運算子與運算優先順序

C++程式設計入門 2-變數與輸入、輸出

在掌握了基本輸入、輸出之後,我們已經具備「將資料讀進電腦」,「將處理後資料送回外界」的能力,接下來重點就是中間的「處理」,也就是運算的部分。 首先我們要認識兩個名詞: 運算元(operands) 運算子(operator) 以 2+3 為例,2 和 3 都是運算元,+ 是運算子。 我們可以把運算子想成是「運算符號」,運算元則是「運算的對象」。 指定(assign)運算子 在 C++ 中,= 不是 等於(equal) 而是 指定(assign) a = 3 是「把 3 指定 給 a 這個變數」,而非表示「...

3.4 switch ... case

C++程式設計入門 03-選擇結構

另一種「多分支」選擇結構 當你遇到像這樣的多分支選擇結構時,可以用 if...else if...else來解決。 例如:一個像這樣的選單功能 #include <iostream> using namespace std; int main() { cout << "(1) 提款" << endl; cout << "(2) 存款" << endl; cout << "(3) 查詢帳上餘額" << endl; cout << "(0) 結束" << endl; cou...

3.2 關於 if 敘述大括號的使用

C++程式設計入門 03-選擇結構

內容只有一行時可以省略大括號 if...else if...else 的大括號內如果只有一行時,可以省略大括號。 所以前面範例練習的內容可以寫成這樣。 練習:絕對值 #include <iostream> using namespace std; int main() { int a; cin >> a; if(a<0) a = -1*a; cout << "|a|=" << a << endl; return 0; } ...

4.1 while 迴圈

C++程式設計入門 04-重覆結構

程式執行流程結構 目前為止我們學過了兩種程式執行的流程結構,(1)循序結構;(2)選擇結構。 接下來我們要學的是 重覆結構,也就是可以重覆執行一段程式。 while 練習:輸出一行,共 5 個 '*' 這個很簡單,只要一行 cout 就能搞定。 cout << "*****" << endl; 那如果是這題呢? 練習:輸出一行,共 375 個 '*' 我們不太可能傻傻的在字串裡一邊打字一邊數 375 個吧?我們想要的是重覆 cout << '*'; 375 次。而且要簡單明瞭,不是複製後貼上 375 次。 在這...

4.2 do...while 迴圈

C++程式設計入門 04-重覆結構

猜數字遊戲 有時候事情要先做了,看狀況才知道要不要繼續下去。例如我們小時候玩的猜數字遊戲,A 心裡選定一個 1~100 之間的整數由 B 來猜,每次 B 猜了之後,A 就要回應他 (1)再大一點;(2)再小一點;(3)答對了。直到 B 猜中那個數字為止。目標是在最少的猜測次數中,命中正確答案。 把它寫成程式,大致如下。主要問題在於,B 要先猜一個數字,你才知道他猜的對不對,要不要繼續讓他猜下去。我們按下面程式這樣設計,while 迴圈的第一次條件判斷會遇到問題 - 「yourguess 的值還沒確定」,因為 B ...

4.4 for 迴圈

C++程式設計入門 04-重覆結構

while 和 do...while 迴圈很適合用在「你知道什麼條件下迴圈要繼讀或停止」,因為決定是否再繞一圈的就是一個條件判斷式。 但是在你很清楚一共要繞幾圈的情況下,使用接下來介紹的 for 迴圈,會輕鬆很多。 for 迴圈 使用 while 迴圈來繞指定圈數,我們多採用這樣的架構,其中變數 i 擔任計數器,我們會: 指定計數器的初始值 每圈檢查計數器的值是否仍符合條件 每圈遞增計數器的值 for 迴圈可以一次搞定這三者。 for 的基本語法 以輸出 1~10 為例,程式看起來比較簡潔,而且還是很清晰。...

4.5 巢狀迴圈

C++程式設計入門 04-重覆結構

多層迴圈 如同 if ... else 可以有多層結構,迴圈也可以有多層結構。多層迴圈是什麼樣子呢?我們以時鐘的時針、分針為例來說明。 分針和時針各是一個迴圈,分針 0~59,時針 0~11。 分針會由 0 分 轉到 59 分,接下來轉到 60 分時,時針會前進一格,分針則歸零重新開始新的一圈。 for(int hour=0; hour<12; hour++) // 外圈是時針 { for(int minute=0; minute<60; minute++) // 內圈是分針 { ...

4.3 遞增、遞減與複合指定運算子

C++程式設計入門 04-重覆結構

遞增與遞減運算子 我們很常在迴圈裡用到 i = i+1 這樣的遞增敘述。 int i=1; while(i<=10) ( cout << i << " "; i = i+1; // 遞增 1 } cout << endl; 1 2 3 4 5 6 7 8 9 10 這種情況可以使用 遞增(increment)運算子 ++ 來處理。 int i=1; while(i<10) ( cout << i << " "; i++; // 遞增 1 } cout << endl; ...

5.1 一維陣列

C++程式設計入門 05-陣列

陣列(Array)的結構 陣列這種資料結構是用來儲存許多相同型別的資料用的。如果我們把變數想像成是一個可以放東西的箱子,那麼陣列就是一堆箱子的集合,而且每個箱子都有一個連續編號的索引值(index)。 例如:我們要儲存 10 個學生的成績(都是整數),我們可以使用這樣一個內含 10 個元素(element)/項目(item)的陣列。 宣告陣列 在程式中我們可以這樣宣告這個陣列 score。 int score[10]; 其語法為 型別 陣列名稱[元素數量]; 其中陣列名稱的命名規則與一般變數的命名規則相...

5.2 字串

C++程式設計入門 05-陣列

字串是字元的陣列 字串可以被視為一個字元型別的一維陣列,例如:"Hello world!"在記憶體中是這樣一個一個字元儲存的。 #include <iostream> using namespace std; int main() { char greeting[13] = "Hello world!"; cout << greeting; return 0; } 在上圖中最後一個字元 '\0'是什麼呢?這個是所謂的 null字元。 因為每個字串的長度是不一定的,cou...

5.3 多維陣列

C++程式設計入門 05-陣列

二維陣列 把索引值擴展為 2 維,我們就可以得到二維陣列。 一個大小為 m x n 的二維陣列,可以這樣宣告。 // 宣告一個 4 x 6 的 int 二維陣列 int A[4][6]; 和一維陣列一樣,可以在宣告時給定初值。 int A[4][6] = { {1, 2, 3, 4, 5, 6}, {5, 12, 7, 11, 9, 8}, {10, 21, 13, 22, 23, 16}, {4, 78, 13, 45, 51, 11} }; 搭配雙層迴圈遍歷其值 我們可以使用雙層迴圈,把前...

6-1 函數

C++程式設計入門 06-函數

隨著寫程式經驗愈來愈多,你會發現有些程式碼會不斷重複出現,就像例行性工作一樣,例如:求平方根、將資料排序、驗證帳號密碼......等等。一次又一次的輸入這些程式碼會讓人很不耐煩。對於這些經常出現的程式碼片段,我們可以使用函數來把它們包裝起來。C/C++裡面的函數就像數學裡面的函數,例如: $f(x)=2x^2+3x+4$ 它有一個輸入:x,有一個輸出:f(x)。你給它一個輸入 3,它在運算後會給你一個輸出31;你給它另一個輸入 2,它會給你另一個相應的輸出18。不管你給的輸入是什麼,它都會很忠實的去完成該做的事 $...

6-2 重覆使用函數

C++程式設計入門 06-函數

相同名稱的函數 原則上函數的名稱不能重覆,但是只要其參數列不同,就可以使用相同的名稱。 以下面的程式為例,我們可以觀察到叫用函數時,編譯器會檢查函數名稱和參數列數量和型別。 #include <iostream> using namespace std; // 回傳 2 整數中的最小值 int MIN(int a, int b) { cout << "回傳 2 整數中的最小值" << endl; if(a<=b) return a; else return...

6-3 傳值呼叫 與 傳參考呼叫

C++程式設計入門 06-函數

參數與引數 在提到函數與呼叫使用函數時,我們會用到 參數(parameter) 和 引數(argument) 這兩個名詞。 我們可以簡單的用這張圖來區分他們。 參數(parameter) 是在定義函數時,用來承接傳入資料的變數。 引數(argument) 是在呼叫使用函數時,傳入的資料。 然而在大多數的情況下,大家並不會區分的那麼清楚,很多時候我們都會用 參數 來意指兩者。在後續的內容裡除非特別需要指出其不同,否則我們會使用 參數 這個詞。 傳值呼叫(call by value) 在叫用函數時,我們通常都...