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

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

Войти
Регистрация
Восстановить пароль
 
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
#1

Вывести координаты элемента матрицы по формуле - C++

08.02.2016, 16:12. Просмотров 219. Ответов 6
Метки нет (Все метки)

Задание: Вывести координаты элемента матрицы с найменьшим весом по формуле
http://www.cyberforum.ru/cgi-bin/latex.cgi?{W}_{ij}= \sum_{j=1}^{m}\sum_{i=1}^{n} \left|\frac{{a}_{ij}}{i+j} \right|
Программа работает, только почему-то выдает 0. Почему так?
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
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
void Koordinati() 
{
double W[n][m]; 
int i, j; 
for (i=1; i<n; i++)
for (j=1; j<m; j++)
W[i][j]+=fabs(a[i][j]/(i+j));
cout<<W[i][j]<<"   "<<endl; 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
Код
Matrica A

0.000 -3.115 4.370 0.285 -2.316 6.761 0.582 -1.743 
1.000 -2.115 5.370 1.285 -1.316 7.761 1.582 -0.743 
4.000 0.885 8.370 4.285 1.684 10.761 4.582 2.257 
9.000 5.885 13.370 9.285 6.684 15.761 9.582 7.257 
16.000 12.885 20.370 16.285 13.684 22.761 16.582 14.257 
25.000 21.885 29.370 25.285 22.684 31.761 25.582 23.257 

K = 
0.000
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 16:12     Вывести координаты элемента матрицы по формуле
Посмотрите здесь:

Вывести на экран координаты элементов матрицы, которые в своей строке наименьшие C++
Найти в первой строчки матрицы элементы равные 1 и вывести номер элемента C++
Определить координаты левого нижнего элемента и правого верхнего элемента в матрице C++
C++ Вычисления для каждой точки, заданной парой координат, третьей координаты по заданной формуле
Вывести индексы максимального элемента (матрицы, отрицательные числа) C++
C++ Microsoft Visual Studio: Для каждой строки матрицы с нулевым элементом на главной диагонали вывести номер наибольшего элемента
C++ Найти максимальное значение элемента матрицы, указать его координаты и подсчитать сумму строки матрицы, содержащей максимальный элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dastan4ik
61 / 61 / 31
Регистрация: 18.10.2014
Сообщений: 186
Завершенные тесты: 2
08.02.2016, 16:27     Вывести координаты элемента матрицы по формуле #2
Смотри дело в формуле
Потому что вот здесь
C++
1
2
3
for (i=0; i<n; i++)
for (j=0; j<m; j++)
   a[i][j] = pow(i,2)-2*tan(j);// в начале когда i=0 то pow(0,2)=0 и j=0 то 2*tan(0)=0 и в итоге 0-0=0 вот результат
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 16:33  [ТС]     Вывести координаты элемента матрицы по формуле #3
Dastan4ik, поменял на 1. Вот еще лучше выбило...
Код
Matrica A

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
0.000 -2.115 5.370 1.285 -1.316 7.761 1.582 -0.743 
0.000 0.885 8.370 4.285 1.684 10.761 4.582 2.257 
0.000 5.885 13.370 9.285 6.684 15.761 9.582 7.257 
0.000 12.885 20.370 16.285 13.684 22.761 16.582 14.257 
0.000 21.885 29.370 25.285 22.684 31.761 25.582 23.257 

K = 
0.000

еще менял на 2, 3.. результат все равно равен 0.
Dastan4ik
61 / 61 / 31
Регистрация: 18.10.2014
Сообщений: 186
Завершенные тесты: 2
08.02.2016, 16:46     Вывести координаты элемента матрицы по формуле #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как поменяли можно отрывок кода сюда?

Добавлено через 11 минут
Короче
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
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
/* и вообще попробуйте эту функцию
void Koordinati() 
{
    double W[n][m]={}; 
int i, j; 
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
W[i-1][j-1]+=fabs(a[i-1][j-1]/(i+j));
cout<<W[i-2][j-2]<<"   "<<endl; 
}
 
*/
void Koordinati() 
{
double W[n][m]; 
int i, j; 
for (i=1; i<n; i++)//почему здесь цикл с 1 начинается 
for (j=1; j<m; j++)//и почему здесь тоже
W[i][j]+=fabs(a[i][j]/(i+j));//W[i][j] это у вас что у где его значении вы просто объявили и все кстати когда цикл //начинается с i=1 и j=1 то W[0][0] и  a[0][0] у вас пропадет
cout<<W[i][j]<<"   "<<endl; //что вы вообще выводите самый последний значение когда из цикла выходит i и j то //у вас они увеличатся на 1 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);//имеется введу тут сделать
//a[i][j] = pow(i+1,2)-2*tan(j+1);//мне кажется вот так надо
 
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 16:54  [ТС]     Вывести координаты элемента матрицы по формуле #5
Dastan4ik, а как тогда исправить? я уже понял что дело в самой подпрограмме.
а http://www.cyberforum.ru/cgi-bin/latex.cgi?{W}_{ij} я вычисляю по формуле..
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 <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
void Koordinati() 
{
double W[n][m]; 
int i, j; 
W[i][j]=0;
for (i=0; i<n; i++)//почему здесь цикл с 1 начинается 
for (j=0; j<m; j++)//и почему здесь тоже
W[i][j]+=fabs(a[i][j]/(i+j));//W[i][j] это у вас что у где его значении вы просто объявили и все кстати когда цикл //начинается с i=1 и j=1 то W[0][0] и  a[0][0] у вас пропадет
cout<<W[i][j]<<"   "<<endl; //что вы вообще выводите самый последний значит когда из цикла выходит i и j то //у вас они увеличатся на 1 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);//имеется введу тут сделать
//a[i][j] = pow(i+1,2)-2*tan(j+1);//мне кажется вот так надо
 
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
Dastan4ik
61 / 61 / 31
Регистрация: 18.10.2014
Сообщений: 186
Завершенные тесты: 2
08.02.2016, 16:56     Вывести координаты элемента матрицы по формуле #6
C++
1
2
3
4
5
6
7
8
9
10
  
void Koordinati() 
{
double W[n][m]={}; 
int i, j; 
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
W[i-1][j-1]+=fabs(a[i-1][j-1]/(i+j));
cout<<W[i-2][j-2]<<"   "<<endl; 
}
замените функцию я же выше дал рабочий код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2016, 17:01     Вывести координаты элемента матрицы по формуле
Еще ссылки по теме:

C++ по этой формуле вычисляются координаты,но что это за формула?
C++ Вывести индекс элемента в конце каждой строки матрицы
Определить координаты элемента матрицы с наименьшим весом C++
C++ Перестановка в каждой строке матрицы максимального элемента и элемента главной диагонали
Вывести координаты максимального элемента в каждой строке. C++

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

Или воспользуйтесь поиском по форуму:
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 17:01  [ТС]     Вывести координаты элемента матрицы по формуле #7
Dastan4ik, о, спасибо большое!! теперь К = 3,543 )
Yandex
Объявления
08.02.2016, 17:01     Вывести координаты элемента матрицы по формуле
Ответ Создать тему
Опции темы

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