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

Как клонировать матрицы?

25.09.2015, 09:17. Показов 3190. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предложите систему клонирования матриц, размерность и диапазон указывается пользователем
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2015, 09:17
Ответы с готовыми решениями:

Как клонировать кнопку на форме?
Вопрос, казалось бы, банальный, но вот не придумаю..., да, главное - не уверен, возможно ли это в чистом виде. В общем, компонент...

Как клонировать класс
Имеется класс public class ClassA implement Cloneable{ public ClassH h; public ClassN n; public Object clone() throws...

Как клонировать класс?
Необходимо создать копию данного класса в новый экземляр, чтобы потом поместить его в коллекцию для дальнейшей с ним работы. Каким образом...

12
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
25.09.2015, 09:23
Anna1717, напишите класс матриц, переопределите конструктор копирования и оператор присваивания.
1
0 / 0 / 0
Регистрация: 24.09.2015
Сообщений: 13
30.09.2015, 14:33  [ТС]
а можете, пожалуйста, код скинуть с комментариями?(
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
30.09.2015, 14:53
Anna1717, вот, делал как-то раз, держите:

main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "Matrix.h"
 
int main()
{
    Matrix myMatrix(3, 4);
    myMatrix.reset_matrix();
    myMatrix.show_matrix();
 
    myMatrix.fill_matrix_by_user();
    myMatrix.show_matrix();
 
    return 0;
}


Matrix.h

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
#ifndef MATRIX_H
#define MATRIX_H
 
typedef double Item;
 
class Matrix
{
private:
    int m_row;
    int m_col;
    Item ** matrix;
public:
    explicit Matrix(int row = 2, int col = 2);
    ~Matrix();
    void reset_matrix();
    void fill_matrix_rand(int fromNum, int toNum);
    void fill_matrix_by_user();
    Item find_min_value();
    Item find_max_value();
    Item find_avg_value();
    void show_matrix();
};
 
#endif // MATRIX_H


Matrix.cpp

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
#include "Matrix.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
 
Matrix::Matrix(int row, int col)
{
    m_row = row;
    m_col = col;
 
    matrix = new Item * [m_row];
    for (int i = 0; i < m_row; ++i)
        matrix[i] = new Item[m_col];
}
 
Matrix::~Matrix()
{
    for (int i = 0; i < m_row; ++i)
        delete [] matrix[i];
    delete [] matrix;
}
 
void Matrix::reset_matrix()
{
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            matrix[i][j] = 0;
}
 
void Matrix::fill_matrix_rand(int fromNum, int toNum)
{
    srand(time(0));
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
        {
            do
            {
                matrix[i][j] = fromNum + rand()%toNum;
            }
            while (matrix[i][j] == 0);
        }
}
 
void Matrix::fill_matrix_by_user()
{
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
        {
            std::cout << "\nEnter a value of the element matrix["
                      << i <<"][" << j << "]: ";
            std::cin >> matrix[i][j];
        }
}
 
Item Matrix::find_min_value()
{
    Item min_value = matrix[0][0];
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            if (min_value > matrix[i][j])
                min_value = matrix[i][j];
    return min_value;
}
 
Item Matrix::find_max_value()
{
    Item max_value = matrix[0][0];
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            if (max_value < matrix[i][j])
                max_value = matrix[i][j];
    return max_value;
}
 
Item Matrix::find_avg_value()
{
    Item sum = 0;
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            sum += matrix[i][j];
    return sum / (m_row * m_col);
}
 
void Matrix::show_matrix()
{
    std::cout << std::endl;
    for (int i = 0; i < m_row; ++i)
    {
        for (int j = 0; j < m_col; ++j)
            std::cout << matrix[i][j] << "\t";
        std::cout << std::endl;
    }
}


Я на работе, пора склад закрывать, тороплюсь. Домой приду, напишу комментарии к коду (если надо).

Добавлено через 1 минуту
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
переопределите конструктор копирования и оператор присваивания.
Anna1717, вот только это осталось сделать. Дома доделаю. Пора бежать.
1
0 / 0 / 0
Регистрация: 24.09.2015
Сообщений: 13
30.09.2015, 16:59  [ТС]
Спасибо, да, если не сложно, прокомментируйте
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.09.2015, 17:46
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "Matrix.h"
#include "iostream"
 
using namespace std;
 
void main()
{
    Matrix myMatrix(4, 5); //Конструктор с параметрами (создаем матрицу 4*5)
    myMatrix.PrintMatrix(); //Печатаем (в констр. с парам. по умолчанию значения 0)
    myMatrix.FillMatrixRandomly(1, 10); //Заполняем рандомно значениями от 1 до 10
    myMatrix.PrintMatrix(); //Печатаем получившуюся
    Matrix myMatrix2 = myMatrix; //Конструктор копии (Копируем myMatrix в myMatrix2)
    myMatrix2.PrintMatrix(); //Печатаем для проверки myMatrix2
    myMatrix.~Matrix(); //Деструктор
    myMatrix2.~Matrix(); //Деструктор
    cin.get(); //Один из способов задержки экрана
}

Matrix.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
typedef double Item;
 
class Matrix
{
private:
    int row; //Строк
    int col; //Столбцов
    Item **matrix; //Наша матрица
public:
    Matrix(int, int); //Конструктор с параметрами
    Matrix(Matrix*); //Конструктор копии
    void FillMatrixRandomly(int, int); //Метод заполнения рандомно
    void FillMatrixByUser(); //Метод заполнения ручками
    void PrintMatrix(); //Печать матрицы
    ~Matrix(); //Деструктор
};

Matrix.cpp
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
#include "Matrix.h"
#include "ctime"
#include "iostream"
 
using namespace std;
 
Matrix::Matrix(int _row, int _col) 
{
    row = _row;
    col = _col;
    matrix = new Item *[row];
    for (int i = 0; i < row; i++)
    {
        matrix[i] = new Item[col];
        for (int j = 0; j < col; j++)
            matrix[i][j] = 0;
    }
 
}
 
Matrix::Matrix(Matrix *obj1)
{
    this->matrix = obj1->matrix;
}
 
void Matrix::FillMatrixRandomly(int fromNum, int toNum)
{
    srand(time(0));
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
            matrix[i][j] = fromNum + rand() % toNum;
}
 
void Matrix::FillMatrixByUser()
{
        for (int i = 0; i < row; i++)
            for (int j = 0; j < col; j++)
            {
                cout << "\nEnter a value of the element matrix[" << i << "][" << j << "]: ";
                cin >> matrix[i][j];
            }
}
 
void Matrix::PrintMatrix()
{
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < col; ++j)
            cout << matrix[i][j] << "\t";
        cout << endl;
    }
    cout << endl;
}
 
Matrix::~Matrix(){}


П.с. Часть позаимствовал у gru74ik, лишнее можно убрать (например ручками заполнять).
Результат:
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
30.09.2015, 17:56
Цитата Сообщение от SuperKir Посмотреть сообщение
C++
1
2
myMatrix.~Matrix(); //Деструктор
myMatrix2.~Matrix(); //Деструктор
не нужно деструктор явно вызывать - он вызывается автоматически при выходе из области видимости.
1
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.09.2015, 18:06
Kerry_Jr, я прекрасно об этом знаю, просто привычка.
Как было сказано мною выше, лишнее можно убрать.
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
30.09.2015, 19:27
Anna1717, сделал. Комментарии пока не осилил - спать хочу, аж подташнивает.
Увы, но Вам придётся подождать до завтра. Если только сегодня комментарии не напишет кто-нибудь ещё.
Вот, собственно, код:

main.cpp
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
#include <iostream>
#include "Matrix.h"
 
int main()
{
    std::cout << "Please choose number of rows: ";
    int rsize;
    std::cin >> rsize;
    std::cout << "Please choose number of columns: ";
    int csize;
    std::cin >> csize;
    Matrix userMatrix(rsize, csize);
 
    userMatrix.fill_matrix_by_user();
    std::cout << "\nThis is first matrix filled by user:\n";
    userMatrix.show_matrix();
 
    Matrix newMatrix(rsize, csize);
    newMatrix.fill_matrix_rand(10, 90);
    std::cout << "\nThis is new matrix filled by computer:\n";
    newMatrix.show_matrix();
 
    userMatrix = newMatrix;
    std::cout << "\nThis is first matrix after assign to new matrix:\n";
    userMatrix.show_matrix();
 
    return 0;
}


