0

うまく説明できていないかもしれませんが、基本的にやりたいことは、作成した計算の出力を表示することです。計算は古代エジプトの掛け算です (ユーザーがこの方法を使用して値を計算する選択肢を持っているプログラムを作成するという話がありましたが、* および / 演算子を声に出して使用していないことに注意してください)。使用されているべき乗、計算されている値、および全体的な結果を表示します。可能であれば、これらの出力をすべてポップアップ ボックスに戻したいのですが、C# (見習い) を初めて使用するので、どうすればよいかわかりません。

これが私がどのように出力したいかの例です

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

古代エジプトの乗算のコードは次のとおりです。 iReturnP = Power、iReturnN = Values、iReturn = Result に注意してください。

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;

            }
    }
}
4

1 に答える 1

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]);
于 2013-04-11T11:11:19.977 に答える