static void Main(string[] args)
        {
            Number number = new Number();

            Console.WriteLine("Please enter a number: ");
            int num1 = Convert.ToInt32(Console.ReadLine());
            int num2;

            number.Divide(out num2, num1);
            Console.WriteLine(num2);

            var addAnswer = number.Add(num1);

            Console.WriteLine(addAnswer);

            Console.WriteLine("Please enter another number: ");
            double num3 = Convert.ToDouble(Console.ReadLine());

            var add2Answer = number.Add(num3);

            Console.WriteLine(add2Answer);


            Console.ReadLine();
        }
	static int Main ()
	{
		INumber n = new Number ();
		n.Add(1);               
		n.Add(1.0);             
		((IInteger)n).Add(1);   
		((IDouble)n).Add(1);    
		return 0;
	}
Exemple #3
0
	public static int Main ()
	{
		INumber n = new Number ();
		n.Add(1);               
		n.Add(1.0);             
		((IInteger)n).Add(1);   
		((IDouble)n).Add(1);    
		return 0;
	}
Exemple #4
0
    public static Number Pair(Number a, Number b)
    {
        var number = new Number();

        number.Add(new Token(TokenKind.Open));
        number.AddRange(a);
        number.AddRange(b);
        number.Add(new Token(TokenKind.Close));
        return(number);
    }
Exemple #5
0
    /**
     * @brief Used X and Y to compute the value of Z.
     */
    public void ComputeZ()
    {
        //Perform a different operation depending on the ALU's circuitry.
        switch (currentCircuitry)
        {
        case CIRCUITRY.ADDITION:
            z = Number.Add(x, y);
            break;

        case CIRCUITRY.SUBTRACTION:
            z = Number.Subtract(x, y);
            break;

        case CIRCUITRY.MULTIPLICATION:
            z = Number.Multiply(x, y);
            break;

        case CIRCUITRY.DIVISION:
            z = Number.Divide(x, y);
            break;
        }

        Debug.Log("COMPUTING Z: - \n" + z.ToString());

        input_z.text = z.GetHex();
    }
Exemple #6
0
    public static void Main()
    {
        Number <Byte> byt = new Number <Byte>(12);

        Console.WriteLine(byt.Add(12));

        Number <SByte> sbyt = new Number <SByte>(-3);

        Console.WriteLine(sbyt.Subtract(12));

        Number <ushort> ush = new Number <ushort>(16);

        Console.WriteLine(ush.Add((ushort)3));

        Number <double> dbl = new Number <double>(Math.PI);

        Console.WriteLine(dbl.Add(1.0));

        FloatingPoint <Single> sng = new FloatingPoint <float>(12.3f);

        Console.WriteLine(sng.Add(3.0f));

//       FloatingPoint<int> f2 = new FloatingPoint<int>(16);
//       Console.WriteLine(f2.Add(6));
    }
Exemple #7
0
        public void AddDifferentZ()
        {
            Number number1 = new Number(0, 0, 0);
            Number number2 = new Number(1, 1, 1);

            Assert.Throws <ArgumentException>(() => number1.Add(number2));
        }
Exemple #8
0
        public void Add_5_plus_7_return_12()
        {
            var a = new Number(5);
            var b = new Number(7);

            var result = Number.Add(a, b).ToString();

            Assert.AreEqual("12", result);
        }
Exemple #9
0
        public void Plus()
        {
            var r1 = new Number(1.5);
            var r2 = new Number(1.5);

            var r = Number.Add(r1, r2);

            Assert.Equal(3, r.ToDouble());
        }
Exemple #10
0
        public void Add_80_plus_85_return_165()
        {
            var a = new Number(80);
            var b = new Number(85);

            var result = Number.Add(a, b).ToString();

            Assert.AreEqual("165", result);
        }
Exemple #11
0
    public T SumAdd()
    {
        T sum = default;

        foreach (T item in _items)
        {
            sum = Number.Add(sum, item);
        }
        return(sum);
    }
