Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2012, 10:40   #1
bestnicer
Пользователь
 
Аватар для bestnicer
 
Регистрация: 29.05.2012
Сообщений: 59
Восклицание C# Считать матрицу и вывести ответ.

В файле дана матрица. Считать эту матрицу. Решить её методом Гауса и записать ответ в другой файл.
bestnicer вне форума Ответить с цитированием
Старый 08.11.2012, 10:49   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Матрицу нельзя "решить". Пример входных и выходных данных можно?
Abstraction вне форума Ответить с цитированием
Старый 08.11.2012, 10:59   #3
bestnicer
Пользователь
 
Аватар для bestnicer
 
Регистрация: 29.05.2012
Сообщений: 59
По умолчанию

Почему нельзя решить?

Представленная программа вычисляет детерминант матрицы, введенной пользователем. Вначале поступает запрос о размерах квадратной матрицы, а затем требуется ввести n строк матрицы по n элементов. Мне нужно, чтобы программа взяла матрицу с файла, ее решила и сохранила ответ в новый файл.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gauss
{
     class Program
     {
         static void Main()
         {          
             string s;
             string[] str;
             double det = 1;
             //определяем переменную EPS
             const double EPS = 1E-9;
             //размерность матрицы
             int n;
             //вводим n
             Console.WriteLine("Enter the dimension of the matrix");
             n = int.Parse(Console.ReadLine());
             //определяем массив размером nxn
             double[][] a = new double[n][];
             double[][] b = new double[1][];
             b[0] = new double[n];
             //заполняем его
             Console.WriteLine("Enter the n rows of n elements");
             for (int i=0;i<n;i++)
             {
                 s = Console.ReadLine();
                 str = s.Split(' ');
                 a[i] = new double[n];
                 for (int j=0;j<n;j++)
                 {
                     a[i][j] = double.Parse(str[j]);
                 }
             }
             //проходим по строкам
             for (int i=0; i<n; ++i) 
             {
                 //присваиваем k номер строки
                 int k = i;
                 //идем по строке от i+1 до конца
                 for (int j=i+1; j<n; ++j)
                 //проверяем
                     if (Math.Abs(a[j] [i]) > Math.Abs(a[k][i]))
                     //если равенство выполняется то k присваиваем j
                         k = j;
                 //если равенство выполняется то определитель приравниваем 0 и выходим из программы
                 if (Math.Abs(a[k] [i]) < EPS) 
                 {
                     det = 0;
                     break;
                 }
                 //меняем местами a[i] и a[k]
                 b[0] = a[i];
                 a[i] = a[k];
                 a[k] = b[0];
                 //если i не равно k
                 if (i != k)
                 //то меняем знак определителя
                     det = -det;
                 //умножаем det на элемент a[i][i]
                 det *= a[i][i];
                 //идем по строке от i+1 до конца
                 for (int j=i+1; j<n; ++j)
                 //каждый элемент делим на a[i][i]
                     a[i][j] /= a[i][i];
                 //идем по столбцам
                 for (int j=0; j<n; ++j)
                 //проверяем
                     if ((j != i)&&(Math.Abs(a[j][i]) > EPS))
                     //если да, то идем по k от i+1
                         for (k = i+1; k < n; ++k)
                             a[j][k] -= a[i][k] * a[j][i];
             }
             //выводим результат
             Console.WriteLine(det);
             Console.ReadLine();
         }
     }
}

Последний раз редактировалось Stilet; 08.11.2012 в 11:46.
bestnicer вне форума Ответить с цитированием
Старый 08.11.2012, 11:11   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Что такое "решение матрицы"? Лично я это словосочетание не могу наделить смыслом. Дайте пример матрицы и её "решения".
Abstraction вне форума Ответить с цитированием
Старый 08.11.2012, 11:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ее решила
Что именно нужно вычислять используя матрицу тебе препод сказал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2012, 11:55   #6
bestnicer
Пользователь
 
Аватар для bestnicer
 
Регистрация: 29.05.2012
Сообщений: 59
По умолчанию

методом Гауса ее вычислить нужно, мне надо,чтобы матрица считывалась с файла
bestnicer вне форума Ответить с цитированием
Старый 08.11.2012, 12:04   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Метод Гаусса не вычисляет матрицы и не решает матрицы, Вас кто-то обманул.
Abstraction вне форума Ответить с цитированием
Старый 08.11.2012, 12:09   #8
bestnicer
Пользователь
 
Аватар для bestnicer
 
Регистрация: 29.05.2012
Сообщений: 59
По умолчанию

)))похоже на то...
bestnicer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считать ответ на JAVA (Json)-зарос в переменную Diskretor Microsoft Office Excel 3 07.03.2012 02:55
Матрицу записать в файл, потом считать zigler C# (си шарп) 2 22.02.2012 09:44
Считать матрицу из файла (VBA) Krevedkoff Помощь студентам 3 06.06.2011 12:37
как вывести ответ на форму в дэлфи Polusha Общие вопросы C/C++ 2 06.06.2010 20:01
Объясните пожалуйста как можно считать значения в этом файле в вектор, 4 -ую матрицу, 6-ую матрицу ciaonataha Помощь студентам 1 30.03.2009 20:57