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

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

07.10.2010, 21:24. Просмотров 789. Ответов 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
Ответы с готовыми решениями:

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

Матрицы: получить новую матрицу путем умножения всех элементов на...
Решите пожалуиста!!!Получить новую матрицу путем умножения всех элементов...

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

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

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

9
MILAN
888 / 782 / 186
Регистрация: 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 / 1
Регистрация: 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
888 / 782 / 186
Регистрация: 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 / 1
Регистрация: 19.09.2010
Сообщений: 68
07.10.2010, 23:44  [ТС] 5
спасибо, работает!))
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 23:44 6
No0b41k, http://codepad.org/36ZsGNo4
0
No0b41k
0 / 0 / 1
Регистрация: 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
888 / 782 / 186
Регистрация: 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 / 1
Регистрация: 19.09.2010
Сообщений: 68
08.10.2010, 00:30  [ТС] 9
я повторяюсь, но скажу еще много много раз СПАСИБО!
0
vaselo
19 / 19 / 5
Регистрация: 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

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

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

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


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

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

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