Exemple #12
0
        public void AddNormal()
        {
            Number number1 = new Number(0, 0, 0);
            Number number2 = new Number(1, 1, 0);
            Number result  = new Number(1, 1, 0);

            Number add = number1.Add(number2);

            Assert.True(add == result);
        }
Exemple #13
0
        public void TestAdd(double a, double b, double expected)
        {
            // arrange
            var aa = new Variable("Number", a, "TestAdd");
            var bb = new Variable("Number", b, "TestAdd");

            // act
            var result = Number.Add(aa, bb);

            // assert
            Assert.IsTrue((bool)result.Value);
            Assert.AreEqual(expected, aa.Value);
            Assert.AreEqual(b, bb.Value);
        }
Exemple #14
0
        public void AddNewCard(UInt64 a, String b)
        {
            Console.WriteLine("Введите количество денег на счету");
            Double sum = Double.Parse(Console.ReadLine());

            if (sum > 0)
            {
                Pass.Add(b);
                Number.Add(a);
                Sum.Add(sum);
                Console.WriteLine("Данные вашей новой карты: pass-{0}, num-{1}, sum-{2}", Pass[Pass.Count - 1], Number[Number.Count - 1], Sum[Sum.Count - 1]);
                Console.WriteLine("Операция проведена успешно");
            }
            else
            {
                Console.WriteLine("Убедитесь в правильности введенных данных и попробуйте еще раз");
            }
        }
    public static void Test21()
    {
        Number n1 = new Number("911218");

        Console.WriteLine("Number:      {0}", n1);
        Console.WriteLine("Reverse:     {0}", n1.Reverse());

        Number n2 = new Number("1723337");

        Console.WriteLine("Number:      {0}", n2);
        Console.WriteLine("Count:       {0}", n2.Count);

        Number sum = n1.Add(n2);

        Console.WriteLine("Sum:         {0}", sum);
        Console.WriteLine("Symmetric:   {0}", sum.IsSymmetric);

        Number n3 = new Number("88255288");

        Console.WriteLine("Number:      {0}", n3);
        Console.WriteLine("Symmetric:   {0}", n3.IsSymmetric);
    }
    // public methods
    public bool CalcPalindrom()
    {
        this.palindrom = null;
        this.steps     = 0;

        Number n = this.start;

        for (int i = 0; i < this.limit; i++)
        {
            if (n.IsSymmetric)
            {
                this.palindrom = (Number)n.Clone();
                this.steps     = i;
                return(true);
            }

            Number m = n.Reverse();
            n = n.Add(m);
        }

        this.palindrom = null;
        return(false);
    }
    public static void Test22()
    {
        Number n1 = new Number("999");

        Console.WriteLine("Number:      {0}", n1);

        Number n2 = new Number("1");

        Console.WriteLine("Number:      {0}", n2);

        Number sum = n1.Add(n2);

        Console.WriteLine("Sum:         {0}", sum);

        bool b = sum.IsSymmetric;

        Console.WriteLine("Symmetric:   {0}", b);

        Number n3 = new Number("9999999999999");

        Console.WriteLine("Number:      {0}", n3);

        Number n4 = new Number("1");

        Console.WriteLine("Number:      {0}", n4);

        sum = n3.Add(n4);
        Console.WriteLine("Sum:         {0}", sum);

        b = n3.IsSymmetric;
        Console.WriteLine("Symmetric:   {0}", b);
        b = n4.IsSymmetric;
        Console.WriteLine("Symmetric:   {0}", b);
        b = sum.IsSymmetric;
        Console.WriteLine("Symmetric:   {0}", b);
    }
 static void Main(string[] args)
 {
     Console.WriteLine("{0}", Number.Add(1, 2));
     Console.WriteLine("{0}", Number.Add(98, 0));
     Console.WriteLine("{0}", Number.Add(100, -2));
 }
