Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Taschenrechner Potenzfunktion


AbsoluteBeginner - So 31.08.08 15:01
Titel: Taschenrechner Potenzfunktion
Hi,

Ich bin neu und bitte direkt um Entschuldigung wenn das hier der falsche Bereich ist...

Zu meiner Frage:
Ich schreibe gerade einen Taschenrechner mit : Eingabe 1, Eingabe 2 und Ausgabe.

Sachen wie Addition usw funktionieren noch problemlos aber ich hab keine Ahnung wie ich die Potenzfunktion hinbekommen soll... Habe über eure Suchfunktion auch nichts mir hilfreiches gefunden.

Meine Rechnungen sehen eigentlich immer so aus :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var a, b, c: Real;
begin
{Addition}

begin
a := strtofloat(EEingabe1.text);
b := strtofloat(EEingabe2.text);
c := a + b;
EAusgabe.text := floattostr(c);
end;


Derselbige funktioniert aber mit c:= a^b nicht.... Bitte um Hilfe


huuuuuh - So 31.08.08 15:07

das geht mit ner schleife. oder rekursiv... die einfachste möglichkeit wär aber, die funktion power(basis,exponent) aus der unit math zu nehmen (bei delphi dabei, musst du im interface-teil bei uses dazuschreiben)


AbsoluteBeginner - So 31.08.08 15:11

Ich habe jetzt bei Uses einfach noch ein , und math hingeschrieben.
Und wie würde der Code dann konkret bei mir aussehen ? Ich kann das noch
nicht so 100%-ig einordnen.

Hat der Code mit "power" eine ganz ander Form als meiner oben?


huuuuuh - So 31.08.08 15:13

c:=power(a,b); für dein beispiel


AbsoluteBeginner - So 31.08.08 15:23

Ok danke sehr gut klappt alles :)

Und noch eine Frage zu meinem Rechner^^

-> Ich hab ja Eingabe1, Eingabe2 und Ausgabe. Meine Quadratfunktion z.B. braucht aber ja nur das a. Kann ich da das b sperren, sodass ich nicht jedes Mal einen error bekomme?


BenBE - So 31.08.08 15:25

Ignoriere den Wert aus B einfach, in dem Du gar nicht auf dieses Feld zugreifst ...


huuuuuh - So 31.08.08 15:28

mit eingabe2.active:=false kannst du das feld deaktivieren...
mit eingebe2.active:=true logischerweise wieder aktivieren


AbsoluteBeginner - So 31.08.08 15:28

user profile iconBenBE hat folgendes geschrieben:
Ignoriere den Wert aus B einfach, in dem Du gar nicht auf dieses Feld zugreifst ...


Jap mach ich normalerweise auch aber wenn dann irgedwann ein besonders schlauer meint er müsste Fehler suchen wird man zwangsweise darauf stoßen. Kann ich irgendwie was schreiben, dass dann wenn man das mit b versucht eine Meldung kommt? z.B. "Quadrieren nur mit "a" zulässig"


//Edit: Danke @ huuh ich probiers mal^^
//Edit2: Und wo muss ich das im Quelltext unterbringen? Wenn ich das bei "begin" mache geht das nicht.. Und zu der Meldung. Wie mache ich das ,dass diese Meldung ausschließlich kommt wen man bei b etwas eingibt?
Ich denk aber ich nehm einfach mal dieses Deaktivieren ist am Logischsten (:


huuuuuh - So 31.08.08 15:30

eine einfache meldung kannst du mit showmessage(text) ausgeben


AbsoluteBeginner - So 31.08.08 15:41

Ok mir ist grad aufgefallen, dass man ja für einen Button gar nix deaktivieren kann xD Blöde Frage...^^


Dann so: Wie schreibe ich, dass einfach eine Meldung kommt wenn man bei "b" etwas eingegeben hat und auf Quadrieren klickt?

EDIT: Ich habe außerdem eine "Clear" Funktion drinnen. Gibts einen Befehl um alle Edit Felder zurückzuseten? Ich habs jetzt für Erste so gelöst das bei Betätigen von "Clear" überal eine 0 steht...

Edit2: Ok es kommt überhaupt kein Fehler wenn bei b was eingibt. Also das hat sich erledigt, danke.