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

Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! - C++

Восстановить пароль Регистрация
 
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
21.11.2010, 19:15     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #1
Всем привет, помогите пожалустат,нужен код програмы которая вычисляет суму диагоналей матрицы,главной и паралельной!
За рание большое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 19:15     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной!
Посмотрите здесь:

Написать функцию для вычисления суммы элементов квадратной матрицы, расположенных ниже главной диагонали C++
C++ Написать функцию для вычисления суммы элементов n квадратных матриц, которые расположены ниже главной диагонали.
Написать сумму всех верхних диагоналей матрицы, параллельной главной C++
C++ Написать програму вычисления суммы тех элементов целочисленного массива по. n0.n1…n100, которые являются удвоенными нечетными числами
C++ Написать програму вычесления элементов матрицы размером NxN, которые больше чем 1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OdNairy
 Аватар для OdNairy
7 / 7 / 1
Регистрация: 07.02.2010
Сообщений: 22
21.11.2010, 19:45     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #2
Элементарно. Приведу не полный код. Буду подразумевать, что arr - массив, m - количество строк и количество столбцов, т.к. матрица должна быть квадратной, чтобы была диагональ.
C++
1
2
3
4
5
6
7
8
9
int Sum=0;
 
// Main diagonal
for(int i = 0; i <m;m++)
     sum+=arr[i][i];
 
// Parallel diag
for(int i = 0; i <m;m++)
     sum+=arr[i][m-i];
Если матрица создавалась не через оператор new, то вместо arr[i][i] пишите *(arr+i*n+i);
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
21.11.2010, 20:02  [ТС]     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #3
А можно плиз полный код, а то я не пойму что куда подставить,у меня от есть код который вычисляет только главную диагональ
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<time.h>
using namespace std;
void main()
{

setlocale(LC_CTYPE,"Rus");
const int n=4;
int mass[n][n];
int m=0;
srand((unsigned)time(NULL));
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
mass[i][j]=rand()%10;
cout<<mass[i][j]<<"\t";
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<n;i++)
{i
m+=mass[i][i];




}
cout<<"Сумма элементов главной диагонали равна: "<<m;

cout<<endl;
getch();
}



А как сюда добавить что бы еще вычисляло парарельную суму?подскажите плиз!
OdNairy
 Аватар для OdNairy
7 / 7 / 1
Регистрация: 07.02.2010
Сообщений: 22
21.11.2010, 20:15     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
 
void main(){
setlocale(LC_CTYPE,"Rus");
const int n=4;
 
int mass[n][n];
int m=0;
srand((unsigned)time(NULL));
 
for(int i=0;i<n;i++)
    for(int j=0;j<n;j++){
        mass[i][j]=rand()%10;
        cout<<mass[i][j]<<"\t";
        if (j==n-1) cout << endl;
    }
cout << endl;
 
for(int i=0;i<n;i++)
     m+=mass[i][i];
}
cout<<"Сумма элементов главной диагонали равна: "<<m;
 
for(int i=0;i<n;i++)
     m+=mass[i][n-i];
}
cout<<"Сумма элементов параллельной диагонали равна: "<<m;
 
cout<<endl;
getch();
}
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
21.11.2010, 20:31  [ТС]     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #5
Цитата Сообщение от OdNairy Посмотреть сообщение
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
 
void main(){
setlocale(LC_CTYPE,"Rus");
const int n=4;
 
int mass[n][n];
int m=0;
srand((unsigned)time(NULL));
 
for(int i=0;i<n;i++)
    for(int j=0;j<n;j++){
        mass[i][j]=rand()%10;
        cout<<mass[i][j]<<"\t";
        if (j==n-1) cout << endl;
    }
cout << endl;
 
for(int i=0;i<n;i++)
     m+=mass[i][i];
}
cout<<"Сумма элементов главной диагонали равна: "<<m;
 
for(int i=0;i<n;i++)
     m+=mass[i][n-i];
}
cout<<"Сумма элементов параллельной диагонали равна: "<<m;
 
cout<<endl;
getch();
}
Не работает,ошибок кучу выдает
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(28): error C2143: синтаксическая ошибка: отсутствие ";" перед "<<"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(28): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2059: синтаксическая ошибка: for
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2143: синтаксическая ошибка: отсутствие ";" перед "++"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2086: int i: переопределение
1> d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): см. объявление "i"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(30): error C2059: синтаксическая ошибка: )
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(32): error C2059: синтаксическая ошибка: }
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(32): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(32): error C2059: синтаксическая ошибка: }
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(35): error C2143: синтаксическая ошибка: отсутствие ";" перед "<<"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(35): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(35): error C2086: int cout: переопределение
1> d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(28): см. объявление "cout"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(36): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(36): warning C4273: getch: несовместимая компоновка dll
1> c:\program files\microsoft visual studio 10.0\vc\include\conio.h(128): см. предыдущее определение "getch"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(37): error C2059: синтаксическая ошибка: }
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(37): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
1>d:\програмирование 1курс\01.10.10\lab3 dom\lab3 dom\lab3 dom.cpp(37): error C2059: синтаксическая ошибка: }
OdNairy
 Аватар для OdNairy
