Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner: Quadrieren (a^b) (https://www.delphipraxis.net/86129-taschenrechner-quadrieren-%5Eb.html)

DeviLchen 9. Feb 2007 15:06


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?!

arbu man 9. Feb 2007 15:11

Re: Taschenrechner: Quadrieren (a^b)
 
Delphi-Referenz durchsuchenpower der Unit math

stefan2005 9. Feb 2007 15:14

Re: Taschenrechner: Quadrieren (a^b)
 
hi,
ein Edit-Feld kannst du z.B. so abändern:
Delphi-Quellcode:
Edit1.Text := '0';
Ich glaube, dass a! die Fakultät von a ist. Das wäre dann sowas wie:
a! = 1*2*3*4*...*a

Grüsse,
Stefan

Klaus01 9. Feb 2007 15:15

Re: Taschenrechner: Quadrieren (a^b)
 
Hallo und herzlich willkommen in der DP.



Zitat:

Zitat von DeviLchen
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..

Dazu kannst Du dir einmal die Funktion power in der Delphi Hilfe anschauen.

Zitat:

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?
Delphi-Quellcode:
edit1.text:='';
Zitat:

Meine 3. Frage wäre, was "ln(a)" und "a!" als Buttons/Tasten heißten sollen?! Kann mir dazu jemand vielleicht etwas sagen?
ln ist der ln -> logarythmus naturalis a! -> Fakultät
Zitat:

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.
Dazu brauchst Du nur das Ergebnisfeld (s:=Edit1.text) in eine Stringvariable schreiben.
Zitat:

Sidn viele Fragen, ich weiß, aber vielleicht kann mir ya wer helfen?!
Ja, und eigentlich heißt es hier eine Frage pro Thread.

Grüße
Klaus

Thorben_K 9. Feb 2007 15:19

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 ;)

SirThornberry 9. Feb 2007 15:59

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

DeviLchen 13. Feb 2007 11:39

Re: Taschenrechner: Quadrieren (a^b)
 
Okey, kann ich machen..

Wie kann man das den programmieren mit a! und ln(a)?

TonyR 13. Feb 2007 12:03

Re: Taschenrechner: Quadrieren (a^b)
 
Delphi-Quellcode:
ergebnis:=a;
for i:=1 to a-1 do
  ergebnis:=ergebnis*i;

Amateurprofi 13. Feb 2007 12:25

Re: Taschenrechner: Quadrieren (a^b)
 
Zitat:

Zitat von TonyR
Delphi-Quellcode:
ergebnis:=a;
for i:=1 to a-1 do
  ergebnis:=ergebnis*i;

Falsch !

Delphi-Quellcode:
ergebnis:=1;
for i:=a downto 2 do
   ergebnis:=ergebnis*i;
Warum? : Weil 0! = 1 definiert ist. Deine Methode liefert bei a=0 als Ergebnis 0.

TonyR 13. Feb 2007 12:40

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)

DeviLchen 13. Feb 2007 14:02

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...

TonyR 13. Feb 2007 14:05

Re: Taschenrechner: Quadrieren (a^b)
 
Mit dem "oder?" habe ich mich auf Klaus bezogen....

Hast du jetzt noch Probleme?

Thorben_K 13. Feb 2007 16:08

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;

Jowo 13. Feb 2007 19:40

Re: Taschenrechner: Quadrieren (a^b)
 
Zitat:

Zitat von Klaus01
Zitat:

Zitat von DeviLchen
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..

Dazu kannst Du dir einmal die Funktion power in der Delphi Hilfe anschauen.

Für Anfänger sicher auch gut geeignet ist die Berechnung von a^b in einer for-Schleife:
Delphi-Quellcode:
for i := 2 to b do
    a := a*a;

3_of_8 13. Feb 2007 19:44

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)

JasonDX 13. Feb 2007 19:44

Re: Taschenrechner: Quadrieren (a^b)
 
Zitat:

Zitat von Jowo
Für Anfänger sicher auch gut geeignet ist die Berechnung von a^b in einer for-Schleife:
Delphi-Quellcode:
for i := 2 to b do
    a := a*a;

Ja, aber sicher nicht so, wie sie da steht.
Da koennte das hier schon eher klappen:
Delphi-Quellcode:
result := 1;
for i := 1 to b do
  result := result * a;
;)

greetz
Mike

Jowo 13. Feb 2007 19:46

Re: Taschenrechner: Quadrieren (a^b)
 
Oh, da hat wohl jemand vor dem schreiben überhaupt nicht nachgedacht :wall:

Amateurprofi 14. Feb 2007 01:46

Re: Taschenrechner: Quadrieren (a^b)
 
Zitat:

Zitat von TonyR
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)


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.

3_of_8 14. Feb 2007 11:31

Re: Taschenrechner: Quadrieren (a^b)
 
Aber auch nur, wenn die Rangechecks an sind, oder? *kratz*

Amateurprofi 14. Feb 2007 18:14

Re: Taschenrechner: Quadrieren (a^b)
 
Zitat:

Zitat von 3_of_8
Aber auch nur, wenn die Rangechecks an sind, oder? *kratz*

daran hatte ich noch gar nicht genacht.
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