其實是大社課之二啦哈哈

大赦刻支貳

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 基本上不存在所謂檢索功能

建北電資OJ

https://iscoj.fg.tp.edu.tw/

一一、一二學長前年把他復活的,題目還有點少,等待我們的努力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

  • 241