7 / 7 / 1
Регистрация: 07.02.2010
Сообщений: 22
21.11.2010, 20:34     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #6
Просто создай вторую переменную m2. И в том блоке. в котором считается сумма второстепенной диагонали замени m на m2. И если тебе надо будет сумма, то выведи cout << m+m2;

P.S.
Спасибо в карман не положишь =)) Можно просто на кнопочку нажать "Спасибо" =)
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
21.11.2010, 20:47  [ТС]     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #7
Цитата Сообщение от OdNairy Посмотреть сообщение
Просто создай вторую переменную m2. И в том блоке. в котором считается сумма второстепенной диагонали замени m на m2. И если тебе надо будет сумма, то выведи cout << m+m2;

P.S.
Спасибо в карман не положишь =)) Можно просто на кнопочку нажать "Спасибо" =)
спасибки)))

Добавлено через 2 минуты
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;

void main(){
setlocale(LC_CTYPE,"Rus");
const int n=4;

int mass[n][n];
int m=0,m2=0;
srand((unsigned)time(NULL));

for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
mass[i][j]=rand()%10;
cout<<mass[i][j]<<"\t";
if (j==n-1) cout << endl;
}
cout << endl;

for(int i=0;i<n;i++)
m+=mass[i][i];
}
cout<<"Сумма элементов главной диагонали равна: "<<m;

for(int i=0;i<n;i++)
m2+=mass[i][n-i];
}
cout<<"Сумма элементов параллельной диагонали равна: "<<m;

cout<<endl;
getch();
}



Всеравно не работает, что здесь еще поменять?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
21.11.2010, 21:21     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #8
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 <conio.h>
#include <time.h>
using namespace std;
 
void main(){
setlocale(LC_CTYPE,"Rus");
const int n=4;
 
int mass[n][n];
int sum1=0, sum2=0;
srand((unsigned)time(NULL));
 
 for(int i=0;i<n;i++)
  {
    for(int j=0;j<n;j++)
     {
       mass[i][j]=rand()%10;
       cout<<mass[i][j]<<" ";
     }
    cout << endl;
  }
cout << endl;
for(int i=0;i<n;i++)
  {
    for(int j=0;j<n;j++)
     {
       if(i==j)
        {
           sum1+=mass[i][j];
        }
       if(i+j==n-1)
       {
           sum2+=mass[i][j];
       }
     }
  }
cout<<"Сумма элементов главной диагонали равна: "<<sum1<<endl;
cout<<"Сумма элементов параллельной диагонали равна: "<<sum2;
cout<<endl;
getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2010, 21:24     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной!
Еще ссылки по теме:

C++ Написать и протестировать подпрограмму, которая переставляет в обратном порядке элементы главной диагонали квадратной матрицы - вывод всей матрицы
C++ Написать функцию для вычисления определителя матрицы
C++ Функция вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали

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

Или воспользуйтесь поиском по форуму:
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
21.11.2010, 21:24  [ТС]     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной! #9
Цитата Сообщение от MILAN Посмотреть сообщение
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 <conio.h>
#include <time.h>
using namespace std;
 
void main(){
setlocale(LC_CTYPE,"Rus");
const int n=4;
 
int mass[n][n];
int sum1=0, sum2=0;
srand((unsigned)time(NULL));
 
 for(int i=0;i<n;i++)
  {
    for(int j=0;j<n;j++)
     {
       mass[i][j]=rand()%10;
       cout<<mass[i][j]<<" ";
     }
    cout << endl;
  }
cout << endl;
for(int i=0;i<n;i++)
  {
    for(int j=0;j<n;j++)
     {
       if(i==j)
        {
           sum1+=mass[i][j];
        }
       if(i+j==n-1)
       {
           sum2+=mass[i][j];
       }
     }
  }
cout<<"Сумма элементов главной диагонали равна: "<<sum1<<endl;
cout<<"Сумма элементов параллельной диагонали равна: "<<sum2;
cout<<endl;
getch();
}
Спасибо большое!
Yandex
Объявления
21.11.2010, 21:24     Написать програму вычисления двох деагоналей матрицы!Главной и паралельной!
Ответ Создать тему
Опции темы

Текущее время: 11:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru