資訊之芽

03.03 鄭余玄
2018 資訊之芽 語法班

程式語言簡介


程式語言

  • 「可以控制機器的人造語言」
  • 方便我們撰寫程式的邏輯
  • 可轉換成機器能夠看懂、可以執行的「指令」
  • 隨著時間發展而具備不同特性和面向

程式語言類別

  • 高階語言 (Ex: C, C++, Python, Java)
SUM = A + B
  • 組合語言
LOAD A
ADD B
STORE SUM
  • 機器語言
01001101011111010001010000010111
01010011011110110101110000001011
01000111100010101011101001101011

電腦的組成

抽象來說,電腦內包含了:

  • 中央處理單元 (CPU)
  • 記體憶單元 (Memory)
  • 儲存單元 (Storage),ex: 硬碟
  • 輸入單元 (Input),ex: 鍵盤、滑鼠
  • 輸出單元 (Output),ex: 螢幕、印表機

關於大家要學的 C/C++

  • C 語言與 Unix 作業系統的發展密不可分
  • C++ 是從 C 衍生的語言,兩者相近但相異
  • 課程中會將容易困惑的 C 語法,以 C++ 較易解釋的部份取代
  • 各位將學的是 C++ 中偏向 C 的部份,並不探討 C++ 中其他的語言特性

C 新手入門

Hello World



課程使用軟體

  • 整合開發環境 (IDE)

    • Dev-C++ (上課使用此軟體)
    • Microsoft Visual Studio
  • 編譯器 (Compiler)

    • GNU Compiler Collection (gcc, g++)
    • Intel C++ Compiler (icc, icpc)

Hello World!

  • 請開啟一個新專案,輸入下列程式碼後編譯並執行
#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl;
    return 0;
}

也可以這樣寫

#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
    return 0;
}

簡略說明

#include <iostream>
// 加註解
int main() {
    std::cout << "Hello World!" << std::endl; // 要記得加上分號
    return 0;
}
  • //,加上單行程式碼註解(給人看的,隨意寫)
  • #,開頭的是前置處理指令(給編譯器看的)
#include <檔案名>
  • std::coutstd::endl 都是在 iostream

主程式

#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl; // 分號很重要!!
    return 0; // 分號很重要!!
}
  • int,整數 integer,後面有詳細介紹
  • main(),程式進入點
  • {},程式區塊範圍
  • return 0;,程式正常結束

標準輸入輸出

std::cout << "Hello World!" << std::endl;
  • std::cout,輸出到螢幕 (console output)
  • <<,串接要輸出的東西
  • std::endl,輸出換行(end-of-line)
  • ;」,結束這行指令

串接

std::cout << "Hello World!" << std::endl << "我愛資芽!";

或是

std::cout << "Hello World!" << std::endl;
std::cout << "我愛資芽!";

Tips

  • cout 唸作「see-out」,不是
  • 指令(陳述式)結尾加「;
  • 不計換行、空白、定位(Tab),可以幫助程式碼編排
#include <iostream>
using namespace std;

int main(              ) {
  cout <<
      "Hello World!"   
          << endl;
  return 0;
}

小練習

1. 執行下列程式碼,看看有什麼不同

#include <iostream>
using namespace std;

int main() {
    cout << "1 + 1" << endl;
    cout << 1 + 1 << endl;
    return 0;
}

線上平測系統 (OJ) 教學

http://neoj.sprout.tw/