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

Реализовать ввод, вывод и простейшие операции с матрицами - C++

Восстановить пароль Регистрация
 
Alinochka
 Аватар для Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
22.01.2010, 14:58     Реализовать ввод, вывод и простейшие операции с матрицами #1
дана такая задача:
Реализовать ввод, вывод и простейшие операции с матрицами (сложение, вычитание,
умножение на число, умножение, транспонирование). Каждую операцию реализовать в
виде функции.
каждую операцию (кроме транспонирования) я написала, как отдельную программу, как это все соеденить вместе, что значит в виде функции???
и помогуте пожалуйста с транспонированием!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 15:58     Реализовать ввод, вывод и простейшие операции с матрицами #2
Транспонирование:
C++
1
2
3
4
5
6
7
8
9
//---------------------------
for (int i = 0; i < Height; i++) 
    for (int j = 0; j < i; j++) 
    { 
        int tmp = matrix[i][i]; 
        matrix[i][j] = matrix[j][i]; 
        matrix[j][i] = tmp; 
    }
//-----------------------------
Если я ошибаюсь пусть кто поправит.
Alinochka
 Аватар для Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
22.01.2010, 17:18  [ТС]     Реализовать ввод, вывод и простейшие операции с матрицами #3
ладно, это я проверю, но вот что значит в виде функции???
вот например 2 программы по матрицам:
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
//Умножение матрицы на число
#include <iostream>
using namespace std;
int main()
{
    const int n = 3;
    int A[n][n];
        for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)   {
                cout << "A[" << i+1 << "," << j+1 << "]=";
                cin >> *(*A+i*n+j);   }
for (int i=0; i<n; i++)   {
        for (int j=0; j<n; j++)
        cout << *(*A+i*n+j) << " ";
        cout << "\n";   }
int k;
cout << "Vvedite chislo K: " << " \n";
cin >> k;
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
int C = A[i][j]*k;
cout << "C[" << i+1 << "," << j+1 << "]" << C << " \n";
}
}
cin.get();
return 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
32
33
34
35
36
//Вычитание двух матриц
#include <iostream>
using namespace std;
int main()
{
const int n = 3;
int A[n][n];
        for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)   {
                cout << "A[" << i+1 << "," << j+1 << "]=";
                cin >> *(*A+i*n+j);   }
for (int i=0; i<n; i++)   {
        for (int j=0; j<n; j++)
        cout << *(*A+i*n+j) << " ";
        cout << "\n";   }
int B[n][n];
                for (int i=0; i<n; i++)
                     for (int j=0; j<n; j++)   {
                       cout << "B[" << i+1 << "," << j+1 << "]=";
                       cin >> *(*B+i*n+j);   }
for (int i=0; i<n; i++)   {
        for (int j=0; j<n; j++)
        cout << *(*B+i*n+j) << " ";
        cout << "\n";   } 
for (int i=0; i<n; i++) {
    for (int j=0; j<n; j++) {
        int s = -1;
        int k = B[i][j]*s;
        int f = A[i][j] + k;
        cout << f << " ";
    }
    cout << " \n";
}
cin.get();
return 0;
}
как это в одной программе сделать в виде функции???
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
22.01.2010, 17:48     Реализовать ввод, вывод и простейшие операции с матрицами #4
нужно объявить каждую вашу программу объявить как функцию, сделать прототип, и потом реализовать их вызов. Вроде бы так.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 18:48     Реализовать ввод, вывод и простейшие операции с матрицами #5
Как то за дырку от бублика делать не хочется.
Хотя б спасибо за транспонирование матрицы сказала.
SerЁga
32 / 32 / 4
Регистрация: 18.08.2009
Сообщений: 93
22.01.2010, 18:56     Реализовать ввод, вывод и простейшие операции с матрицами #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пример ввода и вывода матрицы с помощью функции для статической матрицы.
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
#include <iostream>
using namespace std;
#define n 3
#define m 3
void vvodmt(int mt[n][m])
{
  for(int i=0;i<n;i++)
      for(int j=0;j<m;j++)
      {
        cin>>mt[i][j];
      }
}
void vivodmt(int mt[n][m])
{
    for(int i=0;i<n;i++)
    {
        cout<<endl;
        for(int j=0;j<m;j++)
        {
            cout<<mt[i][j]<<' ';
        }
    }
}
void main()
{
 int mt[n][m];
 vvodmt(mt);
 vivodmt(mt);
}
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
22.01.2010, 19:10     Реализовать ввод, вывод и простейшие операции с матрицами #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
#include <iostream>
 