Exemple #19
0
    bool Explode(Number number)
    {
        // exploding means we need to find the first pair in the number
        // that is embedded in 4 other pairs and get rid of it:
        var depth = 0;

        for (var i = 0; i < number.Count; i++)
        {
            if (number[i].kind == TokenKind.Open)
            {
                depth++;
                if (depth == 5)
                {
                    // we are deep enough, let's to the reduce part

                    // find the digit to the left (if any) and increase:
                    for (var j = i - 1; j >= 0; j--)
                    {
                        if (number[j].kind == TokenKind.Digit)
                        {
                            number[j] = number[j] with {
                                value = number[j].value + number[i + 1].value
                            };
                            break;
                        }
                    }

                    // find the digit to the right (if any) and increase:
                    for (var j = i + 3; j < number.Count; j++)
                    {
                        if (number[j].kind == TokenKind.Digit)
                        {
                            number[j] = number[j] with {
                                value = number[j].value + number[i + 2].value
                            };
                            break;
                        }
                    }

                    // replace [a b] with 0:
                    number.RemoveRange(i, 4);
                    number.Insert(i, new Token(TokenKind.Digit, 0));

                    // successful reduce:
                    return(true);
                }
            }
            else if (number[i].kind == TokenKind.Close)
            {
                depth--;
            }
        }

        // couldn't reduce:
        return(false);
    }

    bool Split(Number number)
    {
        // spliting means we neeed to find a token with a high value and make a pair out of it:
        for (var i = 0; i < number.Count; i++)
        {
            if (number[i].value >= 10)
            {
                var v = number[i].value;
                number.RemoveRange(i, 1);
                number.InsertRange(i, Number.Pair(Number.Digit(v / 2), Number.Digit((v + 1) / 2)));

                // successful split:
                return(true);
            }
        }
        // couldn't split:
        return(false);
    }

    // tokenize the input to a list of '[' ']' and digit tokens
    Number ParseNumber(string st)
    {
        var res = new Number();
        var n   = "";

        foreach (var ch in st)
        {
            if (ch >= '0' && ch <= '9')
            {
                n += ch;
            }
            else
            {
                if (n != "")
                {
                    res.Add(new Token(TokenKind.Digit, int.Parse(n)));
                    n = "";
                }
                if (ch == '[')
                {
                    res.Add(new Token(TokenKind.Open));
                }
                else if (ch == ']')
                {
                    res.Add(new Token(TokenKind.Close));
                }
            }
        }
        if (n != "")
        {
            res.Add(new Token(TokenKind.Digit, int.Parse(n)));
            n = "";
        }
        return(res);
    }
}
Exemple #20
0
        public void AddNullNumber2()
        {
            Number number1 = new Number(0, 0, 0);

            Assert.Throws <ArgumentNullException>(() => number1.Add(null));
        }
