Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для axioma!
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 69

Решения СЛАУ

27.02.2013, 05:48. Показов 821. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При чтении данных из файла вида
2 1 5
1 2 7
для решения СЛАУ появляется ошибка выхода за границы массива.
Как выбрать произвольный файл?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            const int maxn = 5;
            bool gauss = true;
            int l = 0;
            double m = 0;
            int k = 0;
            int i = 0;
            double[,] matrix = new double[maxn, maxn];
            int[] vector = new int[maxn];
            double[] x = new double[maxn];
            double[] vector1 = new double[maxn];
            string[] mass = System.IO.File.ReadAllLines("text.txt");
            string[] buf;
            int[] mass1 = new int[2 * maxn - 1];
            for (i = 0; i < maxn; i++)
            {
                buf = mass[i].Split(' ');
                for (int y = 0; y < buf.Length; y++)
                    matrix[i, y] = Convert.ToInt32(buf[y]);
            }
            vector = mass[maxn].Select(s => Convert.ToInt32(s)).ToArray();
 
            for (i = 0; i < 2 * maxn - 1; i++)
            {
                if (vector[i] == 32)
                    continue;
                vector1[i / 2] = vector[i] - 48;
            }
            for (k = 0; k < maxn - 2; k++)
            {
                l = -1;
                m = 0;
                for (i = k; i < maxn; i++)
                {
                    if (Math.Abs(matrix[i, k]) > m)
                    {
                        m = Math.Abs(matrix[i, k]);
                        l = i;
                    }
                }
            }
            if (l == -1)
                gauss = false;
            else
            {
                if (l != k)
                {
                    for (int j1 = 0; j1 < maxn; j1++)
                    {
                        double t1 = matrix[k, j1];
                        matrix[k, j1] = matrix[l, j1];
                        matrix[l, j1] = t1;
                    }
                    double t2 = vector1[k];
                    vector1[k] = vector1[l];
                    vector1[l] = t2;
                }
                for (int i1 = k + 1; i1 < maxn; i1++)
                {
                    double q = 0;
                    q = matrix[i1, k] / matrix[k, k];
                    for (int j2 = 0; j2 < maxn; j2++)
                        if (j2 == k)
                            matrix[i1, j2] = 0;
                        else
                            matrix[i1, j2] = matrix[i1, j2] - q * matrix[k, j2];
                    vector1[i1] = Convert.ToDouble(vector[i1]) - q * Convert.ToDouble(vector[k]);
                }
                x[maxn - 1] = vector1[maxn - 1] / matrix[maxn - 1, maxn - 1];
                for (int i2 = maxn - 2; i2 > 0; i2--)
                {
                    double t3 = 0;
                    for (int j3 = 0; j3 < maxn - i2 - 1; j3++)
                        t3 += matrix[i2, i2 + j3] * x[i2 + j3];
                    x[i2] = (1 / matrix[i2, i2]) * (vector1[i2] - t3);
                }
            }
            if (gauss)
            {
                System.IO.File.WriteAllLines("text1.txt", x.Select(s => Convert.ToString(s)).ToArray());
                MessageBox.Show("Информация записана в файл.");
                //вывод на форму
                foreach (double d in x)
                {
                    richTextBox1.Text += string.Format("\n{0}", d.ToString());
                }
 
            }
 
            else
            {
                string[] ss = new string[1];
                ss[0] = "NET";
                System.IO.File.WriteAllLines("text1.txt", ss);
                MessageBox.Show("Информация записана в файл.");
                richTextBox1.Text = string.Format("\n{0}", ss[0].ToString());
 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2013, 05:48
Ответы с готовыми решениями:

Метод бисопряженных градиентов для решения СЛАУ
Добрый день, никак не могу понять почему метод бисопряженных градиентов дает неточный результат. Может ошибка в алгоритме? ...

Программный комплекс решения СЛАУ методом Гаусса
Мне необходимо написать программу, которая будет решать систему линейных уравнений методом Гаусса. Не обязательно писать мне весь код, если...

Реализовать решения СЛАУ методом крамера для четырех уравнений
Здраствуйте добрые люди! Подскажите как реализовать решения СЛАУ методом крамера для 4ех уравнений. Пишу курсовую голову ломаю никак не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2013, 05:48
Помогаю со студенческими работами здесь

Оконный интерфейс для программы решения СЛАУ методом Гаусса
Добрый день! Мне надо сделать оконный интерфейс для решения слау методом гаусса! Помогите или посоветуйте как это сделать) Спасибо! ...

Написать три алгоритма решения СЛАУ: Метод прогонки, метод квадратных корней, метод вращений
Начал писать курсовую. Нужно написать три алгоритма решения СЛАУ: прогонки, квадратных корней, вращений. С методом прогонки более менее...

Метод Гаусса для решения СЛАУ
Помогите составить программу для решения СЛАУ методом Гаусса через button

Реализовать решения СЛАУ эскалаторным методом
В форме надо создать три матрицы с помощью dataGridView, одну 3Х3 другую 1Х3 и третья должна выдавать результат вычислений этих двух по...

Реализовать решения СЛАУ методом Гаусса
В форме надо создать три матрицы с помощью dataGridView, одну 3Х3 другую 1Х3 и третья должна выдавать результат вычислений этих двух по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru