Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35

Транспонирование матрицы

28.03.2016, 18:53. Показов 1093. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, дорогие!

Банальный вопрос такой, но не пойму в чём дело. Пишу тут заготовку (или как пафоснее назвать - логику) для игры в тетрис. И внезапно - не получается транспонировать матрицу в функции left() !
Что я неверно там сделала?
Заранее всем спасибо за внимание и ответы.

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
#include <iostream>
#include <vector>
 
struct Shapes
{
    Shapes()
    {
        fillShapes();
    }
 
    std::vector<char> getShape(const int id)
    {
        if (id < 0 || id > 5)
            throw std::exception("Id number is wrong!");
        return mArrayOfShapes[id];
    }
private:
    std::vector<std::vector<char>> mArrayOfShapes;
    void fillShapes()
    {
        mArrayOfShapes.resize(6);
        mArrayOfShapes[0] = { 1, 0, 0, 1, 1, 1, 0, 0, 0 };
        mArrayOfShapes[1] = { 0, 0, 1, 1, 1, 1, 0, 0, 0 };
        mArrayOfShapes[2] = { 1, 1, 0, 1, 1, 0, 0, 0, 0 };
        mArrayOfShapes[3] = { 0, 1, 1, 1, 1, 0, 0, 0, 0 };
        mArrayOfShapes[4] = { 0, 1, 0, 1, 1, 1, 0, 0, 0 };
        mArrayOfShapes[5] = { 1, 1, 0, 0, 1, 1, 0, 0, 0 };
    }
};
 
class Tetris
{
private:
    std::vector<char> mCurrentShape;
    int mM;
    int mN;
    Shapes shapes;
 
public:
    Tetris(const int m, const int n)
    {
        mCurrentShape.resize(m*n);
        mM = m;
        mN = n;
        int i = rand() % 10;
        mCurrentShape = shapes.getShape(i);
    }
 
 
    void set(const int x, const int y, const char value)
    {
        mCurrentShape[x*mM + y] = value;
    }
    char get(const int x, const int y)
    {
        return mCurrentShape[x*mM + y];
    }
 
    std::vector<char> getShape()
    {
        return mCurrentShape;
    }
 
 
    void down()
    {
    }
 
    void right()
    {
    }
 
    void left()
    {
        char temp;
        for (int i = 0; i < 3; ++i)
            for (int j = 0; j < 3; ++j)
        {
            temp = get(i, j);
            set(i, j, get(j, i));
            set(j, i, temp);
        }
    }
 
    void reset()
    {}
 
    void step()
    {
    }
 
};
 
int main()
{
    Tetris *tetris = new Tetris(3, 3);
    std::vector<char> temp = tetris->getShape();
 
    std::cout << "BEFORE LEFT - ";
    for (int i = 0; i < temp.size(); ++i)
        std::cout << static_cast<int>(temp[i]) << " ";
 
    tetris->left();
    temp = tetris->getShape();
    std::cout << std::endl;
    std::cout << "AFTER LEFT - ";
    for (int i = 0; i < temp.size(); ++i)
        std::cout << static_cast<int>(temp[i]) << " ";
 
    system("pause>nul");
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2016, 18:53
Ответы с готовыми решениями:

Транспонирование матрицы
Всем доброй ночи, пытаясь решить тривиальную задачу - столкнулся с трудностями : квадратные матрицы мой код транспонирует, а с...

Транспонирование матрицы
Начал писать курсовик, мое задание такое: Создайте приложение для работы с квадратными матрицами, порядок которых достаточно высок,...

транспонирование матрицы
Имеется матрица размерности(6 на 3) необходимо ее транспонировать! вот мой код count=3; n=6; void __fastcall...

2
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
26.02.2017, 19:55
Функция транспонирования матрицы
https://en.wikipedia.org/wiki/... nsposition
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
26.02.2017, 20:47
Тамика,
C++
77
for (int j = 0; j < i; ++j)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2017, 20:47
Помогаю со студенческими работами здесь

Транспонирование матрицы
Здравствуйте! Пишу функцию для транспонирования матрицы... Вот код: void tran(){ int n,m; cout &lt;&lt; &quot;Введите кол-во...

Транспонирование матрицы
Как в C++ сделать транспонированную матрицу?

Транспонирование матрицы
*/20.Транспонирование матрицы .

Транспонирование матрицы
Что-то я совсем запуталась,не могу понять как транспонировать матрицу:/ --Вызвать функцию transpose(), формирующую матрицу b,...

Транспонирование матрицы
Есть матрица M*N, её требуется транспонировать относительно побочной диагонали. Использую дополнительную матрицу N*M для...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru