Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <string.h>
- using namespace std;
- class Multime {
- private:
- int elemente[100];
- int nrElemente;
- public:
- Multime();
- Multime(int nrElemente, int elemente[]);
- int getNrElemente() {
- return nrElemente;
- }
- void citire();
- void afisare();
- //verifica ca x apartine multimii.
- int apartine(int x);
- /**
- * Verifica daca toate elementele din tabloul dat sunt disticte, adica pot forma o multime.
- * @param n dimensiunea tabloului.
- * @param t tabloul cu elemente
- * @return 1 daca sunt disticte, 0 altfel.
- */
- static int suntDisticte(int n, int t[]);
- friend Multime operator *(Multime m1, Multime m2);
- };
- Multime::Multime() {
- this->nrElemente=0;
- }
- Multime::Multime(int nrElemente, int elemente[]) {
- this->nrElemente=nrElemente;
- for(int i=0; i<nrElemente; i++) {
- this->elemente[i]=elemente[i];
- }
- }
- int Multime::apartine(int x) {
- int i;
- for(i=0; i<nrElemente; i++) {
- if (elemente[i]==x)
- return 1;
- }
- return 0;
- }
- void Multime:: citire() {
- cout<<"Dati nr de elemente: ";
- cin>>nrElemente;
- cout<<"dati valoarea fiecarui element:";
- for(int i=0; i<nrElemente; i++) {
- cout<<"m["<<i<<"= ";
- cin>>elemente[i];
- }
- }
- /**
- * Verifica daca toate elementele din tabloul dat sunt disticte, adica pot forma o multime.
- * @param n dimensiunea tabloului.
- * @param t tabloul cu elemente
- * @return 1 daca sunt disticte, 0 altfel.
- */
- int Multime::suntDisticte(int n, int t[]) {
- int i,j;
- for(i=0; i<n-1; i++) {
- for(j=i+1; j<n; j++) {
- if (t[i]==t[j])
- return 0;
- }
- }
- return 1;
- }
- void Multime::afisare() {
- cout<<"Multimea elementelor este:{";
- for(int i=0; i<nrElemente; i++) {
- cout<<elemente[i]<<" , ";
- }
- cout<<"}"<<endl;
- }
- Multime operator *(Multime m1, Multime m2) { //nu mai apare clasa Multime::, deoarece functia nu apartine clasei
- Multime m3;
- int i,k; // k retine nr de elemente din intersectie m3
- for(i=0,k=0; i<m1.nrElemente; i++) {
- if(m2.apartine(m1.elemente[i])) {
- m3.elemente[k]=m1.elemente[i];
- k++;
- }
- }
- m3.nrElemente = k;
- return m3;
- }
- int main() {
- int p=3;
- int tp[]= {1,2,3};
- int q=4;
- int tq[]= {2,3,4,5};
- if(Multime::suntDisticte(p,tp) && Multime::suntDisticte(q,tq)) {
- Multime m1(p,tp);
- m1.afisare();
- Multime m2(q,tq);
- m2.afisare();
- Multime m3 = m1*m2;
- m3.afisare();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement