#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;
}
Ось як я зробив 3-ю завдання:
#include “pch.h”
#include
#include
#include
#include
#include
#include
using namespace std;
class Matrix
{
ІНТ рядки, смещ_по_столбцам;
int arr[100][100];
int i, j;
public:
недійсний Fill_array()
{
this->смещ_по_столбци = смещ_по_столбци;
this->рядки = рядки;
cout <> рядки; cout << endl;
cout <> смещ_по_столбцам; cout <arr[рядки][смещ_по_столбцам];
for ( i = 0; i < рядки; i )
{
for ( J = 0; j < смещ_по_столбцам; j )
{
arr[i][j] = rand() % 10;
}
}
}
недійсний Change_array()
{
cout << "Matrix\n\n";
for ( i = 0; i < рядки; i )
{
for ( J = 0; j < смещ_по_столбцам; j )
{
cout << setw(4) << arr[i][j];
}
cout << endl;
}
cout << "\nModified matrix\n\n";
for ( J = 0; j < смещ_по_столбцам; j )
{
for ( i = 0; i < рядки; i )
{
cout << setw(4) << arr[i][j];
}
cout << endl;
}
}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
матриця А;
a.Fill_array();
a.Change_array();
return 0;
}
//1 завдання.
class Tiles
#include
{public:
рядок бренду;
int size_h;
ІНТ size_w;
подвійна ціна; ІНТ дані;
void setData(INT х,INT у)
{
size_h = х;
size_w = у;
}
недійсна GetData()
{
cout << "\tНазвание = " << brand << "\tВысота= " << size_h << "\tШирина = " << size_w << "\tСтоимость = " << price << endl;
}
недійсним друку()
{
cout <<"\tНазвание = "<< brand << "\tВысота= " << size_h << "\tШирина = " << size_w << "\tСтоимость = " << price << endl;
}
};
int main()
{
setlocale(LC_ALL, "rus");
плитка Keramika;
Keramika.brand = "Керамика из Италии";
Keramika.price = 2.3;
плитка bKeramika;
Keramika.setData(5, 6);
Keramika.getData();
bKeramika.price = 30,5;
bKeramika.size_h = 20;
bKeramika.size_w = 10;
bKeramika.brand = "Керамика из Франции";
bKeramika.Print();
}
//void FillArray-метод класу. void Exchange-окрема функція
#include
using namespace std;
INT ** обр;
клас Inverse
{
public:
недійсний FillArray(ІНТ сировину, INT кол)
{
обр = новий INT *[сировину];
for (int i = 0; i < сировину; i )
{
arr[i] = new int[сідло]; //присвоюємо в кожен елемент рядка новий динам масив, відповідальний за колонки
}
for (int i = 0; i < сировину; i )
{
cout << "|";
for (int j = 0; j < сідло; j )
{
arr[i][j] = rand() % 20;
cout << arr[i][j] << "\t";
}
cout << "|" << endl;
}
}
};
недійсний Обмін(ІНТ сировину, INT кол)
{
** = новий NARR ви *[сідло];
for (int i = 0; i < сідло; i )
{
дурити[i] = new int[сировину]; //присвоюємо в кожен елемент рядка новий динам масив, відповідальний за колонки
}
for (int i = 0; i < сідло; i )
{
for (int j = 0; j < сировину; j )
{
дурити[i][j] = arr[j][i];
}
cout << endl;
}
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 )
{
cout << "|";
for (int j = 0; j < сировину; j )
{
arr[i][j] = дурень[i][j];
cout << arr[i][j] << "\t";
}
cout << "|" << endl;
}
for (int i = 0; i < сідло; i )
{
delete[] дурити[i];
}
delete[] дурити;
}
int main()
{
ІНТ сировину = 7;
INT кол = 10;
Зворотні;
a.FillArray(сировину, сідло);
обмін(сировину, сідло);
return 0;
}
Без покажчиків і одним методом. У кого видає попередження додайте ключ -std = c ++ 11 до компілятору. Але спрацює і без цього.
#include
using namespace std;
клас маси
{
ІНТ massStroka[5][2]={};
ІНТ massCtolbez[2][5]={};
public:
недійсний zapolnMass()
{
ІНТ а = 0;
ІНТ kolvoStr;
ІНТ kolvoCtlb;
cout<<" Введіть кількість рядків. "<>kolvoStr;
cout<<" Введіть кількість стовпців. "<>kolvoCtlb;
for (INT I = 0;i<kolvoStr;i )
{
cout<<endl;
for(Int J = 0;j<kolvoCtlb;j )
{
A ++;
massStroka[i][j] = а;
massCtolbez[j][i] = а ;
cout << "|" ;
cout<<massStroka[i][j];
cout << "|" ;
}
}
cout<<endl;
for (INT г = 0;від<kolvoCtlb;з ++)
{
cout<<endl;
cout << "|";
for(ІНТ к = 0;k<kolvoStr;k )
{
cout<<massCtolbez[від][k];
}
cout << "|";
}
}
};
int main ()
{
setlocale(LC_ALL, "rus");
маса a1;
a1.zapolnMass();
return 0;
}
3 завдання. Підкажіть, все норм?
#include
#include
using namespace std;
class Matrix
{
private:
int arr[3][4];
public:
недійсний vivodnorn()
{
for (int i = 0; i < 3; i )
{
for (int k = 0; k < 4; k )
{
arr[i][k] = rand() % 132;
cout << arr[i][k] << "\t";
}
cout << endl;
}
}
недійсний vivodfuc()
{
for (int i = 0; i < 4; i )
{
for (int k = 0; k < 3; k )
cout << arr[k][i] << "\t";
cout << endl;
}
}
};
int main(ІНТ Ваге)
{
setlocale(0, "");
srand(time(0));
матриця А;
a.vivodnorn();
cout << endl << endl;
a.vivodfuc();
return 0;
}
У третій задачі витік пам'яті без деструкції
Через конструктор класса 1 задание легче сделать
#include
#include
using namespace std;
class Tiles {
private:
double size_h;
double size_w;
подвійна ціна;
string Brend;
public:
Tiles(double size_h1, double size_w1, double price1, string Brend1) {
size_h = size_h1;
size_w = size_w1;
price = price1;
Brend = Brend1;
}
void Getobject() {
cout << size_h << " X " << size_w << endl << "$" << price << endl << "Bramnd " << Brend << endl;
}
};
void main() {
Tiles a(12,14.5,20.5,"EPTA");
a.Getobject();
}
Второй номер
#include
#include
#include
using namespace std;
class Children {
private:
int age;
ім'я рядка;
string surname;
public:
void SetChildren() {
cin >> age;
cin >> name;
cin >> surname;
}
недійсним друку() {
cout << "имя "<<name<<endl<<"Фамилия "<<surname<<endl<<"Возраст"<<age<<endl;
}
};
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Діти а;
a.SetChildren();
a.Print();
}