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

Из матрицы получить вектор - C++

Восстановить пароль Регистрация
 
Alexander Watt
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 10
26.11.2014, 22:07     Из матрицы получить вектор #1
Из матрицы размером NxM получить вектор B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, иначе 1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 22:07     Из матрицы получить вектор
Посмотрите здесь:

C++ Получить вектор сумм элементов нечетных столбцов матрицы
C++ Получить вектор
C++ Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb.
Матрицы. Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы C++
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
26.11.2014, 22:57     Из матрицы получить вектор #2
Я такой тупой, или так написано? Допустим, эту часть я понял
"Из матрицы размером NxM получить вектор B, присвоив его k-му элементу значение 0,"
Преобразуем и присвоим значение.
Но вот остальная часть
если все элементы k-го столбца матрицы нулевые, иначе 1
не согласована с первым.
Alexander Watt
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 10
26.11.2014, 23:02  [ТС]     Из матрицы получить вектор #3
я сам теперь что-то не понял. Принял бы помощь хотя бы с логической частью сего задания)
Mr_Progger
22 / 22 / 9
Регистрация: 01.11.2013
Сообщений: 163
26.11.2014, 23:12     Из матрицы получить вектор #4
Вроде всё ясно, если элементы k-го столбца нулевые то добавить в вектор 0, иначе добавить 1.
Изначально вектор пуст.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
26.11.2014, 23:32     Из матрицы получить вектор #5
Цитата Сообщение от Mr_Progger Посмотреть сообщение
Вроде всё ясно, если элементы k-го столбца нулевые то добавить в вектор 0, иначе добавить 1.
Как он написал, то это нужно добавить не в конец, а k-ому элементу.
Mr_Progger
22 / 22 / 9
Регистрация: 01.11.2013
Сообщений: 163
26.11.2014, 23:40     Из матрицы получить вектор #6
Цитата Сообщение от casper007 Посмотреть сообщение
Как он написал, то это нужно добавить не в конец, а k-ому элементу.
а k-ый элемент это который?
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
26.11.2014, 23:51     Из матрицы получить вектор #7
Цитата Сообщение от Mr_Progger Посмотреть сообщение
а k-ый элемент это который?
вот сюда все и упирается. Условие весьма расплывчато написано
Mr_Progger
22 / 22 / 9
Регистрация: 01.11.2013
Сообщений: 163
26.11.2014, 23:55     Из матрицы получить вектор #8
Цитата Сообщение от casper007 Посмотреть сообщение
вот сюда все и упирается. Условие весьма расплывчато написано
Условие написано ясно, k-ый элемент это номер столбца от 1 до N, а точнее от 0 до N-1

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <ctime>
#include <vector>
#include <iomanip>
 
 
int main()
{
    const int n = 3;
    const int m = 3;
    int a = 0, b;
    int matr[m][n] ={ { 0, 1, 1 }, { 0, 23, 3 }, {0, 5, 6}};
    std::vector<int> vect;
    srand(time(NULL));
 
    /*for (size_t i = 0; i < m; i++)
    for (size_t j = 0; j < n; j++)
        matr[i][j] = rand() % 10; */
    for (size_t i = 0; i < m; i++)
    {
        for (size_t j = 0; j < n; j++)
            std::cout << std::setw(2) << matr[i][j];
        std::cout << std::endl;
    }
    std::cout << "---------------------" << std::endl;
    while (a < n)
    {
        b = 0;
        for (size_t i = 0; i < m; i++)
        {
            if (matr[i][a] != 0)
                b = 1;
        }
        if (b == 0)
            vect.push_back(0);
        else
            vect.push_back(1);
    a++;
    }
    for (std::vector<int>::iterator iter = vect.begin(); iter != vect.end(); iter++)
        std::cout << std::setw(3) << *iter;
    std::cout << std::endl;
    system("pause");
    return 0;
}
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
27.11.2014, 00:04     Из матрицы получить вектор #9
Цитата Сообщение от Mr_Progger Посмотреть сообщение
k-ый элемент это номер столбца
Я понял. Но не понятно, что куда присвоить. Скорей всего пользователь должен сам указать этот k-ый элемент, и уже на его место поставит 0 или 1
Mr_Progger
22 / 22 / 9
Регистрация: 01.11.2013
Сообщений: 163
27.11.2014, 00:20     Из матрицы получить вектор #10
Цитата Сообщение от casper007 Посмотреть сообщение
Но не понятно, что куда присвоить.
если в первом столбце матрицы все элементы нулевые, то в первый элемент вектора пишем 0 иначе 1
если во втором столбце матрицы все элементы нулевые, то во второй элемент вектора пишем 0 иначе 1
и т.д. пока не переберём все столбцы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2016, 21:01     Из матрицы получить вектор
Еще ссылки по теме:

C++ Реализовать умножение матрицы на матрицу и матрицы на вектор
C++ Вектор с классом должен получить класс (?)
C++ не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор

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

Или воспользуйтесь поиском по форуму:
Клейтон
0 / 0 / 1
Регистрация: 11.02.2013
Сообщений: 33
31.05.2016, 21:01     Из матрицы получить вектор #11
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
int main()
{int i,n,mini,sum;
int c,y,max=0;
int a[100];
//vvod kol el massiva
printf("vvedite kol elementov massiva\n");
scanf("%i",&n);
//vvod massiva
printf("vvedite elementi massiva\n");
for(i=0;i<n;i++)
scanf("%i",&a[i]);
//vivod massiva
for(i=0;i<n;i++)
printf(" %3d",a[i]);
printf("\n");
 
       //Г*Г*éäåì Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ Г¬Г*Г±Г±ГЁГўГ*
    for (i=0;i<(n-1);i++)
      {
        if ((a[i]>=a[i+1])&&(a[i]>=a[max]))
          max=i;
      }
    if (a[n-1]>a[max])
      max=n-1;
    printf("max = %d\n",a[max]);
    //summa el
    if (max!=0)
      {
        sum=0;
        for (i=0;i<max;i++)
          {if (a[i]>0)
          
            sum=sum+a[i];
          }
printf("sum = %d\n",sum);
       }
       
    else
      printf("v promezutke net znachenii\n");
  }
Добавлено через 7 минут
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
int main()
{int i,n,mini,sum;
int c,y,max=0;
int a[100];
//vvod kol el massiva
printf("vvedite kol elementov massiva\n");
scanf("%i",&n);
//vvod massiva
printf("vvedite elementi massiva\n");
for(i=0;i<n;i++)
scanf("%i",&a[i]);
//vivod massiva
for(i=0;i<n;i++)
printf(" %3d",a[i]);
printf("\n");
 
       //find max element
    for (i=0;i<(n-1);i++)
      {
        if ((a[i]>=a[i+1])&&(a[i]>=a[max]))
          max=i;
      }
    if (a[n-1]>a[max])
      max=n-1;
    printf("max = %d\n",a[max]);
    //summa el
    if (max!=0)
      {
        sum=0;
        for (i=0;i<max;i++)
          {if (a[i]>0)
          
            sum=sum+a[i];
          }
printf("sum = %d\n",sum);
       }
       
    else
      printf("v promezutke net znachenii\n");
  }
Yandex
Объявления
31.05.2016, 21:01     Из матрицы получить вектор
Ответ Создать тему
Опции темы

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