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

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

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

Умножение матрицы неизвестного размера - C++

04.10.2011, 23:00. Просмотров 1091. Ответов 2
Метки нет (Все метки)

задание такоэ нужно ввести размерность 2 матриц с клавиатуры а потом их перемножить... но проблема в том что не знаю как записать динамичный массив...
подскжите пожалуста...я толька знаю что нужно через указатели..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 23:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение матрицы неизвестного размера (C++):

Массив неизвестного размера - C++
Хочу написать функцию для нахождения предела последовательности. А и eps вводятся с клавиатуры. Цикл do while - обязательное условие. n...

Чтение файла неизвестного размера - C++
Необходимо прочитать файл неизвестного размера, динамически растягивая массив, загнать файл в массив и узнать его размер. Приведите...

Массив заранее неизвестного размера - C++
Возможно сейчас произвучит тупой вопрос,не судите строго,но можно каким-нибудь образом сделать чтобы размер массива задавался пользователем?

Как обьявить массив неизвестного размера? - C++
Помогите разобраться, есть класс, в котором обьявлен двумерный массив структур. Размер массива неизвестен, но должен быть определен во...

Ввод и вывод строки неизвестного размера - C++
Как ввести и вывести строку неизвестного размера в c++? Нигде просто нормального объяснения не нашел.

Ввод текста неизвестного размера в массив - C++
(Консольное приложение) Я хочу сделать так чтобы при вводе текста программа записывала каждый символ по порядку (в том числе и пробел) из...

2
alkagolik
Заблокирован
05.10.2011, 01:33 #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
 
void my_error(int n){
    printf("error");
    exit(n);
}
 
int **create_matrix(int N, int M){
    int i, j;
    int **matr;
 
    matr = (int **) malloc (N * sizeof(int*));
    if ( !matr) my_error(2);
 
    for(i = 0; i < N; ++i){
        matr[i] = (int *) malloc(M * sizeof(int));
        if ( !matr[i] ) my_error(3);
    }
 
    for (i = 0; i < N; ++i)
        for (j = 0; j < M; ++j)
            matr[i][j] = rand() % 3;
    return matr;
}
 
void print_matr(int **matr, int N, int M){
    int i, j;
 
    for (i = 0; i < N; ++i){
        for (j = 0; j < M; ++j){
            if (matr[i][j] > 9)
                printf("%d ", matr[i][j]);
            else
                printf("%d  ", matr[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
 
void delete_matr(int **matr, int N, int M){
    int i, j;
 
    for (i = 0; i < N; ++i)
        free(matr[i]);
    free(matr);
}
 
int main(){
    int **array_a, **array_b, **array_c, N_a, M_a, N_b, M_b;
    int i, j, k, tmp = 1, tmp_Mb, sum = 0, iter_s, iter_c;
 
    printf("\nвведите количество строк и столбцов матрицы X\n");
    scanf("%d%d", &N_a, &M_a);
    printf("\nвведите количество строк и столбцов матрицы Y\n");
    scanf("%d%d", &N_b, &M_b);
    printf("\n\n");
 
    if ( M_a != N_b )
        my_error(1);
    else{
        array_a = create_matrix(N_a, M_a);
        array_b = create_matrix(N_b, M_b);
        printf("\nматрица X:\n\n");
        print_matr(array_a, N_a, M_a);
        printf("\nматрица Y:\n\n");
        print_matr(array_b, N_b, M_b);
 
        array_c = create_matrix(N_a, M_b);
 
        for (i = 0; i < N_a; ++i){
 
            tmp_Mb = M_b;
            iter_c = 0;
 
            while (tmp_Mb){
 
                tmp = 1;
                sum = 0;
                iter_s = 0;
 
                for (j = 0; j < N_b; ++j){
 
                    tmp *= (array_a[i][j] * array_b[iter_s++][iter_c]);
                    sum += tmp;
                    tmp = 1;
                }
 
                array_c[i][iter_c++] = sum;
                --tmp_Mb;
            }
        }
        print_matr(array_c, N_a, M_b);
 
        delete_matr(array_a, N_a, M_a);
        delete_matr(array_b, N_b, M_b);
        delete_matr(array_c, N_a, M_b);
    }
    return 0;
}
консоль

введите количество строк и столбцов матрицы X
20
25

введите количество строк и столбцов матрицы Y
25
15



матрица X:

1 1 0 1 2 1 1 0 0 1 2 1 2 1 2 1 0 0 1 1 2 2 0 0 2
2 2 1 1 1 2 0 0 0 2 0 1 1 1 1 0 0 0 2 2 1 2 2 2 0
2 1 1 2 2 0 2 2 1 1 0 0 2 0 2 2 1 0 1 2 0 0 0 0 2
0 2 2 0 2 1 0 0 2 2 0 0 2 2 1 0 0 2 0 1 1 1 0 0 2
0 1 2 1 2 0 2 2 0 0 1 2 1 2 2 1 0 2 1 2 1 0 0 1 0
2 0 2 0 1 0 1 2 0 0 2 1 2 2 2 1 0 2 2 0 2 0 0 1 2
1 0 0 2 2 1 2 0 1 2 2 1 2 2 1 2 1 1 2 1 0 1 2 2 0
0 2 1 0 1 1 2 2 1 2 2 0 1 2 1 2 1 0 1 2 2 0 0 0 0
2 1 1 1 2 2 2 1 1 1 0 0 0 0 2 0 2 0 0 2 2 2 1 2 1
0 2 2 2 1 0 2 0 2 1 0 0 1 2 2 2 0 2 0 1 2 1 1 2 1
0 1 1 0 1 2 0 2 1 0 0 2 2 1 0 2 2 0 0 2 0 0 2 2 0
1 2 2 0 2 0 1 1 2 1 0 1 2 2 1 0 0 1 0 2 1 2 2 2 0
1 2 0 0 0 1 0 0 1 0 2 2 1 1 0 0 2 2 0 2 0 0 1 0 1
1 2 1 0 2 1 1 2 2 2 0 2 2 0 1 0 1 1 2 2 1 0 2 1 0
2 2 1 0 2 1 1 2 2 2 2 2 0 2 2 0 0 1 0 1 2 1 2 2 0
2 0 1 1 1 2 1 1 1 2 1 2 1 1 2 0 0 1 1 1 2 2 1 0 0
0 1 1 0 0 0 0 0 1 2 0 1 1 2 0 0 1 0 2 0 2 0 0 2 2
1 1 1 0 2 2 1 0 0 2 1 1 2 0 0 1 0 2 0 0 2 2 1 2 2
1 2 2 0 1 1 2 2 0 0 2 2 2 0 1 2 2 2 1 2 0 0 0 2 1
0 2 1 2 1 0 1 1 2 2 0 2 1 0 2 2 0 0 1 0 2 0 0 2 2


матрица Y:

2 0 0 0 0 2 0 0 0 0 2 0 2 0 0
1 1 2 2 2 0 2 2 1 1 0 0 0 1 2
0 1 0 1 2 1 0 0 2 1 1 1 2 1 0
1 2 2 0 0 2 1 0 2 2 2 2 0 0 1
1 1 1 1 2 0 0 1 1 2 0 1 2 0 2
0 1 2 2 2 0 1 1 0 0 1 0 0 0 1
2 1 2 0 0 2 1 1 0 0 1 1 1 1 2
1 1 1 1 1 0 1 0 2 2 1 2 0 2 2
1 2 1 1 0 1 2 2 0 2 2 2 1 1 1
1 0 0 2 1 2 1 0 0 0 0 1 0 0 1
2 0 0 0 2 1 0 1 0 0 2 1 2 1 0
2 0 0 2 0 2 2 1 0 2 0 1 1 0 2
0 1 2 1 2 2 0 2 1 1 0 0 2 0 2
0 2 2 0 2 2 0 2 2 0 2 2 2 1 0
1 2 1 2 0 1 2 0 1 0 2 2 1 2 0
0 2 0 0 0 1 0 0 1 2 1 0 2 0 2
0 2 1 2 1 2 1 0 0 0 1 0 2 2 0
0 0 0 2 1 1 0 2 2 1 2 0 1 0 2
1 1 2 2 0 0 1 2 1 0 0 2 0 0 0
1 1 0 2 0 2 1 1 2 0 0 2 1 1 2
1 0 0 0 0 2 0 0 1 2 0 1 2 1 1
2 2 0 0 2 1 0 0 0 0 1 0 0 0 2
0 2 0 2 2 0 1 1 1 0 0 1 2 0 2
1 0 2 0 1 2 1 1 2 2 2 1 0 0 1
2 1 0 0 0 0 2 2 1 0 2 2 2 2 0

29 25 20 20 23 29 18 22 19 17 23 25 31 16 27
24 25 24 31 28 30 21 22 24 16 19 24 22 9 30
26 31 24 24 16 30 23 20 26 22 26 30 31 21 30
17 24 19 26 28 24 18 28 24 18 22 23 28 16 26
23 25 24 27 23 32 19 24 33 26 25 31 30 19 33
26 22 21 21 23 31 16 26 30 22 32 30 38 21 23
27 34 31 29 30 40 21 29 27 23 31 31 35 12 36
22 27 24 26 25 31 19 22 24 20 21 28 30 22 30
29 30 24 27 24 34 24 17 23 20 28 27 29 21 31
23 34 27 24 25 37 23 27 34 29 33 31 33 19 35
13 27 22 29 26 26 20 21 24 24 17 20 27 14 33
24 30 24 29 33 34 21 28 30 25 24 28 32 16 38
17 17 13 26 20 23 18 24 15 11 19 15 25 14 22
25 27 26 41 27 31 28 29 26 26 18 30 29 17 39
33 28 24 33 33 37 27 27 28 28 32 34 35 21 37
28 25 19 29 24 34 20 19 20 19 25 27 28 14 30
16 15 18 17 15 24 17 21 18 15 16 22 20 13 13
25 19 18 23 30 29 16 24 21 22 23 17 30 10 34
27 26 26 33 28 35 24 28 30 26 29 25 35 22 37
27 26 24 24 15 31 29 22 25 32 25 31 25 18 30
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
06.10.2011, 16:41 #3
Читал, надо повспоминать, вот здесь посмотрите, например

http://mathinfinity.net.ru/article/31/
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 16:41
Привет! Вот еще темы с ответами:

Можно ли создать вектор заранее неизвестного размера? - C++
Скажите пожалуйста, можно ли создать вектор заранее неизвестного размера так, чтобы пользователю перед его заполнением не нужно было...

Как передать в функцию указатель на двумерный массив заранее неизвестного размера? - C++
Ребята, скажите пожалуйста, как реализовать такую идею? Необходимо передать в функцию двумерный массив, чтобы она изменала его элементы....

Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых - C++
Привет, Программисты! :) Нужна ваша помощь... Есть задача по поводу работы со строками: &quot;Из текстового файла неизвестного размера вывести...

Задано 4 матрицы. Провести сложение, умножение, умножение на число - C++
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5


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

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

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