Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
1

Работа с матрицами (нужно упростить функцию main)

29.11.2015, 19:16. Показов 510. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача написать программу, которая вычисляет произведение элементов матриц A(4x4);B(5x5);C(3x3);, лежащих выше главной диагонали, а в конце вычисляющая выражение (SA+SB)*SC, где SA,SB,SC - произведения элементов, лежащих выше главной диагонали соответствующих матриц.
Программа написана успешно. Но уж больно не нравится запись функции main - ну оочень уж она громоздкой получилась. Есть ли возможность уменьшить-упростить запись ввода матриц? При помощи подпрограммы или ещё как. Буду очень благодарен.
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>
using namespace std;
void P(double x[20][20], int N, double& S)
{
S=1;
for (int i=0; i<N; i++)
for (int j=0; j<N; j++)
if (j>i) S=S*x[i][j];}
int main()
{
int NA,NB,NC; 
double A[20][20],B[20][20],C[20][20];
double SA,SB,SC;
{
    cout<<"NA="; cin>>NA;
cout<<"Input Matrix A"<<endl;
for (int i=0; i<NA; i++)
for (int j=0; j<NA; j++)
cin>>A[i][j];
}
{
    cout<<"NB="; cin>>NB;
cout<<"Input Matrix A"<<endl;
for (int i=0; i<NB; i++)
for (int j=0; j<NB; j++)
cin>>B[i][j];
}
{
    cout<<"NC="; cin>>NC;
cout<<"Input Matrix A"<<endl;
for (int i=0; i<NC; i++)
for (int j=0; j<NC; j++)
cin>>C[i][j];
}
{P(A,NA,SA);
cout<<"SA="<<SA<<endl;
}
{P(B,NB,SB);
cout<<"SB="<<SB<<endl;
}
{P(C,NC,SC);
cout<<"SC="<<SC<<endl;
cout<<"Virazhenie="<<(SA+SB)*SC<<endl;
system("pause");}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2015, 19:16
Ответы с готовыми решениями:

Работа с матрицами, упростить код
делаю расчеты A=; B=; n=length(A); m=length(B); for i=1:n

Работа с матрицами произвольной размерности. Создать функцию, которая для произвольной матрицы вычисляет:
а) максимальную сумму по столбцам б) количество минимальных элементов массива Распишите...

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

Работа с матрицами произвольной размерности. Создать функцию, которая для произвольной матрицы вычисляет
a)количество столбцов, содержащих данный элемент b) и еще что бы что нибудь считала, не важно но...

4
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
29.11.2015, 20:51 2
1) Нормально форматировать
2) Ввод матриц в отдельную функцию
3) if (j>i) S=S*x[i][j]; зачем? Просто начните "считать" уже с i+1
0
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
29.11.2015, 21:49  [ТС] 3
Croessmah,
1)Форматированием я никогда не блистал... Разве что { тут можно бОльшую часть повыкидывать, но проставлял их для себя.
2) В этом то собственно и вопрос, как будет это записано? Могли бы написать?
3) По логике - понимаю, что просто каждый раз начинать считать следующую строчку с одного элемента дальше. Но как вписать в цикл - не понимаю.
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
29.11.2015, 21:56 4
3. Например так:
C++
1
...for (int j=i+1; j<N; j++)...
1
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
29.11.2015, 22:23  [ТС] 5
SuperKir, Спасибо, понял, буду применять
0
29.11.2015, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2015, 22:23
Помогаю со студенческими работами здесь

Ошибка no main class (заголовок com/javafx/main/Main) на другом компьютере
У меня возникла такая проблема. Если я создаю пример JavaFX приложения в Netbeans и компилирую его...

Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN()
а помогите теперь эту задачку #include &lt;iostream&gt; int main() { int last = 0, next = 1; ...

Разработать функцию для работы с матрицами
Разработать функцию для работы с матрицами: По (m×m)-матрице найти сумму элементов по главной...

Упростить функцию
Я написал функции для расчёта среднего балла студента, по заданию курсовой. Препод сказал, что...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru