Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
#1

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

14.03.2012, 18:32. Просмотров 304. Ответов 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
Ответы с готовыми решениями:

не знаю как заставить работать
7,9.cpp:7:10: error: invalid use of non-static data member ‘matrix::two’ ...

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

Как работать со списком на основе массива?
У меня есть структура A у которой есть структурный элемент row. Как мне...

Как работать с элементами двумерного динамического массива через явное разыменования указателя?
Доступ к элементам массива через индексы проходит без труда, а вот с...

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

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

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

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

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


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

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

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