Autor Beitrag
is44c
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 30.11.05 17:57 
Ich bin gerade dabei mir einen Taschenrechner zu proggen und nun stehe ich vorn einem neuem Problen! Wie kann ich Prozentrechnung einbauen?

Das soll so gehen wie beim WindowsTR und naja ich habe keien ansatzmöglichkeit

Mein Ziel
Ich will ermittlen können wieviel Prozent 7 von 8 sind (beispiel)

ich bin für alle ideen offen mein Courcecode könnt ihr gerne haben wenn ihr ihn braucht bitte
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
unit TRUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    txt_eingabe: TEdit;
    btn_Plus: TButton;
    btn_Minus: TButton;
    btn_mal: TButton;
    btn_Geteilt: TButton;
    btn_gleich: TButton;
    lbl_ergebnis: TLabel;
    btn_ANS: TButton;
    btn_1: TButton;
    btn_2: TButton;
    btn_3: TButton;
    btn_4: TButton;
    btn_5: TButton;
    btn_6: TButton;
    btn_7: TButton;
    btn_8: TButton;
    btn_9: TButton;
    btn_0: TButton;
    btn_Komma: TButton;
    btn_Wurzel: TButton;
    btn_Close: TButton;
    btn_ClearALL: TButton;
    btn_Clear: TButton;
    Label1: TLabel;
    btn_Copyright: TButton;
    btn_Vorzeichen: TButton;
    procedure btn_PlusClick(Sender: TObject);
    procedure btn_gleichClick(Sender: TObject);
    procedure btn_MinusClick(Sender: TObject);
    procedure btn_malClick(Sender: TObject);
    procedure btn_GeteiltClick(Sender: TObject);
    procedure btn_ANSClick(Sender: TObject);
    procedure btn_1Click(Sender: TObject);
    procedure btn_2Click(Sender: TObject);
    procedure btn_3Click(Sender: TObject);
    procedure btn_4Click(Sender: TObject);
    procedure btn_5Click(Sender: TObject);
    procedure btn_6Click(Sender: TObject);
    procedure btn_7Click(Sender: TObject);
    procedure btn_8Click(Sender: TObject);
    procedure btn_9Click(Sender: TObject);
    procedure btn_0Click(Sender: TObject);
    procedure btn_KommaClick(Sender: TObject);
    procedure btn_WurzelClick(Sender: TObject);
    procedure abfrage(Sender: TObject; var Key: Char);
    procedure btn_CloseClick(Sender: TObject);
    procedure btn_ClearALLClick(Sender: TObject);
    procedure btn_ClearClick(Sender: TObject);
    procedure btn_CopyrightClick(Sender: TObject);
    procedure btn_VorzeichenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
VAR ANS, Temp, Ergebnis : Real;
VAR art : integer;

procedure TForm1.btn_gleichClick(Sender: TObject);
begin
If art = 1 then   //Addition
 begin
  Ergebnis := Temp + StrToFloat(txt_eingabe.Text);
 end;
If art = 2 then   //Subtraktion
 begin
  Ergebnis := Temp - StrToFloat(txt_eingabe.Text);
 End;
If art = 3 then   //Multiplikation
 begin
  Ergebnis := Temp * StrtoFloat(txt_eingabe.Text);
 End;
If art = 4 then   //Division
 begin
  if txt_eingabe.Text = InttoStr(0then
   ShowMessage('Division durch null ist nicht definiert')
  Else
  Ergebnis := Temp / StrtoFloat(txt_eingabe.Text);
 End;
Ans := Ergebnis;
lbl_ergebnis.Caption := FloatToStr(Ergebnis);
end;


procedure TForm1.btn_PlusClick(Sender: TObject);    //Button Plus mit leben
begin
 if Length(txt_eingabe.Text)=0 then
  ShowMessage('Bitte Zahlen eingeben')
 Else
  Begin
   art := 1;
   Temp := StrtoFloat(txt_eingabe.Text);
   txt_eingabe.Text := '';
  End;
end;

procedure TForm1.btn_MinusClick(Sender: TObject);   //Button Minus mit leben
begin
 if Length(txt_eingabe.Text)=0 then
  ShowMessage('Bitte Zahlen eingeben')
 Else
  Begin
   art := 2;
   Temp := StrtoFloat(txt_eingabe.Text);
   txt_eingabe.Text := '';
  End;
end;

procedure TForm1.btn_malClick(Sender: TObject);     //Button Mal mit leben
begin
 if Length(txt_eingabe.Text)=0 then
  ShowMessage('Bitte Zahlen eingeben')
 Else
  Begin
   art := 3;
   Temp := StrtoFloat(txt_eingabe.Text);
   txt_eingabe.Text := '';
  End;
end;

procedure TForm1.btn_GeteiltClick(Sender: TObject); //Button Mal mit leben
begin
 if Length(txt_eingabe.Text)=0 then
  ShowMessage('Bitte Zahlen eingeben')
 Else
  Begin
   art := 4;
   Temp := StrtoFloat(txt_eingabe.Text);
   txt_eingabe.Text := '';
  End;
end;

procedure TForm1.btn_WurzelClick(Sender: TObject);    //Wurzelberechnung
begin
 if Length(txt_eingabe.Text)=0 then
  ShowMessage('Bitte Zahlen eingeben')
 Else
  Begin
   art := 5;
   Temp := StrtoFloat(txt_eingabe.Text);
   Ergebnis := sqrt(Temp);
   ANS := Ergebnis;
   lbl_ergebnis.Caption := FloattoStr(Ergebnis);
  End;
end;

procedure TForm1.btn_ANSClick(Sender: TObject);
begin
If ANS = 0 then
 ShowMessage('ANS enthält kein Ergebnis')
Else
txt_eingabe.Text := FloattoStr(ANS);
end;
       // NACHFOLGEND KOMMEN DIE BUTTONS MIT DEN ZAHLEN! 0-9 + KOMMA!
       
procedure TForm1.btn_1Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'1';
end;

procedure TForm1.btn_2Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'2';
end;

procedure TForm1.btn_3Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'3';
end;

procedure TForm1.btn_4Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'4';
end;

procedure TForm1.btn_5Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'5';
end;

procedure TForm1.btn_6Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'6';
end;

procedure TForm1.btn_7Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'7';
end;

procedure TForm1.btn_8Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'8';
end;

procedure TForm1.btn_9Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'9';
end;

procedure TForm1.btn_0Click(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +'0';
end;

procedure TForm1.btn_KommaClick(Sender: TObject);
begin
txt_eingabe.Text := txt_eingabe.Text +',';
end;



procedure TForm1.abfrage(Sender: TObject; var Key: Char);   //Buchstaben als Eingabe abfangen
begin
If Not ((Key >= #48AND (Key <=#57OR (Key=#8)) then
 Key := #0;
end;

procedure TForm1.btn_CloseClick(Sender: TObject);     // TR beenden
begin
Close;
end;

procedure TForm1.btn_ClearALLClick(Sender: TObject);      // CE btn
begin
 txt_eingabe.Text := '';
 ANS := 0;
 lbl_ergebnis.Caption := '';
end;

procedure TForm1.btn_ClearClick(Sender: TObject);       // C BTN
begin
  txt_eingabe.Text := '';
end;

procedure TForm1.btn_CopyrightClick(Sender: TObject);
begin
 ShowMessage('Julius Saretzki');
end;

procedure TForm1.btn_VorzeichenClick(Sender: TObject);    //Vorzeichen Taste
VAR Vorzeichen : Real;
begin
If Length(txt_eingabe.Text)=0 then
 ShowMessage('Keine Zahl vorhanden!')
Else
 Vorzeichen := StrToFloat(txt_eingabe.Text);
 Vorzeichen := Vorzeichen *(-1);
 Temp       := Vorzeichen;
 txt_eingabe.Text := FloatToStr(Temp);
end;

end.


ich danke euch!

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 30.11.05 18:13 
Weißt du denn, wie man eine Prozent-Rechung macht?
Wenn man nicht mal das weiß, dann muss man schon ganz anders beim Erklären anfangen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 30.11.05 18:20 
Hmm...wie funktioniert Prozentrechnung denn?!
Ich weiß nich genau, in welcher Reihenfolge man beim Windows-TR das eingeben muss. Aber muss es denn genauso eingegeben werden? Letztenendes überlegst du dir, in welcher Reihenfolge der User die Sachen eingeben soll, z.b. erst die 8, dann Klick aufs % und dann die 7, dann Enter. Also merkste dir erst die Eingabe, die drinsteht wenn Klick auf % ( 8 ), rechnest / 100 und dann * die nächste Eingabe... So wie Prozentrechnung halt immer funktioniert...
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 30.11.05 18:33 
Beim normalen Taschenrechner wird gerechnet: [8] [*] [7] [%] ([+/-])

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 30.11.05 18:46 
Von mir aus... ich brauch sowat nich *g*
Das Prinzip bleibt das gleiche... Eingabe in Variable, andere Eingabe in andere Variable, erste Variable / 100 * zweite Variable...
is44c Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 30.11.05 21:53 
Danke jetzt erinnere ich mch wie ich das machen muss.....
is schon nen bissel länger her das ich das hatte! Danke
habs auch schon eingebaut und es klappt!
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 30.11.05 22:28 
Ich kanns Mir nicht ... Prozentrechnung ist in der Vierten Klasse dran, deswegen kann man's schonmal vergessen !?
Wie kommt man ohne dem durchs Leben...
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 30.11.05 23:56 
Mit nem Taschenrechner :mrgreen: