2012-04-10 6 views
0

Я пытаюсь получить математическое уравнение для распознавания знака +/- целого числа (-1 или +1), введенного в поле UItextfield (s1, s2). Поэтому, если пользователь вводит разные знаки, уравнения будут вычтены друг из друга. Кажется, что знак почему-то не распознается, и программа просто добавляет d1 и d2.UITextField int data type xcode

-(IBAction)calculateD:(id)sender{ 
float n1, r1, n2, r1, d, d1, d2; 
int s1, s2; 

s1= [textfieldS1.text intvalue]; //etc for all variables 

d1 = s1 * ((n1-1)/r1); 
d2 = s2 * ((n2-1)/r2); 

if (s1 != s2) { d = d1 - d2;} 
else { d = d1 + d2; 
}} 

Любые проблемы, очевидные в этом коде, пожалуйста?

+0

В этом коде s1 и s2 всегда будут равны 0. Вы не передали значения из текстовых полей в ваши уравнения. – drekka

+0

Спасибо, drekka просто для того, чтобы уточнить, что переменные были инициализированы, и значение, выведенное из текстовых полей, я отредактировал код, чтобы указать это – MacUser

ответ

2

Я понятия не имею, что вы здесь делаете. Переменные не инициализируются и нет конкретной ссылки на фактический UITextField внутри метода -calculateD :. С этим сказано, вот некоторые намеки, надеюсь, что это придет в руки.

Знаки s1, s2 фактически принимаются дважды в рассмотрение. Как только вы создадите d1, d2 и позже, чтобы решить (s1! = S2). Из-за этого последний будет уверен, что вы добавите два номера одного знака, возможно, отрицая то, что вы действительно хотите получить здесь. Пример:

  • говорят, что s1 = + 1, s1 = + 1, тогда вы получили d = ((n1-1)/r1) + ((n2-1)/r2);
  • говорят, что s1 = + 1, s1 = -1, тогда вы получили d = ((n1-1)/r1) + ((n2-1)/r2); так же, как прежде;

Просто опустите if, и оставьте сингл: d = d1 + d2.

+0

Спасибо Lukasz. Я хочу, чтобы программа распознавала вход пользователя для добавления или вычитания двух уравнений, переменные были inititalised и значения переменных, полученных из текстовых полей, я добавил это на вопрос – MacUser

+0

Я обновил свой ответ на простом примере. Посмотрите и скажите нам, если вы хотите, чтобы этот метод работал. – lukasz

+0

Заработал благодарность за помощь – MacUser