Как практика, я работаю над приложением, которое решает знаменитую теорему пифагорей средней школы, квадрат + b квадрат = c в квадрате. К сожалению, исходящий ответ, на мой взгляд, не имеет никакого отношения к реальному ответу. Вот код, используемый во время действия «решить».iPhone SDK математика - проблема с пифагорейной теоремой!
- (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];
}
}
Кстати, legone, legtwo, and hypotenuse
все представляют UITextField
, что соответствует каждой математической части прямоугольного треугольника. Answer
- это UILabel
, который сообщает, как вы догадались, ответ. Кто-нибудь видит какие-то недостатки в программе? Заранее спасибо!
Это хороший пример того, как использование '=' на многих языках программирования процедур смущает людей. Это не равенство, это назначение. Итак, разработчики языка, пожалуйста, либо используйте другой символ (например, ': ='), либо на самом деле подразумеваете равенство (например, в Haskell). – sigfpe