--- tags: 文華社課 --- > 文華高中電腦研究社29th > 編輯 : 黃昱凱 > 宣傳 : 平時練C++ㄉ小號 https://www.instagram.com/l.o.l.i.c.o.n._learning_cpp/ # C++從零入門 Level 1-1 ```cpp= #include<iostream> using namespace std; int main(){ return 0; } ``` 以上是一個C++程式的空殼,它沒有任何的功能,但確實是一個程式喔! 基本上接下來所有程式都是用這個空殼,忘記再回來看一下就好~ ```cpp #include<iostream> ``` 我們首先會需要一個**標頭檔** 定義:標頭檔是一個檔案,通常是原始碼的形式,由編譯器在處理另一個原始檔的時候自動包含進來(by wiki) 聽不懂?先寫再慢慢領悟 標頭檔有很多種,暫時我們只需要iostream就好 ```cpp using namespace std; ``` **using namespace std** 是用來設定名稱空間為 std。由於標準函數庫所包含的 函數、類別與物件均定義在 std 這個名稱空間中,所以必須指明所使用的名 稱空間為 std,以便使用所提供的標準函數庫 聽不懂?先寫再慢慢領悟(*2) ```cpp int main(){ (程式放這裡~~) return 0;//結束 } ``` **主函式** (int main) 就是我們等等要寫程式進去的地方~ ## 輸入輸出 ```cpp cin >> x; cout << x; ``` 使用**cin >> 輸入** 使用**cout << 輸出** 就直接上題目咯~ ### a001.哈囉 link:https://zerojudge.tw/ShowProblem?problemid=a001 string s //宣告一個字串類別的s cin >> s //輸入到s裡面 cout << "hello, "<< s << endl; //輸出 ,endl是換行,此題可不加 ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; cout << "hello, "<< s << endl; return 0; } ``` 除了字串以外,還有以下常用的型別 忘了回來看就好~ | 型別 | 意義 | |:------:| ------------------ | | int | 整數 | | float | 浮點數(小數) | | string | 字串 | | bool | 布林值(true/false) | | char | 字元 | ## 賦值運算子、算數運算子 好,接下來為你演示如何一句話氣死數學老師 ```cpp= int a; a = 1; a = a + 1; cout << a; ``` 你認為最後會輸出多少? 對,2,就是2 所以不要問我a = a + 1 在數學上的意義  總之 賦值運算是就是將**等號右邊的值賦予左邊** = 就是邏輯運算子 +-*/%就都是算術運算子 例如 ```cpp= int a; a = 1 // a 就變成1 // a = a + 1 // a 就變成a + 1 a = a - 1 // a 變成a - 1 a = a * 3 // a 變成a * 3 a = a / 2 // a 變成a / 2 a = a % 2 // a 變成a / 2的餘數 //以上都有簡寫 a += 1; a -= 1; a *= 3; a /= 2; a %= 2; ``` =-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= :::success - [ ] [例題:a002 簡易加法](https://zerojudge.tw/ShowProblem?problemid=a002) 例題解答在底下~ ::: ## 比較運算子、邏輯運算子 哈哈哈哈 沒想到吧,如果等號被拿來當賦值運算,那我要怎麼表示等於? 如a = b? 聰明的工程師發明了一個聰明的方法 沒有人: 幾世紀前的工程師:不如== ? . . . 好啦不好笑w 我沒有在裝可愛 比較運算子就是<font color = #8a2be2>**==**</font>**,<font color = #8a2be2>不等於是!=</font>** 現在還沒什麼用,下一節課的條件式就會用到了 比較運算子還有大於/小於 | > | < | >= |<= | | ---- | ---- | -------- | -------- | | 大於 | 小於 | 大於等於 | 小於等於 | 邏輯運算子**有&&和||兩種** && 就是"而且" || 就是"或者" 就不多贅述~~ ## 條件式 你猜怎麼著~? 我覺得篇幅太少所以先教if判斷式了w~ 條件式的結構如下 ```cpp= if (條件){ 執行程式 } ``` **如果小括號內的條件成立,就執行大括號的程式** ```cpp= // 成立的例子 int a = 1; if (a == 1){ // 這裡千千萬萬不能寫成一個等號 a = a + 1; } //結果 a = 2 ``` ```cpp= // 不成立的例子 int a = 1; if (a == 87878787878787){ a = a + 1; } //結果 a = 1 ``` else 緊跟前一個大括號 作用在條件**不成立**的時候 用法範例: ```cpp= int a = 1; if (a == 87878787878787){ a = a + 1; }else{ a = a - 1; } //結果a = 0 ``` =-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= :::success - [ ] [例題:a003 兩光法師占卜術](https://zerojudge.tw/ShowProblem?problemid=a003) ::: ::: warning - [ ] [進階題:a004 文文的求婚](https://zerojudge.tw/ShowProblem?problemid=a004) 先備知識: 用while(cin >> ){ } 可以不斷輸入直到EOF ::: ## STL swap swap 就是個好用的工具 將兩個變數的值互換 ```cpp= // 用法 sawp(變數1, 變數2); // 例子 int a = 9, b = 6; swap(a, b); // 結果: a = 6,b = 9 ``` =-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= :::danger - [ ] [總之不簡單:d491](https://zerojudge.tw/ShowProblem?problemid=d491) 先備知識: * 迴圈 ::: 如果寫不過癮可以試試下面的類題(沒有答案~~) :::danger - [ ] [a864: 4. Stellar Classification](https://zerojudge.tw/ShowProblem?problemid=a864) - [ ] [f375: 神奇肥料 Fertilizer](https://zerojudge.tw/ShowProblem?problemid=f375) - [ ] [f441: 評分系統 Score ](https://zerojudge.tw/ShowProblem?problemid=f441) ::: ::: info 此處為本次社課結束點 有問題都殼以找窩或傳訊息問喔~ 剛考完試一個晚上生出講義的 蘿莉控 副社_黃昱凱 敬上 ::: > 下一章: [C++從零入門 Level 1-2](/BZRzywVCRQSJSxkTjArORQ) > 目錄: [C++從零入門](/G0dWqZR7RIOwrK6gK0tEZg) ## 參考解答 先想想再偷看喔w ### d002: ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int a, b, sum; cin >> a >> b; sum = a + b; cout << sum <<endl; return 0; } ``` ### d003: ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int m, d, s; cin >> m >> d; s = (m * 2 + d) % 3; if (s == 0){ cout <<"普通"<<endl; } if (s == 1){ cout <<"吉"<<endl; } if (s == 2){ cout <<"大吉"<<endl; } return 0; } ``` ### d004: #### Sol1. 不用else ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int a; while (cin >> a){ //不斷輸入直到EOF if (a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)){ cout <<"閏年"<<endl; } if (a % 4 != 0 || (a % 100 == 0 && a % 400 != 0)){ cout <<"平年"<<endl; } } return 0; } ``` #### Sol2. 用else ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int a; while (cin >> a){ //不斷輸入直到EOF if (a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)){ cout <<"閏年"<<endl; } else cout <<"平年"<<endl; } return 0; } ``` ### d491: ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int a, b; cin >> a >> b; if (a > b) swap(a, b); int ans = 0; for(int i = a;i <= b;i ++){ if (!(i % 2)) ans += i; } cout << ans <<endl; return 0; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up