Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Besoin d'aide en programmation langage c svp ?



  1. #1
    soulnini

    Besoin d'aide en programmation langage c svp ?


    ------

    Bonjour/bonsoir

    Etant étudiant et devant repasser mon examen de programmation en langage c, je me permet de soliciter votre aide car je ne parviens pas à résoudre ces exercices.

    Si vous aviez une solution ou même une aide cela me serait très précieux je vous remercie d'avance de votre attention.exam_programmation_c_page_1.jpg

    exam_programmation_c_page_2.jpg

    -----

  2. Publicité
  3. #2
    bisou10

    Re : Besoin d'aide en programmation langage c svp ?

    Commence, on t'aidera (enfin peut-être)

  4. #3
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    En effet, un minimum de travail est attendu. Petit rappel:
    http://forums.futura-sciences.com/pr...ces-forum.html

  5. #4
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Bonjour merci de vos réponses rapides. J'y ai un peu réfléchis et voici ce que j'ai trouvé mais j'avoue je patauge un peu la...
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int annee_depart,annee_fin;
        int nbr_tot_annee;
        int nbr_serveur;
        int nbr_matricule[1000];
        int nbr_panne[100];
        int i,j,k,m;
    
    	printf("Entrez la 1er annee considerer : \n");
    	scanf("%d",&annee_depart);
    
        printf("Entrez la derniere annee considerer : \n");
    	scanf("%d",&annee_fin);
    
    
    	nbr_tot_annee=annee_fin-annee_depart;
    
    	nbr_tot_annee=nbr_tot_annee+1;
    
    	for(i=0;i<nbr_tot_annee;i++)
    	{
        printf("Entrez le nbr de serveur : \n");
    	scanf("%d",&nbr_serveur);
    
    
            for(j=0;j<nbr_serveur;j++)
            {
    	    printf("entrez le matricule %d \n",j+1);
    	    scanf("%d",&nbr_matricule[j]);
            }
    
    
                for(k=0;k<j;k++)
                {
                printf("entrez ses nombre de panne %d \n",k+1);
                scanf("%d",&nbr_panne[k]);
                }
    
            }
    Dernière modification par Jack ; 23/08/2013 à 11h19. Motif: ajout balise code

  6. A voir en vidéo sur Futura
  7. #5
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Il serait utile que tu lises un peu plus les post-it de ce forum, notamment en ce qui concerne la présentation du code:
    http://forums.futura-sciences.com/pr...eau-forum.html

  8. #6
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Essaie d'être un peu plus précis sur ce qui ne fonctionne pas.

  9. Publicité
  10. #7
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Ok, alors j'utilise l'os windows 7 , comme compilateur codeblock, et ce que je n'arrive pas a faire c'est l'affichage du tableau pour la sortie je ne sais pas si mes entrées sont correctement faites.
    Car en effet lors de la compilation tout se passe bien à l’exception que lorsque j'entre les données d'autres serveurs à l'affichage écran je n'ai que les données du dernier serveur retranscrits et pas les autres. Donc en mon sens il y a surement un soucis dans la boucle, ou alors c'est peut-être possible que j'ai tout mis sur le même tableau et que cela écrase les donnés par les dernières entrées ?


    ps merci pour les précisions d'utilisation, j'en tiendrais comptes dorénavant.

  11. #8
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Car en effet lors de la compilation tout se passe bien à l’exception que lorsque j'entre les données d'autres serveurs à l'affichage écran je n'ai que les données du dernier serveur retranscrits et pas les autres
    C'est normal puisque les données du tableau sont écrasées à chaque nouvelle année. Il faudrait un tableau à 2 dimensions: une pour les années et une pour les serveurs.

    Essaie de soigner l'indentation de tes programmes car ça facilite la lecture. dans ton code, on ne voit pas bien que les boucles sont imbriquées.

    A+
    Dernière modification par Jack ; 23/08/2013 à 13h11.

  12. #9
    polo974

    Re : Besoin d'aide en programmation langage c svp ?

    à quoi peut bien servir:
    Code:
                 for(k=0;k<j;k++)
    ? ? ?

    Le problème n'est pas seulement dans le langage C, il est dans l’algorithmie et la structuration des données...

    Donc papier crayon dessin structures de données et boucles imbriquées ...

    Allez, hop, hop, hop...

    (ps: je n'ai même pas essayé de lire les sujets, c'est pas des pattes de mouche de docteur, mais, bon...
    franchement un retranscription n'aurait pas été superflue (en plus, ça permet de réfléchir au pb)...)
    Jusqu'ici tout va bien...

  13. #10
    whoami

    Re : Besoin d'aide en programmation langage c svp ?

    Bonjour,
    Citation Envoyé par polo974 Voir le message
    à quoi peut bien servir:
    Code:
                 for(k=0;k<j;k++)
    ? ? ?

    Le problème n'est pas seulement dans le langage C, il est dans l’algorithmie et la structuration des données...

    Donc papier crayon dessin structures de données et boucles imbriquées ...

    Allez, hop, hop, hop...

    (ps: je n'ai même pas essayé de lire les sujets, c'est pas des pattes de mouche de docteur, mais, bon...
    franchement un retranscription n'aurait pas été superflue (en plus, ça permet de réfléchir au pb)...)
    +1.

    Effectivement, se donner un peu de peine aide beaucoup pour obtenir des réponses.

    Et ayant pris cette peine, et donc ayant réfléchi au problème, la demande d'aide devient souvent inutile.

    Je suis également en plein accord pour papier + crayon, étape incontournable, en particulier quand on débute.

  14. #11
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Je suis d'accord sur le fait que c'est un torchons les feuilles qu'il donne. Néanmoins je ne suis quelqu'un qui va attendre pour avoir la réponse je suis sur ce problème depuis 2 jours déjà...

    J'en conviens que c'est pas en attendant que la réponse viendra toute seule mais j'essaie de le faire de moi même, mais si déjà à la base ça cloche au niveau des entrées de variables je doute que je puisse un jour voir la sortie correcte...


    et papier+crayon ok tout à fait d'accord mais ce prof ne nous a donné cours que 3 mois le reste du temps on a du le voir par nous même... Alors je veux bien faire ou du moins essayer une analyse seulement je ne suis pas sur si le point de départ est correcte si dans l'énoncé je dois utiliser un tableau à une dimension ou alors à deux dimension. Et je ne parviens pas à trouver le moyen de faire que lors de l'entrée des matricules sur le 2eme voir 3eme serveur s'il y a n'écrase pas les données précédentes...


    Sinon j'ai réussis à aller jusque là (en bricoleur comme on dit)

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int annee_depart,annee_fin;
        int nbr_tot_annee;
        int nbr_serveur[100];
        int nbr_matricule[1000];
        int nbr_panne[100];
        int i=0;
        int j=0;
        int k=0;
    
        printf("Entrez la 1er annee considerer : \n");
    	scanf("%d",&annee_depart);
    
        printf("Entrez la derniere annee considerer : \n");
    	scanf("%d",&annee_fin);
    
    
    	nbr_tot_annee=annee_fin-annee_depart;
    
    	nbr_tot_annee=nbr_tot_annee+1;
    
        for(i=0;i<nbr_tot_annee;i++)
        {
            printf("Entrez le nombre de serveurs [%d] : ",i+1);
            scanf("%d",&nbr_serveur[i]);
    
            for(j=k;j<nbr_serveur[i]+k;j++)
            {
               printf("Entrez le matricule %d \n",j-k+1);
               scanf("%d",&nbr_matricule[j]);
            }
            k = nbr_serveur[i];
        }
    
    for(i=0;i<nbr_tot_annee;i++)
    {
        printf("%d nbr_serveur \n",&nbr_serveur[i]);
    
        for(j=k;j<nbr_serveur[i]+k;j++)
        {
            printf("nbr_matricule[%d] : %d \n\n",j-k+1,nbr_matricule[j]);
            }
    }
        return 0;
    }

  15. #12
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    si dans l'énoncé je dois utiliser un tableau à une dimension ou alors à deux dimension
    Il me semble pourtant t'avoir expliqué pourquoi utiliser un tableau à 2 dimension.

    Et je ne parviens pas à trouver le moyen de faire que lors de l'entrée des matricules sur le 2eme voir 3eme serveur s'il y a n'écrase pas les données précédentes...
    parce qu'il te manque une dimension au tableau.
    On tourne en rond ...

  16. Publicité
  17. #13
    Chanur

    Re : Besoin d'aide en programmation langage c svp ?

    Bonjour,
    indépendamment de l'algorithme, mon compilateur (gcc) me dit :
    "attention : format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’"
    pour la ligne : printf("%d nbr_serveur \n",&nbr_serveur[i]);

    Effectivement, &nbr_serveur[i] est un pointeur. Cet affichage ne peut pas marcher.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  18. #14
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Citation Envoyé par Chanur Voir le message
    Effectivement, &nbr_serveur[i] est un pointeur. Cet affichage ne peut pas marcher.
    Curieux ce que tu dis: nbr_serveur est un tableau d'entiers, donc nbr_serveur[i] est un entier.
    printf("%d nbr_serveur \n",&nbr_serveur[i]); est donc correct.

    A+

  19. #15
    Paraboloide_Hyperbolique

    Re : Besoin d'aide en programmation langage c svp ?

    Citation Envoyé par Jack Voir le message
    Curieux ce que tu dis: nbr_serveur est un tableau d'entiers, donc nbr_serveur[i] est un entier.
    printf("%d nbr_serveur \n",&nbr_serveur[i]); est donc correct.

    A+
    Bonjour,

    Vous êtes certain Jack ? J'irais plutôt dans le sens de Chanur (surtout que gcc a raison 99% du temps): si nb_serveur[i] est un entier et en me basant sur la doc de printf (http://www.cplusplus.com/reference/cstdio/printf/), il me semblerais que le code correct pour afficher le contenu de nbr_serveur[i] soit bien:

    Code:
    printf("%d nbr_serveur \n",nbr_serveur[i])
    A moins que le but soit d'afficher l'adresse de nbr_serveur[i] ?
    Je peux aussi me tromper bien sûr.

  20. #16
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Citation Envoyé par Paraboloide_Hyperbolique Voir le message
    Bonjour,

    Vous êtes certain Jack ?
    Non, je débloque complètement en ce moment. Je vais me mettre au repos quelques jours je crois. C'était un printf alors que j'y voyais un scanf ...

  21. #17
    Paraboloide_Hyperbolique

    Re : Besoin d'aide en programmation langage c svp ?

    Citation Envoyé par Jack Voir le message
    Non, je débloque complètement en ce moment. Je vais me mettre au repos quelques jours je crois. C'était un printf alors que j'y voyais un scanf ...
    Ok, vous me rassurez; je croyais que c'était moi qui débloquais. Bon repos...

  22. #18
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Bonjour à tous. Bon je me suis démerdé par moi même et Jack c'est vrai que en 2 dimensions c'est plus pratique donc j'ai fais ce code et je pense qu'il est bon à vous de juger ( et on pourra pas dire que j'ai pas bosser x') )

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int annee_depart;
        int annee_fin;
        int nbr_tot_annee;
        int annee[10];
        int nbr_serveur[100];
        int nbr_matricule[1000];
        int nbr_panne[100][100];
        int i=0;
        int j=0;
        int k=0;
        int l=0;
    
    
        printf("Entrez la 1er annee considerer : \n");
    	scanf("%d",&annee_depart);
    
        printf("Entrez la derniere annee considerer : \n");
    	scanf("%d",&annee_fin);
    
    	nbr_tot_annee=annee_fin-annee_depart;
    	nbr_tot_annee=nbr_tot_annee+1;
    
    	for(i=0;i<nbr_tot_annee;i++)
    	{
    	    printf("entrez l'annee %d\n ",i+1);
    	    scanf("%d",&annee[i]);
        }
        for(j=0;j<i;j++)
        {
            printf("entrez le nombre de serveur pour l'anne %d \n",j+1);
            scanf("%d",&nbr_serveur[j]);
    
                for(k=0;k<nbr_serveur[j];k++)
                {
                    printf("Entrez le matricule %d\n",k+1);
                    scanf("%d",&nbr_matricule[k]);
    
                    for(l=1;l<i-1;l++)
                    {
                        printf("Entrez le nbr de panne par annee pour le serveur %d\n",j+1);
                        scanf("%d",&nbr_panne[i][j]);
                    }
                }
        }
    // Resultats
        for(i=0;i<nbr_tot_annee;i++)
        {
            printf("\n%d\n",annee[i]);
        }
        for(j=0;j<i;j++)
        {
            printf("\n%d\n",nbr_serveur[j]);
                for(k=0;k<nbr_serveur[j];k++)
                {
                    printf("\n%d\n",nbr_matricule[k]);
    
                    for(l=1;l<i-1;l++)
                    {
                        printf("%d",nbr_panne[i][j]);
                        }
                }
        }
    
    	return 0;
    }

  23. Publicité
  24. #19
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Désolé petite erreur de ma part dans la dernière boucle for :

    Code:
    for(l=1;l<i-1;l++)
                    {
                        printf("Entrez le nbr de panne par annee pour le serveur %d\n",j+1);
                        scanf("%d",&nbr_panne[i][j]);
                    }

    ce n'est pas 1 mais 0.

  25. #20
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    Ton indentation n'est vraiment pas terrible et n'encourage pas à lire ton code.

    En passant, j'ai tout de même noté ceci:
    Code:
        for(i=0;i<nbr_tot_annee;i++)
        {        printf("entrez l'annee %d\n ",i+1);
            scanf("%d",&annee[i]);
        }    for(j=0;j<i;j++)
    Le j<i, bien que correct nuit à la compréhension de l'algorithme. pourquoi ne pas le remplacer tout simplement par j<nbr_tot_annee ?

  26. #21
    12Pierre44

    Re : Besoin d'aide en programmation langage c svp ?

    Bonjour,
    Si je relis les réponses précédentes, Polo vous a demandé de faire un algorithme (papier-crayon) et Jack vous demandé ce qui n'allait pas, et je ne sais plus qui vous a demandé de dire le sujet (évidemment, impossible de lire vos deux feuilles manuscrites).

    Sur votre code, je serais quelque petites remarques;
    1- ce n'est pas une bonne idée de déclarer les variables "compteurs" hors de leur utilisation. La bonne méthode est d'écrire
    for (int i = 0; i < MM; i++)
    etc.
    2- lorsqu'on fait un tableau à plusieurs dimensions, éviter de mettre le même nombre de lignes et de colonnes. Dans votre cas, que représentent 100 et 100 ?
    3- IL N'Y A PAS LE MOINDRE COMMENTAIRE.

  27. #22
    soulnini

    Re : Besoin d'aide en programmation langage c svp ?

    Pour vous aidez à lire l'énoncé je vais le retaper entièrement :


    Une entreprise utilise un grand nombre de serveurs de réseau informatique et a relevé pour chacun de ces serveurs, le nombre de pannes par an pendant plusieures années consécutives

    Entrées (au clavier)

    1) la 1ere et la dernière des années considérées (entre 2 et 10) par exemple : 2009;2012.
    2) le nombre de serveurs considérés (entre 2 et 100)
    3) pour chaque serveur : son matricule (entier entre 101 et 1000)
    ses nombres de pannes pour les années considérées

    Sorties ( à l'écran) :

    1) un tableau reprenant pour chaque serveur sur une meme ligne : son matricule, ses nombre de pannes par ans.


    Voila l’énoncé.

    Ensuite pour vous répondre : 1) je n'ai trouvé que ce moyen là pour que cela fonctionne comme je l'entends

    2) c'est mon prof qui le veut ainsi pour les tableaux en fonction de l'énoncé j'ai fais comme il le fait sinon je serai busés...donc par exemple le matricule doit etre compris entre 101 et 1000 d'où le tableau a [1000] et pour les pannes ce sont les pannes par années.

    3) j'étais tellement content d'en finir après 3 jours a me démerder que je l'ai directement envoyer...
    Dernière modification par soulnini ; 25/08/2013 à 16h05.

  28. #23
    Jack
    Modérateur

    Re : Besoin d'aide en programmation langage c svp ?

    En fait, le problème vient d'une mauvaise organisation des données: tu veux surveiller des serveurs. Qu'est-ce qui nous intéresse dans un serveur? son matricule et son nombre de pannes annuel => une structure:
    Code:
    typedef struct {
       int servId;
       int nbrPannes;
    }serveur;
    Il faut mémoriser nbrServeur serveurs pour nbrAnnée années => un tableau à 2 dimensions, ce qui donne:
    Code:
    serveur tabPannes[maxAnnee][maxServeur];
    Il n'y a donc besoin que d'un seul tableau.

    A+

Discussions similaires

  1. langage VHDL débutant besoin d'une petite aide svp
    Par newtech1 dans le forum Électronique
    Réponses: 1
    Dernier message: 19/11/2011, 20h20
  2. Besoin d'aide sur le choix d'un langage de programmation
    Par 4lexO dans le forum Programmation et langages, Algorithmique
    Réponses: 23
    Dernier message: 05/09/2011, 17h15
  3. besoin d'aide [programmation en C]
    Par yacino15 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 29/03/2011, 22h04
  4. Besoin d'aide en programmation C++
    Par yassinefugi dans le forum Logiciel - Software - Open Source
    Réponses: 13
    Dernier message: 16/05/2009, 09h50
  5. langage ladder, besoin d'aide
    Par drtom dans le forum Électronique
    Réponses: 2
    Dernier message: 30/11/2008, 14h33