Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- class complexArray {
- private:
- int len;
- float *data_r;
- float *data_i;
- public:
- //Конструктор
- complexArray (int input_len) {
- len=input_len;
- data_r = new float[input_len];
- data_i = new float[input_len];
- for (int i=0; i<input_len; i++) {
- data_r[i] = rand()%201-100;
- data_i[i] = rand()%201-100;
- }
- return;
- }
- //Деструктор
- ~complexArray() {
- delete[] data_r;
- delete[] data_i;
- return;
- }
- //Добавление
- void add(float newr, float newi) {
- //Нам надо увеличить длину массива,
- //поэтому создаем новый на 1 больше
- float *newdata_r = new float[len+1];
- float *newdata_i = new float[len+1];
- //Копируем
- for (int i=0; i<len; i++) {
- newdata_r[i] = data_r[i];
- newdata_i[i] = data_i[i];
- }
- //Удаляем старый массив и перезаписываем
- newdata_r[len] = newr;
- newdata_i[len] = newi;
- delete[] data_r;
- delete[] data_i;
- data_r = newdata_r;
- data_i = newdata_i;
- len++;
- return;
- }
- //Удаление
- void del(int index) {
- float *newdata_r = new float[len-1];
- float *newdata_i = new float[len-1];
- //Проделываем ту же операцию
- for (int i=0, j=0; i<len-1; i++, j++) {
- if (i==index) {
- j++;
- }
- newdata_r[i] = data_r[j];
- newdata_i[i] = data_i[j];
- }
- //Освобождаем память в data
- delete[] data_r;
- delete[] data_i;
- data_r = newdata_r;
- data_i = newdata_i;
- len--;
- return;
- }
- //Вывод
- void print() {
- std::cout<<"Array of complex numbers:\n";
- for (int i=0; i<len; i++) {
- std::cout<<data_r[i];
- if (data_i[i]>0) {
- std::cout<<"+";
- }
- if (data_i[i]!=0) {
- std::cout<<data_i[i]<<"i";
- }
- std::cout<<"\n";
- }
- return;
- }
- };
- int _tmain(int argc, _TCHAR* argv[])
- {
- //Создадим для проверки массив
- complexArray foo(10);
- foo.print();
- //Протестируем функции добавления и удаления
- std::cout<<"\n\n";
- foo.add(123, 456);
- foo.del(5);
- foo.print();
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment