Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Милена77756
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 11
#1

Создать абстрактный класс Array с методами сложения Add() и поэлементной обработки forEach() - C++

21.11.2013, 00:12. Просмотров 884. Ответов 0
Метки нет (Все метки)

11. Создать абстрактный класс Array с методами сложения Add() и поэлементной обработки forEach(). Реальзовать производные классы AndArray и OrArray. В первом сложение реализуется как пересечение множеств, а поэлементная обрабоотка – извлечение квадратного корня. Во втором классе – сложение как объединение, а поэлементная обработка – поиск синуса. Помогите пожалуйста исправить что не так((Функции не могу дописать.
And Array cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "AndArray.h"
 
void AndArray::add(Array& a)
{
   int tmpsize = 0;
   int * tmp = new int[arraySize];
 
   for (int i = 0; i < a.size; i++)
   {
       int t = a[i];
       if( Exists(t))
       {
           tmp[tmpsize] = t;
           tmpsize++;
       }
 
   }
 
   delete aptr;
 
   aptr = new int[tmpsize];
   arraySize = tmpsize;
}
 
void AndArray::forEach()
{
    for (int i = 0; i < arraySize; i++)
        cout << sqrt(aptr[i]) << " ";
}

And Array h
C++
1
2
3
4
5
6
7
8
9
10
#include "Array.h"
 
class AndArray : public Array
{
public:
    AndArray(int n) : Array(n) {}
 
    void add(Array&);
    void forEach();
};


Array Cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include  "Array.h" 
 
Array::Array(int s = 1) 
{ 
    if (s < 1) s = -s;
    int digit = s, size = 0;
    for (; digit > 0; size++)
        digit /= 10;
 
    arraySize = size;       
    aptr = new int[size];
    digit = s;
    for (int count = size-1; count >= 0; count--){
        int k = digit % 10;
        digit /= 10;
        *(aptr + count)  = k;
    }
} 
 
Array::Array(Array &obj) 
{ 
    arraySize =  obj.arraySize;         
    aptr  = new  int  [arraySize];       
    for(int count = 0; count  < arraySize; count++)
        *(aptr +  count) = *(obj.aptr + count); 
}
 
int 
Array::operator[](int i)
{
    if((i >=0 ) && (i < arraySize))
    {
        return aptr[i];
    }
 
    return 0;
}
 
bool 
Array::Exists(int a)
{
    for (int i = 0; i < arraySize; i++)
    {
        if (aptr[i] == a)
            return true;
    }
 
    return false;
}
 
 
void Array::resize()
{
    int *temp = new int [arraySize];
    for(int i = 0; i  < arraySize; i++) 
        temp[i] = aptr[i];
 
    arraySize++;
    delete[] aptr;
 
    aptr  = new  int [arraySize];
 
    for(int i = 0; i  < arraySize; i++) 
        aptr[i] = temp[i];
}
 
Array::~Array()     
{                           
    if  (arraySize > 0) 
        delete []  aptr; 
}
 
int Array::size() 
{ 
    return arraySize;
}



Array h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef ARRAY_H
#define ARRAY_H
 
#include "Libs.h"
 
class Array 
{ 
protected: 
    int  *aptr;                         // Pointer  to  the  array
    int  arraySize;                     // Holds  the  array  size 
 
    void resize();
 
    bool Exists(int a);
public: 
    Array(int);                         // Constructor 
    Array(Array &);                     // Copy  constructor 
 
    ~Array();                           // Destructor 
    int size();
    int operator[](int);
    virtual void add(Array&)=0;
    virtual void forEach()=0;
}; 
#endif




Libs cpp
C++
1
2
3
4
5
6
#include <sstream>
#include <iostream>
#include <cmath>
#include <conio.h>
 
using namespace std;


MAin
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
#include "OrArray.h"
#include "AndArray.h"
 
int main()
{
    OrArray a(3142);
 
    a.forEach();
 
    AndArray b(23123);
 
    b.forEach();
 
    int k;
    cin >> k;
    return 0;
}

Or Array cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "OrArray.h"
 
 
void OrArray::add(Array& a)
{
    
}
 
void OrArray::forEach()
{
    for (int i = 0; i < arraySize; i++)
        cout << sin(aptr[i]) << " ";
}

Or Array h
C++
1
2
3
4
5
6
7
8
9
10
11
#include "Array.h"
#include <cmath>
 
class OrArray : public Array
{
public:
    OrArray(int n) : Array(n) {}
 
    void add(Array&);
    void forEach();
};
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 00:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать абстрактный класс Array с методами сложения Add() и поэлементной обработки forEach() (C++):

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...

Создать абстрактный базовый класс с виртуальными методами вычисления функции y в заданной точке х - C++
создать абстрактный базовый класс function с виртуальными методами вычисления ф-ции y=f(x) в заданной точке х и вывода результата на...

Создать абстрактный базовый класс Root (корень) с виртуальными методами вычисления корней - C++
Здравствуйте, на завтра нужно сдать задачу, а я не знаю как решить, помогите пожалуйста Создать абстрактный базовый класс Root...

Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади поверхности и объема - C++
Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади поверхности и объема. Создать производные классы:...

1) Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию о фигуре на экран - C++
1) Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию о фигуре на экран. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 00:12
Привет! Вот еще темы с ответами:

Создать абстрактный класс с общими полями и методами. В производных классах перегрузить чисто виртуальную функцию - общая стоимость всех изделий - C++
Помогите пожалуйста!!! Не могу правильно создать абстрактный класс! Создать абстрактный класс с общими полями и методами. В производных...

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Создать базовый класс - Array и производный класс - Money для работы денежной суммы - C++
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle - C++
Создать абстрактный базовый класс Figure с виртуальной функцией -периметр.Создать производные классы Rectangle, Circle,Triangle,Rhomb в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru