2013-04-11 16 views
0

Извините, если это может быть не объяснено наилучшим образом, но то, что я в основном хочу сделать, это отобразить результат вычисления, которое я создал. Расчет - это древнее египетское умножение (мне была предоставлена ​​история для создания программы, в которой пользователь имеет выбор для вычисления значений с использованием этого метода и отмечает, что мы не были вслух использовать операторы * и /), и я хочу иметь возможность показать используемые мощности, вычисленные значения и общий результат. Я хочу вернуть все эти выходы в всплывающее окно, если это возможно, но я не уверен, как это пойдет, увидев, что я новичок в C# (Apprentice).Отображение результата процесса вычисления

Вот пример того, как я хочу выходного

Powers: 1 + 4 + 8 = 13 
Values: (1 * 238) + (4 * 238) + (8 * 238) 
Result: 238 + 952 + 1904 = 3094 

Вот код, я имею в минуту для древнего Egyption умножения: Примечание iReturnP = мощность, iReturnN = Значения, iReturn = Результат

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace SimpleMath 
{ 
    public class AEM : IOperation 
    { 
     public int Calculate(int i, int j) 
     { 

      int[] ints = new int[] { i, j }; 
      Array.Sort(ints); 
      List<int> powers = new List<int>(); 
      int power = 1; 
      int first = ints[0]; 
      int iReturn = 0; 
      int iReturnP = 0; 
      int iReturnN = 0; 
      do 
      { 
       powers.Add(power); 
       power = new Multiply().Calculate(power, 2); 
      } while (power <= first); 
      iReturnP += first; 
      while (first > 0) 

      { 
       int next = powers.LastOrDefault(x => x <= first); 
       first -= next; 
       int powertotal = new Multiply().Calculate(next, i); 

       iReturnN += next; 
       iReturn += powertotal; 
      } 
      return iReturnP; 
      return iReturnN; 
      return iReturn; 

      } 
    } 
} 
+0

вы не можете вернуться в 3 раза !!! за исключением того, что ваша реальная проблема? – makc

+0

Это его проблема ... –

+0

@makc beginner programmer, cut some slack – LukeHennerley

ответ

0

После запуска инструкции return метод будет удален. Это означает, что ваш 2-й и 3-й return заявления никогда не произойдет. Если вы действительно хотите использовать инструкцию return, я предлагаю вам вернуть int[], содержащий все 3 значения. Есть еще несколько способов сделать это. Обратите внимание, что это даст вам только итоговые значения. Я отведу вас на ваш путь, но вам придется самому поработать.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace SimpleMath 
{ 
public class AEM : IOperation 
{ 
    public static int[] Calculate(int i, int j) 
    { 

     int[] ints = new int[] { i, j }; 
     Array.Sort(ints); 
     List<int> powers = new List<int>(); 
     int power = 1; 
     int first = ints[0]; 
     int iReturn = 0; 
     int iReturnP = 0; 
     int iReturnN = 0; 
     do 
     { 
      powers.Add(power); 
      power = new Multiply().Calculate(power, 2); 
     } while (power <= first); 
     iReturnP += first; 
     while (first > 0) 

     { 
      int next = powers.LastOrDefault(x => x <= first); 
      first -= next; 
      int powertotal = new Multiply().Calculate(next, i); 

      iReturnN += next; 
      iReturn += powertotal; 
     } 
     return new int[]{iReturnP, iReturnN, iReturn}; 

     } 
} 
} 

И тогда в вашем методе, где вы звоните высчитывает:

int[] results = AEM.Calculate(i, j); 
MessageBox.Show("Powers: " + results[0] + "\r\n Values: " + results[1] + "\r\n Results: " + results[2]); 
+0

Спасибо за ваш ответ, это было полезно в том смысле, что я не сделаю такую ​​же ошибку, пытаясь вернуться более одного раза. Можем ли мы просто отобразить окно сообщения, чтобы показать выходы? – JayH

+0

Вы можете делать все, что хотите, с выходами. Скажите мне, чего вы хотите достичь, и где вы хотите, чтобы выход был активным, и я постараюсь вам помочь –

+0

Я знаю это, но вы хотите отображать его из метода расчета или из метода, который вы называете? –

Смежные вопросы