Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
1

Нужно чтобы в матрице столбец менялся на столбец свободных членов

27.02.2010, 22:35. Просмотров 1613. Ответов 8
Метки нет (Все метки)

Нужно чтобы в матрице столбец менялся на столбец свободных членов автоматически с помощью массива.То есть надо сделать так,когда считаем первый определитель столбец массив менял на свободные члены(столбец) сам,а вторую на вторую и т.д.Это для решения систем уравнений методом Крамера,то есть когда считаем определители нужно менять столбцы...Вот простой код,его надо переделать с массивом.

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
#include<iostream.h>
#include<math.h>
#include<conio.h>
int main()
{
clrscr();
float a11,a12,a13,a21,a22,a23,a31,a32,a33,b1,b2,b3,D1,D2,D3,D,x1,x2,x3;
cout<<" Vvedite koefichienti:\n";
cout<<" a11=";
cin>>a11;
cout<<" a12=";
cin>>a12;
cout<<" a13=";
cin>>a13;
cout<<" a21=";
cin>>a21;
cout<<" a22=";
cin>>a22;
cout<<" a23=";
cin>>a23;
cout<<" a31=";
cin>>a31;
cout<<" a32=";
cin>>a32;
cout<<" a33=";
cin>>a33;
cout<<" Vvedite svobodnie chleny:\n";
cout<<" b1=";
cin>>b1;
cout<<" b2=";
cin>>b2;
cout<<" b3=";
cin>>b3;
D=a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31);
if (D==0)
cout<<"beskonechnoe mnozhestvo resheniy";
else{
D1=b1*(a22*a33-a23*a32)-a12*(b2*a33-a23*b3)+a13*(b2*a32-a22*b3);
D2=a11*(b2*a33-a23*b3)-b1*(a21*a33-a23*a31)+a13*(a21*b3-b2*a31);
D3=a11*(a22*b3-a32*b2)-a12*(a21*b3-b2*a31)+b1*(a21*a32-a22*a31);
x1=D1/D;
x2=D2/D;
x3=D3/D;
cout<<"\n Opredeliteli:\n";
cout<<" D="<<D<<"; ";
cout<<" D1="<<D1<<"; " ;
cout<<" D2="<<D2<<"; ";
cout<<" D3="<<D3<<";\n ";
cout<<"\n Korni sistemy uravneniy:\n";
cout<<" x1="<<x1<<"; ";
cout<<" x2="<<x2<<"; ";
cout<<" x3="<<x3<<"; ";
getch();
return 0;
}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2010, 22:35
Ответы с готовыми решениями:

Нужно чтобы менялся столбец со строкой в матрице
Вот номера 3)11 4)9 6)12 7)7 8)13 9) матрица, вводиться целочисленная матрица с клавиатуры,ввод 2...

Нужно весь столбец скопировать, вставить в столбец A, так, чтобы вставились четырехзначные числа
Есть столбе G и столбец A. в столбце G 5значные числа, нужно весь столбец скопировать, вставить в...

Нужно циклически подвинуть столбец матрицы с минимальным элементом так, чтобы столбец стоял первым
#include &lt;iostream&gt; using namespace std; int main() { int i = 0, j = 0, n, min = 0, k = 0,...

Поменять в матрице местами последний столбец и столбец, содержащий минимальный элемент
Добрый вечер возникла проблема при написании программы, вот условие В данной действительной...

8
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 22:43 2
Цитата Сообщение от ромыч Посмотреть сообщение
float a11,a12,a13,a21,a22,a23,a31,a32,a33,b1,b2,b3,D1,D2 ,D3,D,x1,x2,x3;
О_о жесть......
Создаешь массив a[3][3]. Делаешь цикл в цикле и заполняешь массив. Для свободных членов создаешь массив b[3], заполняешь циклом. И так далее....
0
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
27.02.2010, 22:48  [ТС] 3
Цитата Сообщение от WiDe Посмотреть сообщение
О_о жесть......
Создаешь массив a[3][3]. Делаешь цикл в цикле и заполняешь массив. Для свободных членов создаешь массив b[3], заполняешь циклом. И так далее....
а как это будет выглядить в коде?мне же надо менять всего 3 столбца по очереди,для этого нужна одна общая формула,чтоб массив сам менял...?как то через a[i][j]...?считать то придется все Д,а надо чтоб был один общий...
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 23:02 4
Ну допустим вместо первого столбика матрицы а надо поставить свободные члены, то это будет:
C++
1
2
3
4
5
j=0;
k=0;
for(i=0;i<2;i++){
a[i][j]=d[k];
k++;}
По моему так, если я не ошибаюсь... потомо чтобы вместо второго заменить, то надо j++, и вместо третьего ещё раз j++. В конечном итоге j будет равно 2, т.е. номеру последнего столбика. Ну и k не забывать обнулять...
0
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
27.02.2010, 23:09  [ТС] 5
Цитата Сообщение от WiDe Посмотреть сообщение
Ну допустим вместо первого столбика матрицы а надо поставить свободные члены, то это будет:
C++
1
2
3
4
5
j=0;
k=0;
for(i=0;i<2;i++){
a[i][j]=d[k];
k++;}
По моему так, если я не ошибаюсь... потомо чтобы вместо второго заменить, то надо j++, и вместо третьего ещё раз j++. В конечном итоге j будет равно 2, т.е. номеру последнего столбика. Ну и k не забывать обнулять...
Это да,но как сделать чтоб вот это
D1=b1*(a22*a33-a23*a32)-a12*(b2*a33-a23*b3)+a13*(b2*a32-a22*b3);
D2=a11*(b2*a33-a23*b3)-b1*(a21*a33-a23*a31)+a13*(a21*b3-b2*a31);
D3=a11*(a22*b3-a32*b2)-a12*(a21*b3-b2*a31)+b1*(a21*a32-a22*a31);
считало одной формулой?то есть надо сделать одну общую формулу для D,которая считала бы в зависимости от номера замененного столбца.то есть если первый столбец заменили,то должна считать первый определитель и т.д.
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 23:13 6
Тогда можно сделать так. Объявить ещё один массив, который заполняется следующим образом: в первый столбец элементы массива b, а второй и третий соответственные элементы массива a. Написать функцию, которая вычисляет D и передавать в неё наш массив.
0
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
27.02.2010, 23:16  [ТС] 7
Цитата Сообщение от WiDe Посмотреть сообщение
Тогда можно сделать так. Объявить ещё один массив, который заполняется следующим образом: в первый столбец элементы массива b, а второй и третий соответственные элементы массива a. Написать функцию, которая вычисляет D и передавать в неё наш массив.
а в виде кода?
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 23:25 8
Код
D=a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31);
А определитель вообще разве так находится? Если я не ошибаюсь, то вроде так:
Код
D=a11*a22*a33+a12*a23*a31+a21*a32*a13-a13*a22*a31-a12*a21*a33-a23*a32*a11;
Не могу понять как вы находите определитель....
0
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
27.02.2010, 23:39  [ТС] 9
Цитата Сообщение от WiDe Посмотреть сообщение
Код
D=a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31);
А определитель вообще разве так находится? Если я не ошибаюсь, то вроде так:
Код
D=a11*a22*a33+a12*a23*a31+a21*a32*a13-a13*a22*a31-a12*a21*a33-a23*a32*a11;
Не могу понять как вы находите определитель....
Говорю же методом Крамера,а у вас простая прогонка. Ну а когда D,D1,D2,D3 считать надо чтоб одна была формула общая,как тогда...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2010, 23:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Поменяйте в матрице местами 3-й столбец и столбец, в котором находится первый максимальный элемент
Дан двумерный массив. Поменяйте местами 3-й столбец и столбец, в котором находится первый...

В матрице поменять местами первый столбец и столбец, содержащий минимальное количество нечетных элементов
1) дана матрица размера m*n поменять местами столбцы 1 и столбец, содержащий минимальное количество...

В матрице имеется столбец в котором разность между максимальным элементом и среднем арифметическим больше первого элемента найти этот столбец и замети
В матрице имеется столбец в котором разность между максимальным элементом и среднем арифметическим...

Поменять местами первый столбец и столбец и столбец, где находится максимальный элемент массива
Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Поменять местами первый столбец и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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