線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1430
推到 Plurk!
推到 Facebook!

Turbo C & BCB 的問題

尚未結案
laydduck
一般會員


發表:9
回覆:10
積分:3
註冊:2003-11-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-16 22:05:21 IP:218.162.xxx.xxx 未訂閱
最近用tutbo C 寫了個程式,執行後並無錯誤,且順利輸出所要的檔案資料 但是轉寫到BCB後,同樣的宣告、語法跟函式,但執行到程式一半時卻發生錯誤 錯誤如下 error: sqrt:Domain error Invalid float point operation    但在Turbo C上執行卻無錯誤,已經找了好幾天, 還是找不出原因,是什麼原因造成,請各位大哥幫幫我吧.....感謝不盡!!    PS:程式有點大所以無法POST出來    
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-16 22:19:19 IP:140.135.xxx.xxx 未訂閱
laydduck您好: sqrt:Domain error 有可能是因為您輸入的引數是負值  或是利用Debug的工具(DebugView),您可以試試看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31236 RaynorPao 版主有說明如何使用 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
laydduck
一般會員


發表:9
回覆:10
積分:3
註冊:2003-11-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-17 20:59:52 IP:218.162.xxx.xxx 未訂閱
感謝囉,不錯的除錯程式~ 但是找了找還是沒辦法找出真正的原因, 想了一下BCB 唯一與Turbo C最大不同點在於一開始的宣告部分 會不會是我宣告、讀值有不恰當的地方呢? 還是有其他宣告的方式。^^" ex: //......................start double x,y; double W_OF_LG; double L_OF_LG; W_OF_LG=Edit1->Text.ToDouble(); L_OF_LG=Edit2->Text.ToDouble(); x=W_OF_LG*L_OF_LG; ........ ........ y=sqrt(x); ........ Edit3->Text=AnsiString(y); ........ //.......................end
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-17 23:02:40 IP:140.135.xxx.xxx 未訂閱
laydduck您好: 我試過您的程式碼,並沒有問題耶 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { double x,y; double W_OF_LG; double L_OF_LG; W_OF_LG=Edit1->Text.ToDouble(); L_OF_LG=Edit2->Text.ToDouble(); x=W_OF_LG*L_OF_LG; y=sqrt(x); Edit3->Text=AnsiString(y); } 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
laydduck
一般會員


發表:9
回覆:10
積分:3
註冊:2003-11-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-18 00:22:36 IP:218.162.xxx.xxx 未訂閱
那是我舉一個例子啦~~ 寫小程式的時候我都是這樣做,都沒問題。 還有其他比較方便的宣告的方式嗎? 可以提供給我參考一下嗎? PS:我看下次能不能把已寫好,但有問題的程式碼 拿出來直接給你幫我看一下~那該怎麼寄給你呢?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-18 01:04:38 IP:140.135.xxx.xxx 未訂閱
aydduck您好:
引言: 那是我舉一個例子啦~~ 寫小程式的時候我都是這樣做,都沒問題。 還有其他比較方便的宣告的方式嗎? 可以提供給我參考一下嗎? PS:我看下次能不能把已寫好,但有問題的程式碼 拿出來直接給你幫我看一下~那該怎麼寄給你呢?
因為您提供的資訊實在太少,很難看出問題在哪邊 所以假如可以的話,您可以將專案上傳至[會員求助程式檔案上傳區] http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 讓大家幫您看看< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
laydduck
一般會員


發表:9
回覆:10
積分:3
註冊:2003-11-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-21 01:43:15 IP:218.162.xxx.xxx 未訂閱
我已經將程式上傳了, 請各位大哥幫幫小女子我吧~~^^"
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-21 12:44:08 IP:61.231.xxx.xxx 未訂閱
對不起,挿個嘴,關於 error: sqrt:Domain error Invalid float point operation 指的是您在叫用 sqrt(x) 時,輸入參數 x 已經是一個負數,所以會有 domain error 的錯誤,以下是 BCB5 Online Help
Category    Math Routines    Syntax    #include <math.h>
double sqrt(double x);
long double sqrtl(long double x);    Description    Calculates the positive square root.    sqrt calculates the positive square root of the argument x.    sqrtl is the long double version; it takes a long double argument
and returns a long double result. Error handling for these functions
can be modified through the functions _matherr and _matherrl.    Return Value    On success, sqrt and sqrtl return the value calculated, the square
root of x. If x is real and positive, the result is positive. If x
is real and negative, the global variable errno is set to    EDOM        Domain error
如果您確定您的算式沒錯,那可以試試
y=sqrt(fabs(x));
確保叫用 sqrt 時是以正實數傳入,就不會有 Domain error 的錯誤了。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-09-30 20:02:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!