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

C Discussion :

probleme d'affichage sur sortie standard


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 25
    Points
    25
    Par défaut probleme d'affichage sur sortie standard
    Bonsoir a vous tous et merci de m'accorder un peut de votre temps.
    Je commence par vous donnez ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
          int Random (int Min, int Max){
     
    	return ( Min +  (rand () % (Max-Min+1) ) );
     
          }
     
          int main(void) {
     
             while (1){
                    iRandom = Random (0,9);
                    printf ("\r%d", iRandom);
             }
     
          }
    Ce code a pour but de choisir un nombre aléatoire (fonction Random) et l'affiche infiniment, vous avez remarquer le présence du "\r" dans le "printf", c'est pour afficher les nombres en début de ligne a chaque appel du "printf" et comme sa je pourrais simuler un rouleau d'une machine a sous (qu'on trouve au casino). mon problème c'est le fait d'afficher quatre rouleaux au même temps en créant des processus fils (chaque un représente un rouleaux).

    Merci encore.

  2. #2
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Ça me paraît bien compliqué de vouloir mettre un thread par rouleau…

    Pourquoi ne pas utiliser quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("\r%d\t%d", iRandom1, iRandom2);
    Et puis bon, la boucle infinie c'est pas terrible même pour des tests…

    Autre chose, ta variable iRandom n'est pas déclarée, et tu n'as pas changé la graine pour la fonction rand() donc à chaque lancement du programme tu auras toujours les mêmes nombres aléatoires. Ajoute au début du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    srand(time(NULL));
    avec l'en-tête time.h
    Mon projet : Devilsai

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Merci pour votre réponse mais je suis obligé d'utiliser les processus, le problème c'est quand j'utilise plusieurs processus y a qu'un seul affichage sur la console... je crois que c'est un problème de positionnement de curseur.

    Merci encore.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    En faite l'utilisation des processus fils est nécessaire je t'explique:
    le processus père crée 4 processus fils, chacun un correspond a un rouleau.
    Au lancement du programme on a les 4 rouleaux qui tournent devant l'utilisateur, quand ce dernier clique sur un bouton le processus père envoi un signal pour arrêter le processus fils et ainsi de suite pour les 3 autres, a la fin on compare les résultat des 4 rouleaux si ils sont identiques alors l’utilisateur a gagné.

    j’espère que j’étaie claire.

  5. #5
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Je persiste à croire qu'utiliser plusieurs threads est inutile, sauf s'il s'agit du but de l'exercice. Sinon on peut penser à quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    switch(NombreClics)
    {
        case 0 : iRandom1 = Random(0, 9);
        case 1 : iRandom2 = Random(0, 9);
        case 2 : iRandom3 = Random(0, 9);
        case 3 : iRandom4 = Random(0, 9);
                 break;
    }
    Par contre, le clic sur un bouton dans la console me semble étrange… tu compte utiliser une interface graphique ou utiliser uniquement la console ?
    Mon projet : Devilsai

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    Citation Envoyé par lastico21000 Voir le message
    En faite l'utilisation des processus fils est nécessaire je t'explique:
    le processus père crée 4 processus fils, chacun un correspond a un rouleau.
    Au lancement du programme on a les 4 rouleaux qui tournent devant l'utilisateur, quand ce dernier clique sur un bouton le processus père envoi un signal pour arrêter le processus fils et ainsi de suite pour les 3 autres, a la fin on compare les résultat des 4 rouleaux si ils sont identiques alors l’utilisateur a gagné.

    j’espère que j’étaie claire.
    Tu n'a pas du tout besoin de plusieurs processus pour faire ce genre de chose. Tout est une question de termcaps (si tu veut le faire dans la console) en déplaçant le curseur pour afficher tes rouleaux. Aussi, le problème avec les processus, c'est qu'une fois que tu arrete ton processus, il va falloir récupérer la valeur finale du rouleau et la tu devra te lancer dans tout un système d'IPC, ce qui dans ce cas est purement de l'overkill.
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    je compte utilisé la console , si je trouve quelque chose je vous tiens informés

Discussions similaires

  1. Probleme d'affichage sur console
    Par kekesilo dans le forum Langage
    Réponses: 5
    Dernier message: 11/09/2006, 09h18
  2. probleme d'affichage sur un zope/python
    Par malmzi2007 dans le forum Zope
    Réponses: 2
    Dernier message: 04/09/2006, 16h07
  3. [CSS] Problème d'affichage sur Mozilla
    Par Vinix dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 13/05/2006, 10h18
  4. Affichage sur sortie standard
    Par boubouc dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/05/2006, 04h54
  5. probleme d'affichage sur IE
    Par achiou59 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/03/2006, 09h35

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