發表文章

目前顯示的是 1月, 2016的文章

高中生程式解題系統:因數分解(Factorization)

題目連結 http://zerojudge.tw/ShowProblem?problemid=a010 。 解這題,有幾種作法: 方法一: 1. 除數從 2 開始,若此被除數可以被除數 2 整除,就被除數就一直除以 2;若不行除數換用 3。 2. 一直重複到 除數的平方大於或小於 被除數。 方法二: 1. 求出小於此被除數開根號後的所有質數。 2. 在用這些質數去除被除數算出每個質因數出現的次數。 但底下程式碼是先建立質數表,再進行因數分解。 程式碼: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:解碼器(Decode)

題目連結 http://zerojudge.tw/ShowProblem?problemid=a009 。此題用字元的 ASCII Code 來運算即可,而整數K到底是多少呢? 程式碼: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:一元二次方程式 (A Quadratic Equation)

圖片
題目連結 https://zerojudge.tw/ShowProblem?problemid=a006 。 一元二次方程式解的公式( 下圖取自 Wikipedia 一元二次方程式 ): 先求出一元二次方程式根的判別式( 下圖取自 Wikipedia 一元二次方程式 ): 判斷是否有實數解,相等根。再用公式求出兩根的解即可。 程式碼: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

惡搞嘻語言第五嘻:嘻函式

函式在嘻語言裡無所不在,例如 printf 就是一個函式,為標準函式之一,若沒提供一些積木的函式給開發者使用,那不就要開發者自行做積木嗎? 若要自行撰寫函式又要如何鑽寫呢?函式的定義如下: 傳回值型態 函數名稱 ( 參數一型態 參數一名稱 , 參數二型態 參數二名稱 , ....) { 變數宣告 程式碼 return 傳回值 ; } 例如下面是 y=x^2 的函式: int power( int x) { int y = x * x; return y; } 範例: 參考網址: [1] http://pydoing.blogspot.tw/2010/06/c-function.html [2] http://imil.au.edu.tw/~hsichcl/TurboC/C_Unit7.htm [3] http://dhcp.tcgs.tc.edu.tw/c/p010.htm [4] http://ccy.dd.ncu.edu.tw/~chen/course/Cpp/ch6/2.htm [5] http://openhome.cc/Gossip/CppGossip/FunctionABC.html 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

讀書心得:YOUTUBE英語學習法

< YouTube英語學習法 >此書從解釋為什要使用YouTube來學習英語開始,先建立讀者對英語聽力的一些心態,例如如何降低有聽沒有懂時所受到的挫折感等。接下來書上會教讀者循序漸進的方式慢慢學習英語,並且提供一些方法與工具,例如以玩遊戲的方式來練習聽寫。 另外 VoiceTube 也提供類似的資源給學習英語的人。 TED 也有字幕供觀看影片的人使用。 底下是筆者從書上所做的筆記。 EF podEnglish - Learn English! - YouTube 提供初級、中級、高級的英語會話課程。 JenniferESL - YouTube 包含發音、詞彙、文法、俚語、常犯錯誤、小學堂等類別。 Speak English With Misterduncan - YouTube 以打招呼等基礎開始的課程。 ActionTeacher - YouTube 輕鬆方式教授英語的課程。 bbclearningenglish - YouTube 英語新聞頻道BBC所提供。 The flatmates, BBC Learning English - YouTube 有漫畫的影片   ==> 筆者最愛。 動畫與兒童節目--適合初學者 Sesame Street - YouTube 兒童教育節目<<芝麻街>> Popular Videos - Clifford the Big Red Dog - YouTube 以一隻紅色狗為主角的卡通。 PBS KIDS - YouTube 卡通影片 The Simpsons - YouTube <<辛普森家庭>> Family Guy - YouTube <<蓋酷家庭>> 美食節目 Cooking with Dog - YouTube 介紹日本料理 Food Wishes - YouTube 介紹西式美食 AboutEating - YouTube 美式家庭菜餚 Laura Vitale -...

高中生程式解題系統:Eva 的回家作業

圖片
題目連結 http://zerojudge.tw/ShowProblem?problemid=a005 , 這題套用等差公式(下圖取自  Wikipedia 等差數列 )   或等比公式(下圖取自  Wikipedia 等比數列 ) 先判斷數列是等差數列還是等比數列後,在求出第五項就可以了。 程式碼如下: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

程式設計入門( Computer programming for a novice )

