|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы |
|
|
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы
|
|
Новый участник Сообщения: 28 |
Мне срочняк надо прогу нахождения обратной матрицы методом гаусса и при помощи расширенной матрицы я написал но она требует доработки а сдавать в среду
если у кого есть напишите пожалуйста заранее благодарен (иначе сессия продлится до сентября) |
|
|
Отправлено: 01:29, 22-06-2008 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Вопрос, что делает эта строка кода: a=new float*[n]; // эта строка MatrIn(); a1=new float*[n]; // И эта строка Ошибка появляется после ввода данных, на этапе А так всё комплируется и до этой строки работает. |
|
------- Отправлено: 15:39, 22-06-2008 | #11 |
|
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Вопрос, что делает эта строка кода:
a=new float*[n]; // эта строка MatrIn(); a1=new float*[n]; // И эта строка это создается новая матрица типу float |
|
Отправлено: 16:04, 22-06-2008 | #12 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать D.Y.,
Цитата D.Y.:
|
|
|
------- Отправлено: 17:32, 22-06-2008 | #13 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать D.Y., Тогда, что делает эта строка в главной функции main()?
У меня просто у самого знаний нехватает. Эти строки не используются в программе В общем, ошибка где-то здесь: |
|
------- Отправлено: 18:01, 22-06-2008 | #14 |
|
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать D.Y., в первом посте неплохо бы было указать сразу тему с другого форума есть рабочая прога(содрана с книги) не могу понять под какую среду писалась так сказать доложить о проделанных попытках по преодолении сложности, здесь бы дублей по догадкам не было.
А книга именно так называется, может всё же полное название Языки Си С++ для решения инженерных и экономических задач? Цитата D.Y.:
|
|
|
Последний раз редактировалось Admiral, 22-06-2008 в 22:49. Отправлено: 22:36, 22-06-2008 | #15 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
|
------- Последний раз редактировалось Drongo, 23-06-2008 в 11:49. Отправлено: 23:22, 22-06-2008 | #16 |
|
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Drongo, уточнял книгу и главу в которой сабж и вышел на ту тему.
http://www.google.com/search?hl=ru&c...1%83%D0%BA&lr= |
|
Отправлено: 02:59, 23-06-2008 | #17 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать ...
void MatrIn()
{
int i,
j;
for(i = 0; i < n; i++){
for(j = 0; j < n; j++){
cout<<"vvedite cherez probel elementi metrici[ "<<i<<" ][ "<<j<<" ] = ";
cin>>a[i][j];
}
}
}
...
|
|
------- Последний раз редактировалось Drongo, 23-06-2008 в 12:49. Отправлено: 11:47, 23-06-2008 | #18 |
|
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать а не моглибы вы прокомментировать(что в какой строке делается) программу я взял у паренька но он кудато пропал и я не пойму что в ней творится особенно в конце
было задание решение СЛАУ методом Крамера
#include <iostream.h>
#include <stdio.h>
#include <math.h>
double DET (unsigned int columns);
bool PROVCOL(unsigned int num, char colNum);
unsigned int Column1(unsigned int num, char colNum);
unsigned int Column0(unsigned int num, char colNum);
double **Matrix;
int n;
main()
{
int i, j;
double mainDET;
cout<<"Vvedite kolichestvo uravneniy "<<endl;
cin>>n;
while (n > 10 || n < 1)
{
cout<<"Vu ne mogete vvesti bol'she 10 ili men'she 1 uravneniya, vvedite esche raz ";
cin>>n;
}
Matrix = (double**) new double[n];
for (i=0; i<= n-1; i++)
{Matrix[i] = new double[n+1];}
for (i = 0; i <= n-1; i++)
for (j = 0; j <= n; j++)
{
cout<<"Vvedite element matricu s koordinatami ("<<i<<","<<j<<") ";
cin>>Matrix[i][j];
}
cout<<"Vasha matrica:\n";
for (i = 0; i <= n-1; i++)
{for (j = 0; j <= n; j++)
cout<<Matrix[i][j]<<"\t";
cout<<endl;
}
mainDET = DET(pow(2,n));
if (mainDET == 0)
{
cout<<"Net resheniy!\n";
}
else
{
printf ("Korni sistemu:\n");
for (i=0; i <= n-1; i++)
printf ("%.3f ", -pow(-1,n+i)*DET(pow(2,i))/mainDET);
printf ("\n");
}
cout<<"Detrmenant sistemu raven: "<<mainDET<<endl;
for (i = 0; i <= (n-1); i++)
delete Matrix[i];
delete Matrix;
cout<<"Vuchisleniya zakonchenu. Spasibo chto vubrali nas!\n";
return 0;
}
double DET (unsigned int columns)
{double det = 0;
int i, numCols = 0, lastFalse, cntr = 0;
for (i=0; i<=n; i++)
{
if (PROVCOL(columns, i))
numCols++;
else lastFalse = i;
}
if ((n - numCols) == 0) det = Matrix[n-1][lastFalse];
else
for (i = 0; i <= n; i++)
if (!PROVCOL(columns, i))
{
columns = Column1(columns, i);
det += pow(-1,(cntr))*Matrix[numCols-1][i]*DET(columns);
columns = Column0(columns, i);
cntr++;
}
return det;
}
bool PROVCOL(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
xor ebx, ebx;
mov bl, colNum;
bt num, ebx;
jnc none;
inc eax;
none:
}
}
unsigned int Column1(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
mov al, colNum;
bts num, eax;
}
return num;
}
unsigned int Column0(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
mov al, colNum;
btr num, eax;
}
return num;
}
|
|
Отправлено: 15:09, 23-06-2008 | #19 |
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать D.Y., Ассемблерная вставка _asm
В остальном, чужой код комментировать трудно. Простой ещё можно, а тут, поможет только автор. Вот тут добавь строку cin>>i; иначе будет программа закрываться после выполнения |
|
------- Отправлено: 16:56, 23-06-2008 | #20 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Delphi - [решено] Получить адрес битовой матрицы Tcanvas | hackroute | Программирование и базы данных | 1 | 09-11-2009 22:50 | |
| C/C++ - Нахождение чётных элементов в столбцах матрицы | ShadowMas | Программирование и базы данных | 9 | 04-04-2009 10:21 | |
| C/C++ | Матрицы | Kuron | Программирование и базы данных | 2 | 21-01-2007 10:09 | |
| c++.NET выравнивание матрицы | bezumes | Программирование и базы данных | 4 | 22-04-2006 01:20 | |
| Формирование матрицы | Sergey Po | Программирование и базы данных | 3 | 28-04-2004 04:47 | |
|