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

С++ для начинающих

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

Получить новую матрицу путем замены элементов - C++

07.10.2010, 21:24. Просмотров 736. Ответов 9
Метки нет (Все метки)

Добрый вечер. Ув. форумчане пожалуйста помогите решить задачу по программированию, на тему: матрицы.

Условие:
Дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали.

необходимо написать код на С++, пожалуйста подскажите!

Добавлено через 1 час 57 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdio.h"
 
#define Size 10
 
int Matrix[Size][Size];
 
void Inicialize();
void Calculation();
 
void main()
{
Inicialize();
Calculation();
 
flushall();
getchar();
}
еще трудности с этим "сумма индексов которых четная на среднее геометрическое модулей элементов", не понимаю в упор условие =( помогите !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 21:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить новую матрицу путем замены элементов (C++):

Получить новую матрицу путем деления ее элементов на первый элемент - C++
Задан массив А . Получить из него новый массив путем деления элементов массива на первый элемент массива

Матрицы: получить новую матрицу путем умножения всех элементов на... - C++
Решите пожалуиста!!!Получить новую матрицу путем умножения всех элементов данной матрицы на ее найбольший по модулю элемент!Без iostream...

Получить новую матрицу путем деления всех элементов исходной матрицы на сумму элементов главной диагонали - C++
Дана матрица A(n,n). Получить новую матрицу путем деления всех элементов исходной матрици на сумму элементов, находящейся на главной...

Получить новую матрицу путем деления всех элементов на ее наибольший по модулю элемент - C++
Помогите написать программу на c++, задание: Дана действительная матрица размера n×m , в которой не все элементы равны нулю. Получить...

Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент - C++
2)Задан двумерный массив А. Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент.

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент - C++
помогите с задачей,надо написать код на с++ Дана действительная матрица размером m×n, в которой не все элементы равны нулю. Получить...

9
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 22:20 #2
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
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <ctime> 
#include <cmath>
 
using std::cout;
using std::cin;
using std::endl;
int sr_geo(int **arr, int n)
{
    int sr_geo=0; 
    float pr=1;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if(i==j)
            {
                pr*=abs(arr[i][j]);
            }
        }
    }
    //cout<<"@"<<pr<<"@";
    sr_geo =exp(log((float)pr)/n);
    return sr_geo; 
}
 
int main()
{    
     setlocale(LC_ALL,"Russian");
     srand((unsigned)time(NULL));
     int n;
     int sr;
     int **arr;
     cout<<"Введите розмер массива: ";
     cin>>n;
     arr = new int*[n];
     cout<<"Массив: "<<endl;
     for(int i=0; i<n; i++)
     {
          arr[i] = new int[n];
          for(int j=0; j<n; j++)
           {
             arr[i][j]=rand()%9+1;
             cout<<arr[i][j]<<"  ";
            }
        cout<<endl;
     }
     sr = sr_geo(arr,n);
     cout<<endl;
     cout<<"Сформированая матрица:"<<endl;
     for(int i=0; i<n; i++)
     {
         for(int j=0; j<n; j++)
         {
             if((i+j)%2==0)
             {
                 arr[i][j]= sr;
             }
             cout<<arr[i][j]<<"  ";
         }
         cout<<endl;
     }
 
     delete arr;
     system("pause");
   return 0;
}
0
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68
07.10.2010, 23:30  [ТС] #3
MILAN

спасибо вам огромное!

Добавлено через 2 минуты
выдает ошибку при компиляции((

C:\Program Files\Microsoft Visual Studio\MyProjects\ll\ff.cpp(51) : error C2374: 'i' : redefinition; multiple initialization
C:\Program Files\Microsoft Visual Studio\MyProjects\ll\ff.cpp(38) : see declaration of 'i'
Error executing cl.exe.
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 23:38 #4
Попробуйте

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
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <ctime> 
#include <cmath>
 
using std::cout;
using std::cin;
using std::endl;
int sr_geo(int **arr, int n)
{
        int sr_geo=0; 
        float pr=1;
        for(int i=0; i<n; i++)
        {
                for(int j=0; j<n; j++)
                {
                        if(i==j)
                        {
                                pr*=abs(arr[i][j]);
                        }
                }
        }
        //cout<<"@"<<pr<<"@";
        sr_geo =(int)exp(log((float)pr)/n);
        return sr_geo; 
}
 
int main()
{    
         setlocale(LC_ALL,"Russian");
         srand((unsigned)time(NULL));
         int n,i,j;
         int sr;
         int **arr;
         cout<<"Введите розмер массива: ";
         cin>>n;
         arr = new int*[n];
         cout<<"Массив: "<<endl;
         for(i=0; i<n; i++)
         {
                  arr[i] = new int[n];
                  for(j=0; j<n; j++)
                   {
                     arr[i][j]=rand()%9+1;
                     cout<<arr[i][j]<<"  ";
                        }
            cout<<endl;
         }
         sr = sr_geo(arr,n);
         cout<<endl;
         cout<<"Сформированая матрица:"<<endl;
         for(i=0; i<n; i++)
         {
                 for(j=0; j<n; j++)
                 {
                         if((i+j)%2==0)
                         {
                                 arr[i][j]= sr;
                         }
                         cout<<arr[i][j]<<"  ";
                 }
                 cout<<endl;
         }
 
         delete arr;
         system("pause");
   return 0;
}
0
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68
07.10.2010, 23:44  [ТС] #5
спасибо, работает!))
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 23:44 #6
No0b41k, http://codepad.org/36ZsGNo4
0
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68
07.10.2010, 23:47  [ТС] #7
//cout<<"@"<<pr<<"@";
sr = sr_geo(arr,n);
вы бы не могли обьеснить что это значит?

а вот это
system("pause");
из #include <ctime> ?

Добавлено через 35 секунд
srand((unsigned)time(NULL));
и это.

Добавлено через 45 секунд
спасибо огромное человеческое!
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 23:57 #8
Цитата Сообщение от No0b41k Посмотреть сообщение
sr = sr_geo(arr,n);
Присвоим переменой sr результат выполнения функции sr_geo() (функция поиска среднего геометрического);

Цитата Сообщение от No0b41k Посмотреть сообщение
srand((unsigned)time(NULL));
Функция, которая устанавливает зерно генерации случайных чисел (аргумент - время);

Добавлено через 1 минуту
Цитата Сообщение от MILAN Посмотреть сообщение
//cout<<"@"<<pr<<"@";
Не обращайте внимания, ето для себя, когда тестил, забыл убрать!!!

Добавлено через 1 минуту
Цитата Сообщение от No0b41k Посмотреть сообщение
#include <ctime>
Нет. Ето для

C++
1
srand((unsigned)time(NULL));
1
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68
08.10.2010, 00:30  [ТС] #9
я повторяюсь, но скажу еще много много раз СПАСИБО!
0
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
17.10.2010, 19:26 #10
не туда написал....
0
17.10.2010, 19:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 19:26
Привет! Вот еще темы с ответами:

Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю элемент - C++
Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю элемент

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент - C++
Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент

Получить новую матрицу путем вычитания от элементов каждого столбца первой матрицы суммы элементов соответствующих строк второй матрицы - C++
Даны две целочисленные квадратные матрицы 4-го порядка. Получить новую матрицу путем вычитания от элементов каждого столбца первой матрицы...

Получить новую матрицу путем сложения - C++
Кто может уделить немного времени знающий язык С++ и помочь сделать данную программу плиз... с операторами ввода/вывода(...


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

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

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