IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

Taille d'un ensemble


Sujet :

Langage Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut Taille d'un ensemble
    Bonjour à tous,

    j'ai un td à faire dans lequel on me demande d'utiliser un type ensemble.
    Ma question est la suivante : j'ai deux ensembles que je veux comparer; j'ai besoin de savoir combien d'éléments ils ont en commun. Mais d'après ce que j'ai compris, à l'inverse d'un tableau, je n'ai pas accès à chaque élément séparément. Donc existe-t-il une fonction qui permet de faire ça ? Par quels moyens dois-je m'y prendre ? Je pensais définir l'intersection de mes deux ensembles et ensuite voir la taille de l'ensemble d'arrivée, mais je ne sais pas si c'est possible.

    Merci à tous,
    bonne soirée.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 056
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Il n'existe en effet pas de fonction permettant de retourner directement le contenu ou la taille d'un ensemble. Pourrais-tu donner plus de précisions sur les ensembles que tu manipules (leur déclaration) ?

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Merci pour la réponse rapide.

    Les ensembles que je manipule sont de type intervalle, comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type t_ens = set of 1..20;
    ( je pense que je pourrai aussi les déclarer comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type t_ens = set of byte;
    ? dès que je dépasse byte, freepascal crie au dépassement de capacité, notamment lors de l'utilisation du test "in" ).

    les deux ensembles contiennent le même nombre de nombres ( aléatoires et défini par l'utilisateur ) et j'aimerai pouvoir déterminer combien de nombres les deux ensembles ont en commun ( peu importe lesquels, leur nombre me suffit ).

    Voilà, en espérant avoir été un peu plus clair
    Merci encore

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Boe,
    Citation Envoyé par taat84 Voir le message
    ? dès que je dépasse byte, freepascal crie au dépassement de capacité, notamment lors de l'utilisation du test "in"
    C'est normal, les ensembles standards du Pascal sont limités à 256 valeurs, elles-mêmes comprises de 0 à 255.

    Pour compter le nombre de coïncidences, une petite réflexion devrait te permettre de trouver (piste, on en revient généralement là : comment ferais-tu à la main ?).

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Salut,
    à la main je voit trois solutions:
    - je ferais l'intersection des deux ensembles et je déterminerais le cardinal de l'ensemble d'arrivée, mais ça ne ma pas l'air possible en pascal.
    -je prends chaque nombre, je regarde si ils sont dans les deux ensembles, et je dit merci d'en avoir qu'une 50 aine.
    -je garde en mémoire les valeurs rentrées par l'utilisateur et je les compare avec mon ensemble ( condition "in" ) mais je ne respecte plus le sujet car j'utilise un autre type de donnée.

    Si une solution évidente m'a échappée, merci de me la faire remaquer!
    merci encore pour vos réponses

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Bie,

    La deuxième solution est la bonne, facile à implémenter, à ceci près qu'il faut "prendre chaque nombre" possible.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/06/2014, 20h39
  2. [Débutant] Changer la taille de l'ensemble
    Par Jaakes dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 27/04/2010, 20h22
  3. requete pour trouver taille de l'ensemble des bdd
    Par princesse95 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/03/2010, 17h59
  4. Taille d'une base de données de l'ensemble des voitures...
    Par djbenvik dans le forum Décisions SGBD
    Réponses: 13
    Dernier message: 03/11/2005, 08h34
  5. Determiner la taille d'un ensemble de fichiers
    Par devdev2003 dans le forum Linux
    Réponses: 12
    Dernier message: 24/08/2005, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo