• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Eingabefelder

nelfisch

Carola
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:
Code:
if( input1 = nan[I](const char *)[/I]
. 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?!:angry:
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
}
 
Ein Rat, der dir vielleicht viel Zeit erspart: Lies etwas Einführendes.
 
Ist schon klar dass man was lesen sollte, habe auch das Buch von dir. Muss aber in Informatik einen Vortrag mit Rechenprogramm halten, und bis dahin habe ich keine Zeit, das Buch komplett zu lesen.
Na man SOLLTE nicht mit 0 multiplizieren, da dann ja automatisch 0 rauskommt, und man sich die Rechnung dann ja auch sparen kann.
Praktische Ideen?
 
Trotzdem ist es eine korrekte Rechenoperation und darf durchgeführt werden.

Ich habe Dir ein Beispiel angehängt.
Es zeigt Dir beispielhaft Binding, Outlet und Actions.
Aber für Dich ist noch viel zutun.

Dass das Textfeld nur Nummern annimmt usw, wirst Du nur durch lesen bewältigen können.

Viele Grüße
 

Anhänge