Besoin d'aide pour ce problème en c++

Bonjour, je suis débutante en programmation c++.
J'aimerai que vous m'aidez à faire ce programme donc l’énoncé est le suivant:

"2.2 Définir un ADT pour un sac de nombres entiers (rappelez-vous qu'un sac peut contenir des doublons, et n'a pas notion d'ordre). Votre ADT devrait consister en des fonctions qui peuvent être exécutées sur un sac à contrôler ses membres, vérifier la taille, vérifiez si un élément donné est dans l'ensemble, et ainsi de suite. Chaque fonction doit être définie en fonction de son entrée et de sortie.
Démontrer l'équation 2.2 en utilisant l'induction mathématique"


SVP j'ai vraiment besoin de votre aide!

Merci
Last edited on
Quel genre d'aide que vous voulez?
Google Translate wrote:
"2.2 Define an ADT for a bag of integers (remember that a bag can contain duplicates, and has no concept of order.) Your ADT should consist of functions that can be performed on a bag control its members, check the size, check if a given element is in the set, and so on. Each function must be defined in terms of its input and output.
Show equation 2.2 using mathematical induction "


Un sac peut être mis en œuvre arbres binaires de recherche.
http://fr.wikipedia.org/wiki/Arbre_binaire_de_recherche

En C++ il ya un conteneur de sac a appelé std::multiset qui peut servir d'exemple pour les opérations du sac doit prendre en charge.
http://www.cplusplus.com/reference/set/multiset/

Vous n'avez pas besoin d'utiliser des arbres binaires de recherche. Je pense que vous êtes autorisé à utiliser des tableaux ou des verctors ainsi stocker les éléments.

Vous devez montrer vos progrès afin que nous puissions vous aider davantage avec le code source.
Last edited on
Coder777(3133) je voulais si possible un exemple de code source de mon problème
Catfish4 (455) Merci pour les liens sa m'aide à voir déjà comment faire le code source, et je vous ferais savoir mon avancement.. merci
ben après quelque recherche et réflexion selon les liens dont vous m'avez fait par. Mais j'ai des erreurs de compilation, j'aimerai que vous m'aidez à trouvez la solution. Le code source est ci-dessous:

# Include <iostream>
# Include <math.h>
# include <set>
# include <string>


using namespace std;
int i;

struct SAC
{
int A;
int B;
};




int main ()
{
int A1 [] = {1, 3, 5, 7, 9, 11};
int A2 [] = {1, 1, 2, 3, 5, 8, 13};
char A3 [] = {'a', 'b', 'b', 'B', 'B', 'f', 'h', 'H'};
char A4 [] = {'A', 'B', 'B', 'C', 'D', 'F', 'F', 'H'};
const int N1 = sizeof (A1) / sizeof (int);
const int N2 = sizeof (A2) / sizeof (int);
const int N3 = sizeof (A3);
const int N4 = sizeof (A4);

cout << "Intersection de A1 et A2:";
set_intersection (A1, A1 + N1, A2, A2 + N2,
ostream_iterator <int> (cout, ""));
cout << endl
<< "Intersection de A3 et A4:";
set_intersection (A3, A3 + N3, A4, A4 + N4,
<char> ostream_iterator (cout, ""),
lt_nocase);
cout << endl;


taille size_type ();
multiset < int > myints;

cout << " 0 taille:." << myints.size ();
cout << '\ n' ;

for (i = 0 ; i < 3 ; i + +) myints.insert (i);

{
cout << "1 taille:." << myints.size () << '\ n' ;

myints.insert (5);
cout << "2 taille:." << myints.size () << '\ n' ;

}


const int M1 = sizeof(A1) / sizeof(int);
const int M2 = sizeof(A2) / sizeof(int);
const int M3 = sizeof(A3);
const int M4 = sizeof(A4);

cout << "Union of A1 and A2: ";
set_union(A1, A1 + M1, A2, A2 + M2,
ostream_iterator<int>(cout, " "));
cout << endl
<< "Union of A3 and A4: ";
set_union(A3, A3 + M3, A4, A4 + M4,
ostream_iterator<char>(cout, " "),
lt_nocase);
cout << endl;



return 0;



}


Last edited on
Après avoir vu votre code source, je vous conseille de l'étude C++ une fois de plus, pour combler les lacunes de votre savoir. Pour cela, je devrais normalement vous au tutoriel de ce site Point, mais je ne suis pas sûr à quel point votre anglais est. Mon français n'est pas bon non plus, vu que je suis en utilisant Google Translate pour écrire ceci.

Au lieu d'essayer de corriger le code source, je vais vous donner un nouveau départ. Je vais passer du temps à expliquer ce que je fais et j'espère donc que vous allez passer du temps à essayer de comprendre.

Votre tâche est de mettre en œuvre un ADT de sac dans le langage C++.
Pour ce faire, vous devrez écrire comme un modèle de classe.

Une classe contient des données et des fonctions en tant que membres.
Les données de notre sac contient seront les éléments, et combien d'éléments il existe.
Les fonctions de notre sac contient sera responsable de:
- Taille dire
- Recherche d'un élément
- L'ajout d'un nouvel élément
- Suppression d'un élément
- Intersection de deux sacs
- Deux unifier sacs

Le code source ci-dessous utiliser l'anglais. Vous êtes libre de le modifier.

1
2
3
4
5
class Bag
{
    int elements[500];
    int size;
};


Ci-dessus est un commencement brut.
Les éléments seront stockés dans le dossier elements array.
Combien d'éléments sont là seront stockées dans le size entier.
Notez qu'il ya une limite de taille de 500 éléments.

Maintenant, nous ajoutons quelques fonctions.

1
2
3
4
5
6
7
8
9
10
class Bag
{
    int elements[500];
    int size;

    int bag_size();
    bool search(int e);
    void add(int e);
    void remove(int e);
};


A ce stade, nous avons un problème. Dans une classe C++, chaque membre est privé par défaut. Cela signifie que nous ne sommes pas autorisés à accéder aux données, ou les fonctions.

Pour cela nous ajoutons les balises private: et public:. Maintenant, nous pouvons accéder aux fonctions.

En ce qui concerne les fonctions d'intersection et d'union, nous écrirons en tant qu'opérateurs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Bag
{
private:

    int elements[500];
    int size;

public:

    int bag_size();
    bool search(int e);
    void add(int e);
    void remove(int e);

    Bag operator + (Bag b);
    Bag operator ^ (Bag b);
};


Pouvez-vous continuer à partir de là?
Topic archived. No new replies allowed.