---
# System prepended metadata

title: 1007 課程筆記
tags: [微課程, 基礎語法, 中一中]

---

1007 課程筆記
===
###### tags: `基礎語法` `中一中` `微課程` 
```c=
// compiler : 編譯器
#include<iostream> // C++ 才看得懂的函式庫(library)
using namespace std;

// 單行註解: 這個根本沒用 笑死
/* 整段註解:
 * 這個根本沒用
 * 笑死
 */

// 腳本(script)預設函數(function) : main
int main()
{
    int a; // integer(整數) - 32bit(位元)
    int b;
    float A = 10/3; // float(浮點數) - 轉成二進位的特性，很常出現誤差

    string ss; //型態(type)-字串(string) ss:變數名稱

    cin>>a;
    if( a==12 ){ //判斷式
        cout<<"Got it";
    }else{
        cout<<"GG";
    }
}

/*
                 111111
 29(10) = 000...000011101
-29(10) = 111...111100011
  0(10) = 000000000000000

29 = 1*2^4 + 1*2^3 + 1*2*2 + 1*2^0
0.75 = 0.5+0.25 = 1*2^(-1)+1*2^(-2) = 0.11

0.6(10) = 0.1001100110011001....
0.6*2 = 1.2  ...小數點後的第1位是1
0.2*2 = 0.4  ...小數點後的第2位是0
0.4*2 = 0.8  ...小數點後的第3位是0
0.8*2 = 1.6  ...小數點後的第4位是1
0.6*2 =
*/
```
* 大數據(big data)：
  - feature(特徵)：可以有效區分的判斷標準
    符合時為目標群體，且不符合時一定非目標群體 
  - 歸納：從目標中分析出共通點
    死亡的人生前都喝過水 = 喝水的致死率 100%
  - 如何從銀行帳戶的資料辨別潛在恐怖份子？
    收入正常但是不會購買當地的社會保險(外國醫療很貴)
* 設定 CodeBlock 環境，並在桌面創立資料夾創立新檔案
  - newfile to print "Hello World"
* 編譯器(compile): 將英文轉變為二進位的代碼
  註解：做日記紀錄內容，編譯器會跳過註解的部分
  ```c=
   // 單行註解
   /* 段落註解
    * 段落註解
    */
  ```
* 程式語言之間的關係
  - Python / C++ / Java 底層運作都是 C 語言
  - C > C++ > C#(4個++)
  - Python 是一種「重視排版」的語言，但 C++ 是透過大括號{ } 和 分號; 判斷程式碼的區塊範圍
* 函式庫(library): 使用特定功能函數時要先包含
  - ```c=
    #include< lib_name >
    ```
  - 讀取的 cin 和輸出的 cout 屬於 iostream 底下
  - 注意箭號方向(shift >>)
    ```c=
    cin >> ss;
    cout << ss;
    ```
  - 換行 
    ```c=
    cout << endl ;
    cout << '\n' ;
    ```
* int main( ){ return 0; }
  - C++ 預設第一個要執行的函數是 main
  - 以前電腦如果執行成功會回傳0 做代表，現在可以不寫
* 變數(variable)有型態和不同位元長度的概念
  - 變數的名稱要避開保留字，不應該有變數叫做 int
  - 字串(string) 和 數字(int/float)
    讀取時數字可以視為字串，但反過來會跳 error
  - 作業系統(operating system)有32或64位元版本
  
    |  32-bit  |  64-bit  |
    | -------- | -------- |
    | int      | long     |
    | float    | double   |
    
  - 二進位與十進位 : 正整數/ 負整數/ 小數點
    負整數 = 補正的方式推算出每個位元
    小數點 = 因為長度有限所以大部分都會存在誤差
  - 程式碼的等號和數學符號的意義不同
    等號的含義是把右邊的計算結果儲存到左邊
    要比對左右兩邊是不是一樣時的符號是 ==
    ```c=
    x = x + 1 ;
    ```
  - 整數除法造成小數點出問題，解決方法
    ```c=
    float x = 10 / 3 ;         // 印出 3
    float x = 1.0 * 10 / 3 ;   // 印出 3.333
    float x = (float)10 / 3 ;  // 印出 3.333
    ```
  - 計算優先序一樣遵守數學的先乘除後加減，但注意過程中採用的型態
    ```c=
    x = 10 / 3 * 1.0; // 印出 3
    ```
    
* 判斷式的寫法 : 成立的話進到區塊內執行
  ```c=
  if( ... ){
      成立會跑進來的
  }else{
      不成立會跑進來的
  }
  ```