Question

Tout comme une pratique, je travaille sur une application qui permet de résoudre le fameux théorème de Pythagore de collège, un carré + b = c au carré au carré. Malheureusement, la réponse hors venir a, à mes yeux, rien à voir avec la réponse réelle. Voici le code utilisé pendant l'action « résoudre ».

- (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];
 }
}

Par ailleurs, legone, legtwo, and hypotenuse représentent tous les UITextField qui correspond à chaque partie mathématique du triangle rectangle. Answer est le UILabel qui raconte, vous l'aurez deviné, la réponse. Quelqu'un voit-il des failles dans le programme? Merci à l'avance!

Était-ce utile?

La solution

N'a pas vérifié le programme avec soin, mais dans les premières lignes il y a déjà un gros problème:

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

vars sont définis à l'aide vars qui ne sont toujours pas affectés du tout. Vous devez définir la valeur de la prise vars des champs de texte, puis faire le calcul. C est un langage séquentiel, tout est exécuté de haut en bas, vous ne pouvez pas dire « a = b c » et a sera b c en tout lieu du programme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top