簡短介紹程式語言所需要的觀念,並以 C++ 和 Java 兩種程式語言示範。 投影片下載處: How toprogram from PingLun Liao 程式碼下載處: http://www.4shared.com/archive/wdl_N-Hpba/HowToProgram.html 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:文文的求婚

題目連結 http://zerojudge.tw/ShowProblem?problemid=a004 ,根據題目給的提示: 西元年被4整除且不被100整除,或被400整除者即為閏年 。即可完成此題了。 程式碼如下: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:字串讀取練習

題目連結 https://zerojudge.tw/ShowProblem?problemid=d018 。 此題為字串處理的題目,用C++  sstream   裡的  istringstream  來處理。 將字串切割成 序號(整數):(字元)實數(浮點數) 用  istringstream buffer (str) ;    int serial;   char dummy;   double real;  等變數。 最後變成   buffer >> serial >> dummy >> real 。 程式碼: # include <iostream> # include <sstream> using namespace std ; int main () { string str; while (getline( cin , str)) { int serial; char dummy; double real; double result = 0 ; istringstream buffer (str) ; while (buffer >> serial >> dummy >> real) { //cout << serial << dummy << real << " "; if ( serial & 1 ) result += real; else result -= real; //cout << result << endl; } cout <<...

讀書心得:睡谷傳奇 (THE LEGEND OF SLEEPY HOLLOW)

<< 睡谷傳奇 >>一書描述說一為名叫「奕可柏.柯鶴」的教師,康乃狄克州人。他到一個叫做「睡谷」的小村落,在那裡他遇到了一位富有農夫的美麗女兒「嘉翠娜.凡.陶蘇」,亦可柏對她傾心不已。不過有個很臭屁的情敵「保洪.碰司」。在一場宴會之後,女孩拒絕了他,只好落寞地騎著馬回家。在回家途中,他遇到了傳言中可怕的「無頭騎士」幽靈,在一場恐怖至極的追逐後,奕楂柏消失了... 亦可柏想追富家女孩的動機是很多人都有的,但女孩的心思總是讓人捉模不定,而且一位外來人士要融入當地的風情文化是需要時間和精神的,也需要個人的接受度。 幽靈、鬼魂、神仙一向都是傳奇或傳說常見的題材,供人茶餘飯後Talk的話題,感興趣的看倌們,此書也提供了題材喔。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:後序運算法

圖片
題目連結 https://zerojudge.tw/ShowProblem?problemid=d016 。 後序表示法的運算方式如下: 從後序表示法的前方開始讀取, 若是運算元則放進堆疊裡, 若是運算子,則從堆疊取出兩個運算元進行運算,並將結果存回堆疊, 若讀取完畢,則堆疊的最頂端即為此後序表示式的運算結果。 例子可看底下影片的動畫說明: 底下程式碼是用STL裡的stack來做。此外,程式碼的寫法是可以改善的。 程式碼: # include <iostream> # include <string> # include <sstream> # include <stack> using namespace std ; int main () { string input; while ( getline( cin , input) ) { stack < int > value; stringstream strStream (input) ; string token; int inStack; int outStack; while ( strStream >> token ) { switch (token[ 0 ]) { case '+' : outStack = value.top(); value.pop(); inStack = value.top(); value.pop(); inStack += outStack; value.push(inStack); break ; ...

程式語言如何入門

拚命玩遊戲就能學寫程式! CodeCombat 還有中文版 就是玩遊戲而已,如果覺得上面還沒有辦法說服你,那下面這篇也看看好了。 被神化的 Coding,工程師現身:寫程式不需要天份,也不需要熱情 但也請你看看些 這文章 【臺大洪士灝】寫程式到底要不要天份和熱情? 資深開發者給後輩的七個 Coding 學習心得 程式設計第一課:對該死的蠢電腦保持耐心 筆者個人的經驗就是:「只要有明確且強烈的動機,就會想辦法去學了。」 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:盈數、虧數和完全數

題目連結 http://zerojudge.tw/ShowProblem?problemid=d010 。 此題用迴圈從判斷1到 N/2 是否為 N 的因數,若是則加總(s)。接著比較加總結果與 N的大小關係來輸出對應的訊息。( 那有沒有更好的演算法呢? ) 程式碼: # include <iostream> # include <cmath> using namespace std ; void prtMsg ( const int &s, const int &n) { if ( s == n ) cout << "完全數" ; else if ( s > n ) cout << "盈數" ; else cout << "虧數" ; cout << endl ; } int main () { int n; while ( cin >> n ) { int s = 0 ; for ( int i = 1 ; i <= n/ 2 ; i++ ) { if ( n % i == 0 ) s += i; } prtMsg(s, n); } return 0 ; } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