Matrix.h
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
#ifndef MATRIX_H
#define MATRIX_H
 
typedef double Item;
 
class Matrix
{
private:
    int m_row;
    int m_col;
    Item ** matrix;
public:
    explicit Matrix(int row = 2, int col = 2);
    Matrix(const Matrix & m);
    ~Matrix();
    Matrix & operator=(const Matrix & m);
    void reset_matrix();
    void fill_matrix_rand(int fromNum, int toNum);
    void fill_matrix_by_user();
    Item find_min_value();
    Item find_max_value();
    Item find_avg_value();
    void show_matrix();
};
 
#endif // MATRIX_H


Matrix.cpp
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
132
133
134
#include "Matrix.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
 
Matrix::Matrix(int row, int col)
{
    m_row = row;
    m_col = col;
 
    matrix = new Item * [m_row];
    for (int i = 0; i < m_row; ++i)
        matrix[i] = new Item[m_col];
}
 
Matrix::Matrix(const Matrix & m)
{
    for (int i = 0; i < m_row; ++i)
        delete [] matrix[i];
    delete [] matrix;
 
    m_row = m.m_row;
    m_col = m.m_col;
 
    matrix = new Item * [m_row];
    for (int i = 0; i < m_row; ++i)
        matrix[i] = new Item[m_col];
 
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            matrix[i][j] = m.matrix[i][j];
}
 
Matrix & Matrix::operator=(const Matrix & m)
{
    if (this != &m)
    {
        for (int i = 0; i < m_row; ++i)
            delete [] matrix[i];
        delete [] matrix;
 
        m_row = m.m_row;
        m_col = m.m_col;
 
        matrix = new Item * [m_row];
        for (int i = 0; i < m_row; ++i)
            matrix[i] = new Item[m_col];
 
        for (int i = 0; i < m_row; ++i)
            for (int j = 0; j < m_col; ++j)
                matrix[i][j] = m.matrix[i][j];
    }
 
    return *this;
}
 
Matrix::~Matrix()
{
    for (int i = 0; i < m_row; ++i)
        delete [] matrix[i];
    delete [] matrix;
}
 
void Matrix::reset_matrix()
{
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            matrix[i][j] = 0;
}
 
void Matrix::fill_matrix_rand(int fromNum, int toNum)
{
    srand(time(0));
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
        {
            do
            {
                matrix[i][j] = fromNum + rand()%(toNum - fromNum);
            }
            while (matrix[i][j] == 0);
        }
}
 
void Matrix::fill_matrix_by_user()
{
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
        {
            std::cout << "\nEnter a value of the element matrix["
                      << i <<"][" << j << "]: ";
            std::cin >> matrix[i][j];
        }
}
 
Item Matrix::find_min_value()
{
    Item min_value = matrix[0][0];
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            if (min_value > matrix[i][j])
                min_value = matrix[i][j];
    return min_value;
}
 
Item Matrix::find_max_value()
{
    Item max_value = matrix[0][0];
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            if (max_value < matrix[i][j])
                max_value = matrix[i][j];
    return max_value;
}
 
Item Matrix::find_avg_value()
{
    Item sum = 0;
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            sum += matrix[i][j];
    return sum / (m_row * m_col);
}
 
void Matrix::show_matrix()
{
    std::cout << std::endl;
    for (int i = 0; i < m_row; ++i)
    {
        for (int j = 0; j < m_col; ++j)
            std::cout << matrix[i][j] << "\t";
        std::cout << std::endl;
    }
}
Миниатюры
Как клонировать матрицы?  
1
0 / 0 / 0
Регистрация: 24.09.2015
Сообщений: 13
30.09.2015, 22:54  [ТС]
Спасибо) да,я подожду
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
01.10.2015, 09:46
Anna1717, комментарии и объяснения взяты из книжки Стивена Праты "Язык программирования С++. Лекции и упражнения" (2012, 6-е издание). Так что, чтобы лучше понять предмет, рекомендую эту книжку к прочтению. Вот заголовочный файл класса Matrix с комментариями:

Matrix.h
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
// Заголовочный файл должен включаться в файл только один раз. Это кажется
// простым требованием, которое легко запомнить и придерживаться, тем не менее, 
// можно непреднамеренно включить заголовочный файл несколько раз, даже не
// подозревая об этом. Например, предположим, что используется заголовочный файл,
// который включает другой заголовочный файл. В C/C++ существует стандартный прием,
// позволяющий избежать многократных включений заголовочных файлов. Он основан на
// использовании директивы препроцессора #ifndef (if not defined — если не
// определено). Код ниже обеспечивает обработку операторов, находящихся между
// директивами #ifndef и #endif, только в случае, если имя MATRIX_H не было
// определено ранее с помощью директивы препроцессора #defіnе:
 
#ifndef MATRIX_H
#define MATRIX_H
 
// Используем ключевое слово typedef для объявления псевдонима типа double.
// Теперь Item является псевдонимом double. То есть, везде в коде вместо
// double можно писать Item (подробнее см. С. Прата, стр. 238):
typedef double Item;
 
