Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Alexander Watt
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 10
1

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

26.11.2014, 22:07. Просмотров 1774. Ответов 10
Метки нет (Все метки)

Из матрицы размером NxM получить вектор B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, иначе 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 22:07
Ответы с готовыми решениями:

Матрицы. Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы
1. Дана матрица A (3 х 5). Получить вектор X, равный P-й строке матрицы, и...

Из матрицы получить вектор по правилу
Из матрицы размером N×M получить вектор B, присвоим его k-му элементу значение...

Получить вектор сумм элементов нечетных столбцов матрицы
1.В матрице вещественных чисел из 5ти строк и 4х столбцов определить кол-во...

Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb.
Привет. Не могу разобратся, вот задание: Есть квадратная матрица А порядка n и...

Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор:...

10
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
26.11.2014, 22:57 2
Я такой тупой, или так написано? Допустим, эту часть я понял
"Из матрицы размером NxM получить вектор B, присвоив его k-му элементу значение 0,"
Преобразуем и присвоим значение.
Но вот остальная часть
если все элементы k-го столбца матрицы нулевые, иначе 1
не согласована с первым.
0
Alexander Watt
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 10
26.11.2014, 23:02  [ТС] 3
я сам теперь что-то не понял. Принял бы помощь хотя бы с логической частью сего задания)
0
Mr_Progger
24 / 24 / 16
Регистрация: 01.11.2013
Сообщений: 177
26.11.2014, 23:12 4
Вроде всё ясно, если элементы k-го столбца нулевые то добавить в вектор 0, иначе добавить 1.
Изначально вектор пуст.
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
26.11.2014, 23:32 5
Цитата Сообщение от Mr_Progger Посмотреть сообщение
Вроде всё ясно, если элементы k-го столбца нулевые то добавить в вектор 0, иначе добавить 1.
Как он написал, то это нужно добавить не в конец, а k-ому элементу.
0
Mr_Progger
24 / 24 / 16
Регистрация: 01.11.2013
Сообщений: 177
26.11.2014, 23:40 6
Цитата Сообщение от casper007 Посмотреть сообщение
Как он написал, то это нужно добавить не в конец, а k-ому элементу.
а k-ый элемент это который?
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
26.11.2014, 23:51 7
Цитата Сообщение от Mr_Progger Посмотреть сообщение
а k-ый элемент это который?
вот сюда все и упирается. Условие весьма расплывчато написано
0
Mr_Progger
24 / 24 / 16
Регистрация: 01.11.2013
Сообщений: 177
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;
}
1
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
27.11.2014, 00:04 9
Цитата Сообщение от Mr_Progger Посмотреть сообщение
k-ый элемент это номер столбца
Я понял. Но не понятно, что куда присвоить. Скорей всего пользователь должен сам указать этот k-ый элемент, и уже на его место поставит 0 или 1
0
Mr_Progger
24 / 24 / 16
Регистрация: 01.11.2013
Сообщений: 177
27.11.2014, 00:20 10
Цитата Сообщение от casper007 Посмотреть сообщение
Но не понятно, что куда присвоить.
если в первом столбце матрицы все элементы нулевые, то в первый элемент вектора пишем 0 иначе 1
если во втором столбце матрицы все элементы нулевые, то во второй элемент вектора пишем 0 иначе 1
и т.д. пока не переберём все столбцы
0
Клейтон
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");
  }
0
31.05.2016, 21:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2016, 21:01

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

Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных...

Реализовать умножение матрицы на матрицу и матрицы на вектор
Доброй ночи форумчане,не знаю куда податься уже, я полный ноль в...


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

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

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