Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.86
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
#1

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

01.03.2010, 05:04. Просмотров 3766. Ответов 23
Метки нет (Все метки)

Доброго всем времени суток.
У меня есть прога для двумерного массива
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
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
void f(double an[3][3], double bn[3],int m)
{
    int i,j;
    cout << " \n";
    for (i=0;i<=m;i++)
    {
      for (j=0;j<=m;j++) cout << " " << an[i][j];
      cout << "   " << bn[i] << " \n";
    }    
}
main ()
{
    int i,j,k,l,m,n,jj,kk,j1;
    double mi,d;
    double an[3][3] = { { 81, 2, 3 },
                        { 2, 899, 3 },
                        { 2, 3, 1 } };
    double bn[3]={ 3, 4, 5 };
    double xn[3];
    m=2;
    cout.precision(18);
    f(an,bn,m);
      n=m-1;
      k=0;
      for (j=0;j<=n;j++)
    {
      l=1;
      for (i=k+1;i<=m;i++)
      {
        mi=an[k+l][k]/an[k][k];
        bn[i]=bn[i]-mi*bn[k];
        for (j1=k;j1<=m;j1++) an[k+l][j1]=an[k+l][j1]-mi*an[k][j1];
        l=l+1;
      }
      k=k+1;
    }
//    f(an,bn,m);
    xn[m]=bn[m]/an[m][m];
    k=1;
    d=0;
    for (i=n;i>=0;i--)
    {
       kk=1;
        for (jj=1;jj<=k;jj++)
        {
            d=d+an[i][i+kk]*xn[i+kk];
            kk=kk+1; 
        }
       xn[i]=(bn[i]-d)/an[i][i];
       d=0;
       k=k+1;
    }
    cout << " \n";
    cout << " \n";
    for (i=0;i<=m;i++) cout << " " << xn[i] << " \n";
    
    getch();
}
Требуется же эту задачу решить так чтобы был массив не an[N][N], а просто an[N*N] как и какие условия добавить чтобы прога решала с одномерным массивом, не добавляя никаких дополнительных двумерных массивов???
Заранее Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2010, 05:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Гаусса для решения СЛАУ с использованием одномерного массива (C++):

