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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
#1

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

27.02.2010, 22:35. Просмотров 1201. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2010, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно чтобы в матрице столбец менялся на столбец свободных членов (C++):

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

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

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

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

Поменять в матрице 1-й столбец со 2-ым, 3-й с 4-м и т.д. - C++
Здравствуйте, великие умы!!! Прошу вас помочь мне начинающему &quot;программисту&quot; разобраться в задачке (С++)!!! &quot;Программа должна...

Среди столбцов матрицы А найти столбец, содержащий минимальное произведение своих элементов и принять этот столбец за вектор X - C++
Задача заключается в следующем: 1)Построить матрицу. Матрицу построил, но она выводится в строку. Как вывести её нормально, по столбцам...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
WiDe
10 / 10 / 1
Регистрация: 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
WiDe
10 / 10 / 1
Регистрация: 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
WiDe
10 / 10 / 1
Регистрация: 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
WiDe
10 / 10 / 1
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2010, 23:39
Привет! Вот еще темы с ответами:

Не меняет строчку и столбец в матрице - C++
#include&lt;iostream&gt; int n,i,k,j,f,p,y; int main() { setlocale(0, &quot;rus&quot;); std::cout « &quot;Введите размерность квадратной матрицы: &quot;; ...

Замена строки на столбец в матрице - C++
Разработать программу, которая в матрице размерности nxn меняет местами строку, содержащую элемент с минимальным значением со столбцом,...

Поменять местами строку и столбец в матрице - C++
Доброго времени суток, формумчане! Очередная задача по матрицам, скажу сразу, что форум листал часа 2, находил несколько решений, но...

В матрице найти столбец совпадающий с заданным вектором - C++
Найти одномерный массив или вектор (не знаю что лучше) в двумерном массиве и вывести его номер? То есть сравнить одномерный массив/вектор...


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

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

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