REVIEW II

by 楓資27th程教

CONTENTS

  • escape character 跳脫字元
  • character 字元字串
  • function 函式
  • recursion 遞迴

ESCAPE CHARACTER

"逃離原意ing...\n" --跳脫字元

escape character ?_?

  • 跳脫字元 指的是 脫離原字元的意思
  • 通常是一個反斜線(\)加上一個字元或符號
  • 在字串內使用

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

  • 這是我們第一次教課,希望大家可以給我們一點回饋~~

Review2

By jumping945

Review2

  • 263