// Объявляем класс по имени Matrix (подробнее см. С. Прата, стр. 483):
class Matrix
{
// Ключевые слова private и public позволяют управлять доступом к членам класса.
// Любая программа, которая использует объект определенного класса, может иметь
// непосредственный доступ к членам из раздела public. Доступ к членам объекта
// из раздела private программа может получить только через открытые функции-члены
// из раздела public (или через дружественные функции). Открытые функции-члены
// действуют в качестве посредников между программой и закрытыми членами объекта;
// они предоставляют интерфейс между объектом и программой. Эта изоляция данных
// от прямого доступа со стороны программы называется сокрытием данных.
private:   
// данные-члены (или, как их ещё иногда называют, поля класса):
    int m_row;  // размер строк в матрице
    int m_col;  // размер столбцов в матрице
    Item ** matrix;     // указатель на указатель на Item
    
public:
// функции-члены (или, как их ещё иногда называют, методы класса):
    
// Конструктор - это специальная функция-член, которая нужна для создания объекта.
// В нашем случае конструктор предваряется ключевым словом explicit, которое
// отключает неявное преобразование типов. Дело в том, что В C++ любой конструктор,
// который принимает единственный аргумент, действует как инструмент копирования
// для преобразования значения типа аргумента в тип класса. Возможность применения
// конструктора, работающего как автоматическая функция преобразования типов, кажется
// удобным средством. Но программисты, накопившие определенный опыт работы с C++,
// обнаруживают, что автоматический аспект не всегда желателен, поскольку иногда ведет
// к неожиданным преобразованиям. Поэтому в C++ добавлено новое ключевое слово explicit
// для отключения этого автоматического поведения (подробнее см. С. Прата, стр. 575):
    explicit Matrix(int row = 2, int col = 2); // конструктор
    
// Конструктор копирования служит для копирования некоторого объекта в создаваемый
// объект. Другими словами, он используется во время инициализации — в том числе
// при передаче функции аргументов по значению — но не во время обычного присваивания.
// Конструктор копирования для класса обычно имеет следующий прототип:
// Имя_класса(const Имя_класса &);
// Обратите внимание, что в качестве аргумента он принимает константную ссылку
// на объект класса (подробнее см. С. Прата, стр. 602):  
    Matrix(const Matrix & m); // конструктор копирования
    
// В случае использования конструктора для создания объекта программа отслеживает
// этот объект до момента его исчезновения. В этот момент программа автоматически
// вызывает специальную функцию-член с несколько пугающим названием деструктор.
// Деструктор призван очищать всяческий "мусор", поэтому он служит весьма полезной
// цели. Например, если в конструкторе используется операция new для выделения 
// памяти, то деструктор должен обратиться к delete для ее освобождения (подробнее
// см. С. Прата, стр. 504):
    ~Matrix();  // деструктор
    
// Перегруженная операция присваивания используется при присваивании одного
// объекта другому существующему объекту (подробнее см. С. Прата, стр. 607):    
    Matrix & operator=(const Matrix & m);
    
// Функция-член reset_matrix() присваивает каждому элементу матрицы значение 0:
    void reset_matrix();
    
// Функция-член fill_matrix_rand() присваивает каждому элементу матрицы псевдослучайное
// значение в диапазоне от fromNum до toNum:
    void fill_matrix_rand(int fromNum, int toNum);
    
// Функция-член fill_matrix_by_user() присваивает каждому элементу матрицы значение
// задаваемое пользователем:
    void fill_matrix_by_user();
    
// Функция-член find_min_value() просматривает все элементы матрицы один за другим
// и возвращает минимальное значение:    
    Item find_min_value();
    
// Функция-член find_max_value() просматривает все элементы матрицы один за другим
// и возвращает максимальное значение:
    Item find_max_value();
    
// Функция-член find_avg_value() суммирует значение всех элементов матрицы и делит
// эту сумму на количество элементов (считает среднее арифметическое всех значений):
    Item find_avg_value();
    
// Функция-член show_matrix() выводит все элементы матрицы один за другим на
// консоль (экран монитора):
    void show_matrix();
};
 
#endif // MATRIX_H
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
01.10.2015, 09:50
Цитата Сообщение от gru74ik Посмотреть сообщение
C++
1
2
3
4
Matrix::Matrix(const Matrix & m) 
{ for (int i = 0; i < m_row; ++i) 
delete [] matrix[i]; 
delete [] matrix;
Что ты там удаляешь в конструкторе-то?
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
01.10.2015, 10:56
Цитата Сообщение от Enno Посмотреть сообщение
Что ты там удаляешь в конструкторе-то?
Да, действительно, это я маху дал. Правильно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Matrix::Matrix(const Matrix & m)
{
    m_row = m.m_row;
    m_col = m.m_col;
 
    matrix = new Item * [m_row];
    for (int i = 0; i < m_row; ++i)
        matrix[i] = new Item[m_col];
 
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            matrix[i][j] = m.matrix[i][j];
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.10.2015, 10:56
Помогаю со студенческими работами здесь

Как клонировать кнопку?
всем привет,скажите как в windows forms сделать так что бы ,ну вот допустим у меня есть кнопка button 4,как сделать так что бы с button...

Как клонировать систему?
Здравствуйте уважаемые сатанисты (шучу) Имеется ~ 60 компьютеров с не схожим железом. Отличаются они объемом HDD, RAM, файловой...

Как клонировать спрайт?
SFML. Как клонировать спрайт?

Как клонировать Beckhoff BC9000?
Есть несколько одинаковых агрегатов с контроллером на базе Beckhoff BC9000. У одного перестал работать собственно сам BC9000. Есть новый...

Как клонировать диск с МАС ОС?
Есть 1 физический хард с МАС mini 2014, на 500гб. И есть SSD 250гб. Задача клонировать диск мак на ssd. Забитость раздела невелика, так...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru