Нахождение обратной матрицы методом Гаусса и рассширенной матрицы
Мне срочняк надо прогу нахождения обратной матрицы методом гаусса и при помощи расширенной матрицы я написал но она требует доработки а сдавать в среду
если у кого есть напишите пожалуйста заранее благодарен (иначе сессия продлится до сентября) |
Цитата:
Математика процесса определитель матрицы методом Гаусса Обратная матрица методом Гаусса |
D.Y.,
Цитата:
Метод Гаусса, ещё смотри тут (не всё конечно, но про Гаусса есть.) |
Код:
|
D.Y., Выдели код и оформи тегом [code], на панельке инструментов, над полем ввода есть изображение решётки - # Отредактируй своё сообщение, Через ссылку Редактировать выдели весть текст и щёлкни по ней или вручную пропиши сначала перед кодом [code] потом в конце [/code] Теги
Ты хоть этот код сам писал? Мне кажется не сам. Что именно не получается там? Где искать ошибку? Я вот только что загрузил в комплятор, 10 ошибок и 3 предупреждения |
использовал книгу "решение инженерных задач при помощи С++"
у меня не находило библиотеку "vcl.h" когда я ее комментировал выбивало ошибки на счет директив препроцессора "argsused" & "hdrstop" я их тоже комментировал но выбило ошибку что функции ввода и вывода должны возвращать значения |
|
У меня Visual Studio 2008 вот что выдает
Курсач.cpp .\Курсач.cpp(7) : fatal error C1083: Cannot open include file: 'vcl.h': No such file or directory Build log was saved at "file://c:\Documents and Settings\Женя\Мои документы\Visual Studio 2008\Projects\Курсач\Курсач\Debug\BuildLog.htm" Курсач - 1 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== |
D.Y., А у меня Borland C++ Builder 6.0
D.Y., В этой функции Код:
int InvMatrG(int n, float(*a)[dim], float e, float d) Та же функция, что и выше. Код:
for(j = 0; j < n; j++) // нехватает скобки { В общем, что смог и знаю, подправил, в остальном я не компетентен. |
Спасибо и за это!
|
Код:
Вопрос, что делает эта строка кода: Код:
float **a,**a1; Код:
a=new float*[n]; // эта строка |
Вопрос, что делает эта строка кода:
a=new float*[n]; // эта строка MatrIn(); a1=new float*[n]; // И эта строка это создается новая матрица типу float |
D.Y.,
Цитата:
Код:
float *array = new float[size]; |
D.Y., Тогда, что делает эта строка в главной функции main()?
Код:
for(int i = 0; i < n; i++) Эти строки не используются в программе Код:
const int dim1=20; Код:
... |
D.Y., в первом посте неплохо бы было указать сразу тему с другого форума есть рабочая прога(содрана с книги) не могу понять под какую среду писалась так сказать доложить о проделанных попытках по преодолении сложности, здесь бы дублей по догадкам не было.
А книга именно так называется, может всё же полное название Языки Си С++ для решения инженерных и экономических задач? Цитата:
|
|
Drongo, уточнял книгу и главу в которой сабж и вышел на ту тему.
http://www.google.com/search?hl=ru&c...1%83%D0%BA&lr= |
Код:
... Код:
... |
Код:
а не моглибы вы прокомментировать(что в какой строке делается) программу я взял у паренька но он кудато пропал и я не пойму что в ней творится особенно в конце |
D.Y., Ассемблерная вставка _asm
В остальном, чужой код комментировать трудно. Простой ещё можно, а тут, поможет только автор. Вот тут добавь строку cin>>i; иначе будет программа закрываться после выполнения Код:
... |
А как эта вставка будет выглядеть на С++???
|
D.Y.,
Цитата:
Код:
_asm |
Drongo, наверное D.Y. хочет знать как ассемблерные вставки написать на языке более высокого уровня.
Примерное пояснение Код:
{ http://mirror.sweon.net/z0mbie/asm.html Но всё же проще написать программу изначально на С/С++, чем переводить с Ассемблера. |
Admiral,
Цитата:
Цитата:
Цитата:
|
Необходимо вручную установить кодовую страницу Cyrillic -> Windows 1251. Ассемблерный код и его аналог на языке высокого уровня С отображается и без установки нужной кодировки.
Весьма почтён, я профессионально на нём не писал, так учебные программы, в написании которых мне помогал DillerInc за что я ему весьма благодарен. Если есть интерес к ассемблеру, то рекомендую тему ASSM | Моё первое ассемблироание, в которой до сих пор не решён вопрос от bes1de. Собственно его вопрос требует более основательных знаний. А по большому счёту и с помощью компиляторов С можно получить весьма быстрый код, причём бинарник будет весьма маленького размера. |
Admiral, Спасибо большое! А какое ваше мнение о статьях Калашникова? (Assembler - Рассылка от Калашникова).
Цитата:
|
Цитата:
Просмотрел я статью Первое приложение. "Hello, world с использованием API MessageBox". вроде вполне доступно. bes1de не предоставил достаточной информации по объекту, под который программируется, его систему команд (например, какой-то пример под этот batronix для 8051.mc). Если под С по алгоритму ещё можно что-то придумать то под ассемблер такое не пройдёт. |
Admiral,
Цитата:
1-е условие, например вообще не очень понятно, вроде похоже на цикл do\while, но это явно не оно. Остальное, где нужно нажатие кнопки, непонятно как работает? Я толком не знаю, но будет ли верным для переходов к предыдущему условию использовать операторы goto: ?! |
Всем Большое спасибо я уже написал и сдал!
|
D.Y.,
Цитата:
|
Drongo, это было бы логично, как бы "строили-строили и наконец построили", а ведь здесь до сих пор...
|
Admiral, Да я думаю, и здесь будет продолжение из той же оперы, вряд ли человек появится до следующего задания, а потом эту тему благополучно забудут... Тем более даже за раннии решения "Спасибо" нету и вряд ли будет вообще.
|
Drongo, тема уже красно популярна (700 просмотров на текущий момент), а та всего лишь жёлто стандартная (пока 472 просмотра), так что я думаю что математическое название привлекает к себе внимание, чего не скажешь про не популярный Ассемблер.
Дело не столько в Спасибо, а сколько в авторитете самого раздела Программирование, поскольку такие темы без решения конечного результата от самого автора, после того как он сказал что всё ОК, не очень то смотрятся и бросают тень на раздел. |
Код:
#include "conio.h" |
Код:
//--------------------------------------------------------------------------- |
D.Y., другое дело :clapping:
|
D.Y., :yes: :up
|
D.Y., Ещё один маленький нюанс, а где содержимое заголовочного файла matr_in_gause.h его тоже нужно, бо непонятно много.
|
Код:
#ifndef matr_in_gauseH |
D.Y., Не, дружище, не то, у этого файла расширение .ccp, a надо .h
Код:
#include "main_matr_gause.h // Вот этот" |
Не-е дружище у меня расширение этого файла main_matr_gause.h
а .сср это вообще не из языка С++ (может .срр)?Создавался как Header File (.h) Давай я тебе выложу архивчик с файлами а ты уже сам посмотриш(только куда его выложить?) |
D.Y.,
Цитата:
Цитата:
|
Вложений: 1
вот
|
http://forum.oszone.net/attachment.p...1&d=1216408949
Matr_Gause 1.1.zip |
D.Y., Браво! :up Отличная программа, и главное компилится и работает! Вот это ты молоток! :yes:
|
Я просто забросил ту книгу(мне старшекурсники говорили что там вообще ничего не компилится) и взял пару других проконсультировался с преподом и написал (не с первого раза пару раз клава страдала от этого) но всетаки чтото получилось и курсач сдан!
|
D.Y.,
Цитата:
|
Ок только отдохну от учебы!!!
|
Приветствую всех ;)
Хочу поблагодарить участников форума за проделанную работу, так как пол дня потратил в поисках нормального рабочего кода для вычисления обратной матрицы, и смог найти его только здесь. Сам не хотел его писать, т.к. лень было разбираться в теории расчета, и потом еще свой алгоритм для этого писать, задача то давно известная и зачем дважды изобретать велосипед. У меня только один вопрос, выложенные выше исходники (точней готовый проект) для какого компилятора? Я работаю на Visual C++ 6.0, ну к нему он явно не подходит. Так что пришлось их переделывать для своей программы. В итоге написал класс для работы с матрицами. Чуть позже выложу исходники ДОСовской программы с этим классом, хочу сначала немного интерфейс доработать. Программа поддерживает следующие операции над матрицами: сложение, вычитание, умножение, транспонирование и обращение. |
Вложений: 1
Ниже прикреплен архив с готовой программой (MATRIX.exe) и ее исходниками.
Описание: Программа для выполнения различных операций с матрицами. Возможности: Сложение, вычитание, умножение, транспонирование, обращение матриц размера N*M. Реализация: Программа консольная, написана на MS Visual C++ 6.0. Исходный код реализован на основе ООП, на классе matrix (его скачал с какого-то сайта). В код были внесены небольшие изменения, добавлены 2 функции (транспонирование и обращение). [P.S.] Если у кого-нибудь будет желание дополнить или модифицировать этот код, можете это делать. Только желательно выложить здесь результат своей работы. |
Luzuk,
Цитата:
Цитата:
|
Моя программа писалась для Borland C++ Builder 6 а под вижуал я думаю вполне реально переделать там основное отличие в библиотеках.
|
Цитата:
Ну, думаю я в ближайшее время смогу ее довести до ума и убрать все "косяки" ;) А чтобы было понятно, как с программой работать ниже привожу листинг с примером ее работы. Код:
----[Matrix A(N,M)]---- |
Luzuk,
Код:
# >3 //здесь нужно указать номер нужно вам действия, я выбрал умножение// |
Цитата:
Попробуй запустить программу в командной строке (cmd), чтобы было видно, что она выводит перед закрытием. В исходниках, в файле matrix.h можно глянуть список всех ошибок, которые программа обрабатывает. Еще возможно глюк из-за разных ОС (что вряд ли), у меня в Win XP(2SP) все нормально работает. Попробуй создать матрицу А и В размером 1*1, с ними по идеи должны выполняться все действия. |
Luzuk,
Цитата:
Цитата:
Нужно бы добавить проверку размера второй матрицы. И добавить счётчик номера вводимого элемента матрицы, а то неудобно, неизвестно какой номер ты вводишь. И перед выполняемым действием, было бы лучше выводить название самого действия - Умножение, или Сложение, так проще будет ориентироваться. :yes: Цитата:
|
Drongo, а я думаю что всё же больше не понимания :wink:
Пуск => Выполнить => cmd указываем путь к откомпилированному файлу. В программе, которая на скрине, слово Chouce по английски правильно пишется как Choose, но сюда больше подходит Select. |
Ооо, точно Admiral, проверил таким способом, да, если размеры матрицы неправильные, всё правильно, ошибка вылетает. Спасибо за разъяснения. :up
Вопрос как бы уже решён, Luzuk, но если интерес есть, то вот такая ошибка была. Но повторю, размеры матрицы я вводил разные. А в целом всё класс - :up Код:
################################ |
Цитата:
Drongo, Вот и хорошо. Я так сразу и подумал, что в этом ошибка. Сейчас думаю тоже самое сделать, только с нормальным интерфейсом. Если за основу возьму то что D.Y. сделал: Цитата:
Правда из Билдера в Визуал не разу ничего не переделывал, да и вообще графические оболочки только на Win API могу писать, и то на среднем уровне. Посоветуйте, кто знает, с чего лучше начать в этой задачи? Или проще на Билдере ее и продолжить писать и не мучиться с переделкой на Визуал С? |
Luzuk, если со средой Билдера не возникает проблем то лучше проект продолжать писать там же.
|
Вложений: 1
Вроде бы все получилось. Код программы, конечно, не самый красивый, ну это с учетом, что пришлось разбираться с чужим кодом и средой которую я плохо знаю.
Ну, главное что оно работает. Пришлось правда несколько функций убрать, не стал разбираться с сохранением результатов в файл, так что я эту кнопку просто убрал и ещё почему-то Билдер на мой класс Matrix немного ругался, точней на операцию сложение. Так что там пришлось часть кода закомментировать, ну от этого функционал не пострадал. Так что, теперь программа по мимо вычисления обратной матрицы, ещё может делать сложение, вычитание, умножение и транспонирование ;) Ниже прикрепляю архив с готовым проектом, для C++ Builber 6 |
Luzuk, Отлично получилось, рульно! :yes: :up
|
RESPECT ТЕБЕ Luzuk, МОЖЕТ ТВОЯ ПРОГА ЕЩЕ КОМУ ПОМОЖЕТ ВООБЩЕ В НАШЕ ВРЕМЯ МАЛО КТО ХОЧЕТ ДЕЛИТСЯ СВОИМИ РАБОТАМИ И КОГДА ЧТОТО НУЖНО ТО ОЧЕНЬ ТЯЖЕЛО НАЙТИ!А ВОТ ЗДЕСЬ ВСЕ БЕСПЛАТНО И В ИСПРАВНОМ СОСТОЯНИИ!
|
Пожалуйста ;) Мне не жалко. Я за эту программу деньги уже получил, хотя кое что еще нуно доработать.. позже может ещё обновленную версию выложу ;)
|
А может есть у кого что попроще? чтоб программа состояла из одного .cpp файла ... !?
|
Время: 02:20. |
Время: 02:20.
© OSzone.net 2001-