Загрузка данных



#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;
}