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 = new int[end - begin];
- size = end-begin;
- }
- // ввод элементов массива с клавиатуры
- void input() {
- for (int i=0;i<size;++i)cin>>a[i];
- }
- // вывод элементов массива на экран дисплея
- void out() {
- for (int i=0;i<size;++i)cout<<a[i]<<' ';
- cout << '\n';
- }
- // добавка элемента в конец занятой части массива
- void push_back(int q) {
- a[size - 1] = q;
- }
- // умножение всех элементов массива на заданное число
- void mul(int q) {
- for (int i=0;i<size;++i)a[i]*=q;
- }
- // вычисление произведения элементов массива
- int get_mul() {
- int answer = 1;
- for (int i=0;i<size;++i)answer*=a[i];
- return answer;
- }
- // вычисление разности между максимальным и минимальным значениями элементов массива
- int get_abs() {
- int min = a[0];
- int max = min;
- for (int i=0;i<size;++i) {
- int x=a[i];
- if (x < min)min = x;
- if (x > max)max = x;
- }
- return max - min;
- }
- // копирование массивов
- void copy(array Array) {
- begin = Array.begin;
- end = Array.end;
- size = Array.size;
- delete a;
- a = new int[size];
- for(int i=0;i<size;++i)a[i]=Array.a[i];
- }
- private:
- int begin, end;
- int * a;
- int size;
- };
- 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 << "Введите массив размера 7\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();
- cout<< "Добавка элемента в конец занятой части массива\n";
- b.push_back(-999);
- b.out();
- }
- if(1){
- cout<<"\nТест Complex\n";
- 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