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

兩個Delphi的數學題目

答題得分者是:jow
kentity
一般會員


發表:1
回覆:1
積分:0
註冊:2007-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-06 00:20:30 IP:140.115.xxx.xxx 訂閱

以call by reference方式求99乘法表

第一次寫delphi

希望大家給點方向 或 是小範例

感謝
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-06 01:40:56 IP:123.193.xxx.xxx 訂閱
簡單問題應該先提一下自己的想法...^_^

[code delphi]

public
function Area(l, w: Extended): Extended; overload; //矩型(含正方形)
function Area(u, d, h: Extended): Extended; overload; //梯形
function Area(r: Extended): Extended; overload; //圓形
function Get9x9(a, b: Byte; var retVal: Byte; var S: string): Boolean; //求值:九九乘法表
end;

implementation

function TForm1.Area(l, w: Extended): Extended;
begin
Result := l * w;
end;

function TForm1.Area(u, d, h: Extended): Extended;
begin
Result := (u d) * h / 2;
end;

function TForm1.Area(r: Extended): Extended;
begin
Result := PI * r * r;
end;

function TForm1.Get9x9(a, b: Byte; var retVal: Byte; var S: string): Boolean;
begin
retVal := 0;
S := '';
Result := (a in [1..9]) and (b in [1..9]);
if Result then
begin
retVal := a * b;
S := Format('%d x %d = %d', [a, b, retVal]);
end;
end;


[/code]
編輯記錄
jow 重新編輯於 2007-11-06 01:41:53, 註解 無‧
kentity
一般會員


發表:1
回覆:1
積分:0
註冊:2007-11-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-06 01:52:35 IP:140.115.xxx.xxx 訂閱
感謝你 ~~~~ 我會好好研究的。
cluise789
一般會員


發表:1
回覆:5
積分:1
註冊:2007-08-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-13 14:17:39 IP:211.21.xxx.xxx 訂閱

[code delphi]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Math;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Label1: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button2: TButton;
Edit7: TEdit;
Edit8: TEdit;
Button3: TButton;
Edit9: TEdit;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function Area(len,wid:Extended):Extended;overload;
function Area(ul,ll,ht:Extended):Extended;overload;
function Area(rad:Extended):Extended;overload;
function Get9X9(a,b:byte;var retVal:byte;var S:string):boolean;
end;

var
Form1: TForm1;
//Const PI=3.1415962;
implementation

{$R *.dfm}
function TForm1.Area(len,wid:Extended):Extended;
begin
result:=len*wid;
end;

function TForm1.Area(ul,ll,ht:Extended):Extended;
begin
result:=(ul ll)*ht/2.0;
end;

function TForm1.Area(rad:Extended):Extended;
begin
result:=PI*Power(rad,2);
end;

function TForm1.Get9X9(a,b:byte;var retVal:byte;var S:string):boolean;
begin
retVal:=0;
s:='';
result:=(a in[1..9]) and (b in[1..9]);
if result then
begin
retVal:=a*b;
S:=format('%d * %d = %d ',[a,b,retVal]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
len,wid:Extended;
begin
len:=0;wid:=0;
if edit1.Text<>'' then
try
len:=strtofloat(edit1.text);
except on E:Exception do
begin
// messagedlg('輸入的長度錯誤!請重新輸入', mrAbort,[mrAbort],0,mrAbort);
MessageDlg('輸入的長度錯誤!請重新輸入', mtError,
[mbOk], 0);
// showmessage('輸入的長度錯誤!請重新輸入');
abort;
end;
end;

if edit2.Text<>'' then
try
wid:=strtofloat(edit2.text);
except on E:Exception do
begin
MessageDlg('輸入的寬度錯誤!請重新輸入', mtError,
[mbOk], 0);
// showmessage('輸入的寬度錯誤!請重新輸入');
abort;
end;
end;
edit3.Text:=format('.2f',[Area(len,wid)]);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
ul,ll,ht:extended;
begin
ul:=0;ll:=0;ht:=0;

if edit4.Text<>'' then
try
ul:=strtofloat(edit4.text);
except on E:Exception do
begin
MessageDlg('輸入的上底錯誤!請重新輸入', mtError,
[mbOk], 0);
abort;
end;
end;

if edit5.Text<>'' then
try
ll:=strtofloat(edit5.text);
except on E:Exception do
begin
MessageDlg('輸入的下底錯誤!請重新輸入', mtError,
[mbOk], 0);
abort;
end;
end;

if edit6.Text<>'' then
try
ht:=strtofloat(edit6.text);
except on E:Exception do
begin
MessageDlg('輸入的高度錯誤!請重新輸入', mtError,
[mbOk], 0);
abort;
end;
end;

edit7.Text:=format('.2f',[Area(ul,ll,ht)]);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
rad:extended;
begin
rad:=0;
if edit8.Text<>'' then
try
rad:=strtofloat(edit8.text);
except on E:Exception do
begin
MessageDlg('輸入的半徑錯誤!請重新輸入', mtError,
[mbOk], 0);
abort;
end;
end;
edit9.Text:=format('.2f',[Area(rad)]);
end;

procedure TForm1.Button4Click(Sender: TObject);
var
c:byte;
tempstr:string;
begin
if Get9X9(2,2,c,tempstr) then
showmessage(tempstr);
end;

end.
[/code]
------
cluise is a professional programmer.
MatthewSong
一般會員


發表:17
回覆:17
積分:6
註冊:2007-09-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-12-03 11:28:01 IP:202.175.xxx.xxx 訂閱
各位高手都好強
但我覺得對新手來說,不可以告訴答案他知的 ..
只可以大慨說意思 ,hoho
broodwarfish
一般會員


發表:1
回覆:3
積分:0
註冊:2007-02-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-12-10 01:48:16 IP:121.15.xxx.xxx 訂閱
這個好像就是幾個公式就可以解決的哦...

不過代碼還是寫的很好的....
系統時間:2024-03-29 23:03:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!