顯示廣告
隱藏 ✕
看板 Knuckles
作者 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
terrykyo 轉錄至看板 terrykyo 時間:2011-04-04 01:51:40
TL 轉錄至看板 TL (使用複製) 時間:2012-12-08 19:46:30
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續