#include <iostream>
using namespace std;
class Matrix
{
int ** matrixInClass;
public:
void setMatrix(int rowAmount, int colAmount);
void changeRowAndColumn(int rowAmount, int colAmount);
};
//==============================================================
void Matrix::setMatrix(int rowAmount, int colAmount) // заполнение массива данными
{
matrixInClass = new int*[rowAmount]; // выделяем память для матрицы
for (int i = 0; i < rowAmount; i++)
{
matrixInClass[i] = new int[colAmount];
}
for (int i = 0; i < rowAmount; i++) // записываем значения в массив
{
cout << " | ";
for (int j = 0; j < colAmount; j++)
{
matrixInClass[i][j] = i + j;
cout << matrixInClass[i][j] << " ";
}
cout << " | " << endl;
}
}
//==============================================================
void Matrix::changeRowAndColumn(int rowAmount, int colAmount)
{
int** tempMatrix = new int*[colAmount]; // выделяем память для временной матрицы
for (int i = 0; i < colAmount; i++)
{
tempMatrix[i] = new int[rowAmount];
}
for (int i = 0; i < colAmount; i++) // копируем столбцы в строки, а строки в столбцы
{
for (int j = 0; j < rowAmount; j++)
{
tempMatrix[i][j] = matrixInClass[j][i];
}
cout << endl;
}
for (int i = 0; i < rowAmount; i++) // Освобождаем память перед выделением новой
{
delete[] matrixInClass[i];
}
delete[] matrixInClass;
matrixInClass = new int*[colAmount]; // выделяем новую память
for (int i = 0; i < colAmount; i++)
{
matrixInClass[i] = new int[rowAmount];
}
for (int i = 0; i < colAmount; i++) // копируем из временной матрицы
{
cout << "|";
for (int j = 0; j < rowAmount; j++)
{
matrixInClass[i][j] = tempMatrix[i][j];
cout << matrixInClass[i][j] << " ";
}
cout << "|" << endl;
}
for (int i = 0; i < colAmount; i++) // Освобождаем память временной матрицы
{
delete[] tempMatrix[i];
}
delete[] tempMatrix;
}
int main()
{
setlocale(LC_ALL, "rus");
int rowAmount;
int colAmount;
cout << "Введите количество строк двумерного массива: ";
cin >> rowAmount;
cout << "Введите количество столбцов двумерного массива: ";
cin >> colAmount;
Matrix Object;
Object.setMatrix(rowAmount, colAmount);
cout << "\nЗамена значений строк на значения столбцов: ";
Object.changeRowAndColumn(rowAmount, colAmount);
return 0;
}
#include
using namespace std;
class Matrix {
private:
int **матриця;
public:
void setData(ІНТ рядок, INT кол) {
матриця = new int * [рядок];
for (int i = 0; i < рядок; i ) {
matrix[i] = new int[сідло];
}
for (int i = 0; i < рядок; i ) {
cout << '\n';
for (int j = 0; j < сідло; j ) {
matrix[i][j] = 1 + rand() % 9;
cout << matrix[i][j] << '\t';
}
}
cout << "\n====================================================\n";
};
void getData(ІНТ рядок,INT кол) {
for (int i = 0; i < сідло; i ) {
cout << '\n';
for (int j = 0; j < рядок; j ) {
cout << matrix[j][i] << '\t';
}
}
for (int i = 0; i < рядок; i ) {
delete[]matrix[i];
}
delete[]matrix;
};
};
int main() {
матриця А;
a.setData(3,6);
a.getData(3,6);
return 0;
}
Я початківець, і ось мій код:
#include
using namespace std;
клас ArrayConverter{
public:
int числа[7][3] = {
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0
};
int convertedNumbers[3][7] = {
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0
};
void SetRandomElements(){
for(int i = 0; i < 7; i ){
for(int j = 0; j < 3; j ){
числа[i][j] = rand() % 11;
}
}
}
void ShowOriginalArray(){
for(int i = 0; i < 7; i ){
for(int j = 0; j < 3; j ){
cout << числа[i][j] << " ";
}
cout << endl;
}
}
void ConvertColumnsToRows(){
for(int i = 0; i < 3; i ){
for(int j = 0; j < 7; j ){
перетворені числа[i][j] = числа[j][i];
}
}
}
void ShowConvertedArray(){
for(int i = 0; i < 3; i ){
for(int j = 0; j < 7; j ){
cout << перетворені числа[i][j] << " ";
}
cout << endl;
}
}
Перетворювач масивів(){
SetRandomElements();
}
};
int main(){
Конвертер ArrayConverter;
converter.ShowOriginalArray();
converter.ConvertColumnsToRows();
cout << endl;
convert.ShowConvertedArray();
return 0;
}
#include
using namespace std;
клас ChangeArr
{
public:
void setArr();
void change();
private:
Int ** обр;
int row = 0;
INT кол = 0;
};
void main()
{
setlocale(LC_ALL, “RU”);
srand(time(NULL));
ChangeArr обр;
arr.setArr();
обр.змін();
}
void ChangeArr::setArr()
{
cout << "Укажите размер массива:" <> рядок;
cin >> сідло;
обр = новий INT * [рядок];
for (int i = 0; i < рядок; i )
{
arr[i] = new int[сідло];
}
cout << "Заполните массив:" << endl;
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
cout << "Значение ячейки – [" << i << "]" << "[" << j << "]" <> arr[i][j];
}
}
cout << endl;
cout << "Ваш массив:" << endl<<endl;
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
cout << arr[i][j] << " ";
}
cout << endl;
}
}
void ChangeArr::change()
{
int** tempArr = новий int* [сідло];
for (int i = 0; i < сідло; i )
{
tempArr[i] = new int[рядок];
}
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
tempArr[j][i] = arr[i][j];
}
}
cout << "Замена строчек на столбци " << endl << endl;
for (int i = 0; i < сідло; i )
{
for (int j = 0; j < рядок; j )
{
cout << tempArr[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < сідло; i )
{
delete[] arr[i];
}
delete[]arr;
arr = nullptr;
for (int i = 0; i < сідло; i )
{
delete[] tempArr[i];
}
delete[]tempArr;
tempArr = nullptr;
}
#include
#include
using namespace std;
class Matrix
{
private:
Int ** обр;
ІНТ рядок;
INT кол;
ви** bufArr;
int bufRow;
int bufCol;
public:
недійсний Fill_array(олівець-620cace92f4c3534667744/, олівець-620cace92f4c3534667744/)
{
рядок = значення_рядків;
col = cols_value;
bufRow = rows_value;
bufCol = cols_value;
обр = новий INT * [рядок];
for (int i = 0; i < рядок; i )
{
arr[i] = new int[сідло];
}
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
arr[i][j] = rand() % 90 + 10;
}
}
}
олівець-620cace92f4c3534667744/()
{
bufArr = новий int* [рядок];
for (int i = 0; i < рядок; i )
{
bufArr[i] = new int[сідло];
}
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
bufArr[i][j] = arr[i][j];
}
}
int buf = рядок;
рядок = стовпчик;
col = бафф;
for (int i = 0; i < сідло; i )
{
delete[] arr[i];
}
delete[] arr;
обр = новий INT * [рядок];
for (int i = 0; i < рядок; i )
{
arr[i] = new int[сідло];
}
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
arr[i][j] = bufArr[j][i];
}
}
}
void PrintArr()
{
for (int i = 0; i < рядок; i )
{
for (int j = 0; j < сідло; j )
{
cout << arr[i][j] << " ";
}
cout << endl;
}
}
~Матриця()
{
for (int i = 0; i < bufRow; i )
{
delete[] bufArr[i];
}
delete[]bufArr;
for (int i = 0; i < рядок; i )
{
delete[] arr[i];
}
delete[]arr;
}
};
int main()
{
srand(time(NULL));
олівець-620cace92f4c3534667744/;
олівець-620cace92f4c3534667744/(4, 2);
first.PrintArr();
cout << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" << endl;
олівець-620cace92f4c3534667744/();
first.PrintArr();
}
клас Massive {
private:
ви масивні[2][4]{
{11,33,55,77},
{22,44,66,88}
};
public:
порожня вертикаль() {
std::cout << масивний[0][0] << " " << масивний[1][0] << std::endl;
std::cout << масивний[0][1] << " " << масивний[1][1] << std::endl;
std::cout << масивний[0][2] << " " << масивний[1][2] << std::endl;
std::cout << масивний[0][3] << " " << масивний[1][3] << std::endl;
}
порожній горизонт() {
std::cout << масивний[0][0] << " " << масивний[0][1] << " " << масивний[0][2] << " " << масивний[0][3] << " " << std::endl;
std::cout << масивний[1][0] << " " << масивний[1][1] << " " << масивний[1][2] << " " << масивний[1][3] << " " << std::endl;
}
};
int main() {
setlocale(LC_ALL, "rus");
Massively massive_two;
std::cout << "было:" << std::endl;
масив_два.вертикаль();
std::cout << "стало:" << std::endl;
масив_два.gorizont();
}
Поясніть навіщо тут взагалі виділення пам'яті? Тут взагалі необхідно?