主題0:認識C、安裝 IDE

What is Programming

Understanding Programming in layman terms …

Programming is a way to “instruct the computer to perform various tasks”.

Instruct the computer

Perform various tasks

這些任務可以是簡單的任務,也可以是涉及多個指令序列的複雜任務。


A programming language is the set of instructions through which humans interact with computers.
The code is pretty much like writing a paragraph of instruction or creating a to-do list to computers. Unlike us humans, the to-do list and instructions you write for the computer has to be extremely detailed and written in some logic.

撰寫程式碼就好像是在寫一段指令,或是為電腦列出一個 to-do list。而電腦並不像我們人類一樣,我們為電腦列出的 to-do list 需要非常的詳細,並且要用某種邏輯來撰寫。

程式語言的分類

機器語言 Machine Language

組合語言 Assembly

高階語言 High-Level Language

直譯程式 vs. 編譯程式

直譯程式
Interpreted Language
編譯程式
Compiled Language
說明 需搭配直譯器(Interpreter)
每翻譯一行指令後,就立刻交付電腦執行,不須經過編譯。
需搭配編譯器(Compiler)
將全部的程式翻譯後,先產生目的檔(.obj),再將其他要連結的程式連結以後,才交由電腦執行。
優點 佔用的記憶體較少。
修改及除錯容易。
執行時不需要重複編譯,所以執行速度及效率較高。
缺點 每次執行前才翻譯,執行速度慢、效率較低。 原始程式經過修改就必須重新編譯。
較佔用記憶體空間。
舉例 BASIC
HTML
JavaScript
Python
Ruby 等
C/C++
COBAL
PASCAL 等

計算機程式組成與執行概念

電腦怎麼來的? ENIAC

電腦怎麼來的? EDVAC

范紐曼架構 Von Neumann Architecture

范紐曼架構的設計概念



Why better than ENIAC?

因為我們會先把要執行的程式碼跟資料都儲存於記憶體,所以如果我們想要變更任務,只需要修改程式即可,不需要去更改線路,省去這個步驟的麻煩。

指令集架構


\[ ISA + Von\text{ }Neuman\text{ }Machine = Basic\text{ }Computer\text{ }Structure \]

如果對電腦的基底有興趣的話,未來可以去修「計算機程式」這門課 :smiley:

認識 C 語言

C-Language Introduction

Features of C-Language

Uses of C-Language

C 語言常用於開發作業系統(如:Windows、UNIX 和 Linux)

C 程式的開發環境

C 程式在執行前會經過六個階段

  1. 編輯:使用者可利用編輯器撰寫或修改 C 程式碼(source code)。
  2. 前置處理:前置處理器(preprocessor)會在開始編譯前自動執行,依據程式碼中 # 所標示的指示,進行代換或插入等動作。例如:#include <studio.h> 告訴編譯器在為編譯程式之前,先將程式庫中的標頭黨 stdio.h 插入該位置。
  3. 編譯:編譯器(compiler)將程式碼編譯為目的碼(object code)。
  4. 連結:連結器(linker)將一個或多個目的檔(.obj)與靜態程式庫檔(.lib)連結,產生可執行檔(.exe)。
  5. 載入:載入器(loader)將可執行檔(.exe)載入記憶體,並與動態程式庫檔(.dll)連結。動態程式庫可減少執行檔所佔的硬碟和記憶體空間。
  6. 執行:最後,電腦在 CPU 的控制下,開始執行所載入的程式。