歡迎來到編程的世界!

你好!你即將踏入計算機科學的核心領域。編程本質上就是向電腦提供一系列指令來解決問題。這就像為廚師寫食譜,廚師會嚴格遵循你寫的每一個字來執行。在本章中,我們將探討幾乎所有編程語言(包括 PythonVB.NetJavaC#)中使用的基礎構建塊。

如果這看起來像在學習一門外語,請不用擔心——它確實是!我們會循序漸進,並配合簡單的例子,確保你學得充滿信心。

1. 數據類型:信息的標籤

電腦不像人類那麼聰明;它們需要準確知道正在處理什麼類型的數據,才能正確地儲存它們。你可以將數據類型(Data Types)想像成儲物盒上的標籤。

常見的內置數據類型:

  • 整數 (Integer): 純整數(沒有小數點!)。例如:10, -5, 0。
  • 實數 / 浮點數 (Real / Float): 帶有小數點的數字。例如:3.14, -0.5。
  • 布林值 (Boolean): 只有兩個值:True(真)False(假)。就像電燈開關一樣。
  • 字符 (Character): 單個字母、數字或符號。例如:'A', '$', '3'。
  • 字符串 (String): 一串字符的集合(詞語或句子)。例如:"Hello World"。
  • 日期/時間 (Date/Time): 專門用於日曆日期和時間。

複雜數據類型:

  • 陣列 (Arrays): 一組數據類型相同的項目列表。想像一個雞蛋盒,每個格子都必須放一個雞蛋。
  • 記錄 (Records): 一組相關但數據類型可以不同的數據集合。想像一張學生證,上面包含字符串(姓名)、整數(年齡)和日期(出生日期)。

用戶自定義數據類型: 有時,內置的類型並不夠用。你可以根據上述類型建立自己的類型,使程式碼更易於理解。

快速回顧:數據類型

常見錯誤: 認為 "10" 是整數。如果數字被引號包圍,電腦會將其視為字符串(文本),而不是可以用來運算的數字!


2. 編程概念:基礎構建塊

每個程式都是由幾個核心原則構建的。AQA 課程重點關注順序 (Sequence)選擇 (Selection)迭代 (Iteration)

變數 vs. 常數

變數 (Variable) 是一個命名的記憶體位置,其值可以在程式運行時改變(就像遊戲中的分數)。
常數 (Constant) 是一個在程式開始後無法改變的值(例如 \( \pi \) 的值或地球的重力)。使用命名的常數可以讓你的程式碼更易讀,並防止意外修改!

三大原則:

  • 順序 (Sequence): 電腦按照指令從上到下依次執行。
  • 選擇 (Selection): 「決策者」。它使用 IF 語句來選擇要走的路線。例如:IF score > 10 THEN "You Win"。
  • 迭代 (Iteration): 也稱為「循環」。這是電腦重複執行某項任務的過程。

迭代(循環)類型:

  1. 確定迭代 (Definite Iteration): 你確切知道循環會執行多少次(例如,運行 10 次的 FOR 循環)。
  2. 不確定迭代 (Indefinite Iteration): 你不知道它會運行多少次;它會一直運行直到滿足某個條件為止(例如,WHILE 循環)。

注意: 不確定循環可以在開始時檢查條件(可能永遠不會運行),也可以在結束時檢查(至少會運行一次)。

關鍵要點:

有意義的識別符: 始終清晰地命名你的變數!使用 player_health 而不是 ph。這能讓你的程式碼具備「自述性」,方便他人(以及未來的你自己)理解。


3. 算術與邏輯:電腦的「大腦」

電腦基本上是超高速的計算機。你需要知道它們如何處理數學運算和邏輯。

算術運算:

  • 加法 (+)、減法 (-)、乘法 (*)
  • 實數/浮點數除法 (Real/Float Division, /): 標準除法。\( 7 / 2 = 3.5 \)。
  • 整數除法 (DIV): 只取整數部分。\( 7 \text{ DIV } 2 = 3 \)。
  • 求餘數 (MOD): 只取除法後剩下的餘數。\( 7 \text{ MOD } 2 = 1 \)。
  • 冪運算 (Exponentiation): 指數運算(例如 \( 2^3 = 8 \))。
  • 四捨五入 (Rounding): 將浮點數變成最接近的整數。
  • 截斷 (Truncation): 直接「切掉」小數部分,不進行四捨五入。

布爾邏輯運算:

這些運算有助於電腦進行邏輯比較:

  • AND: 兩側必須同時為 True。
  • OR: 至少有一側為 True。
  • NOT: 反轉值(True 變為 False)。
  • XOR: 只有一側為 True(不能兩側皆為 True)。
記憶技巧:DIV 與 MOD

想像 7 塊餅乾分給 2 個人。
DIV 是每個人分到的「完整」餅乾數量 (3)。
MOD 是罐子裡「剩下」的餅乾數量 (1)。


4. 字符串處理:操作文本

字符串在編程中非常常見。你需要掌握這些操作:

  • 長度 (Length): 字符串中有多少個字符?"Cat" 的長度是 3。
  • 位置 (Position): 尋找字符的位置。在 "Apple" 中,'A' 位於位置 0。
  • 子字符串 (Substring): 截取字符串的一小部分。"Hello" 的子字符串可以是 "ell"。
  • 連接 (Concatenation): 將兩個字符串「黏」在一起。"Foot" + "ball" = "Football"。
  • 轉換 (Conversion): 將字符串 "123" 轉換為整數 123,以便進行數學運算。

5. 子程序:聰明地工作,而非辛苦地工作

子程序 (Subroutine) 是主程式中命名過的「小程序」。與其重複寫同樣的代碼 10 次,不如寫一次子程序,然後在需要時隨時「調用 (call)」它。

過程 vs. 函數

  • 過程 (Procedures): 執行一項任務(例如打印訊息),但不會傳回任何值。
  • 函數 (Functions): 執行計算並將結果返回 (return) 給主程式。

參數與作用域

  • 參數 (Parameters): 這是你「傳入」子程序的數據,讓它有足夠的資料來運作。
  • 局部變數 (Local Variables): 這些變數僅存在於子程序內部。它們在子程序開始時「出生」,結束時「消亡」。這是良好的編程習慣,因為它可以防止程式的不同部分意外干擾彼此的數據。
  • 全局變數 (Global Variables): 程式的任何部分都可以查看和修改它們。請謹慎使用!
你知道嗎?

使用子程序能讓你的程式碼更容易測試除錯 (debug),因為你可以分別檢查每個小部分,而不是面對一大堆雜亂的代碼。


6. 錯誤處理:異常

有時事情會出錯(例如嘗試除以零,或者嘗試打開不存在的文件)。這被稱為異常 (Exception)

異常處理 (Exception Handling): 這是一段用來在程式崩潰前「捕獲」錯誤的程式碼。就像馬戲團裡的安全網——即使演員失手,演出也不會以災難告終!


總結檢查清單

在你繼續前進之前,請確保你能回答以下問題:

  • 我能解釋整數 (Integer)實數 (Real) 的區別嗎?
  • 我知道何時該使用 MODDIV 嗎?
  • 我能解釋為什麼局部變數全局變數更好嗎?
  • 我明白選擇 (Selection) 是為了做決定,而迭代 (Iteration) 是為了重複執行嗎?

如果起初覺得有點複雜,別擔心!學習編程最好的方法就是動手寫代碼。試著創建一個使用 IF 語句和循環的小程式——你很快就會豁然開朗!