公告區

Work Harder!!!!

2009年4月30日 星期四

5/3早上開團

老樣子九點到十二點
要參加的就回覆一下吧~

如何在網誌中po程式碼

在建立新文章時
在右上角選修改html
之後在你要po的程式碼的上下加入

<pre class="prettyprint">
程式碼
</pre>


//上面的<>都被我改成全形的了,不能直接copy來用
就可以了

補一下
如果是<這個符號在code裡的話
要改打<
>則改成>


附上官網:
http://google-code-prettify.googlecode.com/svn/trunk/README.html

2009年4月29日 星期三

JAVA HW04

想法一:讓POOBoard、POODirectory及POOSLine都inherit POOItem
並在POOItem裡宣告三者

public class POOItem {
public static final int BOARD = 1;
public static final int DIR = 2;
public static final int SLINE = 3;

public POOBoard Board;
public POODirectory Dir;
public POOSplitLine SLine;
int typeID;
}

//POOBoard的一部分
public class POOBoard extends POOItem {
private static final int MAXARTICLES = 1024;

public String Name;
private int nArticles;
private POOArticle[] Articles;

public POOBoard(String name){
this.Name = name;
super.Board = this; //<-這裡
super.typeID = POOItem.BOARD; //<-還有這裡
Articles = new POOArticle[MAXARTICLES];
nArticles = 0;
}
}


想法二:和想法一雷同,不過base class只有輸出名字的功能

public class POOParent {
private String name;
public String getName(){return name;}
public void changeName(String name){this.name = name;}
}


想法三:不用extend,直接用陣列

