其實是大社課之二啦哈哈
大赦刻支貳
By 佑佑

這是去年你們學長的學長遇到的問擾
這是去年你們學長的學長的學長的簡報


這是去年你們學長的學長遇到的問題
這是今年你們學長的簡報

1.
什麼是c++
2.
程式編輯器
3.
Online judge
4.
Hello,world!
5.
Variable
6.
cin 輸入
今天要教的東東
天啊怎麼這麼多
什麼是C++
- 編譯型語言
- 快
- 競賽常用語言
什麼是C++

程式編輯器
程式編輯器
IDE
整合式開發環境
無須安裝編譯器
安裝方便
吃效能
文字編輯器
高度自定義
東西都要自己裝
記得裝編譯器
輕量化
- IDE
- 卡.jpg
- 純線上
- 免安裝
- 手機 平板 可用
repl.it

- 文字編輯器
- 滑鼠再見
- 快 更快
- 要自己安裝編譯器
- 不好學
Vim

- 文字編輯器
- 超多擴充工具
- 最多人使用
- 要自己安裝編譯器
Visual Studio Code

- IDE
- 方便簡單
- 功能很多
世宗說很醜但我覺得還好
Code::blocks

Online judge
就是線上評測系統啦哈哈
好我知道線上評測系統已經夠白話了,但還有更白話的
OJ具體是什麼
一個讓你練習程式設計與演算法的地方
會在後端有個伺服器執行你上傳的程式
對於特定的題目會有特定的輸入與輸出
如果你的程式輸入後的輸出與標準一樣
就會得到AC的結果la欸我字數都一樣欸
上面這段十七言絕句出自我們的世宗喔
有哪些常見的OJ
- zerojudge:台灣最大,題目有點參差不齊,個人不常用
- TIOJ:建中資訊社維護的,都是難題
- codeforce:世界最大oj,常常有比賽,但都在台灣時間半夜
- Atcoder:第二大oj,在日本,比賽時間比較適合台灣人
- cses:很多演算法裸題可以練習
- neoj:資訊之芽的oj
基本上不存在所謂檢索功能
一一、一二學長前年把他復活的,題目還有點少,等待我們的努力QAQ
OJ答案結果
- AC(accepted) 你通過了
- WA(wrong answer) 你錯了
- MLE(memory limit exceed) 你花了太多記憶體
- TLE(time limit exceed) 你花了太多時間
- CE(compile error) 你的程式編譯失敗
- RE(runtime error) 你戳到不能戳的記憶體
- SYSTEM ERROR 你爛了 就這樣 去問出題者
Hello,World!
大多數人的第一份程式碼
Hello,World!實作
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!\n";
}
引入函式庫
#include<標頭檔>
萬用標頭檔: bits/stdc++.h
這裡的iostream函式庫包含輸入輸出流
Hello,World!實作
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!\n";
}
使用命名空間
使用命名空間
標準函式庫(standard)
Hello,World!實作
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!\n";
}
主要函式
程式起始結束處
Hello,World!實作
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!\n";
}
cout輸出
語法be like:
cout << "要輸出的東西";
除了特定的部分
(ex:#include、大括號後......)以外
幾乎每一句都要加上分號
要記得加欸各位老哥不然你程式會直接爛掉喔
Hello,World!實作
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!\n";
}
跳脫字元
\後放字元代表使用跳脫字元
不同跳脫字元有不同意思
\n是換行
btw
也可以用endl來換行
be like:
#include<iostream>
using namespace std;
int main(){
cout << "Hello,world!" << endl;
}
啊你如果用學校電腦還是開code::blocks吧那快多了
自己試試看ㄅ
有熟悉的IDE或文字編輯器可以用習慣的
Variable 變數
什麼你問我為什麼要前面要有英文?
因為這樣感覺比較帥啊
- 資料暫存
- 不是
未知數 - 資料型態、變數名稱
- 一個箱子
什麼是變數
蛤?箱子?
- 變數就是一個箱子
什麼是變數
嗯對上面這句是廢話而且頗抽象
我們來看圖好了

x
10
什麼是變數

x
10
在這張圖裡有三個資訊
- 這是個紙箱
- 這個紙箱叫做x
- 我們丟了一個數字10進去
- 資料型態
- 變數名稱
- 資料暫存
資料型態
箱子可能是木箱,可能是紙箱
不同種類的箱子裝不同的東西
資料型態 | 用途 | 記憶體大小 |
---|---|---|
int | 整數-2³¹~2³¹-1(約2*10⁹~-2*10⁹) | 4 bytes |
long long | 更大的整數 -2⁶³~2⁶³-1(約9*10¹⁸~-9*10¹⁸) | 8 bytes |
float | 浮點數 (可以有小數點的數字) | 4 bytes |
double | 更精確浮點數 (可以有小數點的數字) | 8 bytes |
char | 字元 | 1 bytes |
string | 字串 | 可變 |
變數名稱
- 名稱不可重複
-
只能用大小寫字母、數字、
_
、$
-
數字不可作為變數名稱的開頭
-
大小寫意義不同
-
不可使用保留字
-
取名請與變數意義相關
什麼你說變數的名稱與變數意義沒有關連會怎樣?
你如果寫題目的時候可以記得你給每個變數裡面裝什麼那你要用abcd當變數名稱我是也沒意見啦
喔你也可能被某些學長噴雖然好像沒有實質性損失
保留字
我不想做表格了所以我們看圖吧

什麼是變數

x
10
再回來看這張圖,我們到底做了什麼
#include<iostream>
using namespace std;
int main(){
int x = 10;
}
創造一個名稱為x的整數型態(int)變數,
並且賦值為10
等於的用法

by 去年建電學術長AaW吳亞倫
cin 輸入
aka 事後丟東西進箱子裡
cin 輸入
如果某些資料你要執行程式後才能給電腦
You need cin
cin文法be like:
cin >> 你的變數名稱 ;
- cin是>>
- cout是<<喔
實作怎麼做勒?
cin 輸入
看程式最快啦
#include<iostream>
using namespace std;
int main(){
int num;
cin >> num;
cout << "My semester score is " << num << "\n";
}
創造一個int型態的num變數
cin 輸入
看程式最快啦
#include<iostream>
using namespace std;
int main(){
int num;
cin >> num;
cout << "My semester score is " << num << "\n";
}
賦值給num
cin 輸入
看程式最快啦
#include<iostream>
using namespace std;
int main(){
int num;
cin >> num;
cout << "My semester score is " << num << "\n";
}
先輸出
"My semester score is "
這串字
再輸出賦予num的值
賦值給num(我輸入給電腦的)
執行到cout指令(電腦輸出給我的)

這分數顯然只會出現在夢裡
cin 輸入
#include<iostream>
using namespace std;
int main(){
int num;
cin >> num;
cout << "My semester score is " << num << "\n";
}
那如果你複製這段程式碼去執行了會發生什麼呢
如果你給num的值小於60
代表你這學期要被當了哈哈
如果你給num大於等於60
代表你是大電神都電哭我
好了今天的課就到這裡
雖然我不確定我到時候教不教得完
之後不一定都會有的課後練習
謝謝大家
記得繳社費關懷電研
十分感謝
大社課1
By ganyumywife
大社課1
- 339