C++

Fermé
Jamel - 24 avril 2003 à 16:41
 farah - 11 déc. 2007 à 21:44
Bonjour tout le monde;

Et ben, je débute dans la compilation séparée en Turbo c++, et pour cela j'ai eu affaire à ce TP que je vous demande si vous pouvez m'aider à le résoudre, ca sera trés aimable de votre part.

Vous pouvez m'envoyez vos suggestions sur mon mail: ilovechimie@voila.fr




un ensemble est une collection non ordonnée d'éléments dans laquelle chaque élément n'apparait
qu'une seuil fois.

1. Définitions:

a- Un ensemble ne contenant aucun élément est l'ensemble vide
b- Deux ensembles sont égaux s'ils contiennesnt exactement les mêmes éléments.
c- Un ensemble S1 est sous-ensemble de S2 si S2 contient tous les éléments de S1.
d- Le nombre d'éléments d'un ensemble est sa cardinalité.

2. Fonctions de base demandées

a- Définir une structure de données qui permet de représenter un objet d'ensemble d'entiers. La représentation retient la collection des éléments et la cardinalité.
b- Ecrire les fonctions suivantes:

SetInit et SetDestroy qui permettent respectivement de créer et détruire un ensemble
SetInsert, SetRemove qui permettent respectivement d'ajouter et de supprimer un élément dans un ensemble
SetUnion, SetIntersect, SetDiff: les opérations de base sur les ensembles
IsMember, IsSubset, IsEqual qui vérifient respectivement si un élément donné appartient ou non à l'ensemble, si un ensemble est ou non sous-ensemble d'un ensemble donné, si deux ensembles donnés sont égaux.
SetSize qui retourne la cardinalité d'un ensemble donné.

3. Interface à réaliser

a- Créer une librairie des fonctions demandées
b- Ecrire une fonction main qui propose un menu dans lequel l'utilisateur peut choisir, dans un session de travail, l'une ou l'autre des fonctions précédentes ou de terminer sa session.
c- Le menu devra offrir aussi la possibilité d'éxecuter une expression (contenant plusieurs opérations de base), par exemple: S1 (union) (S2-S3) (Intersection) S2... ou de visualiser un ensemble.
d- Les données doivent être lues à partir d'un fichier et les résultats enregistrés dans un fichier.
e- La fonction main devra être écrite dans un répertoire different de celui des fonctions. L'ensemble du travail devra être réaliser sous la forme d'un projet.
f- Proposer une amélioration de votre solution.



Je vous remercie d'avance.

2 réponses

bon ce ke je vais vous dire c est pas l optimum mais c est une idée comme meme:

tu vas creer une liste chainer c est une classe par exple
class Ensemle
{
int contenu;
Ensemble * ens;
}
de telle facon l valeur de la variable contenue du 1er chainon contiendra le cardinal de l ensemble
le *ens pointera sur le chainon suivant

tu doit avoir une fonction int * rechercher(int a) qui retourne un pointeur sur le le chainon contenant la valeur 'a' ou null si il n existe pas
--ajouer(int k): si rechercher(a) retourne null insere le a ds soit just apres le 1er chainon soit a la fin (la 1ere solution est preferable)
--suprimer(int k) si chercher(k) retourne null alors rien n a suprimer si wi tu lie le chainon precedent au suivant(alors la il faut creer une fct qui retourne le precedent)lechainon suivant est donnee par le contenue le la variable 'ens'
bon tu peux ameliorer cette structure de donnee comme tu veux parce c est sur ke c est pas optimun car j ai pas bcp reflechi
en tout cas si tu as besoin de qlq chose tu n as qu a me contacté!qd tu veux
0
est ce ke quelq un peut m aider pr developper un programme en c++ sur les ensembles par chainage
0