IPhone SDK Math - Problema do Teorema Pitagórico!
-
26-09-2019 - |
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!
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.