• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

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?!:mad:
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
}
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Ein Rat, der dir vielleicht viel Zeit erspart: Lies etwas Einführendes.
 

nelfisch

Carola
Registriert
15.03.08
Beiträge
108
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?
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
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

  • Test.zip
    54,8 KB · Aufrufe: 59