追蹤者

2019年10月16日 星期三

圖解C++(二)

第四章 陣列與字串

4-1-4 二維陣列
只允許第一維可以省略不用定義,其餘的要
ex:
int arr [][3] = {{1,2,3},{2,3,4}} //合法
int arr [2][] = {{1,2,3},{2,3,4}} //不合法

4-2-1 字串特性與宣告
字串必須用空字元('\0')來代表每一個字串的結束。
宣告方式有二:
方式1 : char 字串變數[字串長度] = "初始字串";//會自動在結尾加上\0
方式2 : char 字串變數[字串長度] = {'字元1','字元2',...'字元n','\0'}

字串可經由指標來宣告與操作:
char *指標變數 = "字串內容";

4-2-2 輸出與輸入功能
cin 時若有空白字元,則空白後的資料會被刪除
C++中的 getline()函數會讀取使用者所輸入的每個字元(包含空白字元),直到按下ENTER
使用方式:
cin.getline(字串變數, 輸入長度, 字串結束字元);

4-3-1 宣告String 類別
C++字串宣告方式:
#include<string>
string 字串名稱;
string 字串名稱 = "字串";
string 字串名稱("字串");



2019年10月15日 星期二

圖解C++(一)

第一章 C++簡介
1-1-1 高階語言分類

  • 編譯式:使用編譯器將原始程式區分為數個階段轉換為機器可讀的可執行檔的目的程式
  • 直譯式:利用直譯器對高階語言程式碼做逐行解譯不需要產生目的檔或機器語言,解釋完一行才會解釋下一行。
1-1-4 物件導向設計特點
  • 封裝性(Encapsulation) : 利用"類別"來實作抽象化資料型態(ADT),其中抽象化讓使用者只能接觸到這些方法(函數),無法直接使用資料,也符合資訊隱藏的意義。
  • 繼承性(Inheritance) : 類似遺傳,允許我們去定義新的類別來繼承既有類別,進而使用或修改繼承而來的方法,並可在子類別中加入新的資料成員與函數成員。
  • 多形性(Polymorphism) : 可讓軟體在發展和維護時,有充分延展性。可讓具有繼承關係的不同類別物件,可以呼叫相同名稱的成員函數

第二章 資料處理概說
2-1-1 變數配置與宣告
C++屬於 靜態儲存配置的程式語言,必須在編譯時期配置記憶體空間給變數。

2-2-1 常數識別字與宣告
  • 方法1 : #define 常數名稱 常數值
  • 方法2 : const 資料型態 常數名稱 = 常數值(注意:若宣告時未設定初值,之後也不能再設值)
      ex : const float PI = 3.14159

2-3 基本資料型態
C++ 屬於 強制型態式語言(strongly typed),當宣告變數時,一定要同時指定資料型態

2-3-1 整數(int)
儲存時保留4個bytes(32bits)的空間。
八進位表示法:數字前加數值0,例如 073 為 10進位的 59。
十六進位: 數字前加0x

注意修飾詞:short 、long、 signed、 unsigned
2-3-2 浮點數(floating point)
分單精度浮點數(float)、倍精確度浮點數(double)、長倍精確浮點數(long double)
表示範圍不同:
float 4 bytes、double 8 bytes、long double 12bytes
浮點數並無有號與無號之分,皆為可表示正負小數的有號資料。
通常浮點數預設的資料型態為double,因此在指定浮點常數值時,可以在數值後方加上F或 f轉成float型態或加L轉成long double。
7645.8 //7645.8預設為倍精浮點數
7645.8F // 標示 7645.8為單精浮點數
2-3-3 字元
佔一byte,有正負之分。
對照ACSII 
宣告方式:
char 變數名稱 = ASCII碼;
char 變數名稱 = '字元'

2-5-6 位元運算子
<< 左移
>> 右移
正變負:
0 0 0 0 1 1 0 0  = 12
取1補數(0、1互換)
1 1 1 1 0 0 1 1
取二補數(+1)
1 1 1 1 0 1 0 0 = -12

A.求 -12 << 2
解:
1 1 1 1 0 1 0 0  = -12
左移2bits ,右空補0
1 1 0 1 0 0 0 0
減1
1 1 0 0 1 1 1 1 
取1補數
0 0 1 1 0 0 0 0 = 48
但原數為負 ,得知 12 <<2 為 -48
B. 求 -12 >> 2
解:
1 1 1 1 0 1 0 0 = -12
右移2bits,左空補1
1 1 1 1 1 1 0 1
減1
1 1 1 1 1 1 0 0
取1補數
0 0 0 0 0 0 1 1 = 3
但原數為負,得知 12>>2為-3

2-5-7 遞增與遞減運算子
前置型
如 b = ++a;//a = a + 1 , b = a;
後置型
如 b = a++;//b = a, a = a + 1;

2-6-2 強制型態轉換
int a,b;
c = (float)(a+b)/2;