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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
#1

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

14.03.2012, 18:32. Просмотров 284. Ответов 0
Метки нет (Все метки)

Еужно провести кое-какие преобразования с элементами вектора.

Для начала нужно считать ненулевые элементы матрицы в вектор 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 ){}
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 18:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не знаю, как работать с элементамми массива (C++):

не знаю как заставить работать - C++
7,9.cpp:7:10: error: invalid use of non-static data member ‘matrix::two’ long two,one; ^ 7,9.cpp:8:15: error: from...

Простой список в виде массива.Как работать с элементами списка-массива через единую функцию - C++
Добрый день!Подсобите,как реализовать Простой список,но не через шаблоны или создание указателей,а как бы в виде массива.(Ну,или ваш...

Как работать со списком на основе массива? - C++
У меня есть структура A у которой есть структурный элемент row. Как мне присвоить какое либо значение в a.row? Как мне добавить элемент с...

Размер динамического массива. Избито сам знаю - C++
Добрая ночь. Тема такая, вот такая шняга struct CSR { double * value; int *j_index; int *pos; int nnz; }; ...

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

Создал динамически edit а как работать с ними не знаю как( - Delphi
Извиняюсь пишу про динамическую тему не первый раз, но все не могу разобраться((( Edit'ы созданы динамически: Код: procedure...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2012, 18:32
Привет! Вот еще темы с ответами:

Я сделал клиент-сервер, но не знаю как с ним работать - Delphi
Здравствуйте, я сделал клиент-сервер по этой инструкции (часть 1). Мой ip такой: 217.118.78.109. Узнал я его таким образом. Как мне...

Выход за границы массива, но не знаю как исправить - Java SE
Здравствуйте товарищи. Есть задание: Дан двумерный массив вещественных чисел произвольной размерности. Разработать программу, которая...

Не знаю как суммировать элементы массива по горизонтали! - C++ Builder
Допустим у меня есть массив мне нужно посчитать сумму значений по горизонтали, а потом и эту сумму занести в одномерный массив! При каждом...

Не знаю как исключить из рассмотрения елементы двумерного массива(матрицы) - Turbo Pascal
Дано массив А(М;М).Найти количество елем. расположенных на каждой параллеле до главной диагонали(Я ДУМАЮ ЭТО ЗНАЧИТ, ЧТО НУЖНО...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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