- Registriert
- 15.03.08
- Beiträge
- 108
Hi Leute,
ich bin gerade dabei, ein kleines Rechenprogramm in Objective C zu schreiben, nichts tolles aber egal. Ich habe momentan drei Eingabe-Felder für Zahlen und die Addition,Subtraktion, Multiplikation und Division programmiert. Mein Problem ist,dass man nicht mit 0 multiplizieren sollte bzw. dividieren sollte. Wenn jetzt ein Benutzer allerdings nur 2 Zahlen zum rechnen hat, ist das ja dummerweise unausweichlich. Nun bin ich auf die Idee gekommen, man könnte ja versuchen, dass die Eingabe-Felder beim Start des Programms automatisch den Wert 1 bekommen, einen "neutralen"
sozusagen, den der User dann bei Bedarf ändern kann. Hat jemand eine Idee wie man sowas bewerkstelligen kann?
Meine zweite Idee war, dass man eine if-clause machen kann, die bei jeder relevanten Rechenoperation, egal ob Multiplikation oder Division überprüft, ob in alle Eingabe-Felder etwas eingegeben wurde, mindesten 1. Nun hatte ich das mit notANumber probiert, aber das wollte nicht so recht klappen. Das sah dann bei meiner Clause so aus, habe dann in die Klammer hinter "nan" eine 0 geschrieben, weil ich nicht so recht wusste was er von mir wollte und mir das am nahesten schien:
. Im Anschluss sollte dann in einem Textfenster das Problem dem Benutzer dargestellt werden.Die Fehlermeldung wurde dann auch korrekt ausgegeben, und im Ergebnis-Feld stand "nan". Soweit so gut, wenn man aber nun in das erste Eingabe-Feld eine Zahl einsetze, zum Beispiel "2" und erneut auf den Ausrechen-Knopf drückte, dann veränderte sich nichts, nan blieb im Ergebnis-Feld stehen.Was habe ich falsch gemacht?!
Wäre echt nett von euch wenn ihr mir weiterhelfen könntet, auch wenn das Problem vielleicht etwas verwirrend geschildert ist...
nelfisch
p.s.: Ich schreibe euch doch noch mal den Code einer der Rechenoperationen, vielleicht hilft es ja was, wer weiß..
ich bin gerade dabei, ein kleines Rechenprogramm in Objective C zu schreiben, nichts tolles aber egal. Ich habe momentan drei Eingabe-Felder für Zahlen und die Addition,Subtraktion, Multiplikation und Division programmiert. Mein Problem ist,dass man nicht mit 0 multiplizieren sollte bzw. dividieren sollte. Wenn jetzt ein Benutzer allerdings nur 2 Zahlen zum rechnen hat, ist das ja dummerweise unausweichlich. Nun bin ich auf die Idee gekommen, man könnte ja versuchen, dass die Eingabe-Felder beim Start des Programms automatisch den Wert 1 bekommen, einen "neutralen"
sozusagen, den der User dann bei Bedarf ändern kann. Hat jemand eine Idee wie man sowas bewerkstelligen kann?
Meine zweite Idee war, dass man eine if-clause machen kann, die bei jeder relevanten Rechenoperation, egal ob Multiplikation oder Division überprüft, ob in alle Eingabe-Felder etwas eingegeben wurde, mindesten 1. Nun hatte ich das mit notANumber probiert, aber das wollte nicht so recht klappen. Das sah dann bei meiner Clause so aus, habe dann in die Klammer hinter "nan" eine 0 geschrieben, weil ich nicht so recht wusste was er von mir wollte und mir das am nahesten schien:
Code:
if( input1 = nan[I](const char *)[/I]
Wäre echt nett von euch wenn ihr mir weiterhelfen könntet, auch wenn das Problem vielleicht etwas verwirrend geschildert ist...
nelfisch
p.s.: Ich schreibe euch doch noch mal den Code einer der Rechenoperationen, vielleicht hilft es ja was, wer weiß..
Code:
- (IBAction)multiplizieren:(id)sender
{
double input1 = [inputTextField1 doubleValue];
double input2 = [inputTextField2 doubleValue];
double input3 = [inputTextField3 doubleValue];
if( input1 = nan(0)){
[helpTextField1 setStringValue:@"Bitte geben sie einen Wert ein der Ungleich 0 ist!"];
}
double result = input1 * input2 * input3; //ausrechnen
[outputTextField setDoubleValue:result]; //ausgabe
}