Метод Гаусса для решения СЛАУ - C++
Здравствуйте! У меня есть алгоритм решения СЛАУ методом Гаусса, но почему-то он не работает((( Я проверил промежуточные матрицы, все ОК! И...

Метод Гаусса (подстановки) решения СЛАУ - C++
Всем доброго времени суток, написал я одну недопрограмму, потому как сделал её наполовину. Не хватает мне опыта и знания математики и опыта...

Метод Гаусса решения СЛАУ с полным выбором. C++ - C++
Написал код реализующий метод Гаусса с полным выбором ведущего элемента, но ответ выдает не правильный. Помогите найти ошибку #include...

Разработать программу для решения СЛАУ методом Гаусса. - C++
Разработать программу для решения СЛАУ методом Гаусса. вот заданный массив 7x1-x2+2x3+x4+x5=7 2x1+5x2-x3-x5=3 ...

Помогите написать программу для решения слау методом Гаусса - C++
Осталось как обычно пару дней до сдачи курсовой, а она еще не готова! Помогите пожалуйста. Вот код, который чуть-чуть работает Главная...

Кто сможет? Написать функцию для решения СЛАУ методом Гаусса - C++
Кто может написать функцию для решения СЛАУ методом Гаусса используя базовые знания.

23
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
01.03.2010, 13:13  [ТС] #16
Цитата Сообщение от taras atavin Посмотреть сообщение
Обычно только в классе, но если в классе такого нет, то тогда вне класса. Судя по мессаге о егоге, в классе такого нет. Значит можно объявить вне его.
Непонял...
Классов то у меня вообще нету, и поэтому как я буду выполнять перегрузку оператора???
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.03.2010, 13:16 #17
Цитата Сообщение от vet Посмотреть сообщение
С++ нет оператора^/
Куда делся? & = and, ^ = xor, | = or, ! = not.

Добавлено через 2 минуты
Цитата Сообщение от vet Посмотреть сообщение
Классов то у меня вообще нету, и поэтому как я буду выполнять перегрузку оператора???
Ты вообще с++ знаешь? Там все типы превращены в классы, в том числе, все встроенные стандартные типы. На числом c int, char, double - типы, а на c++ - классы. Больше того, на c++ даже любой struct - класс.
0
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
01.03.2010, 13:19  [ТС] #18
Если верить Шилдту то в С++ отсутствует оператор xor и его требуется реализовывать

Цитата Сообщение от taras atavin Посмотреть сообщение
Ты вообще с++ знаешь?
тогда как разрешить ошибку в Dev-C++ :ISO C++ forbids declaration of `operator^=' with no type
а в VS 2008: error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2803: 'operator ^=' must have at least one formal parameter of class type
error C2296: '^=' : illegal, left operand has type 'double'
error C2297: '^=' : illegal, right operand has type 'double'
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.03.2010, 13:22 #19
Цитата Сообщение от vet Посмотреть сообщение
declaration of `operator^=' with no type
а в VS 2008: error C4430: missing type specifier - int assumed.
Вот именно. То есть он не оператора не знает, а такого сочетания его аргументов.
Цитата Сообщение от vet Посмотреть сообщение
Если верить Шилдту то в С++ отсутствует оператор xor
. Вот как раз по Шилдту я ^ и перевёл как xor. А нет имени "xor" для оператора, но не вообще какого нибудь аналога xorа.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.03.2010, 14:06 #20
vet,
попробуй использовать вместо трех операций "исключающего или" std::swap();
1
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.03.2010, 19:39 #21
taras atavin, пора бы уже знать, что все побитовые операции применяются только для целочисленного типа, а вы применяете их для double, поэтому и такие ошибки появляются
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.03.2010, 03:22 #22
Цитата Сообщение от vet
Если верить Шилдту то в С++ отсутствует оператор xor и его требуется реализовывать
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main(void)
{
    std::cout << (2^5) << std::endl;  
    return 0;
}
Добавлено через 1 минуту
у меня сложилось впечатление, что Шилдт - это команда
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
02.03.2010, 10:03 #23
Цитата Сообщение от taras atavin Посмотреть сообщение
Куда делся? & = and, ^ = xor, | = or, ! = not.
Как можно в один ряд с битовыми операциями вставить логическую? Побитовое отрицание - это ~


Цитата Сообщение от taras atavin Посмотреть сообщение
Ты вообще с++ знаешь? Там все типы превращены в классы, в том числе, все встроенные стандартные типы. На числом c int, char, double - типы, а на c++ - классы. Больше того, на c++ даже любой struct - класс
Позвольте у вас узнать, а вы сами знаете С++? На сколько мне известно, то все встроенные типы - это не классы. С++ - это не ООП язык, у него только поддержка ООП есть и не более. Вот в Java, C# да, там абсолютно все типы - это классы.
0
duska_ya
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 3
05.05.2010, 12:46 #24
А можете объяснить что мы посылаем в функцию. Очень надо знать. Массив А. Что такое double *b, double *&x?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2010, 12:46
Привет! Вот еще темы с ответами:

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя - C++
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Метод Зейделя для решения слау - C++
Пытаюсь реализовать метод Зейделя, подсмотрев реализацию в Википедии, написала функцию Itera(). Она не рабочая, не считает ничего....

Метод Холецкого для решения Слау - C++
Ты не мог бы выложить программу?

Метод скорейшего спуска для решения СЛАУ - C++
Доброго времени суток всем! Столкнулся с проблемой. Нужно написать программу решения СЛАУ методом скорейшего спуска. В Паскале не силен....


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

Или воспользуйтесь поиском по форуму:
24
Yandex
Объявления
05.05.2010, 12:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru