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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
-=ЮрА=-
Заблокирован
Автор FAQ
#1

Устал искать баг - C++

03.08.2011, 17:13. Просмотров 2071. Ответов 23
Метки нет (Все метки)

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

Пропускаю матрицу А и вектор свободных членов В через вот такой фильтр
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void compress(int m, double **a, double *b)
{
    for(int i = 0,j; i < m; i++)
    {
        if(a[i][i] == 0)
        {
            for(j = i; j < m - 1; j++)
                memcpy((void *)&a[j],(void *)&a[j + 1],m);
            for(j = 0; j < m; j++)
                a[j] = compress(m, i, a[j]);
            b = compress(m, i, b);
        }
    }
}
 
double * compress(int m, int i, double * vec)
{
    memcpy((void *)&vec[i],(void *)&vec[i + 1],m - (i + 1));
    return vec;
}
Всё время вылетает ошибка, try{}catch() указывает на одни и теже строки и столбцы, проверка элементов матрицы показала отсутсвие ошибок. А и В созданы и инициализированы правильно!
Суть задачи - где в моём коде просчёт?Готов к другим вариантам удаления строк и столбцов, жду...
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2011, 17:13     Устал искать баг
Посмотрите здесь:

Устал от утечек памяти - C++
С этими утечками памяти в C++ просто беда. Посоветуйте, что можно сделать? Может быть есть какие-то специальные утилиты?

Как искать ошибку? - C++
иногда в програмие вылетает ошибка Unhandled exception at at 0x75BAB727 in _2.0.exe: Microsoft C++ exception: std::out_of_range at...

Как искать ответы на вопросы? - C++
возможно глупый вопрос без конкретного ответа, но всетаки постараюсь сформулировать его как можно более понятно по сути. я учу с++. и...

Где искать DllMain в ATL 7.0? - C++
Может кто знает где искать DllMain в ATL 7.0 А то смотрю в глобальных функциях есть а когда пытаешься открыть программа выкидывает тебя...

Как правильно искать информацию по программированию на c++? - C++
Здравствуйте! Я думаю эта тема будет крайне полезна новичкам, коим являюсь и я. Вопрос собственно в том, где брать официальную...

Литература С++ для начинающих: Где искать? - C++
Ребята, подскажите литературу для изучения С++. Вообще я пишу всё на дельфине уже два года (т.е. есть опыт в программировании), а тут...

Как искать файлы которые создал пользователь? - C++
Каким методом можно искать файлы которые создал пользователь?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
voral
428 / 408 / 57
Регистрация: 16.03.2008
Сообщений: 2,020
04.08.2011, 16:39     Устал искать баг #16
да да. я и сказал об этом
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
04.08.2011, 16:43     Устал искать баг #17
Вот так и получается, что код не ахти какой((
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.08.2011, 16:43     Устал искать баг #18
Можно вообще не удалять ни столбцы, ни строки. Сохранить список "нулевых" индексов и пропускать их при записи в файл. Если дополнительной никакой работы не будет над матрицей происходить после "удаления" строк/столбцов, то это самый эффективный вариант.
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
04.08.2011, 16:54     Устал искать баг #19
?????
voral
428 / 408 / 57
Регистрация: 16.03.2008
Сообщений: 2,020
04.08.2011, 17:13     Устал искать баг #20
Создаешь еще одну матрицу такого же размера. Заполняешь, например, 1цами. Пройтись по диагонали основной матрицы. А в вспомогательной проставлять 0 в тех элементах, которые должны быть удалены). Потом формируешь результирующую матрицу на основании первых двух.

Добавлено через 11 минут
Как бы то ни было в итоге мы все равно получаем по элементное копирование одного массива в другой. ТС предложил неплохой вариант. Массив остается прежний, но копирование происходит только при наличии 0 в диагонали. При чем копирование производим кусками памяти.
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
04.08.2011, 17:18     Устал искать баг #21
Согласен... А сейчас вопрос на миллион - расшифруй ТС
voral
428 / 408 / 57
Регистрация: 16.03.2008
Сообщений: 2,020
04.08.2011, 17:24     Устал искать баг #22
TС сокращенное от "топикастер". Что в свою очередь искаженное Topic Starter - автор данной темы.

На этом форуме в шапке каждого сообщение там где время сообщения у автора темы даже пометка стоит [TC]
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
04.08.2011, 17:27     Устал искать баг #23
так и думал.. то бишь юра)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2011, 21:01     Устал искать баг
Еще ссылки по теме:

Как искать функции, работающие с определенным типом? - C++
Всем привет! Сейчас у меня типичная нудная задача: создать строку wchar_t, конвертировать цифру из int в wchar_t, затем склеить...

Написать программу, которая буде искать и открывать файл. - C++
Здравствуйте. Надо написать программу, которая буде искать и открывать файл. Пока что написано только что бы читать файл, уже по заданному...

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

C++ Builder XE3 компонент TChart не установился, где искать? - C++ Builder
При установке ХЕ3 я повыключал всю ненужную (как я думал) байду — FireMonkey, Cobra, Ribbon и т.д, теперь нет чарта. Что нужно...

Нужно просматривать папки и искать в них определенные файлы - C++
Подскажите, как решить задачку! Есть папочка, а в ней еще много папочек, так вот нужно открывать их по очереди, и смотреть, есть ли там...


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

Или воспользуйтесь поиском по форуму:
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
08.08.2011, 21:01     Устал искать баг #24
Цитата Сообщение от voral Посмотреть сообщение
TС сокращенное от "топикастер". Что в свою очередь искаженное Topic Starter - автор данной темы.
также Topic Creator типа создатель темы
Yandex
Объявления
08.08.2011, 21:01     Устал искать баг
Ответ Создать тему
Опции темы

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