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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция удаления последнего четного элемента http://www.cyberforum.ru/cpp-beginners/thread1013873.html
Помогите, нужно составить функцию удаления из состава массива последний четный элемент.
C++ Удаление строк из матрицы, очистка памяти от лишних строк Здравствуйте, помогите с задачкой. Напишите программу по обработке массива, как объекта созданного Вами класса «Массив», согласно варианту и выполните на тестовых данных. В отчете представьте листинг программы и результатов вычислений. Операции с массивами следует реализовать программно, используя указатели, а не индексы: Дана целочисленная квадратная матрица порядка 5. Удалить из матрицы... http://www.cyberforum.ru/cpp-beginners/thread1013864.html
все положительные элементы заменить на их натуральные логарифмы C++
Нужно при помощи функции реализовать программу которая бы все положительные элементы заменить на их натуральные логарифмы. Массив 5 строк 4 столбца. Массив двухмерный. Пытаюсь сделать сам но что то не получается. Помогите очень прошу, завтра утром надо сдать. Выдает ошибки: error C2668: log: неоднозначный вызов перегруженной функции 1> c:\program files (x86)\microsoft visual...
C++ Размерность std::map
Добрый вечер. Использую тип данных 16 байтовый. Надо записать несколько десятков миллионов расчетов в map <type, type> val; C помощью методов ._Max и .max_size() узнаю, что максимальный размер - более 100 миллионов. Проблема : на 24ом миллионе программа завершает свою работу, не занеся все данные и не сделав потом еще ряд вычислений. Завершается успешно, но без последующих вычилений, то есть...
C++ Нужно по блоксхеме написать программный код на с++ http://www.cyberforum.ru/cpp-beginners/thread1013849.html
C++ Числовой ряд через 3 цикла Доброго времени суток, помогите пожалуйста с заданием. Необходимо решить через 3 цикла: for, while, do while. Зарание спасибо за помощь)) подробнее

Показать сообщение отдельно
Милена77756
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 11
21.11.2013, 00:12     Создать абстрактный класс Array с методами сложения Add() и поэлементной обработки forEach()
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();
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru