發表文章

惡搞嘻語言第一嘻:嘻上路

前言 (Preface) 啥是前言,本系列文章的前夕 ( 戲 ) 嗎?本系列會有高潮可言嗎?不會有!所以請略過此節。 全世界都不會的嘻 (hello.c) #include <stdio.h> // 函式 printf 的 header file #include <stdlib.h> // 函式 system 的 header file int main( void ) { printf( " 嘻嘻嘻嘻嘻 \n" ); // 輸出文字 printf( " CCCCcc\n" ); printf( " CC\n" ); printf( " C\n" ); printf( "CC\n" ); printf( " C\n" ); printf( " CC\n" ); printf( " CCCCcc\n" ); system( "pause" ); // Console 視窗等待使用者輸入鍵盤上的任意按鍵 printf( "C What?!\n" ); printf( " 嘻什麼? \n" ); system( "pause" ); return 0; } 在寫程式的時候,大多都不會自己從低階的組合語言 ( http://it-easy.tw/assembly-language/ ) 開始寫,於是嘻語言提供了共用的函式庫,如此例中的 printf 與 system 都是由嘻語言所提供的,而 #include < filename .h> 就是告訴 Compiler 有用到此兩個函式,不要給我 compile error 啊,而在產生執行檔時, linker 就會將相關的 *.obj 給加進來 ( 細節請參考 << 程式設計師的自我修養:連結、載入、程式庫 >> 一書 ) 。 嘻練習: 使用 printf...

讀書筆記:沒了名片,你還剩下什麼?

在大學時,我曾公開表明:「若有同學在沒畢業前就要創業公司,記得要找我。」 當時的我就像一般年輕人想創業的心態一樣,「有夢想卻不正視現實層面。」 直到現在身邊還是會有一些人會問我:「我會去創業開公司嗎?」 我的心態如同作者與一些創業者(如中國藍)類似:「在現有的職場上沒有退路時,就只有創業一路。」 底下是從書上挑選下來的筆記: Chapter 1 掌握自我定位 <<< 理想主義者是不可救藥的:如果他被扔出他的天堂,他會再製造出一個理想的地獄。---尼采 >>> * 進了知名企業像進了魔法學院,拿出魔法卡會有意想不到的效果。 * 把自己視為獨立事業體來經營,就是創業! * 創業是自己和伙伴們獨立創造賴以生存的價值,而不是向別人借錢去滿足自己達不到的夢想。 * 該考量的,不是滿足於小小的平穩,而是有一個遠大的夢想,大到能奮力去追尋的地步。 * 這年頭要擔任公職,其實是「押很大」的賭注! * 工作是人生最重要的一部分,如果可能,應該去享受,而非忍受。 * 如果渴望悠閒的生活,馬上就要行動,而不是期待數十年後退休的那天開始。 * 找到描述自己的關鍵字 * 平凡其實很貴 * 履歷 = 別人眼中的自己 * 履歷 = 自我的回顧與展望 Chapter 2 了解職場規則 <<< 我們必須習慣,站在人生的交叉路口,卻沒有紅綠燈的事實。---海明威 >>> * 老闆所需要的,是能幫公司降低風險的人,一個人若能把事情都想的周到、看得遠、顧慮的清晰,他的重要性其實只會增加不會減少。 * 天底下根本沒有公不公平的問題,只有你有沒有利用價值的問題。 * 當主管的心態建議:注意寂寞、小心安全感、要有良心;長期職涯發展的建議:透明度、忍耐力、接班人。 * 在對的時間點,很輕易做到的功勞,比累得要死,卻看不出成果的苦勞更有用。 * 不管進入哪個產業,有沒有辦法獨當一面,成為不靠特定組織也能運作的個體,比預測哪個產業會賺大錢要重要得多。 * 「寧為蛇頭,勿為牛尾」在跆拳道和職場上都是適用的。 Chapter 3 增加自我籌碼 <<< 「一個人表現優異,一個人表現平平,他們的差異與才華無關。成效其實與行為習慣及一些基本原則有關。」---彼得...

高中生程式解題系統:新手訓練 ~ 陣列應用

題目連結 http://zerojudge.tw/ShowProblem?problemid=a248 。 此題和台中女中程式解題系統的 c046: 3.小數點後N位 一題類似,解法是以「除法的直式計算」的觀念,搭配程式的迴圈來實作。 程式碼一: # include <cstdio> int main () { int a, b, n; while ( scanf ( "%d%d%d" , &a, &b, &n) != EOF) { printf ( "%d." , a / b); a = a % b; for ( int i = 0 ; i < n; i++) { a = a * 10 ; printf ( "%d" , a / b); a = a % b; } printf ( "\n" ); } return 0 ; } 程式碼二: /**********************************************************************************/    /*  Problem: c046 "3.小數點後N位" from 108校內初賽                                         */    /*  Language: C++             ...

高中生程式解題系統:TOI2008 2. 大數運算

題目在此 , 此題筆者用Java寫,因為Java有好用的 API BigInteger 阿。 用 Python 時,可以用 eval 函數。 基本上此題是用陣列來處理,此部分可參考 超長整數運算(大數運算) 一文。 程式碼: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

高中生程式解題系統:日期差幾天

題目連結 http://zerojudge.tw/ShowProblem?problemid=a263 。 這題需要注意閏年的判斷。筆者用一個陣列 daysPerMon[ 13 ] 來紀錄每個月有幾天。 要算出西元 0 年 1 月 1 日 到 西元 y 年 m 月 d 日總過經過多少天數。 算法是先算出從西元 0 年到今年 y 經過多少天,再算出到這個月 m 經過多少天,加上今天的 d 。 於是可以得到  daysCnt(y1, m1, d1) 與  daysCnt(y2, m2, d2)  ,再將這兩個值相減會是要的答案。 程式碼: # include <cstdio> # include <iostream> using namespace std ; int daysPerMon[ 13 ] = { 0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; bool isLeapYear ( int year) { return (year % 4 == 0 && year % 100 || year % 400 == 0 ); } int daysCnt ( int year, int month, int day) { int sumOfDays = 0 ; for ( int i = 1 ; i < year; i++) { bool isLeap = isLeapYear(i); if (isLeap) { sumOfDays += 366 ; } else { sumOfDays += 365 ; } } for ( int i = 1 ; i < month; i++) { sumOfDays += daysPerMon[i]; } if (isLeapYear(year) && month > 2 ) sumOfDays++; sumOfDays += day; //cout << "Total Day...

高中生程式解題系統:明明愛數數

題目連結 http://zerojudge.tw/ShowProblem?problemid=a215 。 這題用一個變數 sum 作加總並判斷 sum 是否小於 m。 程式碼: # include <cmath> # include <cstdio> using namespace std ; int main ( void ) { int n,m; while ( scanf ( "%d %d" , &n, &m) != EOF) { int sum = n; int cnt = 1 ; for ( int t = n + 1 ; sum <= m; t++) { cnt ++; sum += t; } printf ( "%d\n" , cnt); } return 0 ; } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

Android 動畫 (Android Animation Design)

圖片
在 Android 中若要做動畫有幾種方式: 1. 自己寫程式 2. 用 Android 內建的,例如: Drawable Animation 、 Tween Animation 、 Property Animation 等。 此文會以參考資料 [1] 修改成使用 Property Animatin 來說明,在 Eclipse 的 Tween Animation( 下圖 ) 分為 alpha( 透明 ) 、 rotate( 旋轉 ) 、 scale( 縮放 ) 、 set( 集合 ) 、 translate( 平移 ) 等五種。 Alpha 的 XML 如下 : < alpha android:fromAlpha = "0" android:toAlpha = "1" android:duration = "2000" > </ alpha > Rotate 的 XML 如下: < rotate xmlns:android = "http://schemas.android.com/apk/res/android" android:fromDegrees = "0" android:toDegrees = "360" android:pivotX = "50%" android:pivotY = "50%" android:duration = "5000" > </ rotate > Scale 的 XML 如下: < scale android:fromXScale = "0.5" android:toXScale = "3.0" android:fromYScale = "0.5" ...