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

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

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

Функция создающая новую матрицу - C++

20.03.2012, 21:18. Просмотров 718. Ответов 7
Метки нет (Все метки)

Нужна функция которая создает новую квадратную матрицу, где элементы вычисляются по формуле
B[i][j]=1/(i+j-1) Не уверен правильно ли функция возвращает значение. И еще нужно вывести получившуюся матрицу в main-e. Помогите найти ошибку и правильно вывести новую матрицу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double createB(int n)
 {
 int i,j;
 double **B;
 B=new double *[n];
 for(i=0; i<n;i++)
 {
 B[i]=new double[n];
 }
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 B[i][j]=1/(i+j-1); //не хочет работать если есть знак деления
 return **B;
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2012, 21:18     Функция создающая новую матрицу
Посмотрите здесь:

Функция, создающая новую строку, скопировав в неё исходную сначала в прямом, а потом в обратном порядке - C++
В функцию передаётся строка произвольной длины. Функция создаёт новую строку, скопировав в неё исходную сначала в прямом, а потом в...

Функция создающая объекты производных классов - C++
Функция получает входной параметр - целое число. Если оно равно 0, создается новый объект - окружность, если равно 3 - создается...

Создать новую матрицу - C++
Есть такая задача: Есть квадратная матрица В(А,А).Создать новую матрицу, с данной в результате умножения всех элементов каждого рядка,...

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

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

Функция, принимающая матрицу, возвращающая матрицу - C++
... double msin(int **mtrx) { double mm; for (int i = 0; i &lt; 2; i++) for(int j=0; j&lt;3;j++) mm=sin(mtrx); return...

Вычислить новую матрицу по формуле - C++
Здравствуйте, вобщем есть программка мне нужно вычислить матрицу В, по матрице А. Ответ мне выдается иероглифами в первой матрице....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 724
20.03.2012, 21:22     Функция создающая новую матрицу #2
double createB(int n)
эта строчка говорит,что функция возвращает число типа double
return **B;
а тут вы возвращаете массив указателей.
Тогда уж
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double ** createB(int n)
 {
 int i,j;
 double **B;
 B=new double *[n];
 for(i=0; i<n;i++)
 {
 B[i]=new double[n];
 }
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 B[i][j]=1/(i+j-1); //не хочет работать если есть знак деления
 return **B;
 }
exarion
0 / 0 / 0
Регистрация: 06.04.2011
Сообщений: 8
20.03.2012, 21:31  [ТС]     Функция создающая новую матрицу #3
Цитата Сообщение от Rexer Посмотреть сообщение
Тогда уж

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double ** createB(int n)
 {
 int i,j;
 double **B;
 B=new double *[n];
 for(i=0; i<n;i++)
 {
 B[i]=new double[n];
 }
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 B[i][j]=1/(i+j-1); //не хочет работать если есть знак деления
 return **B;
 }
Не работает.
Поменял на return B; - заработало.
Но осталась проблема с делением(12 строка). Выдает devide error. Если меняю с деления на сложение - все отлично.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
20.03.2012, 22:04     Функция создающая новую матрицу #4
Потому что на ноль делить нельзя.
exarion
0 / 0 / 0
Регистрация: 06.04.2011
Сообщений: 8
20.03.2012, 22:07  [ТС]     Функция создающая новую матрицу #5
точно! не обратил внимание!
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
20.03.2012, 22:10     Функция создающая новую матрицу #6
Еще одна распространенная ошибка.
1/(i+j-1) равно нулю для любых i+j>2, т.к. целое делится на целое
исправьте на
1.0/(i+j-1)
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 724
21.03.2012, 10:19     Функция создающая новую матрицу #7
ай,не стер две звезды в конце,когда постил пост!
Извините.
Мы же возвращаем массив указателей,а если оставить звезды,то возвращаем значение B[0][0].
Или можно еще так,чтобы не писать 1.0,а задать явное преобразование
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double ** createB(int n)
 {
 int i,j;
 double **B;
 B=new double *[n];
 for(i=0; i<n;i++)
 {
 B[i]=new double[n];
 }
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 B[i][j]=(double)1/(i+j-1); //обратите внимание
 return B;
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 11:45     Функция создающая новую матрицу
Еще ссылки по теме:

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

Получить новую матрицу переставляя ее блоки - C++
Дана действительная квадратная матрица . получите новую матрицу переставляя ее блоки 1 с 4, 2 с 3.

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

Получить новую матрицу путем сложения - C++
Получить новую матрицу путем сложения всех элементов данной матрицы с ее наименьшим по модулю элементом. РАБОТА С ФУНКЦИЯМИ.. ...

Получить новую матрицу из данной с использованием указателей - C++
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера nxn. Нужно сделать задачу с...


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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
21.03.2012, 11:45     Функция создающая новую матрицу #8
Цитата Сообщение от Rexer Посмотреть сообщение
Или можно еще так,чтобы не писать 1.0,а задать явное преобразование
Оно, конечно, можно. Но Вы заставляете компилятор завести целую константу и вставить код,
преобразующий ее в действительное число.
Yandex
Объявления
21.03.2012, 11:45     Функция создающая новую матрицу
Ответ Создать тему
Опции темы

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