Frage

So wie eine Praxis arbeite ich an einer App, dass löst die berühmte Mittelschule Satz des Pythagoras, ein Quadrat + b = c Quadrat im Quadrat. Leider hat die außer kommender Antwort, in meinen Augen, nichts mit der eigentlichen Antwort zu tun. Hier ist der Code verwendet, während der „lösen“ -Aktion.

- (IBAction)solve {
 int legoneint;
 int legtwoint;
 int hypotenuseint;

 int lonesq = legoneint * legoneint;
 int ltwosq = legtwoint * legtwoint;
 int hyposq = hypotenuseint * hypotenuseint;

 hyposq = lonesq + ltwosq;

 if ([legone.text isEqual:@""]) {
  legtwoint = [legtwo.text intValue];
  hypotenuseint = [hypotenuse.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", legoneint];
  self.view.backgroundColor = [UIColor blackColor];
 }
 if ([legtwo.text isEqual:@""]) {
  legoneint = [legone.text intValue];
  hypotenuseint = [hypotenuse.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", legtwoint];
  self.view.backgroundColor = [UIColor blackColor];
 }
 if ([hypotenuse.text isEqual:@""]) {
  legoneint = [legone.text intValue];
  legtwoint = [legtwo.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", hypotenuseint];
  self.view.backgroundColor = [UIColor blackColor];
 }
}

Durch die Art und Weise, legone, legtwo, and hypotenuse alle repräsentieren die UITextField dass entspricht jedem mathematischen Teil des rechtwinkligen Dreiecks. Answer ist die UILabel, die sagt, Sie haben es erraten, die Antwort. Hat jemand irgendwelche Fehler im Programm sehen? Vielen Dank im Voraus!

War es hilfreich?

Lösung

Haben nicht überprüfte das Programm sorgfältig, aber in den ersten Zeilen gibt es bereits ein großes Problem:

int lonesq = legoneint * legoneint;
int ltwosq = legtwoint * legtwoint;
int hyposq = hypotenuseint * hypotenuseint;

Diese Vars verwenden Vars definiert, sind noch gar nicht zugeordnet. Sie müssen den Wert von Vars aus den Textfeldern genommen, dann die Mathematik setzen. C eine sequentielle Sprache ist, wird alles von oben nach unten ausgeführt wird, kann man nicht sagen: „a = b c“ und wird b c an jedem Ort des Programms.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top