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

BCB 兩點連線求二元一次方程式

答題得分者是:daldal
fish730622
一般會員


發表:7
回覆:5
積分:2
註冊:2007-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-20 00:02:45 IP:210.240.xxx.xxx 訂閱
我PO我的程式碼出來,因為執行出來怪怪的
新手上路!!請各位大大指導指導
就是簡單的兩個點(MMX,MMY) (CPX,CPY)連線求二元一次方程式
y=ax b

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a,b;
int y,x;
int MMX=300,MMY=220,CPX=320,CPY=240;
MMY=(MMX*a) b;
CPY=(CPX*a) b;

a=(MMY-CPY)/(MMX-CPX);
b=MMY-(MMX*a);
y=(a*x) b;

Memo1->Lines->Insert(0,IntToStr(y));
}
[/code]

我想要秀出y=x-80 在Memo1上
編輯記錄
fish730622 重新編輯於 2008-05-20 00:07:14, 註解 無‧
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-20 09:02:04 IP:61.219.xxx.xxx 未訂閱
兩點求解 y=ax+b
(X1,Y1) (X2,Y2)
PS: 此方程式不包含 x=ay b 的解(方法是相同的,請自行撰寫囉)

[code cpp]
float a=(float)(Y1-Y2)/(X1-X2); //計算a
float b=(float)(Y2*X1-X2*Y1)/(X1-X2); //計算b
Memo1->Lines->Add("y=" FloatToStrF(a,ffFixed,7,7) "x " FloatToStrF(b,ffFixed,7,7)); //放入Memo1
[/code]
fish730622
一般會員


發表:7
回覆:5
積分:2
註冊:2007-07-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-20 15:15:57 IP:210.240.xxx.xxx 訂閱

[code cpp]
float a,b;
float y,x;
int MMX=300,MMY=220,CPX=320,CPY=240;
a=(MMY-CPY)/(MMX-CPX);
b=MMY-(MMX*a);
Memo1->Lines->Add("y=" FloatToStr(a) "x (" FloatToStr(b) ")");
[/code]

參考了一下我改好了感謝妳
這樣寫應該沒錯吧
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-20 18:13:56 IP:220.130.xxx.xxx 未訂閱

[code cpp]
float a,b;
//float y,x;
int MMX=300,MMY=220,CPX=320,CPY=240;
a=(float)(MMY-CPY)/(MMX-CPX);
b=MMY-(MMX*a);
Memo1->Lines->Add("y=" FloatToStr(a) "x (" FloatToStr(b) ")");
[/code]

加上(float)是因為(MMY-CPY)/(MMX-CPX)四個變數都是整數integer
所以加上(float)轉型,不然計算結果會被捨去小數點位數
系統時間:2024-04-20 8:47:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!