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

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

Войти
Регистрация
Восстановить пароль
 
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
#1

Найти норму матрицы - C++

08.12.2013, 23:50. Просмотров 742. Ответов 9
Метки нет (Все метки)

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

Как составить программу?
Есть набросок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath>
using namespace std;
int main()
{float result; float sum=0;
   cout<<"razmer macciva 10x10"<<endl;
 int a[10][10];//задаем массив
 int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
  for (int j=0; j<m; j++)
 for (int i=0; i<n; i++)
 
 {cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//заполняем массив
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
sum+=pow(a[i][j],2);//находим сумму всех элементов в квадрате//
result=sqrt(sum);//вычисляем квадртный корень из суммы
cout<<"HOPMA matricy="<<result<<endl;//выводим результат
    return 0;
}
Добавлено через 2 минуты
Как, после подсчета суммы в каждой строке, присвоить эту сумму отдельной переменной для дальнейшего обнаружения максимального из чисел?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 23:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти норму матрицы (C++):

Найти норму матрицы - C++
везде уже обыскалась... найти норму матрицы, возвести в квадрат каждый элемент матрицы, суммировать результат и извлечь корень...

Найти норму матрицы - C++
Доброй ночи! Помогите с задачкой: Описать функцию Norm1(A, M, N) вещественного типа, вычисляющую норму вещественной матрицы A размера M х...

Найти норму матрицы - C++
Нужно составить программу нахождения L - нормы матрицы A= размером (m*m) по формуле ...

Вычислить норму матрицы - C++
Уважаемые знатоки не поможете добавить в программу норму матриц в коде работает вычитание умножение сложение копирование... но как...

Матрицы и указатели (найти такие k, что k-я строка матрицы совпадает с k-м столбцом; 2) найти сумму элементов) - C++
Составить программу обработки матрицы. Доступ к элементам матрицы осуществлять с помощью указателя. Элементы матрицы заполнить, используя...

Поиск пассажиров, у которых вес багажа превышает норму - C++
Здравствуйте. По практике дали на дом решить задачу по теме &quot;структуры&quot;. Сколько не пытался, решить не смог. Буду благодарен за...

9
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
08.12.2013, 23:52 #2
Цитата Сообщение от filimoncc Посмотреть сообщение
Найти норму матрицы, если норма матрицы представляет из себя максимальное из чисел, полученных при сложении всех элементов каждой строки, взятых по модулю.

Как составить программу?
Есть набросок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath>
using namespace std;
int main()
{float result; float sum=0;
   cout<<"razmer macciva 10x10"<<endl;
 int a[10][10];//задаем массив
 int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
  for (int j=0; j<m; j++)
 for (int i=0; i<n; i++)
 
 {cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//заполняем массив
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
sum+=pow(a[i][j],2);//находим сумму всех элементов в квадрате//
result=sqrt(sum);//вычисляем квадртный корень из суммы
cout<<"HOPMA matricy="<<result<<endl;//выводим результат
    return 0;
}
Добавлено через 2 минуты
Как, после подсчета суммы в каждой строке, присвоить эту сумму отдельной переменной для дальнейшего обнаружения максимального из чисел?
ну так ты её составил
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
09.12.2013, 00:11  [ТС] #3
Doksim, в 15 и 16 строке надо что-то придумать другое. И программа делает не то (см. условие), а значит до конца не составлена.
0
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
09.12.2013, 00:23 #4
Алгоритм:
-просуммируем все элементы в строке, взятые по модулю (функция abs() сгодится, ну или просто на -1 домножим, если число отрицательное ), результат сохраним в переменную sum;
-sum сохраним в одномерный массив в ячеке с индексом, равным индексу строки;
-повторяем до тех пор, пока управляющая переменная < числа строк в матрице;

-далее работаем с полученным массивом чисел, а именно присваиваем первый элемент переменной max, затем сравниваем следующий элемент с максимальным, и если он больше, то изменяем значение переменной max;
повторяем, пока управляющий индекс меньше размера массива.
Полученное значение max и есть норма матрицы. Сами реализуете?
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
09.12.2013, 00:46  [ТС] #5
StackOverflow, если несложно, напишите код.

Добавлено через 13 секунд
а то срочно надо.
0
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
09.12.2013, 00:58 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//начиная с 15 строчки кода
    {
        sum += abs( a[ i ][ j ] );
    } //вышли из вложенного цикла
    b[ i ] = sum; //здесь будем хранить наши суммы
    sum = 0; //обнуляем счётчик sum, чтобы начать подсчёт с новой строки
}
 
int max = 0;
for ( int k =  0; k < n; k++ )
{
    if ( b[ k ] > max )
    {
        max = b[ k ];
    }
}
 
//дальше можете делать что угодно с ответом ( он сохранён в max )
И, да, зачем вы переопределяете уже заданную размерность массива?)
1
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
09.12.2013, 01:03 #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
#include <iostream>
#include <math.h>
#include <time.h>;
using namespace std;
int main()
{
    srand(time(0));
    int sum=0,max_sum=0,max_ind;
    double result;
    cout<<"razmer macciva 10x10"<<endl;
    const int n=10;
    int a[n][n];//задаем массив
    //int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
    /*for (int j=0; j<n; j++)
        for (int i=0; i<n; i++) {
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];//заполняем массив
        }*/
    for (int i=0; i<n;i++) { //заполнение массива случайными числами -10...+10
        for (int j=0; j<n; j++) {
            a[i][j]=rand()%20-10;
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    for (int i=0; i<n; i++) {
        sum=0;
        for (int j=0; j<n; j++) 
            sum+=abs(a[i][j]);
        
        if (max_sum<sum) {
            max_sum=sum;
            max_ind=i;
        }
    }
    result=sqrt((double)sum);//вычисляем квадртный корень из суммы
    cout<<"HOPMA matricy="<<result<<" Stroka #"<<max_ind<<endl;//выводим результат
    system("pause");
    return 0;
}
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
09.12.2013, 01:17  [ТС] #8
StackOverflow, newb_programmer, а ещё вот в этой темке можете помочь? В чём ошибка?
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
09.12.2013, 01:38  [ТС] #9
StackOverflow, добавил вашу строчку и ответ выдаёт программа неверный.
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 <iostream>
#include <cmath>
using namespace std;
int main()
{float result; float sum=0;
   cout<<"razmer macciva 10x10"<<endl;
   int b[100];
 int a[10][10];//задаем массив
 int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
  for (int i=0; i<n; i++)
 for (int j=0; j<m; j++)
 
 {cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//заполняем массив
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{{
        sum += abs( a[ i ][ j ] );
    } //вышли из вложенного цикла
    b[i] = sum; //здесь будем хранить наши суммы
    sum = 0; //обнуляем счётчик sum, чтобы начать подсчёт с новой строки
}
 
int max;
max=b[0];
for ( int k=1; k < n; k++ )
{
    if ( b[ k ] > max )
    {
        max = b[ k ];
    }
}
cout<<"HOPMA matricy="<<max<<endl;//выводим результат
    return 0;
}
0
Миниатюры
Найти норму матрицы  
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
09.12.2013, 02:14 #10
filimoncc, во первых, у вас массив 10х10 зарезервирован, вы об этом не забывайте.
Ну и разберитесь уже наконец с фигурными скобками. И оформляйте, пожалуйста, как следует. Существуют общие правила оформления, которых должны придерживаться программисты. Тяжело читать такой код.

Добавлено через 12 минут
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    
    float sum = 0;
 
    cout << "razmer macciva 10x10" << endl;
    float b[10];
    int a[10][10];//задаем массив
 
    for ( int i = 0; i < 10; i++ ) {
        for ( int j = 0; j < 10; j++) {
            cout << "a[" << i << "][" << j<< "]=";
            cin >> a[i][j];
        }//заполняем массив
    }
 
    for ( int i = 0; i < 10; i++) {
        for ( int j = 0; j < 10; j++)
        {
            sum += abs( a[ i ][ j ] );
        } //вышли из вложенного цикла
        b[i] = sum; //здесь будем хранить наши суммы
        sum = 0; //обнуляем счётчик sum, чтобы начать подсчёт с новой строки
    }
 
    int max;
    max=b[0];
 
    for ( int k=1; k < 10; k++ ) {
        if ( b[ k ] > max ) {
            max = b[ k ];
        }
    }
 
    cout << "HOPMA matricy=" << max << endl;//выводим результат
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 02:14
Привет! Вот еще темы с ответами:

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

Найти количество элементов матрицы, которые совпадают с элементами другой матрицы - C++
Помогите найти количество элементов 2 мерного массива, которые совпадают с элементами другого аналогичного массива. Массив 5х3.

Для матрицы найти такие k, что k-я строка матрицы совпадает с k-м столбцом - C++
Помогите решить задачку Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти...

Сформировать одномерный массив из диагональных элементов матрицы. Найти след матрицы - C++
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
09.12.2013, 02:14
Ответ Создать тему
Опции темы

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