奧林匹亞資訊班

10/2

講師:吳崇維(wayne)

自我介紹

  • Google 軟體工程師
  • Line : wayne41252500
  • Email: wayne4125@gmail.com

開始之前...

建立 Windows 的 coding 環境

Windows Coding Environment

建立資料夾來保存code!

今日目標

 

  • 上課守則
  • 什麼是程式
  • 架設環境
  • 第一支程式!
  • 在終端機上操作
  • 變數, 輸入 (來得及的話)

上課規矩

 

  1. 其實沒有什麼規矩 ... 除了

一定要寫作業!

一定要寫作業!

  • 作業 = 實作 = 寫程式核心
  • 每週與家長回報進度,因此不允許遲交!
  • 建議下課後記憶猶新時把作業寫完

上課流程

  • 檢討作業 
  • 上課 
  • 課間練習

LINE 群!

每堂課的講義、作業都會上傳,也可以在上面發問

 

什麼是程式?

程式(Program)

 

  • 解決問題的工具
  • 把人類的邏輯表述成程式語言
  • 有極高的彈性,讓寫程式的人自由發揮
  • 人與電腦溝通的橋樑

各式各樣的程式語言!

電腦能理解我寫的程式嗎?

Text

編譯器 (Complier)

 

  • (編)輯並翻(譯)的機(器)
  • 因為電腦看不懂我們寫的程式 (高階語言)
  • 因此需要編譯器翻譯給電腦聽

架設環境!

架設有編譯器以及執行程式的環境

簡稱IDE(整合開發環境)

所有程式設計者的第一支程式

Hello, World!

事不宜遲,先跑看看

Warning!!

等等會有大量名詞出現

Q:我需要全部記住嗎

A:先不用!理解就可以,抓住與電腦溝通的感覺!

Q:聽不懂怎麼辦

A:馬上發問!

逐行解釋:

 

0. 函式 

 

 

定義:一種可以接受輸入,產生輸出的工具。

意即:餵給函式資料,他就會產生一些結果

範例:本程式中 cout 是一個函式

逐行解釋:

 

1. 標頭檔 (header) 

 

#include <自行填入>

用途:可以想像成一些函式的老大,前人寫好的函式都

            已經放在這裡面了,只要宣告就能使用。

範例:iostream 這個標頭檔包含了  cin, cout ... 等等函式

程式裡打出#include<iostream>

可以使用

cin, cout 

逐行解釋:

 

2. 命名空間 

 

using namespace std;

用途:現階段先不嚴謹的深究這行的意義,只要知道他可以幫

            助你簡化程式就好了。

範例: std::cout     簡化成     cout

 

逐行解釋:

 

3. 主函式 (main)

 

int main() {

 

}

用途:顧名思義,他是整個程式裡面最主要的架構

            程式從main開始執行,也從main結束。

注意語法:小括號裡代表輸入,但主函式沒有輸入

                    大括號代表主函式(程式) 的執行範圍

逐行解釋:

 

4. int  (整數)

 

 

在程式語言中,事物有類別之分... int 代表整數類別

英文單字 integer 的縮寫。意思是一個整數,像是0, 10, -2 ...

 

在這裡,int 作為主函式的回傳類別

稍微整理:主函式的架構

int main() {}

  • int      此函式的回傳類別
  • main  此函式名稱
  • {} 大括號包起來 代表函式的內容

輸出類別 函式名稱(輸入類別) {函式內容}

廣義來說,函式的語法:

從執行的角度看

int main() {}

  • main(),程式進入點
  • {},程式區塊範圍
  • return 0;,程式正常結束

逐行解釋:

 

5. cout 

 

用途:輸出一些東西到螢幕上  。(注意 << 的使用)

語法:cout << 想輸出的東西;

 

6. "Hello, World!"

這是一個"字串",由許多字元串接起來,並用  " " 包起來

 

逐行解釋:

 

 

7.    ;    分號

C++中,所有句子的尾巴都要加一個 ; 告訴電腦我這句話說完了

 

8. return 0;

 

主函式完成,回傳0,對應到前面的 int

同樣的,這也是一個句子,後面記得加 ;

很不嚴謹的翻譯這支程式的話

實作!也是作業

在錯誤中學習最快

Homework #1 pA:

輸出英文名字以及自己的生日

注意:需要分兩行輸出

Hint : 試試看這樣輸出 cout <<  '\n';

 

PS. 一開始寫程式的時候完全不需要要求自己

       硬背東西,盡量在實作中養成習慣!

       因此看著講義打程式也是可以的

       慢慢熟悉語法,以及常見的錯誤!

在git bash/ 終端機上操作

(optional)

常用指令

 

1. cd 

在資料夾之間移動

ex: cd Hw_1 移動到Hw_1資料夾

ex: cd .. 移到上一個資料夾

 

2. ls

列出當前資料夾的所有檔案 

編譯 / 執行

假設檔名為 code.cpp

(cpp 意思為c plus plus的副檔名)

 

1. g++ code.cpp

編譯 code.cpp

2. (Mac)     ./a.out

(windows) ./a.exe

執行剛剛編譯的程式 (a為系統內建執行檔)

變數

變數 (variable)

 

回想剛剛遇到的, 各種類別

  1. 整數 (int)
  2. 字元 (char)

 

我們可以以一種類別『宣告』一個變數, 例如:

int x;

意思就是:跟電腦說我設定了一個叫做『 x 』的整數

宣告完變數後就可以開始利用這個變數了!

變數名稱

 

你可以幫變數取任何你喜歡

的名字!不過需要遵守很多

原則,舉幾個重要的:

 

  1. 不能以數字開頭: 2abc
  2. 不能與電腦已經設定好的各種名稱一樣 : return
  3. 合法的:number, wayne123, hello_world
  4. 要是取的不合法, 編譯時會出現錯誤並告訴你

輸入

(cin)

輸入 (cin)

 

從人類這邊輸入一些東西給電腦知道, 同時也是程式最強大的地方:可以彈性的控制每一次程式裡 , 變數的值!

 

語法: cin >> 變數;

cin 會依照變數本身的類別自己處理, 並賦予他一個值。

cin 輸入

cin >> 變數;

 

從鍵盤or檔案中讀取

cout 輸出

cout << 變數;

 

顯示到螢幕, 或是寫進資料

Homework #1 pB:

輸入以及輸出!

題目:輸入三個整數, 輸出他們的總和

範例輸入:1 2 3

範例輸出:6

 

Hint: 當你遇到狀況, 或是BUG,先思考!

          想想背後可能的原因, 卡住再尋求

          google 或老師的協助

          

 

FeedBack!

一起努力快樂寫程式吧!

class 10/12 程式基本架構

By Wayne Wu

class 10/12 程式基本架構

  • 207