REVIEW II
by 楓資27th程教
CONTENTS
- escape character 跳脫字元
- character 字元字串
- function 函式
- recursion 遞迴
ESCAPE CHARACTER
"逃離原意ing...\n" --跳脫字元
escape character ?_?
- 跳脫字元 指的是 脫離原字元的意思
- 通常是一個反斜線(\)加上一個字元或符號
- 在字串內使用
escape character ?_?
字元 | 意義 | 字元 | 意義 |
---|---|---|---|
\' | 單引號' | \t | 定位字元tab |
\" | 雙引號" | \b | 倒退backspace |
\\ | 反斜線\ | \n | 換行enter |
\0 | 空字元NULL | \a | 發出一聲警告 |
跟endl一樣,只是放的位置不同
example
#include<iostream>
using namespace std;
int main(){
cout<<" _\n";
cout<<" .\' `\'.__\n";
cout<<" / \\ `\'\"-,\n";
cout<<" .-\'\'\'\'--...__..-/ . | \\\n";
cout<<" .\' ; :\' \'. |\n";
cout<<" / | :. \\ o \\\n";
cout<<" ; \\\':. / ,-.__;.-;`\n";
cout<<" /| . \'--._ /-.7`._..-;`\n";
cout<<" ; | \' |`-\' \\ =|\n";
cout<<" |/\\ . -\' / / ; | =/\n";
cout<<" (( ;. ,_ .:| | / /\\ | =|\n";
cout<<" ) / `\\ | `\"\"`; / | | / / =/\n";
cout<<" | ::| | \\ \\ \\ \\ `--\' =/\n";
cout<<" / \'/\\ / ) |/ `-...-`\n";
cout<<" / | | `\\ /-\' /;\n";
cout<<" \ ,,/ | \\ D .\' \\\n";
cout<<" `\"\"` \\ nnh D_.-\'L__nnh\n";
cout<<" `\"\"\"`\n";
return 0;
}
CHARACTER&&STRING
"Hello word!!"--字元字串
Char
Char
- char 儲存一個字元的資料型態
- char 陣列 == 字串
- 最後面存'\0',所以空間要比你的資料多一格
char a='s';
cout<<a; //s
char b[7]="ZSISC";
a[0] | a[1] | a[2] | a[3] | a[4] | a[5] | a[6] |
---|---|---|---|---|---|---|
Z
C
S
I
S
\0
未知
function
- #include <csting> c++
- #include <string.h> c
strlen(s) | |
strcmp(s1,s2) | |
strcat(s1,s2) | |
strcpy(s1,s2) | |
strstr(s1,s2) |
指令
說明
回傳s1的長度
比較s1&s2的內容,一樣回傳0
將s2接到s1後面
將s2的值複製到s1上
回傳s2第一次出現在s1的位置
ASCII
- American Standard Code for Information Interchange
- 每個字元皆能對應到一個數字
char a=65;
char b=48;
cout<<a;
//A
cout<<b;
//0
cout<<a+b;
//113
a=a+2;
cout<<a;
//C
char c[10]="ZSISC27";
cout<<c+2;
//ISC27;
String
String
- string 儲存字串的資料型態
- 每一格對應到一個字元
- 不須宣告大小
- 要先 include <string>
- 可和數學一樣做運算
string a="ZSISC";
cout<<a; //ZSISC
cout<<a[2]; //I
a[0] | a[1] | a[2] | a[3] | a[4] | a[5] | a[6] |
---|---|---|---|---|---|---|
Z
C
S
I
S
對比 char && string
strlen(s) | s.length( ) or s.size( ) | |
strcat(s1,s2) | s1+s2 | |
strstr(s1,s2) | s1.find(s2,0) | |
strcpy(s1,s2) | s1=s2 | |
strcmp(s1,s2) | s1==s2 |
字串長度
字串串接
char
string
字串尋找
字串複製
字串比較
FUNCTION
糞可先生讓你的程式碼變苗條 ! -- 函式
function in math
- 回想一下數學裡的函式
- f(x,y) = 2x+3y
- f(5,4) = 2*5 + 3*4 = 22
- f(1,2) = 2*1 + 3*2 =8
function
回傳值型態 函式名稱(輸入值,輸入值.....)
{
//函式要執行的事
return 回傳值;
}
int f(int x,int y)
{
int ans=2*x+3*y;
return ans;
}
int main(){
int a,b;
cin>>a>>b;
cout<<f(a,b)<<endl;
}
I don't want to return
void 函式名稱(輸入值,輸入值.....)
{
//函式要執行的事
}
void f(int x,int y)
{
int ans=2*x+3*y;
cout<<ans<<endl;
}
int main(){
int a,b;
cin>>a>>b;
f(a,b);
}
RECURSION
以我的名字呼喚我呼...喚我呼喚我 --遞迴
Recursion...?
- 將大問題分割成小問題
- 在函式中呼叫自己
- 定義終止條件,最後將小問題的解組合成大問題
-
常用於
- 階乘
- 河內塔
- 費氏數列
- 最大公因數
- 帕斯卡三角形
N!
fac(5)
int fac(int n){
if(n==1)return 1;
else return n*fac(n-1);
}
5*fac(4)
(n=5)
4*fac(3)
3*fac(2)
2*fac(1)
1
cout<<fac(5);
//5*4*3*2*1
//120
費氏數列
0,1,1,2,3,5,8,13,21,34,55,89,144,233......
F(5)
int F(int n){
if(n==0)return 0;
if(n==1)return 1;
else return F(n-1)+F(n-2);
}
(n=5)
cout<<F(5);
//1+0+1+1+0+1+0+1
//5
費氏數列
F(4)
F(3)
F(3)
F(2)
F(2)
F(1)
F(2)
F(1)
F(1)
F(0)
F(1)
F(0)
1
F(0)
F(1)
0
0
0
1
1
1
1
LAST BUT NOT LEAST
有獎徵答時間又來啦!!!
a mini quiz
THE END
-!_!- 楓資27th上台一鞠躬 !謝謝大家 ! -!_!-
回饋time
- 這是我們第一次教課,希望大家可以給我們一點回饋~~
ReviewII_escapeCharacter2Recursive
By h94usu6
ReviewII_escapeCharacter2Recursive
2020試教_part2
- 177