讀書筆記:寫給C++程式設計師的UML實務手冊

圖片
UML 簡介 由 Grady Booch, Jim Rumbaugh, Ivan Jacobson 所發展出來的 模型幫助我們視覺化一個系統。 模型允許我們詳述一個系統的結構或是行為。 模型給出指引我們建構一個系統的樣板。 模型紀錄了我們所做的決定。 4 + 1 觀點   (4 + 1 View) 使用案例觀點   (Use Case View) 從系統外部的使用者角度,表達系統所提供的功能 (4+1 中的 1 指的是使用案例觀點 ) 。 設計觀點   (Design View) 描繪出系統的靜態結構以及動態行為,以做為系統所提供之功能的解答。因此,設計觀點圍繞在類別、介面以及物件的合作等等設計問題上。 處理流程觀點   (Process View) 描繪出組成系統的平行以及同步機制之執行緒 (thread) 以及程序 (process) 。這個觀點強調系統的性能、延展性等非功能性需求。 實做觀點   (Process View) 以模組或元件來顯示設計觀點的物件是在哪一個模組或元件中實做。 部屬觀點   (Deployment View) 描繪系統在執行時,各個組成元件的實際佈置與安裝,強調系統執行環境的硬體拓樸結構。 UML 圖形簡介 使用案例圖 塑模出系統應該做什麼 (What) ,而不是如何做 (How) ;描述系統所提供的功能以及其執行時的情境 (Scenario) 。 活動圖 塑模出系統層級之處理邏輯以及執行流程。可用來檢視使用案例圖,幫助我們發覺使用案例中所可能產生的各種不同情境。 類別圖 塑模出問題領域中所發掘的物件類別;表示物件靜態的資料結構。 物件圖 塑模出問題領域中所參與的實際物件,藉以檢驗類別圖的準確度。 循序圖 塑模出問題領域中物件互動的情形,重點是在強調一個使用案例中,物件與物件之間執行順序的時間性。 合作圖 塑模出問題領域中物件互動的情形,強調合作的物件結構以完成一個使用案例。 狀態圖 塑模系統中物件、子系統、系統等在其生命週期中各種可能的狀態,造成狀態轉換的事件,以及在各不同狀態中可能的活動...

Java Puzzler Video

圖片
 底下為有關Java Puzzler的影片。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

Java Expressive Puzzlers

解釋在程式碼裡,有疑問的人,請在此發問。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

讀書心得:最後14堂星期二的課(TUESDAYS WITH MORRIE)

圖片
< 最後14堂星期二的課 >一書是我在逢甲化工讀書時,國文老師推薦的課外閱讀之一,當時的我還真的去借來看,逢甲化工的課業壓力其實很重,化學實驗要寫預報和結報;國文要背唐詩;微積分老師不教計算題,偏愛證明;物理老師居然教了三個積分符號的算式...等,不回憶了。 回到正題,此書讓我見識到人在面臨身死交關時,可以很瀟灑地面對,也可以怨天尤人地抱怨,而我期許自己做到不抱怨就好了。 另外附上Randy Pausch教授的最後一堂課。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

讀書筆記:字元裝置驅動程式(scull sample from ldd3)

圖片
此範例是修改 LDD3 第三章的 scull (Simple Character Utility for Loading Localities) ,我所使用的 Linux Kernel 版本為 3.19.0 ,程式碼 在此 。 scull 設計藍圖 與硬體無關,從 kernel 取記憶體來模擬成字元裝置來使用。 如上圖所示, scull 分成幾種裝置: scull0 到 scull3 為記憶體區域,提供資料共享 (shared) 與持續性 (persistence) 功能。 scullpipe0 到 scullpipe3 為 FIFO 裝置,含有 blocking 與 non-blocking IO 功能。 scullsingle 提供同一時間只能被一個行程存取。 scullpriv 確保每個 virtual console 的記憶體不共享。 sculluid 與 scullwuid 讓同一個使用者可啟用裝置多次;當有人在使用時, sculluid 會回傳裝置忙碌中,而 scullwuid 則會繼續等待 (block) 。 Major and Minor Numbers 此範例有提供 script 方便使用,例如要將 scull module 載入時,只要使用 scull_load 就行了, sudo ./scull_load sudo cp main.c /dev/scull0 cat /dev/scull0 | head -20 | tail -10 sudo ./scull_unload 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

