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

Visual C++

Войти
Регистрация
Восстановить пароль
 
masterdov
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 32
#1

Поиск элемента в матрице разреженного строчного формата - Visual C++

25.12.2016, 11:44. Просмотров 273. Ответов 0
Метки нет (Все метки)

Есть квадратная матрица, после считывания представляется в разреженном строчном формате.
где AN-ненулевой элемент, JA-столбец текущего элемента, так же ненулевого, IA - индекс неулевого элемента, с которого начинается строка.
Я понимаю, как должен выглядить массив-матрица в таком виде, но задача в том, чтобы по вводу индексов строки и столбца, мне выводился элемент, соответствующий эим индексам. Все строится как раза на AN,JA,IA. Помогите, пожалуйста с реализацией этой задачи. Я не пойму как получить элемент AN[i] вводя IA и JA элементы
объявление и определение переменных и массивов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const unsigned short n = 50;
const unsigned short m = 50;
const unsigned short amt = n*m;
 
    cout << endl << endl;
    int AN[amt] = { 0 };
    int JA[amt] = { 0 };
    int IA[n] = { 0 };
    int AI[n] = { 0 };
    int k = 0;
    int x = 0;
    int y = 0;
    int G = 0;
Заполнение массивов матрицей, считанной из файла


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int col = 0;
//создане элементов матрицы AN, JA, IA 
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (Matrix[i][j] != 0)
                {
                    AN[k] = Matrix[i][j];
                    JA[k] = j;
                    IA[k] = i;
                    AI[k] = i;
                    k++;
                    col += 1;
                }
                IA[0] = 0;
                IA[i + 1] = col;
            }
        }
в коде далее никаких манипуляций с этими массивами не происходит, лишь вывод

вот если надо

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
cout << endl
<< "AN элемент = ";// строчный формат матрицы
for (int i = 0; i < amt; i++)
if (AN[i] > 0)
{
cout << AN[i] << " ";
G += AN[i] = 1;
}
 
        cout << endl
            << "JA столбец = ";//в какой строке находится текущий элемент
        for (int i = 0; i < amt; i++)
            if (AN[i] > 0)
                cout << JA[i] + 1 << " ";
 
        cout << endl
            << "IA элемент = "; //элемент, с которого начинется каждая строка и Колличество ненулевых элементов (G) + 1
 
        for (int i = 0; i < n; i++)
        {
 
 
            cout << IA[i] + 1 << " ";
        }
        cout << G + 1 << endl << endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2016, 11:44     Поиск элемента в матрице разреженного строчного формата
Посмотрите здесь:

Visual C++ БД Открыть текстовый файл, найти в нем строки заданного формата и вывести
Ошибка преобразования формата Visual C++
ошибка преобразования формата Visual C++
Ошибка преобразования формата Visual C++
Visual C++ БД Сортировка столбцов в матрице
Visual C++ Описание формата snp
Найти все локальные минимумы в матрице Visual C++
Visual C++ строки в матрице
По матрице смежности построить граф, а по нему матрицу инцидентности. Visual C++
Движение по матрице Visual C++
Visual C++ Обфускаторы ре - формата
Visual C++ Как прочесть текстовый файл формата cp1251 и вывести на консоль?

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

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

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