kowala's home

kowala's home
這裡是我的學習筆記,陸續增加中。
http://kowala21.blogspot.com

2016-02-03

小三通筆記

小三通就是台灣到金門到大陸,去大陸走小三通,金門跟廈門真的很近,都是渡輪運輸,便宜快速,我是到廈門五通碼頭,所以本筆記介紹都以此為終點。

路線圖

台灣到金門只有航空,自己訂票比較省、有彈性,如果怕麻煩的話,可以買套票,就是機票--機場接送--船票一起包,我是自己訂票,所以做個筆記。

一、訂機票金門尚義機場
可以上易遊網國內線訂票,要先加入會員,然後選票,下訂單,當天完成付款。這時你會得到一組電子機票號碼,到時去機場該航空公司櫃檯,給她身分證,它就會給你登機證了。
錯開假日,比較容易訂票,也可以訂到優惠票,一般越早越好,較多選擇,遇到優惠票機率比較高。
易遊網 http://www.eztravel.com.tw/?in=tb0



二、機場到碼頭
機場外面就有排班計程車,行情是300元,跳表是305元,大約15-20分鐘車程,有認識的可以另外叫車,可以事先請她幫忙去街上買東西,比較便宜,告訴她飛機到達時間,要買甚麼,(砲彈菜刀,貢糖,一條根,陳高...),請她報價,然後錢匯過去,就行了,真的很方便,如果東西太多,那就請她幫你用寄的。



三、買船票
到水頭碼頭後,拿護照去櫃台買船票,假日的話,最好是網上預訂,順便買保險。因為廈門很近,航程約30分鐘左右,船內很寬敞,並排座位有14個,船航行很穩,天氣好的話,幾乎感覺不到海浪的存在。



四、廈門五通碼頭
到碼頭後,出關要驗台胞證,新版ID卡台胞證可以快速通關,但要先申請填表後才行,我只好排隊人工驗通關,通關後,大廳可以換 RMB,要買船票,這有張名片,可以先諮詢與訂票,外面打的(搭 TAXI)有叫車跟排班的,叫車的是沒牌的,會出事的都是這種,要搭排班的那種,有牌的。



2014-11-08

BCB6 畢氏定理計算機

最近小孩正在學畢氏定理,說簡單還算簡單,但是要用計算機按半天,還要再開根號,蠻麻煩的,就寫了這個小程式,下面有部分程式碼,為何是部分?因為視窗程式很大部分是視窗元件,是BCB自動產生的,我們多半不需管它,只需專注於核心功能寫作就行了。

下載
https://www.dropbox.com/s/5qx8xpz8zmhm69h/BisTheory1.rar?dl=0



程式說明
這隻程式主要有兩個部分,一是三角形輸入幾個邊,要求哪個邊判定,第二是浮點數計算問題,程式碼如下

一、狀態判定,填入幾個邊了
int chkState(){
    UnicodeString s1,s2,s3;
    s1=edit1->Text;//1
    s2=edit2->Text;//3
    s3=edit3->Text;//5
    if(s1.Length()>0)mystate[1]=1;else mystate[1]=0;
    if(s2.Length()>0)mystate[2]=3;else mystate[2]=0;
    if(s3.Length()>0)mystate[3]=5;else mystate[3]=0;
    mystate[0]=mystate[1]+mystate[2]+mystate[3];
    return mystate[0];
}

這裡只要文字框產生 change()事件啟動,會檢查三個邊,字串長度>0,並分別給定其代表值,最後加總該值傳回,
a=1
b=3
c=5
如果傳回 8 ,代表b+c=8,那就知道要求的是 a 了。

二、浮點數計算
浮點數計算比較麻煩,因為有精度問題,動不動就會溢位,這裡沒專門處理這問題,只是簡單的提供精度設定,溢位就會變成負值,你就手動把精度調低些就好了。
精度就是靠四捨五入函式來完成,計算就是依據狀態判定來求相應的值。

四捨五入,使用整數法
double round(double src,int n){
    double res;
    int i,k=1;
    for(i=0;i<n;i++)k*=10;
    res=int(src*k+0.5);
    res/=k;
    return res;
}

計算
這裡沒用sqrt()函數,因為溢位時,會跳出一個對話 sqrt DOMAIN error,有點煩,所以改用求1/2平方來代替,溢位就是負值。

double calculate(){
    a=uStrToDouble(edit1->Text);
    b=uStrToDouble(edit2->Text);
    c=uStrToDouble(edit3->Text);
    switch (mystate[0]){
        case 8://a=sqrt(c^2-b^2);
            b2=pow(b,2);c2=pow(c,2);
            a2=c2-b2;
            //result=sqrt(round(a2,8));
            result=pow(a2,0.5);
            break;
        case 6://b=sqrt(c^2-a^2);
            a2=pow(a,2);c2=pow(c,2);
            b2=c2-a2;
            //result=sqrt(round(b2,8));
            result=pow(b2,0.5);
            break;
        case 4://c=sqrt(a^2+b^2);
            a2=pow(a,2);b2=pow(b,2);
            c2=a2+b2;
            //result=sqrt(round(c2,8));
            result=pow(c2,0.5);
            break;
    }
    return result;
}