• 沒有找到結果。

變數、型態、

N/A
N/A
Protected

Academic year: 2022

Share "變數、型態、"

Copied!
37
0
0

加載中.... (立即查看全文)

全文

(1)

盧政良 台大資訊系

變數、型態、

基礎運算

1

variable type

operators

(2)

盧政良 台大資訊系

輸入一個半徑,請問 圓面積等於多少?

2

(3)

盧政良 台大資訊系

3

(4)

盧政良 台大資訊系

變數宣告

4

(5)

盧政良 台大資訊系

資料型態 變數名

5

公式

(6)

盧政良 台大資訊系

6

資料型態: int , double

整數 浮點數

最常使用的

https://www.kcl.ac.uk/ImportedImages/Schools/NMS/BigData/BDHomeBanner.png

(7)

盧政良 台大資訊系

Binary Digits

7

電腦資料大小的單位

(8)

盧政良 台大資訊系

8

(9)

盧政良 台大資訊系

9

世界上只有 10 種人:

一種是懂二進位的人,一種是不懂二進位的人。

(10)

盧政良 台大資訊系

‣ 試試看把下列數字換成 10 進位:

‣ int 的大小是 32 bits

(4 bytes)

• 試問一個 int 的變數可以表示多大的數字?

~ ,約 40 億左右

1011 2 = ? 8 + 0 + 2 + 1 = 11

1.101 2 = ? 1 + 0.5 + 0 + 0.125 = 1.625 2

32

− 1 4 × 10

9

10

(11)

盧政良 台大資訊系

int似乎不好用

11

(πーπ)

只能表示整數,表示的範圍又不是很大 orz

(12)

盧政良 台大資訊系

浮點數

12

(≧∀≦)

可以表示帶有小數的數字,而且範圍很大!

floats

(13)

盧政良 台大資訊系

0.1 + 0.2 = ?

13

https://0.30000000000000004.com/

(14)

盧政良 台大資訊系

浮點數只是實數的近似

14

(⊙_⊙)?!

什麼是實數?

(15)

盧政良 台大資訊系

IEEE754

15 很類似科學記號的表示法

公式:(-1) ^ S x (0.M) x 2 ^ E

(16)

盧政良 台大資訊系

小結

‣ 人類的資料皆透過二進位的方式儲存在電 腦裡。

• 照片?音樂?智慧?靈魂?

‣ C++ 是一種靜態型別的程式語言。

• 亦是一種編譯式語言,與 Java、C# 相同;

• 異於 Python,為一種直譯式語言。

• 有興趣的同學自行閱讀:型別系統。

16

static typed compiled language

(17)

盧政良 台大資訊系

‣ 資料的型態決定箱子可以裝的東⻄。

‣ 每一個變數一定會是某一型態。

‣ 目前已經了解的型態有 int 和 double。

‣ 以數字的型態而言,型態決定了箱子的大小,

也間接決定箱子可以表示的數字範圍。

• 裝不下會怎麼樣?溢位。

int還 大一點的箱子是 long long 。

17

Overflow

https://en.cppreference.com/w/cpp/language/types

ps: 在Linux和Mac OS X上的long是64 bits。

(18)

盧政良 台大資訊系

數字的基本運算

18

(19)

盧政良 台大資訊系

1 / 2 = ?

19

` ͜ʖ´

(20)

盧政良 台大資訊系

20

https://static.wikia.nocookie.net/evchk/images/e/ec/2471912.jpg/revision/latest?cb=20171012125530

(21)

盧政良 台大資訊系

運算結果是根據兩邊的型態 決定的!

21

(22)

盧政良 台大資訊系

型態很重要 型態很重要 型態很重要

22

因為很重要,所以講三次。

(23)

盧政良 台大資訊系

型態如同法律

23

型態決定了很多細節!

(24)

盧政良 台大資訊系

x = x + 1

24

有沒有感覺很不舒服???

http://bpic.588ku.com/element_pic/00/16/08/1857b58404c5110.jpg

(25)

盧政良 台大資訊系

指定

25

多數程式語言的等號 ( = ) 不是兩邊是否相等,

而是把右邊的東⻄丟到左邊去。

assignment

(26)

盧政良 台大資訊系

double x = 1 / 2;

26

請問螢幕上顯示的數字是多少?

隨堂測驗

(27)

盧政良 台大資訊系

double x = 1 / 2;

27

1

發生在編譯時期

3 2

發生在執行時期

要能夠畫出cpu-memory的圖幫助自己了解!

細部拆解

compile-time

run-time

(28)

盧政良 台大資訊系

等於

28

x = x + 1 x!++

還有一個寫法是 :x = x + k 等於 x += k。負乘除餘皆同!

https://en.cppreference.com/w/cpp/language/operator_incdec

(29)

盧政良 台大資訊系

強制轉型

‣ 在某些場合裡,可能需要將變數型態 強行轉換成另外一種型態。

‣ 例如:假設年初投入金額123元,年 末賺到4元,問年報酬率是多少%?

29

Casting

(30)

盧政良 台大資訊系

30

強制轉型:把 profit轉換成double的型態 int會自動轉換成double

原則:整個敘述執行完畢後只會有一個形態!

https://en.cppreference.com/w/cpp/language/explicit_cast

(31)

盧政良 台大資訊系

文字

31

(32)

盧政良 台大資訊系

32

文字如何用 0 和 1 保存下來?!

(33)

盧政良 台大資訊系 https://i.pinimg.com/originals/75/28/b1/7528b199208cc9078adfa6830be7f072.jpg

33

(34)

盧政良 台大資訊系

字串

34

string

#include <string>

前頁所示是字元,但課堂上僅使用字串比較方便。

character

(35)

盧政良 台大資訊系

Body Mass Index (BMI)

35

輸入:名字、身高、體重 輸出:名字 (BMI)

課堂練習

(36)

盧政良 台大資訊系

36

資料型態 變數名

公式

int x

string name

你確定你知道string name的意義嗎?!

(37)

盧政良 台大資訊系

邏輯值

37

logical value, boolean value

false

狹義而言, 1 代表 true,0代表 false;

廣義而言,非 0代表 true , 0代 表 false。

true

bool

一種型態

參考文獻

相關文件

K1 與 K2 不能同時激磁,亦即馬達運轉中按 FOR 或按 REV 皆不可改變運轉中狀 態,必須先按 OFF

• 有許多MS Office2007之後的新功能轉換成ODF是會出 錯的,而ODF功能與MS Office2003相容度較高,所以 建議先將MS

z 交流電路的分析基本上可分為時域分析及頻域分析兩

2-1-1 複變數的概念.

//Structural description of design example //See block diagram

public static double calculate(int i, int j) throws ArithmeticException,

溫度轉換 自行設計 溫度轉換 自行設計 統計程式 簡單 簡單 統計程式.

直至 1987 一 1990 年間,北市都會型百貨逐漸轉型,形成東區商圈的高度成 長,尤其是 1987 年 11 月時,東區忠孝東路四段太平洋