# CS50 共筆 Week0 ## Computer science ### 一道解決問題的程序 ![](https://i.imgur.com/Gs9SbBU.png) ## Input ### 電腦基本單位 - 電腦最基本的單位為 Binary ( 0 與 1 ) - 透過 0 與 1 可以組成數字、文字、圖片、影像與聲音等 - 每個 Binary Digit 稱為一個 Bit - 8 個 Bit 組成 1 個 Byte ### 如何表示數字 ![](https://i.imgur.com/RcfHnAT.png) ### 如何表示文字 - ASCII (American Standard Code for Information Interchange) - ASCII 是一套編碼系統,主要用於顯示現代英語 - 每一個文字都以 7 個 bit 表示,因此總共可以編碼 128 個不同的文字 - 大寫 A 被編碼為 65,小寫 a 被編碼為 97 - 然而因為這樣的數量遠遠少於世界上現存的文字數量,因此出現了 Unicode 這種新的編碼方式 - Unicode - Unicode 能編碼的文字數量遠多於 ASCII Code - 它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。 ### 如何表示圖片 - Pixel - 一張圖片是由許多小格所組成,每一個小格稱作一個 Pixel - 而每個 Pixel 所呈現的顏色是由 RGB 所表示 - RGB - R 表示紅色,以 0~255 表示深淺 - G 表示綠色,以 0~255 表示深淺 - B 表示藍色,以 0~255 表示深淺 - 因此一個 Pixel 會被表示為成像是 (72, 73, 128) 這樣的形式 ## Algorithm - 影響解決問題所花費之時間 Ex:原本需要n單位時間來解決N Size 的問題 代入演算法後僅需n/2 或是 log n 單位時間即可解決 ![](https://i.imgur.com/y9xWSbm.png) ## Pseudocode - 不是真正的 Code - 僅僅是用 Code 的語法去表達演算法 ## Scratch ### variable 變數的必要條件為值、位置、名稱,用以使人對電腦記憶體進行操作。 ### control flow ```python if a: b() else: c() ``` 判斷條件 a 是否成立,使其進入對應的 section block,成立就做 b,否則 c ### loop 重複執行某個類似的步驟許多次