/*此篇適合給有一點水平的孩子,不適合純新手*/
ACM呢,是一個非常適合人們鍛鍊程式技巧的地方
從簡單到難的題目這裡都有
簡單的可以很簡單 程式碼不用寫十行
難的就可以很難 難到你想數個月都想不出來

寫程式的訓練,除了程式技巧
最重要的就是思考
初階的題目思考和程式技巧的比例大致相等
到後來思考會加重
思考加重的時候,穩定的程式技巧就很重要
所以兩者是相輔相成
你多寫,就會多進步
我在升高二暑假沒有朝深入演算法發展
但是做到了解決了被 一個叫做Lucky貓的ACM園地的網站http://luckycat.kshs.kh.edu.tw/
歸類成一星的中譯題目全部OVER掉
這一年來也是斷斷續續練一些沒有太複雜技巧的題目
這個暑假開始學難的東西
上手和撰寫便很快地可以接軌
一個星期多來已經寫了過去一年的分量XD

好 廢話不多說
入手的話
首先就來推薦簡單的題目

aikosenoo 發表在 痞客邦 留言(13) 人氣()

/*  ACM Q10679 - I Love Strings!! */
/*  559    8100892    2.396    ANSI C    2010-07-15 14:46:26  */
/*  KMP  */ 


aikosenoo 發表在 痞客邦 留言(0) 人氣()

C++ Class版大數

可處理 + - * with負數

aikosenoo 發表在 痞客邦 留言(4) 人氣()

‧成員函數的定義:
   1. 定義在Class中
   2. 定義在外部,但是函數名稱前要加上"類別名稱::"
   小易說後面的比較好,不然萬一有互相呼叫的就會打架了

‧呼叫同一個物件的成員函數只需要函數名稱
   呼叫不同物件的成員函數則需要"物件名稱."

‧存取標籤(Access Label)
   public(其他物件可以存取) v.s. private(其他物件不得存取)        // 在class中可以寫很多次
   class省略存取標籤時,會自動定義成private,struct省略存取標籤則會定義成public
   private和public弄錯時會Compile Error

‧建構子(constructor)
   產生物件時自動呼叫的特殊成員函數,必須為public,負責成員變數的初始化,宣告時要跟class同名
   class ex
   {
        public:
               ex()
        private:
               int data;
   };
   ex::ex()
   {
        data = 0;
   }

‧解構子(destructor)
   物件結束任務(執行到物件有效範圍結束)時會自動呼叫的特殊成員函數,必須為public,宣告時要跟class同名並在最前面加上"~"

‧C++函數的參數值可以有初始值,但是要從最後一個參數依序開始預設(可以只有後半段有預設值)

‧多載(overload)就是不同的傳入參數型態可以有同樣名字的函數,編譯器會依照傳入值型態對應到對應的函數
   只有回傳值型態不同則無法多載
‧若是全域變數、成員變數、成員函數裡的local變數有相同名稱,則函數內函數的local變數有最優先權
   Class名稱::變數名稱 則可以對成員變數進行操控
   ::變數名稱 可以對全域變數進行操控

cout.width(4);
   cout<<25;

   = printf("%4d", 25);
cout.fill('0');
   cout.width(4);
   cout<<25;
   = printf("%0d", 25);
‧cin.getline(char[]名稱, size); = gets(char[]); + 長度限制

‧命名空間(namespace)的寫法是在外面加上
   namespace 命名空間名稱
   {
        (...)
   }
    存取時加上"命名空間名稱::"
    在開頭加上using namespace 命名空間名稱則可以直接存取該命名空間裡的函數&變數

‧函數加上inline,會展開到呼叫函數的部份  (其實和C的Macro很像)
   例如:
   inline int sum(int a, int b)
   {
       return a + b;
   }

   int main()
   {
         sum(10, 20);
         return 0;
   }
   在編譯後會變成
  int main()
   {
         10+20;
         return 0;
   }
   這樣可以減少呼叫函數的時間,但是程式本身大小會變大

‧在成員函數名稱後、大括號前加上const,代表此成員函數是const成員函數,不會變更Class裡成員函數的值

‧指標 = new 資料型態
   delete 指標名稱
‧指標名稱 = new 陣列型態[個數]
   delete [] 指標名稱

‧建構子也可以多載(可以傳入初始化參數)(使用直接初始化)
   複製建構子:用既有物件初始化,可以自己定義(有指標成員的話則定義比較好)

‧在一個class裡用friend class 類別名稱,就可以讓該類別的成員函數存取這個class裡的變數
   (但是是單向的,也就是這個class不可以存取他定義成friend類別裡的變數
   也可以只針對其他類別的成員函數加上friend宣告,此時那個類別裡就只有該成員函數可以存取它

aikosenoo 發表在 痞客邦 留言(0) 人氣()

aikosenoo 發表在 痞客邦 留言(0) 人氣()

轉自  http://www.wretch.cc/blog/Geniusking/7263728

※ 使用方式

gcc [option] filename

※ 選項

-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ansi c標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
-O2 : 做最佳化
※ 使用範例

Example:

gcc -o file a.c b.c c.c
gcc -Wall -g -o test test.c
gcc -Iinclude -Llibrary -lmy_lib -o test1 test1.c
gcc -DDEBUG_ON -o test2 test2.c
gcc -c -o test3 test.c

aikosenoo 發表在 痞客邦 留言(2) 人氣()

當初學做網頁的時候,還是Web1.0的時代。

那個時候沒有學得很好,能力也沒有隨著時代進步,而高中時Web2.0卻已經震盪網路世界

aikosenoo 發表在 痞客邦 留言(1) 人氣()

把草地的那四個按鈕成功拿掉了(笑)

不過方法不是很標準地用CSS調位置:P

aikosenoo 發表在 痞客邦 留言(0) 人氣()

咳,距離上次更新真的是有夠久的XD

痞客邦也有了頗大的變化呢,我剛剛研究了很久才找到辦法

讓我的部落格側邊欄位設定變成新版的XD

應該是太久沒有更新的關係:P

aikosenoo 發表在 痞客邦 留言(0) 人氣()

非反轉向右對齊版
Code 線上版 http://src.wtgstudio.com/?ZU3l4n
Code下載 http://aikosenoo.googlepages.com/bignum_add.c

反轉版本
Code 線上版 http://src.wtgstudio.com/?ujs7CF
Code下載http://aikosenoo.googlepages.com/bignum_addr.c

aikosenoo 發表在 痞客邦 留言(0) 人氣()

1 2345