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

Двумерный динамический массив, транспонирование, умножение

16.12.2014, 23:25. Показов 654. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программку, которая вычисляет для квадратным матриц А и В матрицу C=(АT)2*BT
Собственно, завтра дедлайн, сама новичек, камнями за быдлокод прошу не бросать, я стараюсь, прошу помощи в допиле кода и на комментарии не обращайте особого вниманьеца
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "stdafx.h"
#include <clocale>
#include <iostream>
using namespace std;
 
int main()
{
 
    setlocale(LC_ALL, "Russian");
    int stroka, stolbick, stroka2, stolbick2 = 0;// переменные для А и А транспонированного
    int strokaB, stolbikB, strokaB2, stolbickB2 = 0; //переменные для B и В транспонированного
    //A
    cout << "Задайте количество строк и столбцев матрицы А" << endl;
    cout << "Строк: ";
    cin >> stroka;
    cout << "Столбцев: ";
    cin >> stolbick;
    //B
    cout << "Задайте количество строк и столбцев матрицы B" << endl;
    cout << "Строк: ";
    cin >> strokaB;
    cout << "Столбцев: ";
    cin >> stolbikB;
 
 
 
    //A
    // Выделение памяти под двумерный динамический массив с введёнными пользователем измерениями и можем вдальнейшем обращаться к 1 строка 1 столбик (насоздавать для кажой строчки столбиков)
    int** t = new int*[stroka];// в переменной количество строчек, которое введёт пользователь (5)
    for (int i = 0; i < stroka; ++i)//(пока 0 элемент меньше 5, в след. раз возьмём элемент на единицу больший, т.е. следующий)
    {
        t[i] = new int[stolbick];// количество столбцев (обращаемся к этому лементу массива и создём столбик получаеся 0 от 0, перемен. столбик)
    }
    //Заполнение
    for (int y = 0; y < stolbick; y++)//первый элемент массива
    {
        for (int x = 0; x < stroka; x++)
        {
            cout << "[" << y + 1 << "][" << x + 1 << "]: ";//первый элемент массива и первая строка 
            cin >> t[y][x];//какое значение им присвоить
        }
    }
    
    
    
    //B
    // Выделение памяти под двумерный динамический массив с введёнными пользователем измерениями и можем вдальнейшем обращаться к 1 строка 1 столбик
    int** tB = new int*[strokaB];// в переменной количество строчек, которое введёт пользователь (5)
    for (int i = 0; i < strokaB; ++i)//(пока 0 элемент меньше 5, в след. раз возьмём элемент на единицу больший, т.е. следующий)
    {
        tB[i] = new int[stolbikB];// количество столбцев (обращаемся к этому эменту массива и создём столбик получаеся 0 от 0, )
    }
    //Заполнение
    for (int y = 0; y < stolbikB; y++)//первый элемент массива
    {
        for (int x = 0; x < strokaB; x++)
        {
            cout << "[" << y + 1 << "][" << x + 1 << "]: ";//первый элемент массива и первая строка 
            cin >> tB[y][x];//какое значение им присвоить
        }
    }
    
    
    
    //A транспонированный 
    //выделение памяти под транспонированный массив
    int **t1=new int*[stroka2];//транспонированный массив
    for (int k = 0; k < stroka2; ++k)//первый элемент массива
    {
        t[k] = new int[stolbick2];
    }
 
    //транспонирование
    for (int y = 0; y < stolbick2; ++y)// 1 элемент столбика 2 массива
    {
        for (int x = 0; x < stroka2; ++x)//1 элемент строчки 2 массива
        {
            for (int y = 0; y < stolbick; y++)//1 элемент столбика 1 массива
            {
                for (int x = 0; x < stroka; x++)//1 элемент строчки 1 массива
                {
                    t[y][x] = t1[x][y];
                }
            }
        }
    }
    //Вывод A
    cout << "Введённая матрица: " << endl;
    for (int y = 0; y < stolbick2; ++y)
    {
        for (int x = 0; x < stroka2; ++x)
        {
            cout << t[y][x];
        }
        cout << endl;
    }
    //Вывод B
    cout << "Введённая матрица: " << endl;
    for (int y = 0; y < stolbikB; ++y)
    {
        for (int x = 0; x < strokaB; ++x)
        {
            cout << tB[y][x];
        }
        cout << endl;
    }
    
    /*//Вывод
    cout << "Введённая матрица: " << endl;
    for (int y = 0; y < stolbick; ++y)
    {
        for (int x = 0; x < stroka; ++x)
        {
            cout << t1[x][y];
        }
    }
    */cout << endl;
    // Освобождение памяти
        for (int i = 0; i < stroka; ++i)
        {
            delete[] t[i];
            delete t;
        }
        for (int i= 0; i < stroka2; ++i)
        {
            delete[] t1[i];
            delete t1;
        }
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Большая просьба допиливать без функций, так сказать, в моём контексте, чтоб попонятнее, заранее благодарю))

Добавлено через 13 минут
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 23:25
Ответы с готовыми решениями:

Транспонирование n мерной квадратной матрицы(двумерный динамический массив)
&quot;Создайте программу для транспонирования квадратной матрицы A. Значение n вводится с клавиатуры,...

Двумерный динамический массив
Необходимо ввести с клавиатуры количество строк и столбцов массива(матрица размером N*M), ввести...

Двумерный динамический массив
Выскакивает ошибка Ошибка C2440 =: невозможно преобразовать &quot;int *&quot; в &quot;int...

Динамический двумерный массив
Если число находится в интервале от 100 до 110, то используя подпрограмму, в матрицах Р(N,M),...

0
16.12.2014, 23:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2014, 23:25
Помогаю со студенческими работами здесь

Двумерный Динамический массив
Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию...

Двумерный динамический массив
Здравствуйте, подскажите пожалуйста где ошибка? реализовал 2 фукнции ввода и вывода массива....

Динамический двумерный массив
Здравствуйте, начал недавно учить с++, смотрю видеоуроки. Дошел до этой темы и столкнулся с...

Двумерный массив (поменять статический массив на динамический)
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt;...

Двумерный динамический массив строк
Надо создать двумерный динамический массив размером 5x5 (5 ячеек, для 5 строк). Заполнить его...

Динамический двумерный массив в функцию.
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;time.h&gt; using namespace...


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

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