我需要用5.0版本做一個計算機... |
尚未結案
|
丑哥
一般會員 發表:1 回覆:0 積分:0 註冊:2003-12-09 發送簡訊給我 |
|
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
引言:可否幫我....給我程式碼....拜託本站十大必刪文章 一、重覆發表有灌水之嫌 二、答非所問或描述不清楚 三、抄襲他人文章或發表而未具名引用,或轉載未得原作者同意之文章 四、涉及人身攻擊或不雅文字 五、涉及政治立場 六、索求原始碼、序號、破解、非法下載連結七、貼錯版區或主題不明確 八、答題內容明顯抄襲或重覆前答題者內容 九、很明顯的作業問題或不將自己寫的有問題的程式片段貼上而要求答案的 十、站務組保留任何對 K.Top 有不良形響文章刪除與會員停權處分的權利 =================================================================== 13.提問的智慧 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20571 = 提問之前 = 在通過電郵、新聞組或者聊天室提出技術問題前,檢查你有沒有做到: 1. 通讀手冊,試著自己找答案。 2. 在FAQ裏找答案(一份維護得好的FAQ可以包羅萬象:)。 3. 在網上搜索(個人推薦google~~~)。 4. 向你身邊精於此道的朋友打聽。 當你提出問題的時候,首先要說明在此之前你幹了些什麼;這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。如果提問者能從答案中學到東西,我們更樂於回答他的問題。 周全的思考,準備好你的問題,草率的發問只能得到草率的回答,或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能得到實質性的幫助。 - 去除無意義的疑問 別用無意義的話結束提問,例如“有人能幫我嗎?”或者“有答案嗎?”。 首先:如果你對問題的描述不很合適,這樣問更是畫蛇添足。其次:由於這 樣問是畫蛇添足,黑客們會很厭煩你--而且通常會用邏輯上正確的回答來表 示他們的蔑視,例如:“沒錯,有人能幫你”或者“不,沒答案”。 |
superlevin
高階會員 發表:181 回覆:313 積分:180 註冊:2003-01-12 發送簡訊給我 |
|
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
我很懷疑 你們是否都是學校的學生要交作業
如果是請你們告訴同學 別再題出這樣的問題 尋問方式 要就真的寫個程式來討論 否則別當 妄圖不勞而獲的乞討者 下面的程式碼 你自己去玩出來把
基本程式設計篇,簡易的電子計算機程式 在了解Delphi的語法後,相信各位讀者要完成一個簡易的電子計算機程式,是相當容易的,不過假如說,是當使用者先輸入計算的內容後(如下),再依照先乘除後加減的順序,來完成加減的動作,則就需要有資料結構中stack的概念了,當然筆者也相信對大多數的讀者來說,都了解stack就是將資料暫存,然後使用先進後出的概念,其計算方式如下: 假設使用者輸入 4 8*5-3= 則 1.找到【 】後,儲存 4 2.找到【*】後,儲存 8 * 因為【*】的order大於【 】因此不計算 3.找到【-】後,儲存 5 - 因為【-】的order不大於【*】,計算【*】,則stack變成 4 40 - 因為【-】的order不大於【 】,計算【 】,則stack變成 44 - 4.找到【=】,儲存3 = 因為【=】的order不大於【-】,計算【-】,則stack變成 41 = //結果 以上的範例讀者應該覺得很容易,當然在本範例中,除了介紹以上的邏輯以外,另外主要是介紹物件控制的概念。 在本程式中(如圖),共有16個按鈕,也就是說,當使用者按下【1】時,則在Edit1中必須要顯示1,當使用者按下【2】時,則在Edit1中必須要顯示2,其中具有規律性,因此可以將button的onclick放在同一個procedure中,然後利用button中name的設計了解現在使用者按下的使哪一個button,在本範例中,button0代表0,button1代表1,以此類推,因此整個程式設計如下: 圖1 1. 在button0的Onclick設計以下的程式 procedure TForm1.Button0Click(Sender: TObject); var s:string; begin if not edit1.Enabled then //edti1.enabled表示使用者是否按下=,計算內容 begin edit1.Clear; edit1.Enabled:=true; end; edit1.SetFocus; //每按下一個button後將游標focus在edit1中,使用者可以用鍵盤輸入 s:=copy(tbutton(sender).name,7,length(tbutton(sender).name)-6); //第幾個按鈕 case strtoint(s) of 0..9:begin if edit1.text='0' then edit1.text:=''; edit1.text:=edit1.text s; bu11enabled(true); //將 -*/設定為enabled end; 10:edit1.text:=edit1.text '.'; 11:begin //=,計算內容 edit1.text:=edit1.text '='; compu; //計算內容 edit1.enabled:=false; //設定成false bu11enabled(false); //將 -*/=設定為disabled end; 12:edit1.text:=edit1.text ' '; 13:edit1.text:=edit1.text '-'; 14:edit1.text:=edit1.text '*'; 15:edit1.text:=edit1.text '/'; end; edit1.SelStart:=length(edit1.text); //控制游標在edit1中最後一個byte end; 2. 計算內容:產生一個procedure計算內容 procedure TForm1.compu; var ans:real; va:array[1..5] of real; //stack –數值 op:array[1..5] of string; //stack--operation i,j,k,co:integer; //co 位置 s:string; //opa為判斷是否為operation的function begin try s:=edit1.text; co:=0; k:=1; for i:=1 to length(s) do begin if opa(s[i])>=0 then begin co:=co 1; va[co]:=strtofloat(copy(s,k,i-k)); op[co]:=s[i]; while (co>1) and (opa(op[co])<=opa(op[co-1])) do begin if op[co-1]=' ' then va[co-1]:=va[co-1] va[co]; if op[co-1]='-' then va[co-1]:=va[co-1]-va[co]; if op[co-1]='*' then va[co-1]:=va[co-1]*va[co]; if op[co-1]='/' then va[co-1]:=va[co-1]/va[co]; op[co-1]:=op[co]; co:=co-1; end; k:=i 1; end; end; edit1.text:=floattostr(va[1]); except showmessage(edit1.text '...語法錯誤'); end; end; 3. opa function function Tform1.opa(s:string):integer; begin if (s='*') or (s='/') then result:=2 else begin if (s=' ') or (s='-') then result:=0 else begin if (s='=') then result:=1 else result:=-0; end; end; end; |
o.s
一般會員 發表:39 回覆:36 積分:15 註冊:2003-05-24 發送簡訊給我 |
就這樣ㄚ用15 button和edit1元件 按鈕從1~9~0原使碼是
edit1.text:=edit1.text '1';
至
edit1.text:=edit1.text '9';
edit1.text:=edit1.text '0';
都這樣
然+ - * /你就先設定tmp為暫存器然依序把值存入在讀出運算加總
a:=edit1.text;
edit1.text:='';
b:=' '; 在全域變數設a和b做為變數設定為字串
等於就用if去判斷ㄚ不知這樣是否達到你的需求供參考呵
都搜尋發問會找到你中意的答案 最重要的是別犯了規定喔^^
對了我也是學生多試設題目做做比較實在或者請教學校老師
或許能幫你解決問題也說不定因我常這樣做 各位好ㄚ 發表人 - o.s 於 2003/12/20 17:51:57 發表人 - o.s 於 2003/12/20 17:53:35 發表人 - o.s 於 2003/12/20 17:56:39
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |