Ejemplo n.º 1
0
        /// <summary>
        /// Вывод в консоль содержимого файла с данными последовательностей
        /// </summary>
        /// <returns></returns>
        public async Task PrintMatrixSequenceDataFile()
        {
            Console.WriteLine("Содержимое файла с данными последовательностей");
            double[] data = await _fileBinarySeqData.ReadAsync();

            for (int i = 0; i < data.Length; i++)
            {
                Console.WriteLine($"{i}:\t{data[i]}");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Возвращает строку матрицы в виде массива
        /// на основе данных об отдельных ненулевых элементах
        /// </summary>
        /// <param name="row">Номер строки (начиная с 0)</param>
        /// <returns>массив double[]</returns>
        public async Task <double[]> GetRowFromSeparatedNnzElementsAsync(int row)
        {
            if (row < 0)
            {
                throw new Exception($"Выход за пределы массива! Попытка запроса строки с индексом {row}. Индекс строки не может быть меньше нуля!");
            }

            int numCols = await GetNumColsAsync();

            double[] rowData = new double[numCols];

            // Определяем наличие неповторяющихся ненулевых элементов
            int numElementsInFile = (int)_fileBinaryRowIndex.GetNumElementsInFile;
            int maxRowIndex       = numElementsInFile - 2;

            if (maxRowIndex < row)
            {
                return(rowData);
            }

            // Считываем неповторяющиеся ненулевые значения
            int indexStart = await _fileBinaryRowIndex.ReadAsync(row);

            int indexStop = await _fileBinaryRowIndex.ReadAsync(row + 1);

            for (int i = indexStart; i < indexStop; i++)
            {
                int indexCol = await _fileBinaryColIndex.ReadAsync(i);

                double cellValue = await _fileBinaryData.ReadAsync(i);

                rowData[indexCol] = cellValue;
            }

            return(rowData);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Возвращает массив коэффициентов решения СЛАУ
        /// </summary>
        /// <returns></returns>
        public async Task <double[]> GetResultAsync()
        {
            double[] result = await _fileBinaryResult.ReadAsync();

            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Возвращает массив правых частей СЛАУ
        /// </summary>
        /// <returns></returns>
        private async Task <double[]> GetRightSideAsync()
        {
            double[] rSide = await _fileBinaryRightSide.ReadAsync();

            return(rSide);
        }