Autor |
Beitrag |
AbsoluteBeginner
Hält's aus hier
Beiträge: 10
|
Verfasst: So 31.08.08 15:01
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
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
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: 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 
Hält's aus hier
Beiträge: 10
|
Verfasst: 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
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 31.08.08 15:13
c:=power(a,b); für dein beispiel
|
|
AbsoluteBeginner 
Hält's aus hier
Beiträge: 10
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 31.08.08 15:25
Ignoriere den Wert aus B einfach, in dem Du gar nicht auf dieses Feld zugreifst ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 31.08.08 15:28
mit eingabe2.active:=false kannst du das feld deaktivieren...
mit eingebe2.active:=true logischerweise wieder aktivieren
|
|
AbsoluteBeginner 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 31.08.08 15:28
BenBE 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 (:
Zuletzt bearbeitet von AbsoluteBeginner am So 31.08.08 15:33, insgesamt 2-mal bearbeitet
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 31.08.08 15:30
eine einfache meldung kannst du mit showmessage(text) ausgeben
|
|
AbsoluteBeginner 
Hält's aus hier
Beiträge: 10
|
Verfasst: 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.
|
|