سؤال

تمامًا كممارسة ، أعمل على تطبيق يحل نظرية فيثاغوران في المدرسة المتوسطة الشهيرة ، وهو مربع مربعة + B مربعة = C مربعة. لسوء الحظ ، فإن الإجابة الخارجية ، في عيني ، لا علاقة لها بالإجابة الفعلية. هنا هو الرمز المستخدم أثناء إجراء "حل".

- (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 هذا يخبر ، لقد خمنت ذلك ، الجواب. هل يرى أي شخص أي عيوب في البرنامج؟ شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

لم تحقق البرنامج بعناية ولكن في السطور الأولى هناك بالفعل مشكلة كبيرة:

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

يتم تعريف هذه vars باستخدام VARS التي لا تزال غير مخصصة على الإطلاق. تحتاج إلى تعيين قيمة VARS مأخوذة من حقول النص ، ثم القيام بالرياضيات. C هي لغة متسلسلة ، يتم تنفيذ كل شيء من أعلى إلى أسفل ، لا يمكنك أن تقول "a = bC "وسيكون ب بج في أي مكان للبرنامج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top