程式碼維護上的難題(The Challenges and Difficulties of Code Maintenance)

在看完 軟體建構之道 、 無暇的程式碼 後,在下要以這篇文章簡短說明程式碼在維護上的難題,首先以最簡單的例子:在文字模式下輸出 Hello World 文字。 請先看此網頁 The Hello World Collection ,光是語言的選擇就有好多種了,且同一種語言也可以不同的寫法,例如 C 語言也可以像下面: #include <stdio.h> /* * 這是印出 Hello World 的程式嗎? */ int main ( void ) { printf( "%c%c%c%c%c%c%c%c%c%c%c%c" , 72 , 101 , 108 , 108 , 111 , 32 , 119 , 111 , 114 , 108 , 100 ); return 0 ; } 而Java更可以這樣子寫: \ u0070 \ u0075 \ u0062 \ u006c \ u0069 \ u0063 \ u0020 \ u0020 \ u0020 \ u0020 \ u0063 \ u006c \ u0061 \ u0073 \ u0073 \ u0020 \ u0055 \ u0067 \ u006c \ u0079 \ u007b \ u0070 \ u0075 \ u0062 \ u006c \ u0069 \ u0063 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0073 \ u0074 \ u0061 \ u0074 \ u0069 \ u0063 \ u0076 \ u006f \ u0069 \ u0064 \ u0020 \ u006d \ u0061 \ u0069 \ u006e \ u0028 \ u0053 \ u0074 \ u0072 \ u0069 \ u006e \ u0067 \ u005b \ u005d \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0061 \ u0072 \ u0067 \ u0073 \ u0029 \ u007b \ u0053 \ u0079 \ u0073 \ u0074 \ u0065 ...

讀書筆記:比爾蓋茲如是說,引爆人生成功的活力

比爾蓋茲如是說,引爆人生成功的活力 人的生命是一場正在焚燒的「火災」,一個人所能去做也必須去做的,就是竭盡全力在這場「火災」中去搶救點什麼東西出來。 一個人也許一生中只有一次或兩次重大機會,而抓住這一次機會可能就會改變你的命運。 沒有辛苦的付出,就沒有大的回報;沒有忘我的工作態度,便沒有傑出的工作成績。 我們的成功,大部分是靠競爭對手沒把事情做對而來的 --- 那是運氣,你不能總依靠別人犯錯的策略來經營自己的事業。 世界的快速變化正是微軟競爭優勢的基礎,要嘛反應夠快,要嘛死路一條 …… 要永遠保持領先的激情和懼怕落後的憂慮。 要多想想我們的競爭對手,知己知彼百戰不殆,不要認為我們已經占了上風,因此我們就會永遠立於不敗之地。不,這必將導致落伍,因而被淘汰。 我們有許多年輕姑娘和小伙子,他們需要交朋友、玩耍,還可能招惹是非,這些都是難免的。但是他們也要工作,我需要他們做得更好 …… 我希望他們有一種歸屬感,讓他們明白,這一切都屬於他們。 英國維珍集團的五條管理規則: 讓員工玩樂有好處。 別老在意他們有沒有做好本職工作。 不要拘泥禮教,公司內外都直呼其名。 多給員工讚揚而不是批評。 讓他們體會商業冒險的激情。 達爾文世界的教訓之一是,有機體神經系統的表現優異,可協助決定它察覺變化和快速反應的能力,因此能活下來,或甚至更強盛。 任何東西都是有價的,而優秀的職員卻是無價的。 對人才的運用,僅僅限於蒐羅是永遠都不夠的。重要的是對人才不僅要善於辨識其長處,而且要敢於大膽地使用,以讓其充分顯示自己才能。 我們應該接受迅速的失敗,而不是緩慢的失敗,最不該接受的是沒有失敗:如果有人從不犯錯,那麼只說明他們沒有努力。失敗的結果是試圖去嘗試其他可能。 微軟不會是永遠不朽的。所有的公司都面臨著失敗,只是遲早的問題。我的目標是使我的公司盡可能地保持戰鬥力,不論在任何環境中都勇往直前。 我明白,微軟的前景部份因素取決於我們是否能把握全球電腦通信網路所帶來的新的競爭機會。適應新環境絕非易事,但絕對有此必要。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。