C++基礎程式設計 ch2 變數與運算子

28
CH2 變數與運算 變數、運算子的介紹 BY 文月(程教)

Transcript of C++基礎程式設計 ch2 變數與運算子

Page 1: C++基礎程式設計 ch2 變數與運算子

CH2 變數與運算子

變數、運算子的介紹

BY 文月(程教)

Page 2: C++基礎程式設計 ch2 變數與運算子

先來複習一下之前學過的東西

☆接下來會有一段程式碼,請找出它的錯誤。

Page 3: C++基礎程式設計 ch2 變數與運算子

題目#include<iostream>

Using namespace std

Int main()

[

cout>>”How are you, C++?”>>endl

]

Page 4: C++基礎程式設計 ch2 變數與運算子

解答#include<iostream>

using namespace std;

int main()

{

cout<<”How are you, C++?”<<endl;

}

Page 5: C++基礎程式設計 ch2 變數與運算子

輸入以後……☆還記得上次介紹了cout函數的好朊友cin嗎?

它的語法是這樣的:

cin >> 變數1 >> 變數2 >> … >> 變數n ;

那我現在考考你……

我現在要寫兩個數字相加的程式,我要怎麼在程式碼裡面表示這兩個數字呢?

Q:

Page 6: C++基礎程式設計 ch2 變數與運算子

想到答案了嗎?想到了嗎?答案就是用變數。

於是你說:「我又不知道變數是什麼,我怎麼會想到?」

那我們先來了解什麼是變數吧!

Page 7: C++基礎程式設計 ch2 變數與運算子

變數☆變數是程式放資料的空間,每個變數佔有特定的記憶體空間,由編譯器分配。

☆程式將資料進行運算,就是對變數與記憶體進行運算。

不太懂嗎?那打個比喻吧!

Page 8: C++基礎程式設計 ch2 變數與運算子

變數☆想像一下,我們要輸入的值是一個東西,變數就像是一個箱子(一次只能放一個東西進去),

而且箱子裡的東西可以換掉。

☆剛剛那個兩數相加的問題,我們只要把這兩個數的值都各放入一個箱子,再以箱子的名稱稱呼他們就行了!

Page 9: C++基礎程式設計 ch2 變數與運算子

宣告變數嘿!等等!那要怎麼把這個箱子寫進程式碼裡?

這個時候就要「宣告變數」了!

語法是這樣的:

int 變數名稱;

宣告變數後就可以自由運用這個變數了!

Page 10: C++基礎程式設計 ch2 變數與運算子

變數的命名☆開頭不能為數字。

☆只能使用大小寫英文字母、數字與底線(_)所組成。

☆不能使用保留字(如if) 。

☆變數大小寫有差別。

☆使用有意義的單字命名,如score 命名成績變數、sum為總和變數。

這是什麼?

Page 11: C++基礎程式設計 ch2 變數與運算子

C++保留字列表

☆下列關鍵字是C++語言保留使用的,除了預定義的作用外,這些保留字不能用於其他用途。

asm const_cast explicit int public struct typename

auto continue extern log register switch union

bool default false long reinterpret_cast template unsigned

break delete float mutable return this using

case do for namespace short throw virtual

catch double friend new signed true void

char dynamic_cast goto operator sizeof try volatile

class else if private static typeof wchar_t

const enum inline protected static_cast typeid while

Page 12: C++基礎程式設計 ch2 變數與運算子

將值存入變數☆將輸入的值存入變數時要用到cin函式,要不則是以「=」來存入值(將等號右側的值存入左號)。

Ex:

int a;

a=10;

cout<<a;

宣告變數a

將10這個值存入a

輸出a的值

宣告變數a

將10這個值存入a結果

宣告變數a

結果將10這個值存入a

宣告變數a

結果

Page 13: C++基礎程式設計 ch2 變數與運算子

將值存入變數☆剛剛那幾行也可以直接簡化成:

int a=10;

cout<<a;

☆也可以將變數的值存入另一變數:

int a=10;

int b=a;

cout<<b; 輸出b的值

宣告變數b且將a的值存入b

宣告變數a

結果

Page 14: C++基礎程式設計 ch2 變數與運算子

變數進行運算☆看到標題,你叫道:「喂!變數只是個箱子,有不是那個值,怎麼可以進行運算?」

☆看看變數那頁的介紹:程式將資料進行運算,就是對變數與記憶體進行運算。

Ex:

int a=11,b;

b=a+11;

cout<<b;

宣告變數a(值為11),b

將a+11的值存入b

輸出b的值

結果

