奧林匹亞資訊班
10/2
講師:吳崇維(wayne)
自我介紹
- Google 軟體工程師
- Line : wayne41252500
- Email: wayne4125@gmail.com
開始之前...
建立 Windows 的 coding 環境
Windows Coding Environment
建立資料夾來保存code!
今日目標
- 上課守則
- 什麼是程式
- 架設環境
- 第一支程式!
- 在終端機上操作
- 變數, 輸入 (來得及的話)
上課規矩
- 其實沒有什麼規矩 ... 除了
一定要寫作業!
一定要寫作業!
- 作業 = 實作 = 寫程式核心
- 每週與家長回報進度,因此不允許遲交!
- 建議下課後記憶猶新時把作業寫完
上課流程
- 檢討作業
- 上課
- 課間練習
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)
回想剛剛遇到的, 各種類別
- 整數 (int)
- 字元 (char)
我們可以以一種類別『宣告』一個變數, 例如:
int x;
意思就是:跟電腦說我設定了一個叫做『 x 』的整數
宣告完變數後就可以開始利用這個變數了!
變數名稱
你可以幫變數取任何你喜歡
的名字!不過需要遵守很多
原則,舉幾個重要的:
- 不能以數字開頭: 2abc
- 不能與電腦已經設定好的各種名稱一樣 : return
- 合法的:number, wayne123, hello_world
- 要是取的不合法, 編譯時會出現錯誤並告訴你
輸入
(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