Пример #1
0
        public ReturnedData doStuff(Point[] withPoints)
        {
            setStuff(withPoints[0], withPoints[1], withPoints[2], withPoints[3]);

            ReturnedData data = new ReturnedData();

            Stopwatch watch = new Stopwatch();

            watch.Start();

            var actuallySquare = calculateActualSquare(leftPoint_, upPoint_, downPoint_);

            data.actualSquare = actuallySquare;

            var    number = new Random();
            int    insideCounter;
            double randomX;
            double randomY;

            for (var i = 0; i < 5; i++)
            {
                watch.Start();

                double n = Math.Pow(10, i + 3);

                insideCounter = 0;
                for (var j = 0; j < n; j++)
                {
                    randomX = minX_ + ToDouble(number.Next(0, 132767)) / 132767 * (maxX_ - minX_); //minX_ * number.Next (ToInt32 ( minX_ ), ToInt32(maxX_));
                    randomY = minY_ + ToDouble(number.Next(0, 132767)) / 132767 * (maxY_ - minY_); //number.Next (ToInt32 ( minY_ ), ToInt32(maxY_));
                    if (isInside(new Point(randomX, randomY)))
                    {
                        insideCounter++;
                    }
                }

                var square = square_ * insideCounter / n;

                watch.Stop();

                data.addSquare(square);
                data.addAcc(Math.Abs(square - actuallySquare) / actuallySquare);
                data.addPoints(n);
                data.addPointsInside(insideCounter);
                data.addTime(watch.Elapsed);

                watch.Reset();
            }

            return(data);
        }
Пример #2
0
        private void outputResult(ReturnedData dataForOutput, int textBoxNumber)
        {
            DataGridView currentDataGrid;

            if (textBoxNumber == 0)
            {
                currentDataGrid = objectDataGrid;
            }
            else
            {
                currentDataGrid = procedureDataGrid;
            }
            //var currentDataGrid = dataGrids[textBoxNumber];

            var squares            = dataForOutput.CalculatedSquares;
            var accs               = dataForOutput.Accuracies;
            var numbOfPoints       = dataForOutput.NumberOfPoints;
            var numbOfPointsInside = dataForOutput.NumberOfPointsInside;
            var times              = dataForOutput.Times;

            int currentRow = currentDataGrid.RowCount - 1;

            for (int i = 0; i < squares.Count; i++)
            {
                currentDataGrid.Rows.Add();
                currentDataGrid.Rows[currentRow].Cells[0].Value = numbOfPoints[i];
                currentDataGrid.Rows[currentRow].Cells[1].Value = numbOfPointsInside[i];
                currentDataGrid.Rows[currentRow].Cells[2].Value = dataForOutput.actualSquare;
                currentDataGrid.Rows[currentRow].Cells[3].Value = squares[i];
                currentDataGrid.Rows[currentRow].Cells[4].Value = accs[i];
                currentDataGrid.Rows[currentRow].Cells[5].Value = times[i];

                currentRow++;
            }

            currentDataGrid.Rows.Add();

            //currentDataGrid.Rows.Add();
            // RichTextBox[] textBoxes = new RichTextBox[] {forOOP, forNonOOP};
            //
            // textBoxes[textBoxNumber].Text += "\n\r\n\r";
            //
            // var squares = dataForOutput.CalculatedSquares;
            // var accs = dataForOutput.Accuracies;
            // for (int i = 0; i < squares.Count; i++) {
            //     textBoxes[textBoxNumber].Text += $"Площадь = {squares[i]}   Погрешность = {accs[i]}\n\r";
            // }
            //
            // textBoxes[textBoxNumber].Text += $"Настоящая Площадь = {dataForOutput.actualSquare}\n\rВремя Затрачено: {dataForOutput.time}";
        }
Пример #3
0
        public ReturnedData calculate()
        {
            ReturnedData data = new ReturnedData();

            Stopwatch watch = new Stopwatch();

            watch.Start();

            var actualSquare = calculatedFigure_.calculateActualSquare();

            data.actualSquare = actualSquare;

            var    number = new Random();
            int    insideCounter;
            double randomX;
            double randomY;

            for (var i = 0; i < 5; i++)
            {
                watch.Start();
                double n = Math.Pow(10, i + 3);

                insideCounter = 0;
                for (var j = 0; j < n; j++)
                {
                    randomX = mainFigure_.minX_ + ToDouble(number.Next(0, 132767)) / 132767 * (mainFigure_.maxX_ - mainFigure_.minX_); //minX_ * number.Next (ToInt32 ( minX_ ), ToInt32(maxX_));
                    randomY = mainFigure_.minY_ + ToDouble(number.Next(0, 132767)) / 132767 * (mainFigure_.maxY_ - mainFigure_.minY_); //number.Next (ToInt32 ( minY_ ), ToInt32(maxY_));
                    if (calculatedFigure_.isInside(new Point(randomX, randomY)))
                    {
                        insideCounter++;
                    }
                }

                var square = mainFigure_.square_ * insideCounter / n;
                watch.Stop();

                data.addSquare(square);
                data.addAcc(Math.Abs(square - actualSquare) / actualSquare);
                data.addPoints(n);
                data.addPointsInside(insideCounter);
                data.addTime(watch.Elapsed);

                watch.Reset();
            }

            return(data);
        }