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 :

probléme d'exécution du programme


Sujet :

C

  1. #1
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut probléme d'exécution du programme
    Bonjour,

    j'ai écris le programme suivant pour savoir :

    1-le nbre de machine disponible

    2-le nombre de taches exécutées sur chaque machine.

    3-le tableau ordonnée des taches exécutées sur chaque machine.

    le programme tourne mais j'arrive pas à l'exécuter pour chauqe machine surtout au niveau du point 3.

    quelqu'un a une idée?

    merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    int i,n,m,T[10];
     
    int main()
    {
     
     /*****************le nombre de machine**************************************/
          printf("donner le nombre m de machines disponibles:"); 
          scanf("%d",&m);
     
          for (i=0;i<m;i++) 
          {
          printf("donner le nombre n de taches a executer sur la machine%d  :",i+1);
          scanf("%d",&n);
          }
            for (i=0;i<m;i++)
            {
          printf(" la tache numero %d est: T[%d]=",i+1,i+1);
          scanf("%d",&T[i]);
    }
    /****************************LISTE DES TACHES EXECUTEES SUR CHAQUE MACHINE****/         
          getch();
     
         return 0;
         }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous n'expliquez pas exactement votre problème. Veuillez être plus précis sur le comportement attendu et le comportement obtenu et pourquoi il n'est pas ce que vous voulez.
    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(" la tache numero %d est: T[%d]=",i+1,i+1);
    Je pense que c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(" la tache numero %d est: T[%d]=",i+1,T[i+1]);
    Et encore, je ne mettrai pas de i+1 ...

    Dans la seconde boucle, je ne pense pas que le scanf() est nécessaire.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    Bonjour,
    le programme s'exécute sauf qu'il y a un problème:
    je n'arrive pas à faire entrer les taches pour chaque machine,il me semble que la boucle for ne fonctionne pas!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il serait bien d'indenter proprement ton code, et de suivre les conseils qu'on t'a donné quand à l'utilisation des variables globales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
     
    int main()
    {
        int i,n,m,T[10];
     
        /*****************le nombre de machine**************************************/
        printf("donner le nombre m de machines disponibles:"); 
        scanf("%d",&m);
     
        for (i=0;i<m;i++) 
        {
            printf("donner le nombre n de taches a executer sur la machine%d  :",i+1);
            scanf("%d",&n);
        }
        for (i=0;i<m;i++)
        {
            printf(" la tache numero %d est: T[%d]=",i+1,i+1);
            scanf("%d",&T[i]);
        }
        /****************************LISTE DES TACHES EXECUTEES SUR CHAQUE MACHINE****/         
        getch();
     
        return 0;
    }
    De là, je te conseille de soigneusement regarder ce que tu fais exactement dans ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        for (i=0;i<m;i++) 
        {
            printf("donner le nombre n de taches a executer sur la machine%d  :",i+1);
            scanf("%d",&n);
        }

  5. #5
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    Rebonjour,
    sur ces lignes j'essai d'afficher les taches exécutées pour chaque machine

  6. #6
    Invité
    Invité(e)
    Par défaut
    Afficher, c'est avec printf, là tu utilises aussi scanf.
    Je te conseille donc de bien reconsidérer la chose. Et ceci et détaillant bien ce que tu veux faire, pour nous et toi-même.
    Plus tu poseras les choses (objectif clair, étapes, pseudo code...), plus le code viendra naturellement.

  7. #7
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    je voudrais plutôt faire entrer les taches par clavier
    c'est pour cela que j'utilise scanf

  8. #8
    Invité
    Invité(e)
    Par défaut
    Et ces tâches, tu voudrais les stocker où ?
    Dernière modification par Invité ; 03/02/2014 à 16h04.

  9. #9
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    dans le tableau T[i] que j'ai déjà déclaré

  10. #10
    Invité
    Invité(e)
    Par défaut
    Et crois-tu que c'est ce que fait scanf("%d",&n); ?
    Pousse ta réflexion jusqu'au bout !

  11. #11
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    j'ai mis scanf("%d",&n) car il s'agit d'un nombre,
    J'ai déjà faisscanf("%d",&T[i])est ce je dois stocker ces taches dans un tableau?

  12. #12
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut difficultés dans un programme
    Note de modération : la suite provient du discussion sur le même sujet et fusionnée avec la première.

    Bonjour,

    j'ai fais le programme suivant pour afficher les taches exécutées pour chaque machine.
    je voudrais afficher ces taches pour chaque machine dans un tableau 1 ligne et nbre de taches colonnes et puis permuter aléatoirement ces taches pour chaque machine et ensuite fusionner ces tableaux dans un seul tableau 1 ligne nbre totale des taches exécutés colonnes.
    svp j'ai besoin de votre aide,merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include<stdio.h>
    #include<conio.h>
     
    #define MAX_MACHINES    8
    #define MAX_TACHES      10
     
    int main(void) {
        int i,j;
        int nbrMachines;
        int tacheParMachine[MAX_MACHINES];
        int detailDesTaches[MAX_MACHINES][MAX_TACHES];
     
        printf("Donnez le nombre de machines disponibles: ");
        scanf("%d",&nbrMachines);
     
     
        for(i=0;i<nbrMachines;i++) {
            printf("Donnez le nombre de taches a executer sur la machine %d: ",i+1);
            scanf("%d",&tacheParMachine[i]);
            }
        for(i=0;i<nbrMachines;i++)
            for(j=0;j<tacheParMachine[i];j++) {
                printf("Pour la machine %d, donnez la tâche %d: ",i+1,j+1);
                scanf("%d",&detailDesTaches[i][j]);
                }
     
        printf("Voici les données entrées:");
        for(i=0;i<nbrMachines;i++) {
            printf("\nMachine %d: ",i+1);
            for(j=0;j<tacheParMachine[i];j++)
                printf("%d ",detailDesTaches[i][j]);
            }
     
            getch();
        return 0;
    }

  13. #13
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par etoilenord Voir le message
    Bonjour,
    j'ai fais le programme suivant pour afficher les taches exécutées pour chaque machine.
    je voudrais afficher ces taches pour chaque machine dans un tableau 1 ligne et nbre de taches colonnes et puis permuter aléatoirement ces taches pour chaque machine et ensuite fusionner ces tableaux dans un seul tableau 1 ligne nbre totale des taches exécutés colonnes.
    Bonjour
    J'ai rien pigé.

    Citation Envoyé par etoilenord Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include<stdio.h>
    #include<conio.h>
     
    #define MAX_MACHINES    8
    #define MAX_TACHES      10
     
    int main(void) {
            ...
            rand(detailDesTaches[i][j]);
            ...
        return 0;
    }
    La fonction rand() ne prend pas de paramètre. Explique donc un peu ce qu'il y avait dans ta tête en tapant cette instruction...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    c'est ça le problème ,je sais pas comment je vais introduire cette fonction rand dans mon programme alors que les valeurs des taches ,je les ai deja tapé dans le clavier.
    autrement est ce la fonction rand est adéquate à mon type de programme?
    en effet je voudrais permuter les taches que j'ai dans mon tableau

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par etoilenord Voir le message
    en effet je voudrais permuter les taches que j'ai dans mon tableau
    Permuter entre quoi et quoi ? Entre tab[i] et tab[j] ?
    Dans ce cas tu tires i au hasard entre 0 et n (n nombre d'éléments) puis tu fais pareil pour j. Et (en vérifiant que i et j sont différents) ben tu permutes...

    rand() te permet de tirer un nombre au hasard entre a (inclus) et b (exclu) de la façon suivante: (float)rand() / RAND_MAX * (b - a) + a.
    Si tu veux entre a et b inclus tu remplaces (b - a) par (b - a + 1)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #16
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    je me suis mal exprimé peut être!
    en fait,Je voudrais mélanger les éléments d'un tableau

  17. #17
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Algo de Fisher-Yate

    Pour un tableau de N éléments
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (i=N-1; i > 0; i--)
    {
        j=(int)((float)rand() / RAND_MAX * i);
        echanger(tab[i], tab[j]);
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  18. #18
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    dans mon cas pour mon programme le i sera tacheParMachine[i],n'est ce pas?
    voila mon programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
     
    #define MAX_MACHINES    8
    #define MAX_TACHES      10
     
    int main(void) {
        int i,j,k;
        int nbrMachines;
        int tacheParMachine[MAX_MACHINES];
        int detailDesTaches[MAX_MACHINES][MAX_TACHES];
     
        printf("Donnez le nombre de machines disponibles: ");
        scanf("%d",&nbrMachines);
     
     
        for(i=0;i<nbrMachines;i++) {
            printf("Donnez le nombre de taches a executer sur la machine %d: ",i+1);
            scanf("%d",&tacheParMachine[i]);
            }
        for(i=0;i<nbrMachines;i++)
            for(j=0;j<tacheParMachine[i];j++) {
                printf("Pour la machine %d, donnez la tâche %d: ",i+1,j+1);
                scanf("%d",&detailDesTaches[i][j]);
                }
     
        printf("Voici les données entrées:");
        for(i=0;i<nbrMachines;i++) {
            printf("\nMachine %d: ",i+1);
            for(j=0;j<tacheParMachine[i];j++)
                printf("%d ",detailDesTaches[i][j]);
     
                //************************PERMUTATION DES TABLEAUX DE TACHES POUR CHAQUE MACHINE************
                for (j=tacheParMachine[i]-1; j > 0; j--)
    {
        k=(int)((float)rand() / RAND_MAX *tacheParMachine[i] );
        echanger(tacheParMachine[i], tacheParMachine[j]);
    }
     
    _______
            }
            getch();
        return 0;
    }

  19. #19
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par etoilenord Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        k=(int)((float)rand() / RAND_MAX *tacheParMachine[i] );
        echanger(tacheParMachine[i], tacheParMachine[j]);
    }
    Hum... à ton avis, il sert à quoi le k ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  20. #20
    Débutant
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 0
    Points
    0
    Par défaut
    le k va apparaitre aussi dans notre formule comme ceci n'est ce pas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    k=(int)((float)rand() / RAND_MAX *tacheParMachine[i] );
        echanger(tacheParMachine[i], tacheParMachine[k]);
    }

Discussions similaires

  1. problème d'exécution de programme utilisant cimg
    Par maissaab dans le forum Débuter
    Réponses: 1
    Dernier message: 27/06/2010, 21h30
  2. Problème d'exécution des programmes sous Qt-Creator
    Par fraisa1985 dans le forum Linux
    Réponses: 2
    Dernier message: 23/03/2010, 11h09
  3. problème d'exécution de programme sans delphi installé
    Par bouha2008 dans le forum Débuter
    Réponses: 13
    Dernier message: 09/06/2009, 16h08
  4. problèmes d'exécution du programme
    Par DADDI M.I Abdallah dans le forum C++
    Réponses: 6
    Dernier message: 07/12/2008, 18h31
  5. Réponses: 4
    Dernier message: 06/03/2008, 19h50

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