看板 Knuckles
作者 標題 為了找工作的C++課程--作業4
時間 2008年08月21日 Thu. PM 06:26:22
看完ch8函數及ch9動態陣列後
1. 巨集函數(Macro function)
使用一個 4 byte的 unsigned long 用來存一個像素的RGB色彩
其中三個顏色的存放位置為:0x00bbggrr
00的位置不使用,而bb、gg、rr分別為Blue、Green、Red的16進位值 00~FF
請使用巨集函數的方法,寫一個 RGB(r,g,b)
用來將三個顏色的值轉成一個 long 值,例如:
unsighed long color = RGB(255,0,0) //產生一個代表紅色的變數 color = 0x000000FF
接著寫出三個巨集函數 GetRValue, GetGValue, GetBValue
用來將一個 long 值轉為三個顏色的值,例如:
int red = GetRValue(color) //取得color的紅色值 red = 255
2. 遞迴(Recursive)
用遞迴的方法求組合公式
C(n,x) = 1, when x=0 and x=n
= C(n-1,x-1) + C(n-1,x), when 0 < x < n
或
C(n,x) = 1, when x = 0
= C(n,x-1) * (n-x+1)/x , when 0 < x <= n
利用C(n,x)畫出巴斯卡三角形
3. 動態二維陣列
讓使用者輸入矩陣的大小,產生一個 M*N 的隨機矩陣
--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles 來自: 140.112.175.128 時間: 2008-08-21 18:26:22
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-10-13 04:07:30
1. ans.
typedef unsigned char BYTE; // 1 byte
typedef unsigned short WORD; // 2 byte
typedef unsigned long DWORD; // 4 byte
#define RGB(R,G,B) ( (DWORD)R + ((DWORD)G<<8) + ((DWORD)B<<16) )
#define GetRValue(color) ((BYTE)((color & 0x000000FF) ))
#define GetGValue(color) ((BYTE)((color & 0x0000FF00)>>8 ))
#define GetBValue(color) ((BYTE)((color & 0x00FF0000)>>16))
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-10-19 02:06:12
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 1065
※ 文章分類: 程式設計 C/C++
※
iloveyouever
轉錄至看板 my_time_my_heart 時間:2010-08-03 21:02:19
回列表(←)
分享