首先
我們先在POODirectory中宣告
POOBoard[] Board = new POOBoard[MAX];
POODirectory[] Dir = new POODirectory[MAX];
我們先在POODirectory中宣告一個"二維的整數陣列"
int[][] A;
A = new int[MAX];
for(int i = 0 ; i<>
A[i] = new int[2];
這個陣列是1024*2的
陣列中的第一個值(A[i][0])代表"類型"
第二個值(A[i][1])代表"位置"
比如說
如果當"類型"的值為0時為splitline、1時為board、2時為directory
那有一二維陣列A[2][1024];
當A[0][0]=1 && A[0][1]=11 時
表示這個Directory的第一個(第零個)位置為一個board,而且是board[11]的內容。

//簡單寫個範例

if(A[i][0]==0)
System.out.println("----------");
else if(A[i][0]==1)
Board[A[i][1]].show();
else if(A[i][0]==2)
Dir[A[i][1]].show();

2009年4月26日 星期日

待解決題目

有一種題目是使用者給定一個冪函數的方程式,

然後用牛頓逼近法求給定範圍內的所有解,

有機會可以來練習。

ps.用到迴圈不斷逼近,直到y座標趨近於0。

ACM482\ACM484檢討-2

過了

(解決未初始化)
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?2nUWyE

(解決多了全形空白)
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?iW5i81

(大師範例)
/*No.484, Author: Anfranion */
http://src.wtgstudio.com/?X93re4


Anfranion大師講解:

sscanf() & strtok()法:

假設有一個複雜的輸入沒有跟你講長度,可以用sscanf()和strtok()搭配存取

char *ptr;
char input[1000];
double num[1000];
int N;

gets(input);

N = 0;
ptr = strtok(input, " ");

do
{
sscanf(ptr, "%lf", num[N]);
N++;
}while( ( ptr = strtok(NULL, " ") ) );

這樣input就會直接以double存在num[]了

/*
發問:
可是就482的狀況來看
用字串的方式存起來不是會方便些?
回答:
應該都可以
或者是不要存double改成char[]
回應:
嗯嗯
*/

ACM482\ACM484檢討

團練參考網址:
http://www.csie.ntnu.edu.tw/~u91029/Indexing.html
練習Indexing
題目ACM482 , ACM484

以下程式碼上傳皆RE,暫時找不出原因,有待查證

/*No.482, Author: JeromeWu */
http://src.wtgstudio.com/?j7I9Ac
/*No.482, Author: ApplerMan */
http://src.wtgstudio.com/?uBQngv
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?W0um0f
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?5e3F7V

另外ACM484解法參考網址
http://www.yalin.tw/acm/index.php?index=484 (作法為時間與空間的取捨)


探討ACM482題目:
1.儲存資料時必須使用字串,若用double處理格式化輸出出現問題
比如說 5.0 -2 2.00 -> 格式化 5.000 -2.000 2.000

2. linux下用gets會有warning,用fgets安全些,
使用gets的時候和scanf互用時會有問題,加個\n可以解決 ,
比如說
int N;
scanf("%d",&N);
char S[1024];
gets(S);
會有非預期的錯誤
解決方法如下
int N;
scanf("%d\n",&N);
char S[1024];
gets(S);

2009年4月24日 星期五

許久不見的團練

星期日早上九點到十二點
MSN線上集合!

要參加的回應一下吧~

2009年4月19日 星期日

Vim學習資料整理

關於 vim 是什麼的『中文』說明:
http://sites.google.com/site/jeromewufiles/data/features.zh.txt

大家來學 vim:
http://info.sayya.org/~edt1023/vim/
連結失效的話可以載作者的pdf
http://sites.google.com/site/jeromewufiles/data/vim.pdf

Learning Vi/Vim editor:
http://sites.google.com/site/jeromewufiles/data/O%27Reilly%27s-LearningtheviEditor%2C6thEdition.pdf

我自己的.vimrc:
http://sites.google.com/site/jeromewufiles/data/.vimrc

----------------------------------------------------------------
其實長久以來
我一直在觀望說要學Vim(完整地)還是emacs(從頭)
今天查了不少資料
最後還是決定認真學Vim了
目標是Vim的達人!!
上面整理了不少資料
有興趣學的就看看吧

2009年4月18日 星期六

POOBBS的測試檔案

http://sites.google.com/site/jeromewufiles/data/POOBBS.java

用來測試的檔案
對於一些特殊狀況有些錯誤訊息比較好

2009年4月17日 星期五

UML - NetBean

算是很不錯的工具了
//重點是跨平臺XDDDD

下載點:
http://www.netbeans.org/downloads/index.html
//似乎在寫JAVA時也可以用

UML plugins 的介紹:
http://www.netbeans.org/features/uml/index.html
簡易安裝方法
選tools->plugins
接著選available plugins
在右上角的search打uml
會找到一個結果
打勾
之後選左下角的install就好了

簡單的展示及教學:
http://www.netbeans.org/kb/trails/uml.html

別人使用後的心得:
-----------------------------------------------------------------
用了幾天Netbeans UML,除了時不常的沒法生成代碼之外,其餘都還好。

寫點我的體會出來,也算做個總結
優點


1.類圖插入屬性屬性後可以自動產生getter和setter方法,刪除屬性也會自動把getter和setter方法刪除,很方便。
2.很好的代碼生成功能,如果修改了類圖之後重新生成類代碼,已經寫的代碼不會被錯誤的覆蓋,非常智能。
3.導入功能很不錯,不用把所有的類都放在一個uml 工程裏了。
4.生成報表功能很棒,可以直接生成javadoc,方便無比。
5.鍵盤操作支持的很好,幾乎和rose一樣好用。



優點就這麼些了,下面談談缺點


1.代碼生成功能動不動就不好使了,只有把用戶數據刪除才可以繼續使用(windows下的用戶數據在documents and setting/application data目錄下,linux的用戶數據在~/.Netbeans目錄下)
2.導入功能不支持循環導入,比如A工程導入了B工程,那麼B工程就不能再導入A工程了。
3.導入功能做的不夠人性化,折騰了半天我才知道原來是用拖拽來實現導入的,怎麼也沒個菜單項??!!
4.要是支持導入jdk的幾個包就好了,也許有這功能,但我沒找到罷了。
5.幫助文檔太簡單了,都是廢話,明顯是對付,網上的資料也少,只能靠著自己摸索。
6.重構功能太弱,像是圖例改名功能太弱了,模型名字倒是改了,工程目錄裏的xml文件為什麼不改呢?
7.圖例遷移功能太弱,從舊工程遷移到新工程的話,一些對象間的關系就丟失了,還得手工重建,我的建議是再這個功能完善之前,最好工程建好之後就不要再遷移了,否則很累人的。
8.報表功能應該提供RTF格式報表啊,如果客戶需要一份設計文檔,難道要把javadoc風格的文檔給客戶嗎?客戶還不得瘋掉。
9.保存的時候Netbeans容易死掉,我的建議是最好能做一點就存一點,這樣可以減小損失。
10.根據類圖生成java代碼的時候,注釋中的中文都成了Unicode字符。
------------------------------------------------------------------

在youtube上打「netbeans uml」可以找到不少教學影片

網誌新氣象

I have a dream :P

希望讓這個網誌走向分享的方向

除了C語言外

如果有任何的資料想要分享的都可以放這邊

不然一直放著也沒意思

大家一起來建設吧!