• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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