template <typename T, const size_t N> inline void FUNC(T (&arr)[N][N])
{
    for (size_t i = 0 ; i < N ; i++)
        for (size_t j = 0 ; j < N ; j++)
            arr[i][j] = rand() % 100;
}
 
template <typename T, const size_t N> inline void FUNC2(T (&arr)[N][N])
{
    for (size_t i = 0 ; i < N ; i++)
    {
        for (size_t j = 0 ; j < N ; j++)
            std::cout << arr[i][j] << ' ';
        std::cout << std::endl;
    }
}
 
int main()
{
    const size_t N = 3;
    int arr[N][N];
    FUNC(arr);
    FUNC2(arr);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2010, 19:40     Реализовать ввод, вывод и простейшие операции с матрицами
Еще ссылки по теме:

Как реализовать ввод адреса файла и соответственно вывод C++
C++ Матрицы с символами и числами. Простейшие операции
C++ Реализовать ввод, вывод и поиск данных

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2010, 19:40     Реализовать ввод, вывод и простейшие операции с матрицами #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Alinochka, вот Вам ещё пример:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <iomanip>
 
using namespace std;
 
/* заполнялка матрицы */
void fillMatrix(int **matr, int rows, int cols){
    for ( int i = 0; i < rows; ++i ){
        for ( int j = 0; j < cols; ++j ){
            cout << "[" << i << "][" << j << "] = ";
            cin >> matr[i][j];
        }
    }
}
 
/* печаталка */
void printMatrix(int **matr, int rows, int cols){
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < cols; ++j )
            cout << setw(3) << matr[i][j] << (( j < cols - 1) ? ' ' : '\n');
}
 
/* умножалка каждого элемента на число */
void mulMatrix(int **matr, int rows, int cols, int m){
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < cols; ++j )
            matr[i][j] *= m;
}
 
/* вычиталка двух матриц */
void subMatrix(int **a, int **b, int rows, int cols){
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < cols; ++j )
            a[i][j] -= b[i][j];
}
 
int main(){
    int **A, **B, rows, cols, m;
    
    cout << "Rows: ";
    cin >> rows;
    cout << "Columns: ";
    cin >> cols;
    A = new int* [ rows ];
    for ( m = 0; m < rows; ++m )
        A[m] = new int [ cols ];
    cout << "Fill first matrix:" << endl;
    fillMatrix(A, rows, cols);
    cout << "Origin:" << endl;
    printMatrix(A, rows, cols);
    cout << "Enter multiplier for elements: ";
    cin >> m;
    mulMatrix(A, rows, cols, m);
    cout << "Result:" << endl;
    printMatrix(A, rows, cols);
    
    B = new int* [ rows ];
    for ( m = 0; m < rows; ++m )
        B[m] = new int [ cols ];
    cout << "Fill second matrix:" << endl;
    fillMatrix(B, rows, cols);
    cout << "First:" << endl;
    printMatrix(A, rows, cols);
    cout << "Second:" << endl;
    printMatrix(B, rows, cols);
    cout << "Substracting second from first:" << endl;
    subMatrix(A, B, rows, cols);
    printMatrix(A, rows, cols);
    
    for ( m = 0; m < rows; ++m ){
        delete [] A[m];
        delete [] B[m];
    }
    delete [] A;
    delete [] B;
    return 0;
}
Yandex
Объявления
22.01.2010, 19:40     Реализовать ввод, вывод и простейшие операции с матрицами
Ответ Создать тему
Опции темы

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