Pergunta

Assim como prática, estou trabalhando em um aplicativo que resolve o famoso teorema de Pitagorean School da Escola Secundária, um quadrado + B ao quadrado = C ao quadrado. Infelizmente, a resposta que se passa tem, aos meus olhos, nada a ver com a resposta real. Aqui está o código usado durante a ação "resolver".

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

A propósito, legone, legtwo, and hypotenuse todos representam o UITextField Isso corresponde a cada parte matemática do triângulo direito. Answer é o UILabel Isso diz, você adivinhou, a resposta. Alguém vê falhas no programa? Desde já, obrigado!

Foi útil?

Solução

Não checou o programa com cuidado, mas nas primeiras linhas já existe um grande problema:

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

Esses VARs são definidos usando VARs que ainda não são atribuídos. Você precisa definir o valor dos VARs retirados dos campos de texto e depois fazer as contas. C é uma linguagem seqüencial, tudo é executado de cima para baixo, você não pode dizer "a = bC "e A será BC em qualquer lugar do programa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top