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

Pascal Discussion :

Nombres aléatoires distincts deux à deux


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Par défaut Nombres aléatoires distincts deux à deux
    écrire en pascal, une procédure qui génère au hasard et successivement, huit entiers naturels distincts deux à deux.chacun des ces nombres est compris entre 1 et 99 au sens large.j'ai une question car j'ai pas compris la syntaxe distincts deux à deux est qu'il veut dire que les deux entier successive seulement doivent etre différents ou bien l'entier ramdomizé doive etre différents de tous les entiers qu'ils précèdent

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Ce que je comprends, c'est que chaque paire de nombres doit être formée de deux nombres différents : peu importe si un nombre apparaît dans deux paires différentes.

  3. #3
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Citation Envoyé par emna1987 Voir le message
    écrire en pascal, une procédure qui génère au hasard et successivement, huit entiers naturels distincts deux à deux.chacun des ces nombres est compris entre 1 et 99 au sens large.j'ai une question car j'ai pas compris la syntaxe distincts deux à deux est qu'il veut dire que les deux entier successive seulement doivent etre différents ou bien l'entier ramdomizé doive etre différents de tous les entiers qu'ils précèdent
    Différents deux à deux = les 8 entiers sont tous différents, en les comparant l'un avec un autre. On en compare donc deux à chaque fois.

    Tu dois tirer un premier nombre, l'enregistrer par exemple dans un tableau résultat. Tirer le second et vérifier s'il n'est pas déjà tiré (i.e. présent dans le tableau résultat), s'il n'est pas tiré, tu l'enregistres à son tour et tu recommence avec le troisième nombre tiré et ainsi de suite pour les cinq autres.

    Une solution simple consiste à employer un tableau de 99 booléens valant False s'il n'est pas tiré (au départ, toutes les valeurs sont donc à False) et pour chaque tirage réussi, tu affecte True à la cellule du tableau dont l'indice est égale au tirage. Cette solution est efficace car elle consomme peu de ressource (tableau de booléens) et en lisant la valeur de la cellule d'indice, tu sais immédiatement si l'entier a déjà été tiré ou non ; si oui, il faut procéder à un nouveau tirage.

    Pour lire le résultat, il suffit de parcourir le tableau et de récupérer les indices pour lesquels les booléens valent True.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    Ah oui, je pense que c'est e-ric qui a raison : je retire ma première réponse. J'aime bien l'idée du tableau de booléens.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Par défaut
    bonjour
    oui moi aussi merci beaucoup e-ric pour cette solution.
    et j'ai une autre question moi j'utilise comme compilateur free pascal et il me génère une erreur pour ce syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var 
    tmp:integer
    begin 
    tmp:=random(99)+1;
    lors de compilation une erreur sur cette ligne qui est la suivante:random.pas(8,10) Error:Illegal qualifier:syntax error, "." "xpected but "(" found.
    mais je connais que c'est la syntaxe d'une fonction random j'ai chercheé beaucoup sur google j'ai pas trouvé comme j'écris la fonction random sous free pascal!!??

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    @emna1987

    Il manque un point-virgule après "integer".

  7. #7
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Salut

    Je ne peux pas regarder cela en cours de journée (pas de Pascal au boulot ) donc au mieux, je peux regarder cela ce soir.
    @Emna: peux-tu confirmer à Roland si sa solution convient et dans le cas contraire, peux-tu nous montrer l'intégralité de ton code ?

    cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

Discussions similaires

  1. [FAQ] Comment tirer un nombre au hasard ?
    Par SylvainPV dans le forum Contributions JavaScript / AJAX
    Réponses: 1
    Dernier message: 18/11/2014, 12h53
  2. Générer n nombres au hasard avec random
    Par fredericbdr dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 05/12/2009, 19h37
  3. [Débutant] Fonction de choix d'un nombre au hasard
    Par tickerdu22 dans le forum Langage
    Réponses: 7
    Dernier message: 15/01/2008, 18h44
  4. les nombres au hasard en java
    Par jm49 dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2007, 16h58
  5. [Conception] nombre au hasard un peu special
    Par .:dev:. dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/01/2006, 21h07

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