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

Создать новую матрицу

21.05.2011, 02:00. Просмотров 779. Ответов 12
Метки нет (Все метки)

Есть такая задача: Есть квадратная матрица В(А,А).Создать новую матрицу, с данной в результате умножения всех элементов каждого рядка, кроме первого, на его первой элемент, та деления всех элементов каждого столбца, кроме первого, на его первой элемент.

Помогите! Не знаю как это реализовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 02:00
Ответы с готовыми решениями:

Создать квадратную матрицу, сформировать новую матрицу такой же размерности путём транспонирования исходной
Создать квадратную матрицу размерности (30, 30). Заполнить её случайными целыми...

Создать новую матрицу из столбцов, которые не содержат элементы из заданного диапазона
Ввести матрицу 3x8 действительных чисел и создать новую матрицу с тех столб-...

Создать новую матрицу: каждый элемент - полусумма среднеарифметических соответствующих строки и столбца исходной
По введённой матрице действительных чисел размером 5х7 вычислить новую матрицу,...

Создать новую матрицу, скопировав её из исходной; заполнить 30% новой матрицы нулями в случайном порядке
Задание 3 скопировать 2-мерный массив и 30% чисел в нем заполнить ...

Если в матрице есть одна строка, сумма элементов которой отрицательна, создать новую матрицу по правилу
Люди, кто-нибудь знает как задачку решить? Хотя бы на мысль подтолкните...

12
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 02:14 #2
Цитата Сообщение от Cherepinsky Посмотреть сообщение
Помогите! Не знаю как это реализовать.
что именно не получается?
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 02:26  [ТС] #3
Цитата Сообщение от Maxwe11 Посмотреть сообщение
что именно не получается?
Не знаю как умножить все элементы каждого рядка, кроме первого, на его первой элемент, та поделить все элементы каждого столбца, кроме первого, на его первой элемент.
И с всего этого создать новую матрицу.
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 02:38 #4
Цитата Сообщение от Cherepinsky Посмотреть сообщение
Не знаю как умножить все элементы каждого рядка, кроме первого, на его первой элемент, та поделить все элементы каждого столбца, кроме первого, на его первой элемент.
И с всего этого создать новую матрицу.
ваши нароботки, хоть какие нибудь?
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 02:42  [ТС] #5
Цитата Сообщение от Maxwe11 Посмотреть сообщение
ваши нароботки, хоть какие нибудь?
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
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
//#include<match.h>
int const n=6;
int B[n][n];
mas[n][n];
int i,j,t,y;
void main()
{
//randomize();
srand(time(NULL));
clrscr();
for(i=0;i<n;i++)
  {
  for(j=0;j<n;j++)
      {
    B[i][j]=rand()%-100;
    printf("%5d",B[i][j]);
      }
      cout<<("\n");
   }
   cout<<"\n\n\n";
          for
 
          for(i=0;i<n;i++)
          {
          for(j=0;j<n;j++)
          {
              mas[j][i]=B[j][i];
          printf("%5d",B[i][j]);
          }
          cout<<"\n";
       }
   getch();
}
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 03:03 #6
проверяйте
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int matr[5][5];
    for(unsigned i = 0; i < 5; i++)
    {
    for(unsigned j = 0; j < 5; j++)
    {
        matr[i][j] = rand() % (i * j + j + i + 1) + 1;
        printf("%3d", matr[i][j]);
    }
           printf("\n");
   }
//multiply
   for(unsigned i = 0; i < 5; i++)
   {
    for(unsigned j = 1; j < 5; j++)
    {
        matr[i][j] *= matr[i][0];
    }
    }
//div
    for(unsigned j = 0; j < 5; j++)
    {
    for(unsigned i = 1; i < 5; i++)
    {
        matr[i][j] /= matr[0][j];
    }
    } 
    getchar();
    return 0;
}
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 03:06 #7
подправил чуток
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 03:07  [ТС] #8
Мне нужно реализовать алгоритм так:
Пусть первая матрица такая :

00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44

где 00,01,02,03,04 ... индексы соответствующих элементов .
С этой матрицы мене нужно создать новую в где:

