C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Ответить
Аватара пользователя
Luzuk

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Luzuk »

Luzuk,
Цитата Luzuk:



У меня только один вопрос, выложенные выше исходники (точней готовый проект) для какого компилятора?
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы
и всё работает. Загляните в тему
C/C++ - Помогите решить
начните с сообщения №6, скорее всего, что это не совсем то, что надо, но тоже тема с матрицами и векторами.


Цитата Luzuk:



Программа поддерживает следующие операции над матрицами: сложение, вычитание, умножение, транспонирование и обращение.
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




У меня программа отработала до возможности выбора действий, сложение, ..., ..., ..., обращение и закрывается... Изображение А так конечно работы проделано много и программа нужная. Изображение
Вложения
matrix.zip
(54.93 КБ) 0 скачиваний
matrix.zip
(54.93 КБ) 0 скачиваний
Аватара пользователя
Drongo

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Drongo »

Моя программа писалась для Borland C++ Builder 6 а под вижуал я думаю вполне реально переделать там основное отличие в библиотеках.
Аватара пользователя
D.Y.

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение D.Y. »

Моя программа писалась для Borland C++ Builder 6 а под вижуал я думаю вполне реально переделать там основное отличие в библиотеках.
Аватара пользователя
D.Y.

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение D.Y. »

Цитата Drongo:



У меня программа отработала до возможности выбора действий, сложение, ..., ..., ..., обращение и закрывается...



Хм... у меня все работает... Единственное, что нет обработки введенных символов, если ввести букву вместо цифры программа "накроется". Просто не было время ее так отшлифовывать, задача была, сделать программу для 5ти операция с матрицами, обработку ошибок делать было не обязательно. К тому же ее уже сегодня нужно сдавать, так что время было мало.

Ну, думаю я в ближайшее время смогу ее довести до ума и убрать все "косяки" Изображение







А чтобы было понятно, как с программой работать ниже привожу листинг с примером ее работы.



Код:

Код: Выделить всё

----[Matrix A(N,M)]----
Enter size   //вводим размер матрицы А//
 N> 3
 M> 3
Enter matrix elements: //вводим элементы матрицы А (вводить можно через пробел или enter)//
1 2 3
6 5 4
8 7 9
Matrix>   1 2 3  //получившаяся матрица А//
           6 5 4
           8 7 9
-----------------------
//дальше аналогично, но для матрицы В//
----[Matrix B(N,M)]----
Enter size
 N> 3
 M> 1
Enter operant elements:
1 5 8
Matrix>   1
         5
         8
-----------------------
//Теперь необходимо выбрать что мы с этими матрицами будем делать//
################################
#  Chouce operation:
#   1. A+B                    //если ввести 1 - сложение А и В//
#   2. A-B                     //если ввести 2 - вычитание В из А//
#   3. A*B                    //если ввести 3 - умножение А на В//
#   4. Transponent A   //если ввести 4 - транспонирование матрицы А//
#   5. Invert A             //если ввести 5 - обращение матрицы А//
#   9. EXIT                   //если ввести 9 - программа зароиться//
#  >3    //здесь нужно указать номер нужно вам действия, я выбрал умножение//
Matrix>   35     //А это результат умножения//
        63
        115
Аватара пользователя
Drongo

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Drongo »

Цитата Drongo:



Вот-вот, ввожу число из меню выбора, от 1 до 5, жму Enter и программа закрывается.
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




А какие данные ты вводил, и что с матрицами делал? Просто есть один нюанс (не доработал я этот момент), в случаи ошибки какого-либо действия, допустим, если сложить две матрицы разного размера, что в принципе невозможно, обработчик ошибок сразу при этом выдает сообщение об ошибочном действии (Addition isn't possible), после чего программа закрывается.



Попробуй запустить программу в командной строке (cmd), чтобы было видно, что она выводит перед закрытием.

В исходниках, в файле matrix.h можно глянуть список всех ошибок, которые программа обрабатывает.





Еще возможно глюк из-за разных ОС (что вряд ли), у меня в Win XP(2SP) все нормально работает.

Попробуй создать матрицу А и В размером 1*1, с ними по идеи должны выполняться все действия.
Аватара пользователя
Luzuk

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Luzuk »

Luzuk,
Цитата Luzuk:



две матрицы разного размера
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




и
Цитата Luzuk:



Попробуй создать матрицу А и В размером 1*1, с ними по идеи должны выполняться все действия
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




Вот теперь тебя люблю я, вот теперь тебя хвалю я. Изображение Правильно, всё правильно, работает.
Скрин подтвердит:









Нужно бы добавить проверку размера второй матрицы. И добавить счётчик номера вводимого элемента матрицы, а то неудобно, неизвестно какой номер ты вводишь. И перед выполняемым действием, было бы лучше выводить название самого действия - Умножение, или Сложение, так проще будет ориентироваться. Изображение


Цитата Luzuk:



Попробуй запустить программу в командной строке (cmd), чтобы было видно, что она выводит перед закрытием.
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




Вот этого я или не знаю, или не понял, склоняюсь больше к тому, что не знаю, как её так запустить? Изображение Поделишься знаниями? Объяснишь?
Аватара пользователя
Drongo

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Drongo »

Drongo, а я думаю что всё же больше не понимания Изображение

Пуск => Выполнить => cmd указываем путь к откомпилированному файлу.



В программе, которая на скрине, слово Chouce по английски правильно пишется как Choose, но сюда больше подходит Select.
Аватара пользователя
Admiral

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Admiral »

Drongo, а я думаю что всё же больше не понимания Изображение

Пуск => Выполнить => cmd указываем путь к откомпилированному файлу.



В программе, которая на скрине, слово Chouce по английски правильно пишется как Choose, но сюда больше подходит Select.
Аватара пользователя
Drongo

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Drongo »

Цитата Admiral:



В программе, которая на скрине, слово Chouce по английски правильно пишется как Choose, но сюда больше подходит Select.
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




Ясно, учтем Изображение Спасибо за подсказку, поправим.



Drongo, Вот и хорошо. Я так сразу и подумал, что в этом ошибка.



Сейчас думаю тоже самое сделать, только с нормальным интерфейсом. Если за основу возьму то что D.Y. сделал:


Цитата D.Y.:



http://forum.oszone.net/attachment.p...1&d=1216408949


Matr_Gause 1.1.zip
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы




Думаю ни кто против не будет?

Правда из Билдера в Визуал не разу ничего не переделывал, да и вообще графические оболочки только на Win API могу писать, и то на среднем уровне. Посоветуйте, кто знает, с чего лучше начать в этой задачи? Или проще на Билдере ее и продолжить писать и не мучиться с переделкой на Визуал С?
Аватара пользователя
Luzuk

Re: C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы

Сообщение Luzuk »

Luzuk, если со средой Билдера не возникает проблем то лучше проект продолжать писать там же.
Ответить

Вернуться в «Программирование и базы данных»