Page 15: C++基礎程式設計 ch2 變數與運算子

算術運算子

☆你想了想,又說:「咦?加號可以這樣直接寫在程式碼裡嗎?」

是可以的喔!而這些運算符號稱為算數運算子。運算符號 + - × ÷ 求

餘數

算術運算子

+ - * / %

Page 16: C++基礎程式設計 ch2 變數與運算子

關係、邏輯運算子除了算術運算子還有關係運算子和邏輯運算子…等。

☆常見的指定運算子如等號。

= :將符號右邊計算結果儲存到等號左邊。

Page 17: C++基礎程式設計 ch2 變數與運算子

關係運算子運算子 說明 範例(註:true為1,false為0。)

<判斷是否小於,若是回傳true,否則回傳false

4<1,計算結果為false,回傳0。

>判斷是否大於,若是回傳true,否則回傳false

4>1,計算結果為true,回傳1。

<=判斷是否小於等於,若是回傳true,否則回傳false

4<=1,計算結果為false,回傳0。

>=判斷是否大於等於,若是回傳true,否則回傳false

4>=1,計算結果為true,回傳1。

==判斷是否等於,若是回傳true,否則回傳false

4==1,計算結果為false,回傳0。

!=判斷是否不等於,若是回傳true,否則回傳false

4!=1,計算結果為true,回傳1。

Page 18: C++基礎程式設計 ch2 變數與運算子

邏輯運算子☆邏輯運算子有三個且(&&)、或(||)、非(!)

X && Y Y=True Y=False

X=True True False

X=False False False

X || Y Y=True Y=False

X=True True True

X=False True False

! X

X=True False

X=False True

Page 19: C++基礎程式設計 ch2 變數與運算子

資料型別看到一堆運算子,你肯定頭昏眼花了。那我再考考你……

如果要存入的值是小數怎麼辦?甚至是文字呢?

Q:

Page 20: C++基礎程式設計 ch2 變數與運算子

資料型別這個時候就要先了解什麼是資料型別!

☆C語言的資料型別分成整數、浮點數與字元……等。

☆浮點數為含小數點的數

☆資料型別有空間限制,超過空間範圍後,數值就無法正確表示

☆字元可為任何英文字母、數字與半形標點符號。

Page 21: C++基礎程式設計 ch2 變數與運算子

整數☆整數分為short、int、long與long long。

資料型別 所佔記憶體空

間(位元組)

數值範圍

short 2 -32768 ~ 32767

int 2 或

4

32768 ~ 32767或

-2147483648 ~

2147483647

long int 4 -2147483648 ~

2147483647

long long int 8 -263-1~263-1

Page 22: C++基礎程式設計 ch2 變數與運算子

浮點數☆浮點數分為單精度與倍精度浮點數。

資料型別 所佔記憶體空間(位元) 數值範圍

float 4 3.4x10-38到3.4x10+38

-3.4x10+38到-3.4x10-38

註:準確到小數點以下第7位

double 8 1.7x10-308到1.7x10+308

-1.7x10+308到-1.7x10-308

註:準確到小數點以下第15位

Page 23: C++基礎程式設計 ch2 變數與運算子

字元與字串☆字元為大小寫英文字母、數字、英文標點符號。

☆字串由字元組成。

輸出字元和字串的範例如下:

cout<<'C'<<"++ is great.";

資料型別 所佔記憶

體空間(位

元組)

數值範圍

char 1 -128 ~ 127

Page 24: C++基礎程式設計 ch2 變數與運算子

特殊字元

\n 換行字元

\0 表示字串的結束

\t 相當於按「tab」鍵

\a 發出嗶一聲

Page 25: C++基礎程式設計 ch2 變數與運算子

Q:請問要怎麼輸出"aaa\naaa"這行字?

Page 26: C++基礎程式設計 ch2 變數與運算子

錯誤解法#include<iostream>

using namespace std;

int main()

{

cout<<"aaa\naaa";

}

結果

Σ(・ω・ノ)ノ

換…換行了!

Page 27: C++基礎程式設計 ch2 變數與運算子

救星-跳脫字元☆C++中要讓特殊字元失去原本的意義要在字元前面新增「\」,注意斜線方向。

Ex1:要輸出「 " 」,要 cout << " \" ";

Ex2:例如要輸出「\」,要 cout << " \\ ";

所以剛剛輸出要改成:

cout<<"aaa\\naaa";結果

Page 28: C++基礎程式設計 ch2 變數與運算子

CH2到此結束,感謝大家的聆聽!

記得看看解題範例然後做作業喔!