1-элемент: 00
2-элемент: 01*00
3-элемент: 02*00
4-элемент: 03*00
5-элемент: 04*00
6-элемент: 10/00
7-элемент: 11*10/01
8-элемент: 12*10/02
9-элемент: 13*10/03
10-элемент: 14*10/04
11-элемент: 20/00
12-элемент: 21*20/01
13-элемент: 22*20/02
14-элемент: 23*20/03
15-элемент: 24*20/04
...
...
...
Так как указано в задании.
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 03:07  [ТС] #9
От такую задачку мне решить не под силу, прошу мне помочь!
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 03:18 #10
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
46
47
48
49
50
51
52
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    double matr[5][5];
    for(unsigned i = 0; i < 5; i++)
    {
    for(unsigned j = 0; j < 5; j++)
    {
        matr[i][j] = rand() % (i * j + j + i + 1) + 1;
        printf("%.2lf\t", matr[i][j]);
    }
    printf("\n");
    }
//multiply
    printf("\n");
    for(unsigned i = 0; i < 5; i++)
    {
    for(unsigned j = 1; j < 5; j++)
    {
        matr[i][j] *= matr[i][0];
    }
    }
    for(unsigned i = 0; i < 5; i++)
    {
    for(unsigned j = 0; j < 5; j++)
    {
        printf("%.2lf\t", matr[i][j]);
    }
    printf("\n");
     }
//div
     printf("\n");
     for(unsigned j = 0; j < 5; j++)
     {
    for(unsigned i = 1; i < 5; i++)
    {
        matr[i][j] /= matr[0][j];
    }
     }
     for(unsigned i = 0; i < 5; i++)
     {
    for(unsigned j = 0; j < 5; j++)
    {
        printf("%.2lf\t", matr[i][j]);
    }
    printf("\n");
     }
     getchar();
     return 0;
}
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 03:25  [ТС] #11
в строке
C++
1
for(unsigned i = 0; i < 5; i++)
на этапе компиляции видает ошибку в строке 18,25,42: Multiple declaration for 'i'
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 03:32 #12
Цитата Сообщение от Cherepinsky Посмотреть сообщение
Multiple declaration for 'i'
с английским совсем туго? хотя и не только с ним
поубирайте unsigned во всех циклах кроме первого
0
Cherepinsky
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
21.05.2011, 04:01  [ТС] #13
Можете подсказать как операции превращения отдельного рядка и столбца оформить как процедуру?

Добавлено через 15 минут
И как этот код будет выглядеть на Паскале?

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
46
47
48
49
50
51
52
53
54
#include<conio.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
clrscr();
        double matr[5][5];
        for(unsigned i = 0; i < 5; i++)
        {
                for(unsigned j = 0; j < 5; j++)
                {
                        matr[i][j] = rand() % (i * j + j + i + 1) + 1;
                        printf("%.2lf\t", matr[i][j]);
                }
                printf("\n");
        }
//multiply
    printf("\n");
        for( i = 0; i < 5; i++)
        {
                for(unsigned j = 1; j < 5; j++)
                {
                        matr[i][j] *= matr[i][0];
                }
        }
        for( i = 0; i < 5; i++)
        {
                for(unsigned j = 0; j < 5; j++)
                {
                        printf("%.2lf\t", matr[i][j]);
                }
                printf("\n");
        }
//div
        printf("\n");
        for(unsigned j = 0; j < 5; j++)
        {
                for( i = 1; i < 5; i++)
                {
                        matr[i][j] /= matr[0][j];
                }
        }
        for(i = 0; i < 5; i++)
        {
                for( j = 0; j < 5; j++)
                {
                        printf("%.2lf\t", matr[i][j]);
                }
                printf("\n");
        }
        getchar();
        return 0;
}
0
21.05.2011, 04:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2011, 04:01

Создать новую матрицу из тех столбцов исходной, сумма которых больше суммы всех элементов матрицы
Ввести матрицу из n*m чисел (массив и числа m, n ввести с экрана). Создать...

Получить новую матрицу
Здравствуйте, нужен код для задачки на языке C: Даны две действительные...

Получить новую матрицу
Даны две целочисленные квадратные матрицы порядка n. Нужно получить новую...


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

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

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