Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

задачка с матрицами. ПРошу помощи у форума! - C++

10.01.2012, 02:58. Просмотров 429. Ответов 7
Метки нет (Все метки)

Значит вот условие:
размеры матриц вводятся с клавиатуры и не должны превышать 10 ; при вводе соответствующего члена матрицы на экране должен высвечиваться его номер. Сразу после окончания ввода должна быть осуществлена очистка экрана и введённая матрица (матрицы) должна быть выведена на экран в прямоугольном виде. Если в результате выполнения программы получена новая матрица, она должна быть выведена на экран также в прямоугольном виде.


Сама задача:
Даны прямоугольные матрицы [I]А[/ размером m x n и B размером k x l. Найти произведение матрицы A на матрицу B,где n=k.

Помогите пожалуйста до 9 часов!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 02:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задачка с матрицами. ПРошу помощи у форума! (C++):

Помощи прошу - C++
Как сделать ? String name; getline(cin, name) не получается использовать массив

прошу помощи - C++
Помогите получить зачетку. Надо написать токую програму на С : User вводит цифру нп: 7965132 а на монитор выводитса : 6,2. тоесть...

Списки! Прошу помощи! - C++
Кто знает помогите пожалуйста! Напишите фрагмент программы добавления нового элемента в конец списка, если список формируется из...

Прошу коллективной помощи! - C++
Добрый день! Стоит задача создать программу на C, которая бы умела: - обращаться к нескольким внешним программам, а именно поочередно...

Прошу небольшой помощи - C++
Добрый вечер господа. В Этой теме(Кликабельно), я определился с тем, что начну изучение C++ И у меня к Вас возникает вопрос....

Прошу помощи ,не двигается змейка - C++
#include<iostream> #include<windows.h> #include<conio.h> using namespace std; const int Y = 20, X = 50; enum DIR{UP, DOWN, LEFT,...

7
greeezz
274 / 167 / 4
Регистрация: 10.07.2011
Сообщений: 441
10.01.2012, 07:16 #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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <iomanip>
using std::setw;
 
#include <cstdlib>
 
void fillMatrix(int **, const int &, const int &);
void printMatrix(int **, const int &, const int &);
int **multipMatrix(int **, int **, const int &, const int &, const int &);
 
int main() {
 
    int n, m, o;
    int ** matrix1, **matrix2, **resultMatrix;
    cout << "Please enter number of rows for first matrix ::\n>";
    cin >> n;
    n = n > 10 ? 10 : n;
    cout << "Please enter number of columns for first matrix ::\n>";
    cin >> m;
    m = m > 10 ? 10 : m;
    cout << "Please enter number of columns for second matrix ::\n>";
    cin >> o;
    o = o > 10 ? 10 : o;
 
    matrix1 = new int*[n];
    for (int j = 0; j < n; ++j) {
        matrix1[j] = new int[m];
    }
 
    matrix2 = new int*[m];
    for (int j = 0; j < m; ++j) {
        matrix2[j] = new int[o];
    }
 
    cout << "Filling matrix 1 :: " << endl;
    fillMatrix(matrix1, n, m);
 
    cout << "Filling matrix 2 :: " << endl;
    fillMatrix(matrix2, m, o);
 
    system("CLS");
    cout << "\nPrint matrix 1" << endl;
    printMatrix(matrix1, n, m);
 
    cout << "\nPrint matrix 2" << endl;
    printMatrix(matrix2, m, o);
 
    resultMatrix = multipMatrix(matrix1, matrix2, n, m, o);
    cout << "\nPrint resultMatrix" << endl;
    printMatrix(resultMatrix, n, o);
 
    for (int j = 0; j < n; ++j) {
        delete[] matrix1[j];
    }
    delete[] matrix1;
 
    for (int j = 0; j < m; ++j) {
        delete[] matrix2[j];
    }
    delete[] matrix2;
 
    for (int j = 0; j < n; ++j) {
        delete[] resultMatrix[j];
    }
    delete[] resultMatrix;
 
    cin.ignore();
    cin.get();
    return 0;
}
 
int **multipMatrix(int **m1, int **m2, const int &m1Rows, const int &m1Cols, const int &m2Cols) {
 
    int ** newMatrix;
    newMatrix = new int*[m1Rows];
    for (int j = 0; j < m1Rows; ++j) {
        newMatrix[j] = new int[m2Cols];
    }
    for (int i = 0; i < m1Rows; ++i) {
        for (int j = 0; j < m2Cols; ++j) {
            newMatrix[i][j] = 0;
            for (int k = 0; k < m1Cols; ++k) {
                newMatrix[i][j] += (m1[i][k] * m2[k][j]);
            }
 
        }
    }
    return newMatrix;
}
 
void fillMatrix(int **m, const int &r, const int &c) {
    for (int i = 0; i < r; ++i) {
        for (int j = 0; j < c; ++j) {
            cout << "Please enter element [" << i << "][" << j << "] ";
            cin >> m[i][j];
        }
    }
}
 
void printMatrix(int **m, const int &r, const int &c) {
    for (int i = 0; i < r; ++i) {
        for (int j = 0; j < c; ++j) {
            cout << setw(3) << m[i][j] << " ";
        }
        cout << endl;
    }
}
1
Gennio
1 / 1 / 0
Регистрация: 10.01.2012
Сообщений: 21
11.01.2012, 01:42  [ТС] #3
Не работает. Обычный Borland 3.0
0
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
11.01.2012, 02:07 #4
Это очень древняя вещь.
Возможно поможет:
- подключить stdio.h
- убрать все using std
- new и delete заменить на malloc и free
- объекты cin, cout на scanf(), printf()
- void на int и дописывать return 0;
0
Mr.kto
93 / 92 / 1
Регистрация: 18.08.2012
Сообщений: 309
11.01.2012, 02:11 #5
Цитата Сообщение от Gennio Посмотреть сообщение
Не работает. Обычный Borland 3.0
ставь visual studio - это покруче!
0
Gennio
1 / 1 / 0
Регистрация: 10.01.2012
Сообщений: 21
11.01.2012, 02:15  [ТС] #6
Whiteha, не могли бы изменить код? пожалуйста! боюсь ошибиться и запутаться
0
greeezz
274 / 167 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.01.2012, 02:17 #7
Цитата Сообщение от Gennio Посмотреть сообщение
Не работает. Обычный Borland 3.0
какие ошибки при компиляции ????

Добавлено через 1 минуту
попробуйте для начала заголовок вот на такой поменять
C++
1
2
3
4
5
6
 
#include <iostream.h>
 
#include <iomanip.h>
 
#include <stdlib.h>
0
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
11.01.2012, 02:43 #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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int fillMatrix(int **, const int &, const int &);
int printMatrix(int **, const int &, const int &);
int **multipMatrix(int **, int **, const int &, const int &, const int &);
 
int main() {
 
        int n, m, o;
        int **matrix1, **matrix2, **resultMatrix;
        printf( "Please enter number of rows for first matrix ::\n>");
        scanf("%d", &n);
        n = n > 10 ? 10 : n;
        printf( "Please enter number of columns for first matrix ::\n>");
        scanf("%d", &m);
        m = m > 10 ? 10 : m;
        printf( "Please enter number of columns for second matrix ::\n>");
        scanf("%d", &o);
        o = o > 10 ? 10 : o;
 
        matrix1 = (int**) malloc(n*sizeof(int));
        for (int j = 0; j < n; ++j) {
                matrix1[j] = (int*) malloc(m*sizeof(int));
        }
 
        matrix2 = (int**) malloc(m*sizeof(int));
        for (int j2 = 0; j2 < m; ++j2) {
                matrix2[j2] = (int*) malloc(o*sizeof(int));
        }
 
        printf( "Filling matrix 1 :: \n");
        fillMatrix(matrix1, n, m);
 
        printf( "Filling matrix 2 :: \n");
        fillMatrix(matrix2, m, o);
 
        system("CLS");
        printf( "\nPrint matrix 1\n");
        printMatrix(matrix1, n, m);
 
        printf(  "\nPrint matrix 2\n" );
        printMatrix(matrix2, m, o);
 
        resultMatrix = multipMatrix(matrix1, matrix2, n, m, o);
        printf( "\nPrint resultMatrix\n" );
        printMatrix(resultMatrix, n, o);
        getch();
        return 0;
}
 
int **multipMatrix(int **m1, int **m2, const int &m1Rows, const int &m1Cols, const int &m2Cols) {
 
        int ** newMatrix;
        newMatrix = (int**)malloc(m1Rows*sizeof(int));
        for (int j = 0; j < m1Rows; ++j) {
                newMatrix[j] = (int*)malloc(m2Cols*sizeof(int));
        }
        for (int i = 0; i < m1Rows; ++i) {
                for (int j2 = 0; j2 < m2Cols; ++j2) {
                        newMatrix[i][j2] = 0;
                        for (int k = 0; k < m1Cols; ++k) {
                                newMatrix[i][j2] += (m1[i][k] * m2[k][j2]);
                        }
 
                }
        }
        return newMatrix;
}
 
int fillMatrix(int **m, const int &r, const int &c) {
        for (int i = 0; i < r; ++i) {
                for (int j = 0; j < c; ++j) {
                        printf ("Please enter element [%d][%d] = ", i , j );
                        scanf("%d", &m[i][j]);
                        printf ("\n");
                }
        }
        return 0;
}
 
int printMatrix(int **m, const int &r, const int &c) {
        for (int i = 0; i < r; ++i) {
                for (int j = 0; j < c; ++j) {
                        printf ("%d ", m[i][j] );
                }
                printf("\n");
        }
        return 0;
}
0
11.01.2012, 02:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2012, 02:43
Привет! Вот еще темы с ответами:

прошу помощи, не могу найти ошибку - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; using namespace std; void...

Прошу помощи в доработке программы по шифрованию Вернама - C++
Прошу помощи в доработке программы по Шифрованию Вернама, нужно чтобы 10 значное число считывалось с текстового файла,а не вводилось...

Задача на классы! В классах совсем не разбираюсь. Прошу помощи - C++
Выберите 10 произвольных букв русского алфавита (введите с клавиатуры). Введите произвольное русское слово. С помощью ключа длиной от трех...

Добрый вечер, прошу помощи по строкам и лексемам (strtok) - C++
суть в чем... Строка будет скопирована из формул в экселе. По типу &quot;=ЕСЛИ(A1&gt;=12; 3;...&quot; ит.п. Пытаюсь игнорировать пробелы, деля строку...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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