#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class Massiv {
private:
int* arr;
int n;
public:
// конструктор по умолчанию — случайные значения
Massiv() {
n = 5;
arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = rand() % 50;
}
// конструктор с параметрами
Massiv(int razmer, int* znachenia) {
n = razmer;
arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = znachenia[i];
}
// конструктор копирования
Massiv(const Massiv& other) {
n = other.n;
arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = other.arr[i];
}
// деструктор
~Massiv() {
cout << "destruktor dlya massiva razmera " << n << endl;
delete[] arr;
}
// вывод
void pokaji() {
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
// задание 21 — найти элементы, являющиеся квадратами числа m
void kvadraty(int m) {
cout << "elementy-kvadraty chisla " << m << ": ";
bool est = false;
for (int i = 0; i < n; i++) {
if (arr[i] == m * m) {
cout << arr[i] << " ";
est = true;
}
}
if (!est) cout << "net takih";
cout << endl;
}
};
int main() {
srand(time(0));
// конструктор по умолчанию
Massiv a;
cout << "a (po umolchaniyu): "; a.pokaji();
// конструктор с параметрами
int zn[] = {4, 9, 15, 25, 16, 7};
Massiv b(6, zn);
cout << "b (s parametrami): "; b.pokaji();
// конструктор копирования
Massiv c = b;
cout << "c (kopiya b): "; c.pokaji();
// задание
a.kvadraty(5);
b.kvadraty(4);
c.kvadraty(3);
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class Tovar {
private:
string nazvanie;
int cena;
int kolichestvo;
int stoimost;
public:
Tovar(string n, int c, int k) {
nazvanie = n;
cena = c;
kolichestvo = k;
stoimost = cena * kolichestvo;
}
string getNazvanie() { return nazvanie; }
int getCena() { return cena; }
int getKolichestvo(){ return kolichestvo; }
int getStoimost() { return stoimost; }
void pokaji() {
cout << nazvanie << " | cena: " << cena
<< " | kolvo: " << kolichestvo
<< " | stoimost: " << stoimost << endl;
}
// дружественная функция сортировки по стоимости
friend void sortPoStoimosti(Tovar* t, int n);
};
void sortPoStoimosti(Tovar* t, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (t[j].stoimost > t[j+1].stoimost) {
Tovar temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
}
}
}
int main() {
const int n = 4;
Tovar tovary[n] = {
Tovar("Ruchka", 50, 20),
Tovar("Tetrad", 30, 10),
Tovar("Penal", 400, 3),
Tovar("Lineika", 80, 15)
};
cout << "=== Do sortirovki ===\n";
for (int i = 0; i < n; i++) tovary[i].pokaji();
sortPoStoimosti(tovary, n);
cout << "\n=== Posle sortirovki po stoimosti ===\n";
for (int i = 0; i < n; i++) tovary[i].pokaji();
return 0;
}