iPhone SDK matematica - Pitagora problema teorema!
-
26-09-2019 - |
Domanda
Proprio come una pratica, sto lavorando su un app che risolve la famosa scuola media teorema di Pitagora, un quadrato + b = c squared quadrato. Purtroppo, la risposta fuori-coming è, ai miei occhi, niente a che fare con la risposta reale. Ecco il codice utilizzato durante la "risolvere" l'azione.
- (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 proposito, legone, legtwo, and hypotenuse
rappresentano tutti la UITextField
che corrisponde a ogni parte matematica del triangolo rettangolo. Answer
è il UILabel
che racconta, avete indovinato, la risposta. Chiunque vede eventuali difetti nel programma? Grazie in anticipo!
Soluzione
Non ha verificato il programma con attenzione, ma nelle prime righe v'è già un grosso problema:
int lonesq = legoneint * legoneint;
int ltwosq = legtwoint * legtwoint;
int hyposq = hypotenuseint * hypotenuseint;
Questa Vars sono definiti utilizzando Vars che non sono ancora assegnati a tutti. È necessario impostare il valore con i VaR presi dai campi di testo, quindi fare i conti. C è un linguaggio sequenziale, tutto viene eseguito da cima a fondo, non si può dire "a = b c" e una sarà b c in qualsiasi luogo del programma.