задача: необходимо создать массив от нуля до 100 [101]. разрешить юзеру ввести числа от одного до 100. те числа X которые он введет должны быть помечены в массиве как 1. a[x]=1; все остальные - 0. эт легко..
это надо делать с помощью класса. для теста надо создать два объекта для этого класса, и сделать функцию unionofsets. эта функция будет сравнивать значения в двух массивах, и если в одном или обоих массивах единицы, он записывает 1 в новый массив. если в обоих нули - ноль. это сделать легко.
это мой код. не готовые до конца: | Код | header file:
#include <iostream> class integerset { public: integerset(); integerset unionOfSets(integerset& ) const; integerset intersectionOfSets(integerset&) const; void insertElement(); void setArray(int, int); void deleteElement(int); void printSet() const; bool isEqualTo(integerset& const) const; private: int integerSet[101]; int b; }; implementation file: #include <iostream> using namespace std; #include "integerset.h"
integerset::integerset()
{ for(int i=0;i<101;i++) integerSet[i]=0; }
void integerset::insertElement() { int arrayFig; int i; cout<<"Enter numbers(999 to stop): "; for(int p=0;p<101||i!=999;p++) { cin>>i; if(i<0||i>100) { cout<<"wrong number"<<endl; arrayFig=0; } else arrayFig=1; setArray(arrayFig, i); } }
void integerset::setArray(int a, int b) { integerSet[a]=b; } integerset &integerset::unionOfSets(integerset&) { int c[101]={0}; for (i=0;i<101;i++) { if (integerset[i]==0||b[i]==0) c[i]=0; else c[i]=1; } } integerset &integerset::intersectionOfSets(integerset& b) { int c[101]={0}; for (i=0;i<101;i++) { if (integerset[i]==1&&b[i]==1) c[i]=1; else c[i]=0; } }
void integerset::printSet() { int count=0; for (int i=0;i<101;i++) { if (integerSet[i]=1) cout<<i<<" "; else count++; if (count=100) cout<<"---"<<endl; } }
bool integerset::isEqualTo(const integerset& a) { int count=0; for(int i=0;i<101;i++) { if (integer1[i]!=ineger2[i]) break; else count++; } if (count=100) cout<<"The arrays are equal." }
|
мне надо чтоб функция unionOfsets (ну и intersectionOfSets и isEqualTo) делала pass(как по-русски? передавала?) объект в функцию и делала return нового объекта.
КАК это сделать?
ошибки вот такие выдает:
| Код | 1>i:\asdqw\asdqw\integerset.cpp(36) : error C2511: 'integerset &integerset::unionOfSets(integerset &)' : overloaded member function not found in 'integerset' 1> i:\asdqw\asdqw\integerset.h(3) : see declaration of 'integerset' 1>i:\asdqw\asdqw\integerset.cpp(48) : error C2511: 'integerset &integerset::intersectionOfSets(integerset &)' : overloaded member function not found in 'integerset' 1> i:\asdqw\asdqw\integerset.h(3) : see declaration of 'integerset' 1>i:\asdqw\asdqw\integerset.cpp(60) : error C2511: 'void integerset::printSet(void)' : overloaded member function not found in 'integerset' 1> i:\asdqw\asdqw\integerset.h(3) : see declaration of 'integerset' 1>i:\asdqw\asdqw\integerset.cpp(74) : error C2511: 'bool integerset::isEqualTo(const integerset &)' : overloaded member function not found in 'integerset' 1> i:\asdqw\asdqw\integerset.h(3) : see declaration of 'integerset'
|
буду благодарен за исправление моего кода. header file правильный скорее всего
извините за текст. просто книжка на английском по русски сложно сформулировать. если чего-то непонятно - напишите всем спасибо 
|