Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Rechner potenzprobleme
Riddig - Fr 19.09.08 21:13
Titel: Rechner potenzprobleme
hey leutz,
mach grad nen kleinen rechner
hab addieren, subtrahieren,dividieren und multiplizieren
jetzt wollte ich potenzieren aber irgendwie klappts nicht
das einzige was mir nicht ganz klar ist ob ich für die for schleife zum potenzieren die variablen lokal oder global definieren muss und ob es schlimm is wenn eine variable lokal und global definiert ist. hier mal der quellcode, vielleicht findet irgendwer den fehler
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button5(potenzieren)Click(Sender: TObject); var
Zahl1,Zahl2,Zahl2A,Ergebnis:integer;
begin
Zahl1:=StrTointdef(edit1.text,0); Zahl2:=StrTointdef(edit2.text,0); zahl2A:=Zahl2;
for ergebnis := 0 to Zahl1 do begin Zahl2:= Zahl2*Zahl2A; end;
label1.caption:=inttostr(ergebnis);
end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Xentar - Fr 19.09.08 21:15
Wenn du "Potenzprobleme" hast, solltest du mal zum Arzt gehen.. :P
Aber dir könnte die Funktion Power(); helfen.
Nebenbei: "klappt nicht" ist KEINE Fehlerbeschreibung.. bekommst du einen Compilerfehler, oder nur das falsche Ergebnis?
Und zu deinem Quellcode: überleg doch mal, was du da machst.
- Deine For-Schleife läuft einen zu weit. 1 bis Zahl1 wäre besser
- Du gibst dir "Ergebnis" in nem Label aus - aber da schreibst du doch gar keinen Wert rein (außer den Zähler der Schleife)
Riddig - Fr 19.09.08 21:19
ja er rechnet einfach zahl1 + 1 mehr nicht, hm ja da ist was dran das probiere ich mal aus mit dem also noch ne variable = Lauf
und dann ergebnis:=lauf oder wie???
dann label1.caption:=ergebnis;
---
Moderiert von
Narses: Beiträge zusammengefasst---
das problem muss woanders liegen egal was ich veränder, selbst wenn ich nur zahl1 eingebe rechnet er einfach zahl1+1
Xentar - Fr 19.09.08 21:24
Also:
Du nimmst dir eine Lauf-Variable für die Schleife. Hierfür wird meist "i" genommen.
Diese läuft von 1 bis Zahl1
Mit jedem Durchlauf multiplizierst du dein Zwischenergebnis mit der Basis, also Zahl2.
Zum Schluss gibst du dieses Ergebnis aus.
Riddig - Fr 19.09.08 21:26
ja is doch genau das oder nich??
Riddig - Fr 19.09.08 21:51
ich bin jez drauf gekommen ohne mir den link anzugucken
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button5Click(Sender: TObject);
var ist,ergebnis,zahl1,zahl2,zahl2a:integer;
begin Zahl1:=strtointdef(edit1.text,0); Zahl2:=strtointdef(edit2.text,0); Zahl2A:=Zahl2 ;
for Ergebnis := 1 to Zahl1 do begin ist:= Zahl2*Zahl2A; end;
ergebnis:=ist;
label1.caption:=inttostr(ergebnis);
end; |
wegn euch, thx
Moderiert von
Narses: Delphi-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!