2009年10月6日 星期二

HW1



這次我第一次用BCB 完成作業

除了上課 主要還是請教同學

完成後很有成就感

雖然只有完成開啟圖片 這項功能

還有很多很多沒有學到的

希望在這堂課 可以學到更多相關的

-------------------------------------------------------

以上是我第一次打的

下面是我後來修改的(為了分數...很現實= =)

第一個作業老師部落格上就有重點

Lee's C++ Builder Programming Notes 裡面image

就有寫到重點

這兩行是把圖片讀進myImage1開啟 BMP 影像

OpenPictureDialog1->Execute() ;

myImage1->Picture->LoadFromFile(OpenPictureDialog1->FileName)

利用宣告三個二維陣列 , 並用new配置記憶體空間 (動態宣告二維陣列

ucRMatrix = new unsigned char *[iImageHeight];

ucGMatrix = new unsigned char *[iImageHeight];

ucBMatrix = new unsigned char *[iImageHeight];

for (int j=0;j

{

ucRMatrix[j] = new unsigned char [iImageWidth];

ucGMatrix[j] = new unsigned char [iImageWidth];

ucBMatrix[j] = new unsigned char [iImageWidth]; }

這是例外處理 跳出

catch (std::bad_alloc)

{

ShowMessage("Could not allocate memory...Bye");

exit(-1);

}

這是用GetRValue和for迴圈抓取圖片的Pixels值取得RGB值分別存入二維陣列

ucRMatrix[x][y] = GetRValue(myImage1->Canvas->Pixels[x][y]);

ucGMatrix[x][y] = GetGValue(myImage1->Canvas->Pixels[x][y]);

ucBMatrix[x][y] = GetBValue(myImage1->Canvas->Pixels[x][y]); }

這個作業直接依靠老師的部落格就能動手完成

也是第一個作業 , 即使不熟bcb的同學 , 參考老師部落格就可以清楚

知道每個細節 , 這項作業是後面作業很重要的基礎 , 所以雖然之前寫

大概知道怎擺怎放 , 後來再打心得 , 才發現原來只是這樣 , 跟以前學的

c/c++觀念上根本完全相同 , 呈現方式不同罷了 , 我想這是我之後在寫心

得所發現的

-----------------------------1/19 (補)

老實說我一年級是學C語言 之後 是學java

與c++很不相同. 所以學起來很辛苦

c++是物件導向語言 , 多了可以建立實體物件的

資料結構也是學java的 那時候是 用類別class 裡面宣告

屬性 , 在主程式new實體物件 , 在用點(.) 例如:area.watch( int b)

來給初值或其他

c++ 是用箭頭(->) 所以一開始看到的時候 都霧煞煞

不過觀念都一樣 , 所以也沒有卡很久

用bcb之後 , 第一次用視窗化程式設計 來寫 , 不像以前都是開空白

#include ... 開始寫

第一次修老師的課 , 學到很多 , 不過自己"一開始"沒有花心思在上面

之後才再補齊課程內容 , 真的是很慚愧 ..

另外一提:try- catch 我從沒用過得說

例外我都是用if-else 如果要我憑空寫 我想我的程式碼應該一大串吧..

還好有老師的部落格範例..XD

1 則留言:

  1. 把我寫的東西弄上來還是我的呀!
    要寫點自己的東西,
    分數才會加啦 !

    回覆刪除