Exemple #21
0
        private async void ButtonCalculate_Click(object sender, EventArgs e)
        {
            try
            {
                if (comboBoxOperation.SelectedValue.ToString() != "China theoreme")
                {
                    if (string.IsNullOrEmpty(textBoxFirstOperand.Text) || string.IsNullOrEmpty(textBoxSecondOperand.Text))
                    {
                        if (comboBoxOperation.SelectedValue.ToString() != "Sqrt")
                        {
                            throw new ArgumentNullException("Enter all operands!");
                        }
                    }

                    var firstOperand  = textBoxFirstOperand.Text;
                    var secondOperand = textBoxSecondOperand.Text;
                    if (comboBoxOperation.SelectedValue.ToString() == "Sqrt")
                    {
                        secondOperand = "0";
                    }

                    Number num1 = new Number(firstOperand);
                    Number num2 = new Number(secondOperand);

                    Number module = new Number();
                    if (checkBoxUseModule.Checked)
                    {
                        module = new Number(textBoxModule.Text);
                    }

                    labelRest.Text = "0";

                    string resultString = "";
                    bool   isLogical    = false;
                    Number result       = new Number();
                    timer.Interval = 10;
                    timer.Start();

                    switch (comboBoxOperation.Text)
                    {
                    case "Add":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ModuleAsync(Number.Add(num1, num2), module);
                        }
                        else
                        {
                            result = await Number.AddAsync(num1, num2);
                        }
                        break;

                    case "Subtract":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ModuleAsync(Number.Subtract(num1, num2), module);
                        }
                        else
                        {
                            result = await Number.SubtractAsync(num1, num2);
                        }
                        break;

                    case "Multiply":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ModuleAsync(Number.Multiply(num1, num2), module);
                        }
                        else
                        {
                            result = await Number.MultiplyAsync(num1, num2);
                        }
                        break;

                    case "Divide":
                        var res = await Number.DivideAsync(num1, num2);

                        result         = res.result;
                        labelRest.Text = res.rest.ToString();
                        break;

                    case "Power":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ExponentWithModuleAsync(num1, num2, module);
                        }
                        else
                        {
                            result = await Number.ExponentAsync(num1, num2);
                        }
                        break;

                    case "Module":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ModuleAsync(Number.Module(num1, num2), module);
                        }
                        else
                        {
                            result = await Number.ModuleAsync(num1, num2);
                        }
                        break;

                    case "Sqrt":
                        if (checkBoxUseModule.Checked)
                        {
                            result = await Number.ModuleAsync(Number.Sqrt(num1), module);
                        }
                        else
                        {
                            result = Number.Sqrt(num1);
                        }
                        break;

                    case "Less":
                        isLogical    = true;
                        resultString = (num1 < num2).ToString();
                        break;

                    case "Great":
                        isLogical    = true;
                        resultString = (num1 > num2).ToString();
                        break;

                    case "Less or Equal":
                        isLogical    = true;
                        resultString = (num1 <= num2).ToString();
                        break;

                    case "Great or Equal":
                        isLogical    = true;
                        resultString = (num1 >= num2).ToString();
                        break;

                    case "Equal":
                        isLogical    = true;
                        resultString = (num1 == num2).ToString();
                        break;

                    case "Not Equal":
                        isLogical    = true;
                        resultString = (num1 != num2).ToString();
                        break;
                    }
                    timer.Stop();
                    if (!isLogical)
                    {
                        resultString = result.ToString();
                    }

                    using (StreamWriter writer = new StreamWriter(@"C:\Users\Evgentus\Desktop\result.txt", false))
                    {
                        await writer.WriteLineAsync(resultString);  // асинхронная запись в файл
                    }
                    labelResult.Text = resultString;
                }

                else
                {
                    List <StructureForModEquations> equations = GetAllEquations();
                    var    result       = Number.ChinaTheoreme(equations);
                    string resultString = result.ToString();
                    using (StreamWriter writer = new StreamWriter(@"C:\Users\Evgentus\Desktop\result.txt", false))
                    {
                        await writer.WriteLineAsync(resultString);  // асинхронная запись в файл
                    }
                    labelResult.Text = resultString;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #22
0
 public void Add <T>(T left, T right, T expected)
 {
     Assert.AreEqual(expected, Number.Add(left, right));
     Assert.AreEqual(expected, AddWithOperator <T>(left, right));
 }
        public Number GetNumberDecimal(string line)
        {
            Number number = new Number();

            if (line.Equals(string.Empty))
            {
                return(number);
            }
            line = line.ToLower();
            string        lineTrimmed = Regex.Replace(line, @"\s\s+", " ").Trim();
            List <string> split       = lineTrimmed.Split(" ").ToList();

            number.FullSentence = lineTrimmed;

            for (int i = 0; i < split.Count; i++)
            {
                //if(i > 3)
                //{
                //    number.ErrorCode = 21; //don't mind that, this one is task requirement
                //    number.ErrorWord = split[4];
                //    return number;

                //}
                Numeral numeral = Numerals.Find(x => x.Word.Equals(split[i]));
                if (numeral == null)
                {
                    number.ErrorCode = 220 + i;
                    number.ErrorWord = split[i];
                    return(number);
                }
                if (numeral.Word.Equals("hundred") && i == 0)
                {
                    number.ErrorCode = 40;
                    number.ErrorWord = split[i];
                    return(number);
                }
                number.Add(numeral, i);
                if (number.ErrorCode != 0)
                {
                    if (number.ErrorCode > 1200)
                    {
                        int rank = number.ErrorCode % 10;
                        switch (rank)
                        {
                        case 1:
                        {
                            if (number.ranks[2])
                            {
                                number.FullSentence = string.Concat((from item in split.Skip(1)
                                                                     let n = Numerals.Find(x => x.Word.Equals(item))
                                                                             where n.Rank == 1 || n.Rank == 4
                                                                             select item + " ").Take(1)).Trim();
                                break;
                            }
                            number.FullSentence = (from item in split
                                                   let n = Numerals.Find(x => x.Word.Equals(item))
                                                           where n.Rank == 1 || n.Rank == 4
                                                           select item).Take(1).First();
                            break;
                        }

                        case 2:
                        {
                            if (number.ranks[2])
                            {
                                number.FullSentence = (from item in split.Skip(1)
                                                       let n = Numerals.Find(x => x.Word.Equals(item))
                                                               where n.Rank == 1 || n.Rank == 2 || n.Rank == 4
                                                               select item).Take(1).First();
                                break;
                            }
                            number.FullSentence = (from item in split
                                                   let n = Numerals.Find(x => x.Word.Equals(item))
                                                           where n.Rank == 1 || n.Rank == 2 || n.Rank == 4
                                                           select item).Take(1).First();
                            break;
                        }

                        case 3:
                        {
                            number.FullSentence = (from item in split
                                                   let n = Numerals.Find(x => x.Word.Equals(item))
                                                           where n.Rank == 3
                                                           select item).Take(1).First();

                            break;
                        }

                        case 4:
                        {
                            if (number.ranks[3])
                            {
                                number.FullSentence = (from item in split
                                                       let n = Numerals.Find(x => x.Word.Equals(item))
                                                               where n.Rank == 4
                                                               select item).Take(1).First();
                                break;
                            }
                            if (number.ranks[0] && number.ranks[1])
                            {
                                if ((number.ErrorCode % 1200 / 10) < 2)
                                {
                                    number.FullSentence = (from item in split
                                                           let n = Numerals.Find(x => x.Word.Equals(item))
                                                                   where n.Rank == 1
                                                                   select item).Take(1).First();
                                    break;
                                }
                                if (number.ranks[2])
                                {
                                    number.FullSentence = string.Concat((from item in split.Skip(1)
                                                                         let n = Numerals.Find(x => x.Word.Equals(item))
                                                                                 where n.Rank == 1 || n.Rank == 2
                                                                                 select item + " ").Take(2)).Trim();
                                    break;
                                }
                                number.FullSentence = string.Concat((from item in split
                                                                     let n = Numerals.Find(x => x.Word.Equals(item))
                                                                             where n.Rank == 1 || n.Rank == 2
                                                                             select item + " ").Take(2)).Trim();
                                break;
                            }
                            if (number.ranks[2])
                            {
                                number.FullSentence = string.Concat((from item in split.Skip(1)
                                                                     let n = Numerals.Find(x => x.Word.Equals(item))
                                                                             where n.Rank == 1 || n.Rank == 2
                                                                             select item + " ").Take(1)).Trim();
                                break;
                            }
                            number.FullSentence = (from item in split
                                                   let n = Numerals.Find(x => x.Word.Equals(item))
                                                           where n.Rank == 1 || n.Rank == 2
                                                           select item).Take(1).First();
                            break;
                        }

                        default:
                            break;
                        }
                    }
                    return(number);
                }
            }
            if (split.Count > 2 && !split[1].Equals(Numerals.Find(x => x.Numerical.Equals(100)).Word))
            {
                number.ErrorCode = 23;
                number.ErrorWord = split[1];
                return(number);
            }
            //if (split.Count > 4 && number.ErrorCode == 0)
            //{
            //    number.ErrorCode = 21; //don't mind that, this one is task requirement
            //}

            return(number);
        }
Exemple #24
0
 public void AddNumber(string number)
 {
     Number.Add(number);
 }