![]() |
Taschenrechner: Quadrieren (a^b)
Hey,
wir sollten heute in Informatik einen Taschenrechner erstellen. Das hab ich soweit auch alles gut hinbekommen. Jedoch sollte dieser auch a^b ausrechnen können. Dafür soll man die Zahlen in 2 Edit Fenster eingeben (a und b) und im 3. soll es angezeigt werden (c). Jedoch weiß ich nicht, wie man das macht. Kann mir da jemand helfen? Ich bin soweit fertig und mein Lehrer sagt wir sollen, wenn wir nicht weiter kommen, im Internet suchen. Aber dazu habe ich nichts gefunden.. Die 2. Sache ist, dass wir einen Button "Clear" erstellen sollen, mit dem man das gesamte Feld "löschen" kann, also die Werte im Edit wieder auf "0" stellen kann. Weiß dazu jemand eine Lösung? Meine 3. Frage wäre, was "ln(a)" und "a!" als Buttons/Tasten heißten sollen?! Kann mir dazu jemand vielleicht etwas sagen? Als 4. und letzte Frage hab ich folgende: Wir sollen ein Speicher machen, in dem man auf Buttnklick Ergebnise "einspeichern" kann.. also wenn man jetzt z.B. im Edit Fenster c 2 stehen hat soll dieser in den Speicher gelangen. Ich hab aber keine Ahnung, wie das gehen soll bzw ich hatte ein, bei der dann aber das Programm abgestürzt ist. Sidn viele Fragen, ich weiß, aber vielleicht kann mir ya wer helfen?! |
Re: Taschenrechner: Quadrieren (a^b)
![]() |
Re: Taschenrechner: Quadrieren (a^b)
hi,
ein Edit-Feld kannst du z.B. so abändern:
Delphi-Quellcode:
Ich glaube, dass a! die Fakultät von a ist. Das wäre dann sowas wie:
Edit1.Text := '0';
a! = 1*2*3*4*...*a Grüsse, Stefan |
Re: Taschenrechner: Quadrieren (a^b)
Hallo und herzlich willkommen in der DP.
Zitat:
Zitat:
Delphi-Quellcode:
edit1.text:='';
Zitat:
Zitat:
Zitat:
Grüße Klaus |
Re: Taschenrechner: Quadrieren (a^b)
Ich glaube ich mach mal nen "how to make a "Taschenrechner" Tut.
da ich da aber zu faul zu bin, könnten wir ja mal alle Taschenrechner fragen sammeln, und finden die "anfänger" die sachen ;) |
Re: Taschenrechner: Quadrieren (a^b)
@DeviLchen: Herzlich Willkommen - könntest du bitte für jede Frage einen eigenen Thread (eigenes Thema) aufmachen damit das ganze kein heilloses Durcheinander wird. :-D
|
Re: Taschenrechner: Quadrieren (a^b)
Okey, kann ich machen..
Wie kann man das den programmieren mit a! und ln(a)? |
Re: Taschenrechner: Quadrieren (a^b)
Delphi-Quellcode:
ergebnis:=a;
for i:=1 to a-1 do ergebnis:=ergebnis*i; |
Re: Taschenrechner: Quadrieren (a^b)
Zitat:
Delphi-Quellcode:
Warum? : Weil 0! = 1 definiert ist. Deine Methode liefert bei a=0 als Ergebnis 0.
ergebnis:=1;
for i:=a downto 2 do ergebnis:=ergebnis*i; |
Re: Taschenrechner: Quadrieren (a^b)
meine proc war ja auch nicht wirklich überlegt,w eil wir hier ja auch eigentlich keine Lösungen präsentieren sollen sondern den Fragesteller zur Lösung hinführen sollen! Weil sonst lernt er es in der Schule ja nie, oder? :wink:
Außerdem hätte meine Proc sogar glaube ich ne Exception hervorgerufen! (bei a=0) |
Re: Taschenrechner: Quadrieren (a^b)
nya, wir sollten uns anregungen im internet suchen, sozusagen "halbe lösungen".. woher sollen wir wissen wie sowas geht? ich mach das das 1. mal...
|
Re: Taschenrechner: Quadrieren (a^b)
Mit dem "oder?" habe ich mich auf Klaus bezogen....
Hast du jetzt noch Probleme? |
Re: Taschenrechner: Quadrieren (a^b)
Altanative auch noch als rekurive Function
Delphi-Quellcode:
function nfacultaet(a : LongInt):LongInt; begin if a = 1 then result := 1 else result := a * nfacultaet(a-1); end; |
Re: Taschenrechner: Quadrieren (a^b)
Zitat:
Delphi-Quellcode:
for i := 2 to b do
a := a*a; |
Re: Taschenrechner: Quadrieren (a^b)
:shock:
Damit berechnest du alles mögliche, aber NICHT a^b. Genauer: Du berechnest damit a^(2^(b-1)). (wenn b>1, ansonsten kommt da ein undefinierter Wert raus) |
Re: Taschenrechner: Quadrieren (a^b)
Zitat:
Da koennte das hier schon eher klappen:
Delphi-Quellcode:
;)
result := 1;
for i := 1 to b do result := result * a; greetz Mike |
Re: Taschenrechner: Quadrieren (a^b)
Oh, da hat wohl jemand vor dem schreiben überhaupt nicht nachgedacht :wall:
|
Re: Taschenrechner: Quadrieren (a^b)
Zitat:
Nein, warum sollte Deine Lösung eine Exception auslösen? Die for-Schleife wäre schlicht und einfach nicht ausgeführt worden. Allerdings wenn a als vorzeichenloser Typ definiert wäre, Also Cardinal, Word oder Byte, dann hätte bei a=0 das a-1 ne Exception geworfen, aber ich denke mal, daß bei solchen Funktionen normalerweise der Typ Integer benutzt wird. |
Re: Taschenrechner: Quadrieren (a^b)
Aber auch nur, wenn die Rangechecks an sind, oder? *kratz*
|
Re: Taschenrechner: Quadrieren (a^b)
Zitat:
Klar, wenn Rangecheckings aus sind dann gibts keine Fehlermeldung, aber es dauert dann ein paar Sekunden bis das falsche Ergebnis 0 zurückgegeben wird.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz