Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cmath>
- using namespace std;
- class array {
- public:
- // Конструктор
- array(int begin, int end) : begin(begin), end(end) {
- if (begin > end) {
- exit(1);
- }
- a = vector<int>(end - begin);
- }
- // ввод элементов массива с клавиатуры
- void input() {
- for (auto &x: a)cin >> x;
- }
- // вывод элементов массива на экран дисплея
- void out() {
- for (auto x: a)cout << x << " ";
- cout << '\n';
- }
- // добавка элемента в конец занятой части массива
- void push_back(int q) {
- a[end - begin - 1] = q;
- }
- // умножение всех элементов массива на заданное число
- void mul(int q) {
- for (auto &x: a)x *= q;
- }
- // вычисление произведения элементов массива
- int get_mul() {
- int answer = 1;
- for (auto x: a)answer *= x;
- return answer;
- }
- // вычисление разности между максимальным и минимальным значениями элементов массива
- int get_abs() {
- int min = a[0];
- int max = min;
- for (auto x: a) {
- if (x < min)min = x;
- if (x > max)max = x;
- }
- return max - min;
- }
- // копирование массивов
- void copy(array Array) {
- a = Array.a;
- begin = Array.begin;
- end = Array.end;
- }
- private:
- int begin, end;
- vector<int> a;
- };
- class complex {
- public:
- complex(double re, double im) : re(re), im(im), m(sqrt(re * re + im * im)) {}
- void print() {
- cout << re << " + " << im << "i, mod = " << m << '\n';
- }
- void plus(complex a) {
- re += a.re;
- im += a.im;
- m = sqrt(re * re + im * im);
- }
- void mul(complex a) {
- double nre = re * a.re - im * a.im;
- double nim = re * a.im + im * a.re;
- re = nre;
- im = nim;
- m = sqrt(re * re + im * im);
- }
- void minus(complex a) {
- a.mul(complex(-1, 0));
- this->plus(a);
- }
- void del(complex a) {
- double nre = (re * a.re + im * a.im) / (a.re * a.re + a.im * a.im);
- double nim = (im * a.re - re * a.im) / (a.re * a.re + a.im * a.im);
- re = nre;
- im = nim;
- m = sqrt(re * re + im * im);
- }
- private:
- double re, im, m;
- };
- int main() {
- if(1) {
- array a(3, 10);
- cout << "Введите массив\n";
- a.input();
- cout << "Первоначальный массив\n";
- a.out();
- cout << "Произведение элементов массива " << a.get_mul() << endl;
- cout << "Разница между минимальным и максимальным элементом " << a.get_abs() << endl;
- a.mul(2);
- cout << "Массив, умноженный на 2\n";
- a.out();
- cout << "Копирование массива\n";
- array b(1, 2);
- b.copy(a);
- b.out();
- }
- if(1){
- complex a(5, 6);
- complex b(3,8);
- a.print();
- b.print();
- cout<<"a=a+b\n";
- a.plus(b);
- a.print();
- cout<<"a=a-b\n";
- a.minus(b);
- a.print();
- cout<<"a=a*b\n";
- a.mul(b);
- a.print();
- cout<<"a=a/b\n";
- a.del(b);
- a.print();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement