#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;
}
я по начому зробив 2 задачу
#include
#include”windows.h”
#include
using namespace std;
діти класу{
private:
ім'я рядка;
рядок ланцет;
поплавок вик;
public:
діти(): скласти(0)
{ }
діти(Рядок г1, рядок w2, w3 з плаваючою точкою): name(г1),ланцет(w2),скласти(W3)
{ }
недійсним Foma();
DOTA недійсними();
};
Діти зізнаються недійсними::foma(){
cout<<"Добрий день "<<endl<<"Ведіть імя фімілію і рік"<>скласти;
// cout<<"Імя "<<name<<endl<<"Фамілія "<<ланцет<<endl<<"Рік"<<скласти<<endl;
}
Діти зізнаються недійсними::DOTA(){
cout<<"Імя "<<name<<endl<<"Фамілія "<<ланцет<<endl<<"Рік "<<скласти<<endl;
}
int main(){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout<<"Привіт !1!";
діти EE1;
ee1.foma();
ee1.dota();
return 0;
}
Саша, не потрібно сюди, в коментарі, писати це сміття – свій код!
Маю питання є запитання, шановні знавці!
У прикладі рішення третього завдання ми створили тимчасову матрицю tempMatrix нової конфігурації, скопіювали в неї по черзі всі елементи, після чого звільнили пам'ять, займану матрицею matrixInClass, виділили нову пам'ять для matrixInClass, по черзі скопіювали всі елементи і звільнили пам'ять, займану тимчасової матрицею.
Я пішов трохи іншим шляхом, коротшим. Все працює без помилок, але хочеться знати, може я щось пропускаю(даремно скоротив). Свій код залив на codepad –> http://codepad.org/vAuUf5pO
робив так:
Створила тимчасову матрицю tempMatrix нової конфігурації, скопіював в неї елементи з матриці matrixInClass, звільнив пам'ять, займану matrixInClass.
До цього моменту всі точно так же.
А тепер я просто вказівником matrixInClass присвоїв значення tempMatrix таким чином:
matrixInClass = tempMatrix;
tempMatrix = 0;
Після чого matrixInClass почав вказувати на ділянку пам'яті, займаний tempMatrix. Тобто тепер нам не потрібно перевиделять пам'ять для matrixInClass, как в примере, потім поелементно копіювати матрицю і звільняти пам'ять.
Питання у мене наступне: може неспроста ви зробили так, як зробили, а я десь допускаю витоку пам'яті??? Завчасно дякую за відповідь!
Допоможіть вирішити задачу!
Завдання на взаємодію між класами. Razrabotat Systems 'депо'. Диспетчер розподіляє заявки на Рейси між Водіями і призначає для цього Автомобіль. Водій може зробити заявку на ремонт. Диспетчер може відсторонити Водія від роботи. Водій робить позначку про виконання Рейса і стані Автомобіля.
У мене на другий завданню при введенні даних для другої дитини пропускає введення імені, відразу до прізвища. Почему? Код абсолютно такий же, але замість “char” – “string”.
Теж самое..Хотя я використовую char..
в строке 39 cin.get();
це написав?
Це робиться для того, щоб очистити буфер введення виведення з клавіатури. Іноді в цьому буфері можуть зберегтися якісь дані.
в строке 39
це написав?
Це робиться для того, щоб очистити буфер введення виведення з клавіатури. Іноді в цьому буфері можуть зберегтися якісь дані.
У третій задачі в рядку 25 масив неправильно заповнюється
я в своєму завданню заповнив масив приблизно так
В рядку 25 – це конструктор матриці, яка заповнюється за будь-яким своїм правилам.
А 11, 22, 33 … в умови показано як “например”.
Задача – на транспонування матриці. Возможно, вона написана не кращим чином, але все показане – правильно.
допоможіть вирішити задачу:
Описати клас «ЄДІ».
Кожен запис містить номер бланка, прізвище та ініціали учня, рік здачі, найменування предметів і оцінки.
Передбачити можливість формування: списку з клавіатури і з файлу, друку всього списку; списку документів, де середній бал по ЄДІ нижче (вище) середнього; списку документів, максимальними балами по заданій дисципліні
Мені дуже сподобалося завдання 3. цікаве!!
Задача номер 2
#include
#include
using namespace std;
class MyClass
{
char name[32];
char sourcename[32];
int age;
public:
void Set_MyClass()
{
cout <> this->name;
cout <> this->sourcename;
cout <> this->age;
}
void Get_MyClass()
{
cout << "Name " << name << endl;
cout << "Source " << sourcename << endl;
cout << "Age " << age << endl;
}
};
int main()
{
setlocale(LC_ALL, "Ukrainian");
system("color A");
MyClass first;
MyClass second;
cout << "Enter your date" << endl;
first.Set_MyClass();
second.Set_MyClass();
cout << "\tYour date" << endl;
first.Get_MyClass();
second.Get_MyClass();
_getch();
return 0;
}
Там метод має бути такий. Чомусь коли закинув якась фігня відобразилась
void Set_MyClass()
{
cout <> this->name;
cout <> this->sourcename;
cout <> this->age;
}