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 c (des erreurs ?? oû ?? pourquoi? )


Sujet :

C

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par as-de-trefle
    merci skip78 de m'avoir tout corriger mais je pense qu'il serait preferable que tu m'expliques ce que tu as écris et la commande "do" ? elle sert a quoi là ???
    La commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    do
    {
        //code
    }while(condition);
    Cette fonction permet de réaliser des boucles tant que "condition" est vraie
    "C'est beau toutes vos citations"

  2. #22
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Sinon pour l'indentation bah en effet c'est une question de poin de vue.
    Mais on peut pas dire que la diference soit enorme entre

    for(){
    appel
    }

    et

    for()
    {
    appel
    }


    On distingue quand même plus vite les blocs avec l'indentation BSD, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ( ; ; )
    {
         appel();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for( ; ; ){
    appel();
    }
    De plus avec des boucles imbriquée, ça devient vite imcompréhensible.

    Cette fonction permet de réaliser des boucles tant que "condition" est vraie
    La différence avec le while est que la boucle est au moins exécutée une fois (même si la condition n'est pas remplie)

  3. #23
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par as-de-trefle
    oui c 'est vrai , je suis allé trop vite dans mon dernier message , j'ai écris " le " for(a=0 ; a<1 ; a=++) " " , c 'est completement faux vous avez raison , j'aurais du écrire for(a=0;a<1;a++) comme la dis gnto et skip78 .

    merci skip78 de m'avoir tout corriger mais je pense qu'il serait preferable que tu m'expliques ce que tu as écris et la commande "do" ? elle sert a quoi là ???
    J'utilise Borland C++ et ta correction du programme ne marche pas , Borland C++ me dis 1erreur , 1 warning ::: linker warning :no module definition file specified : using defaults ; linker error :Undefined symbol
    _system in module SKIP78.CPP

    voila , et merci aussi a toi PRomu@ld pour les conseil que tu as donnés

    l'as de trefle
    erf je ne connais pas du tout Borland. J'ai corrigé le code sur Devc++ et ca marche trés bien .

    Et sinon en effet j'aurais du expliquer plus clairement ce que je faisais.

    Alors tout d'abord j'ai remplacé ton second main par une fonction, avec le même contenu, j'ai modifié les quelques erreurs qui me paraissaient evidentes (la boucle for par exemple) et puis ca marchait.

    Pour le do, il faut que tu saches que c'est en fait une boucle, de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    do{
        ton code
    }while(condition d'arret)
    Le code présent dans la boucle sera alors effectué jusqu'à ce qu'on atteigne la condition d'arret.
    Dans le cadre de ton programme, il me semble que c'ést :
    'poser la question et lire la reponse de l'utilisateur' tant que la reponse est diferente de 'lea'

    P.S. _system in module SKIP78.CPP crée plutot un fichier en c et pas en c++ ca doit etre ca qui te fait planter, mon code étant en c

  4. #24
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par PRomu@ld


    On distingue quand même plus vite les blocs avec l'indentation BSD, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ( ; ; )
    {
         appel();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for( ; ; ){
    appel();
    }
    non mais moi c'est un melange des deux dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for( ; ; ){
        appel();
    }
    j'ai l'avantage du BSD(plus lisible) et celui du K&D (plus court)

  5. #25
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Je viens de compiler ton programme chez moi et voici le résultat :

    test.c:6: warning: function declaration isn't a prototype
    test.c:7: warning: function declaration isn't a prototype
    test.c:8: error: conflicting types for 'wait'
    /usr/include/sys/wait.h:241: error: previous declaration of 'wait' was here
    test.c: In function 'main':
    test.c:27: warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[98u]'
    test.c:33: warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[98u]'
    test.c:15: warning: unused variable 'buf'
    test.c:13: warning: unused variable 'a'
    test.c: At top level:
    test.c:47: error: conflicting types for 'wait'
    /usr/include/sys/wait.h:241: error: previous declaration of 'wait' was here
    test.c: In function 'wait':
    test.c:49: error: 'CLK_TCK' undeclared (first use in this function)
    test.c:49: error: (Each undeclared identifier is reported only once
    test.c:49: error: for each function it appears in.)
    test.c: At top level:
    test.c:53: warning: function declaration isn't a prototype
    test.c:64: warning: function declaration isn't a prototype
    test.c: In function 'love':
    test.c:69: warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[98u]'

  6. #26
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    [Troll]Vous les trolls de l'indentation me faites bien marrer.
    De toute façon, la seule indentation qui devrait exister, c'est la Whitesmiths.[/troll]

    PRomu@ld skip78: la seconde boucle for n'est pas indentée. Ton indentation "qui combine les deux avantages" EST l'indentation K&R.

    Pour ce qui est des erreurs, on dirait que as-de-trefle a tenté de redéclarer wait() lui-même...

    Edit: Ils devraient mettre une balise "Teste barré" pour les edits...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #27
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Vous les trolls de l'indentation me faites bien marrer.
    Ca n'est pas un troll, juste une discution sur les indentations possibles (j'ai exposé mes arguments, ce qui n'en fait pas un troll)

    PRomu@ld: la seconde boucle for n'est pas indentée. Ton indentation "qui combine les deux avantages" EST l'indentation K&R.
    Euh, tu ne te serais pas trompé ? Ca n'est pas moi qui parle d'indentation qui combine les deux avantages

    Pour ce qui est des erreurs, on dirait que as-de-trefle a tenté de redéclarer wait() lui-même...
    Ca n'est pas le code d'as_de_trefle que j'ai compilé...

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par skip78
    C'est bel et bien ce que je voulais dire ...
    Bref ca n'à aucun interet de continuer là dessus.

    "C'est beau toutes vos citations"

  9. #29
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par PRomu@ld
    Ca n'est pas le code d'as_de_trefle que j'ai compilé...
    Bah indirectement si En tout cas dev supporte les erreurs de déclaration chez moi. (remarque les erreurs semblent être pour la plupart des warnings trés facilement éliminables) Mais je n'ai fait que changer le main en une fonction tu sais c'est pas MON code et puis moi je ne voulais que faire avancer les choses d'ailleurs c'est pour ca que j'ai écris ca fveyssieire :

    Citation Envoyé par fveysseire
    pas la peine de tomber des nues je disais juste que ca ne fait pas vraiment avancer les choses de casser du sucre sur mon dos

  10. #30
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par skip78
    pas la peine de tomber des nues je disais juste que ca ne fait pas vraiment avancer les choses de casser du sucre sur mon dos
    Je ne comprends pas ta réaction je ne suis pas là pour "casser du sucre sur le dos des gens", je suis là pour apprendre et partager.

    Je voulais juste etre sur que l'on disais bien la même chose.

    Donc ta première phrase est suffisante:

    C'est bel et bien ce que je voulais dire ...
    Par contre la deuxième est superflu:

    Bref ca n'à aucun interet de continuer là dessus.
    "C'est beau toutes vos citations"

  11. #31
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    ok
    Et bien autant pour moi alors nous sommes en effet d'accord sur ce point

    Quant à l'indentation, à la suite de la vue de la page wikipedia je trouve vaiment que c'est un detail quoi. Je découvre le nom de ces diférents styles mais effectivement je connaissais les 3 principaux et en effet c'est bien le K&R que je préfère
    Et si tu lis mes codes je t'assures que c'est parfaitement lisible

    allez un petit exemple pour le fun

    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
     
                /* Creation de l'echelle (inseree dans la vbox)*/
                app->h_echellebox = gtk_hbox_new (TRUE,0);
                app->echelletable = gtk_table_new (1,34,TRUE);
                gtk_table_attach_defaults(GTK_TABLE(app->echelletable), app->h_echellebox,2, 33, 0, 1);
                gtk_box_pack_start (GTK_BOX (app->vbox), app->echelletable, TRUE, TRUE, 0);
                fp = fopen("./trt_im.txt","r");
     
                if(fp){
                    fscanf(fp,"%d",&nb);
                    fclose(fp);
                    app->echelle = (GtkWidget**)malloc(nb * sizeof(GtkWidget*));
                    for(i=0;i<nb;i++)app->echelle[i] = gtk_label_new("NULL");
                    if(nb<25)for(i=0;i<nb;i++){
                        app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                    }
                    else{
                        app->txt = g_strdup_printf("%d",pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[0]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[0]), TRUE, TRUE, 0);
                        for(i=1;i<25;i++){
                            app->txt = g_strdup_printf("%d",((i+1)*nb*pas_etude)/25);
                            gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                            gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                        }
                    }
                }
    Bon c'est un peu compact mais ca va quoi

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    c un bon debut
    "C'est beau toutes vos citations"

  13. #33
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Bon c'est un peu compact mais ca va quoi
    Et ben, si tu trouve ça bien ...

    Comme je le disais, c'est la lisibilité du code qui compte (en tout cas pour moi),

    une suite d'instruction comme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(nb<25)for(i=0;i<nb;i++){
                        app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                    }
    Et bien désolé de le dire mais c'est indigeste ... et qui plus est "dangereux", pour la compréhension, c'est pas le top ...

    Je mets (quasiment) toujours des accolades à mes blocs pour les délimiter, même lorsqu'il y a une seule instruction.

    De plus, ajoute des espaces apres chaque parenthèse ouvrante et avant chaque fermante, ça augmente la lisibilité des conditions.

    Enfin bon, nous avons deux visions du code, n'en faisons pas un plat.

    remarque les erreurs semblent être pour la plupart des warnings trés facilement éliminables
    Je l'ai dis plusieurs fois dans ce forum, pour moi, un warning est une erreur. Seul quelques très rares warning passent dans mes programmes (en général liée à un aspect de la bibliothèque utilisée).

    Enfin tu vas dire que je chippote mais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    app->echelle = (GtkWidget**)malloc(nb * sizeof(GtkWidget*));
                    for(i=0;i<nb;i++)app->echelle[i] = gtk_label_new("NULL");
    Est dangeureux ! On teste toujours les retour des fonctions système et d'allocation mémoire. Si ton malloc échoue, tu aura droit à une erreur de segmentation.

    Ensuite, tu peux te passer du "cast" sur le retour de malloc à moins que tu ais de bonnes raisons

  14. #34
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par skip78
    ok
    Et bien autant pour moi alors nous sommes en effet d'accord sur ce point

    Quant à l'indentation, à la suite de la vue de la page wikipedia je trouve vaiment que c'est un detail quoi. Je découvre le nom de ces diférents styles mais effectivement je connaissais les 3 principaux et en effet c'est bien le K&R que je préfère
    Et si tu lis mes codes je t'assures que c'est parfaitement lisible

    allez un petit exemple pour le fun

    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
     
                /* Creation de l'echelle (inseree dans la vbox)*/
                app->h_echellebox = gtk_hbox_new (TRUE,0);
                app->echelletable = gtk_table_new (1,34,TRUE);
                gtk_table_attach_defaults(GTK_TABLE(app->echelletable), app->h_echellebox,2, 33, 0, 1);
                gtk_box_pack_start (GTK_BOX (app->vbox), app->echelletable, TRUE, TRUE, 0);
                fp = fopen("./trt_im.txt","r");
     
                if(fp){
                    fscanf(fp,"%d",&nb);
                    fclose(fp);
                    app->echelle = (GtkWidget**)malloc(nb * sizeof(GtkWidget*));
                    for(i=0;i<nb;i++)app->echelle[i] = gtk_label_new("NULL");
                    if(nb<25)for(i=0;i<nb;i++){
                        app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                    }
                    else{
                        app->txt = g_strdup_printf("%d",pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[0]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[0]), TRUE, TRUE, 0);
                        for(i=1;i<25;i++){
                            app->txt = g_strdup_printf("%d",((i+1)*nb*pas_etude)/25);
                            gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                            gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                        }
                    }
                }
    Bon c'est un peu compact mais ca va quoi

    Justement je trouve ton code un peu trop compact. ;-)

    Le truc qui me dérange c'est ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(nb<25)for(i=0;i<nb;i++){
        app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
        gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
    }
    pour ma part, je préfère cette manière d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (nb<25) {
        for (i=0; i<nb; i++) {
            app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
            gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
            gtk_box_pack_start(GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
        }
    }
    On dit en italien:
    On ne discute pas les goûts et les couleurs des autres.
    Bien le bonjour chez vous
    Jowo

  15. #35
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par skip78
    ok
    Et bien autant pour moi alors nous sommes en effet d'accord sur ce point

    Quant à l'indentation, à la suite de la vue de la page wikipedia je trouve vaiment que c'est un detail quoi. Je découvre le nom de ces diférents styles mais effectivement je connaissais les 3 principaux et en effet c'est bien le K&R que je préfère
    Et si tu lis mes codes je t'assures que c'est parfaitement lisible

    allez un petit exemple pour le fun

    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
     
                /* Creation de l'echelle (inseree dans la vbox)*/
                app->h_echellebox = gtk_hbox_new (TRUE,0);
                app->echelletable = gtk_table_new (1,34,TRUE);
                gtk_table_attach_defaults(GTK_TABLE(app->echelletable), app->h_echellebox,2, 33, 0, 1);
                gtk_box_pack_start (GTK_BOX (app->vbox), app->echelletable, TRUE, TRUE, 0);
                fp = fopen("./trt_im.txt","r");
     
                if(fp){
                    fscanf(fp,"%d",&nb);
                    fclose(fp);
                    app->echelle = (GtkWidget**)malloc(nb * sizeof(GtkWidget*));
                    for(i=0;i<nb;i++)app->echelle[i] = gtk_label_new("NULL");
                    if(nb<25)for(i=0;i<nb;i++){
                        app->txt = g_strdup_printf("%d",(i+1)*pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                    }
                    else{
                        app->txt = g_strdup_printf("%d",pas_etude);
                        gtk_label_set_text(GTK_LABEL(app->echelle[0]), app->txt);
                        gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[0]), TRUE, TRUE, 0);
                        for(i=1;i<25;i++){
                            app->txt = g_strdup_printf("%d",((i+1)*nb*pas_etude)/25);
                            gtk_label_set_text(GTK_LABEL(app->echelle[i]), app->txt);
                            gtk_box_pack_start (GTK_BOX (app->h_echellebox), GTK_WIDGET (app->echelle[i]), TRUE, TRUE, 0);
                        }
                    }
                }
    Bon c'est un peu compact mais ca va quoi
    Si tu veux du code compact et lisible fais du Haskell par exemple...Mais la, il ne faudrait pas qu'il y ait un bug parce que relire et débugguer ça oumpf....

  16. #36
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    À ce propos, suis-je le seul à trouver l'indentation GNU absolument illisible?
    (surtout qu'en plus ils te mettent un espace entre fonction et parenthèse... Ils tiennent tant que ça à planquer leurs appels de fonctions ?)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #37
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut l'as de trefle
    moi je prefere Whitesmiths style , je pense que chaqun a sa facon de programmer , c 'est normal car on est tous différent !!! Donc ne nous éternisons par sur ce sujet !
    J'aimerais savoir comment je fais pour faire patienter l'utilisateur pendant 30 secondes ? sur ce programme ?

    merci
    l'as de trefle

  18. #38
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par as-de-trefle
    J'aimerais savoir comment je fais pour faire patienter l'utilisateur pendant 30 secondes ? sur ce programme ?

    merci
    l'as de trefle
    Bah tu le fait deja ... Avec la fonction wait() !

  19. #39
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par PRomu@ld
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    app->echelle = (GtkWidget**)malloc(nb * sizeof(GtkWidget*));
                    for(i=0;i<nb;i++)app->echelle[i] = gtk_label_new("NULL");
    Ensuite, tu peux te passer du "cast" sur le retour de malloc à moins que tu ais de bonnes raisons
    Oui je sais mais on nous obligeait à le faire à l'ecole donc j'ai pris l'habitude de le mettre

  20. #40
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Bah tu le fait deja ... Avec la fonction wait() !
    Attention à ne pas rentrer en conflit avec une fonction système, mieux vaut utiliser un autre nom pour la fonction.

    Oui je sais mais on nous obligeait à le faire à l'ecole donc j'ai pris l'habitude de le mettre
    Je trouvais juste bizarre que toi qui privilégie la rapidité du code (selon ce que tu nous as dis sur tes choix d'indentation), rajoute du code qui est inutile.

    Nos profs aussi voulaient qu'on utilise les cast en retour de malloc mais après leur avoir expliqué que cette pratique datait du temps où ils avaient "appris" le langage C et qu'elle n'avait plus lieu d'être, ils nous ont laisser faire comme nous voulions, le tout est que tu leur expliques.

    D'ailleur au passage, pour tes mallocs, essaie d'utiliser ceci :

    http://rperrot.developpez.com/articl...ocationC/#L4.1

    Tu verras, ça facilite la vie.

Discussions similaires

  1. Probleme récupération des erreurs
    Par BILLANT dans le forum VBScript
    Réponses: 0
    Dernier message: 28/01/2009, 18h15
  2. Réponses: 3
    Dernier message: 19/09/2007, 17h11
  3. [cvBlobsLib]Probleme à l'execution avec des erreurs LNK2019
    Par Jim_Nastiq dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 01/03/2007, 14h40
  4. Réponses: 2
    Dernier message: 06/07/2006, 08h22
  5. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25

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