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

Не знаю, как работать с элементамми массива - C++

Восстановить пароль Регистрация
 
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
14.03.2012, 18:32     Не знаю, как работать с элементамми массива #1
Еужно провести кое-какие преобразования с элементами вектора.

Для начала нужно считать ненулевые элементы матрицы в вектор values типа double, создать еще один coord вектор, стоящий из чисел, построенных по правилу:
i + (j-1)*n , где i - номер строки, j - номер столбца, n - порядок матрицы
теперь нужно разделить все элементы строки на диагональный элемент, стоящий в данной строке, т.е.
если матрица такая
10 1 1
2 10 1
2 2 10
то надо перейти вот к такой матрице:
1 0.1 0.1
0.2 10 0.1
0.2 0.2 1

values = {10, 1, 1, 0, 2, 10, 1, 0, 2, 2, 10}
coord = {1, 4, 7, 0, 2, 5, 8, 0, 3, 6, 9, 0}
для простоты - отделяю элементы одной строки от элементов другйо строки нулями (все-равно я считываю лишь ненулевые элементы из исходного файла) Так же отделяю элменты вектора coord
Это я сделал.

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

Вот мой код:

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
    int row = 1;
    for ( int i = 0; i < values_z.size(); i++ )
    {
        if ( values_z[i] == 0 )
        { row++; }
        int colum = (coordinates_z[i] - row)/3 +1;
        if ( row == colum )
        {
            double current_el = values_z[i];
            int q = i;
            // делим элементы, стоящие справа от диагонального на диагональный
            while ( values_z[q] != 0 )
            {
                values_z[q] = values_z[q]/current_el;
                q++;
            }
            // делим элементы, стоящие слева от диагонального на диагональный
            int w = i;
            while (values_z[w] != 0 )
            {
                w--;
                values_z[w] = values_z[w]/current_el;
                if ( w < 0 ) { return 0;}
            }
        }
        if ( row != colum ){}
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 18:32     Не знаю, как работать с элементамми массива
Посмотрите здесь:

C++ Простой список в виде массива.Как работать с элементами списка-массива через единую функцию
C++ Не знаю как выполнить
Я не знаю как доработать C++
нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) C++
C++ Не знаю как назвать
C++ Не знаю как отсортировать
C++ Не знаю как написать
C++ Как работать с указателями и как работать с ссылками

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru