Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1051 Le 24/10/2011, à 10:25

The Uploader

Re : /* Topic des codeurs [6] */

grim' a écrit :

C’est le genre de truc qui, pour moi, faire la différence entre un bon programmeur et les pisseurs de code

Tout à fait. Dans le même genre, on peut tout à fait coder des getters/setters en Ruby, plutôt que d'utiliser attr_reader/attr_accessor, mais plus d'un Rubyist s'enfuira à la vue d'un code pareil.

Dernière modification par The Uploader (Le 24/10/2011, à 10:26)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1052 Le 24/10/2011, à 11:29

helly

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :
helly a écrit :
grim7reaper a écrit :

Bon, c’était peut-être dans une des ses FAQ alors, ou quelque part sur Internet…

Si, vu, y’a une toute ptite note.

Haha ! Ma mémoire est encore relativement fonctionnelle (c’est d’autant plus beau que je les aies pas lu en entier ces bouquins :])

Hérétique !
Comme un mormon qui aurait pas lu la bible en entier !
J’ai dû les lire de long en large au moins 2 fois en plus de feuilleter. :3
Mais ça m’a foutrement bien aidé.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1053 Le 24/10/2011, à 11:33

grim7reaper

Re : /* Topic des codeurs [6] */

tongue
Bah moi je l’ai juste survolé, comme la majorité des bouquins de références (des pavés donc) que j’ai chez moi.
Je sais où est l’info et quand j’en ai besoin je vais la chercher. Ça c’est être efficace cool

De toutes façons, même si je le voulais (ce qui n’est pas spécialement le cas), je n’ai matériellement pas le temps de les lire en entiers…

De plus :

helly a écrit :

Mais ça m’a foutrement bien aidé.

Étant donné que c’est moi qui t’aide en C++ et pas l’inverse, je suppose que ma stratégie est meilleure tongue

Dernière modification par grim7reaper (Le 24/10/2011, à 11:34)

Hors ligne

#1054 Le 24/10/2011, à 11:34

Вiɑise

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :
Вiɑise a écrit :

Concrètement, quel bug pourrait rencontrer mon programme à cause du fait d'avoir mis int main () au lieu de int main (void) ?

Honnêtement, sous Linux je pense pas qu’il puisse t’arriver grand-chose. Par contre, sur d’autres OS ou avec d’autres compilateur…
Non, là le seul truc que tu risques c’est de montrer ton ignorance et ton incompréhension du C à « des gens qui savent », mais sous Linux tu ne devrais pas avoir de bugs…

Après on peut se demander pourquoi cette syntaxe est si répandu si elle est fausse. Bah j’y vois de raisons :
- les gens l’ont vu en C++ et comme chacun sait « lolilol, le C++ c’est identique au C sauf qu’on a ajouté des classes trololo », bah il considère que si ça fonctionne en C++ ça fonctionne en C… ;
- les gens n’ont pas lu la norme du C (bon ça se comprends aussi, c’est long et chiant et parfois ardu => une norme quoi big_smile).

Ah bah voilà ! Ça c'est la réponse que j'attendais.

En fait le plus drôle, c'est que c'est mon prof de C qui m'a appris à faire le main ainsi, et lui n'utilise pas Linux…

Hors ligne

#1055 Le 24/10/2011, à 12:02

helly

Re : /* Topic des codeurs [6] */

@grim : gnagnagna ! mad


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1056 Le 24/10/2011, à 12:07

Rolinh

Re : /* Topic des codeurs [6] */

Вiɑise a écrit :

c'est mon prof de C qui m'a appris à faire le main ainsi

C'était quand que l'on parlait du C trop souvent mal enseigné? La semaine passé non? CQFD

Ton prof de C, soit il n'a fait aucune études dans l'informatique soit... soit... ben... il n'est simplement pas qualifié? D'autant plus s'il vous apprend à récupérer les entrées du stdin via scanf comme tu l'as fait dans ton bout de code... :-s

C'est dans quel cadre que tu suis des cours de C?

Dernière modification par Rolinh (Le 24/10/2011, à 12:07)

Hors ligne

#1057 Le 24/10/2011, à 12:10

Вiɑise

Re : /* Topic des codeurs [6] */

Un DUT informatique. Mais personne pige rien à ses cours, l'exo que j'ai fait vient d'un manuel.

Quand je dis personne c'est vraiment personne ! On est tous sur des manuels ou sur le SDZ !

Le type premier cours, il nous parle de théorie pendant 2 heures, pareil les 2 heures suivante, pas un seul bout de code… Et il a essayé d'expliquer ce qu'est un pointeur avant de parler des variables et des valeurs… Un truc de fou. o_O

Hors ligne

#1058 Le 24/10/2011, à 12:10

helly

Re : /* Topic des codeurs [6] */

@Biaise : crois mon expérience, les profs de prog sont généralement les pires codeurs !
Imagine moi qui débarque sur le TdCCT après 2 ans de sales habitudes !
Ça va que « mon » langage était le c++ donc j’ai eu grim !
SI ça avait été le c, j’aurai dû prendre Pylade, tu te rends compte ?

Mais bon sinon ici on peut dire que c’est des codeurs de confiance, si on dit un truc c’est que normalement c’est correct ^^.
j’veux dire par là par exemple le coup du main(void), même si t’as pas trop compris, essaye de nous faire confiance si on te dit que c’est ce qu’il faut faire wink.

edit : attention aussi au SDZ ! C’est pas toujours extra leur codes…

Dernière modification par helly (Le 24/10/2011, à 12:12)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1059 Le 24/10/2011, à 12:11

Вiɑise

Re : /* Topic des codeurs [6] */

Bah j'vous crois mais… quand je pige pas comment ça marche j'ai jamais l'impression que ça aide. ^^

Hors ligne

#1060 Le 24/10/2011, à 12:13

tshirtman

Re : /* Topic des codeurs [6] */

lol (pour pylade en prof wink)

Mais oui, enseigner la programmation c'est dingue le nombre de gens qui le font mal...

edit oui, comprendre comment ça marche aide, mais hélas c'est gros, et il faut des années avant de maitriser un peu, et y'a pas mal de niveaux différents (en général on commence "proche du matos", mais c'est vraiment technique, et on s'approche des abstractions après), et elles ont toutes leurs approches différentes sur ce qu'est le bon usage du temps de calcul et de la mémoire. Donc de toutes façons, y'a plusieurs écoles, et plusieurs "bons" programmeurs, peuvent tout à fait trouver ce que les autres (bons) font parfaitement dégoutant. Par exemple, des fanatiques de la conception, avec C++/templates/Boost ou java dans tous les sens, feront pleurer des programmeurs C voulant optimiser le code et ne pas le compliquer à outrance.

Dernière modification par tshirtman (Le 24/10/2011, à 12:17)

Hors ligne

#1061 Le 24/10/2011, à 12:14

helly

Re : /* Topic des codeurs [6] */

Parfois c’est juste une question de précautions, ça chnagera rien au niveau de l’exécution, tu verra pas de différence, mais ça peut éviter des problèmes de sécurité, de ressources bouffées pour rien etc..


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1063 Le 24/10/2011, à 12:24

grim7reaper

Re : /* Topic des codeurs [6] */

helly a écrit :

@grim : gnagnagna ! mad

Jaloux tongue



Вiɑise a écrit :

Et il a essayé d'expliquer ce qu'est un pointeur avant de parler des variables et des valeurs… Un truc de fou. o_O

>_<"



helly a écrit :

SI ça avait été le c, j’aurai dû prendre Pylade, tu te rends compte ?

lol
Pas nécessairement, je touche plus en C qu’en C++.
Et puis c’est moi qui est plus ou moins formé Pylade sur le C (suffit de lire les premiers topics) donc t’aurais aussi pu m’avoir.



Вiɑise a écrit :

Bah j'vous crois mais… quand je pige pas comment ça marche j'ai jamais l'impression que ça aide. ^^

Pour le coup, c’est plus une question de bon sens : tu n’utilises pas les paramètres de main donc tu dis « je ne veux pas de paramètres => (void) ».

Hors ligne

#1064 Le 24/10/2011, à 12:25

Вiɑise

Re : /* Topic des codeurs [6] */

Au fait, ça vous le fais à vous aussi les "getchar ()" qui ne sont pas pris en compte parfois derrières un scanf ? Parce que vraiment je pige pas…

Dernière modification par Вiɑise (Le 24/10/2011, à 12:26)

Hors ligne

#1065 Le 24/10/2011, à 12:43

grim7reaper

Re : /* Topic des codeurs [6] */

Faudrait avoir le code sous les yeux pour être sûr, mais je pense que c’est une histoire de buffer pas vide.

Hors ligne

#1066 Le 24/10/2011, à 12:46

Вiɑise

Re : /* Topic des codeurs [6] */

Bon reprenons un qu'on connait alors smile

#include <stdio.h>

int main ()

{

    char car;
    
    printf ("Saississez une lettre de l'alphabet en minuscule : ");
    scanf ("%c",&car);
    
    if ((car=='a') || (car=='e') || (car=='i') || (car=='o') || (car=='u') || (car=='y'))
        printf ("Cette lettre est une voyelle.\n");
    else
        printf ("Cette lettre est une consonne\n");
        
    getchar ();
    
    return 0;
    
    }

À la fin, le programme quitte sans que j'ai appuyé sur une touche


Je viens de ressayer celui ci

#include <stdio.h>
#include <math.h>

int main ()

    {
        float a=0;
        float b=0;
        float h=0;
        
        printf ("Saisir la valeur du côté a : ");
        scanf ("%f",&a);
        
        getchar ();
        
        printf ("Saisir la valeur du côté b : ");
        scanf ("%f",&b);
        
        getchar ();
        
        h= sqrt (a*a+b*b);
        printf("L'hypoténuse de ce triangle rectangle est : %f\n",h);
        
        getchar ();
        
    return 0;
    
    }
           
        

En fait je saisis le nombre et valide avec [ENTRÉE] puis le 'saisr la valeur du côté b" apparait immédiatement après. getchar () prend en compte le [ENTRÉE] ?

Par contre à la toute fin sur celui ci, il attend bien que j'appuie sur une touche avant de quitter.

Dernière modification par Вiɑise (Le 24/10/2011, à 12:53)

Hors ligne

#1067 Le 24/10/2011, à 12:50

The Uploader

Re : /* Topic des codeurs [6] */

Biaise a écrit :

Et il a essayé d'expliquer ce qu'est un pointeur avant de parler des variables et des valeurs… Un truc de fou. o_O

1319453443.jpg


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1068 Le 24/10/2011, à 12:52

grim7reaper

Re : /* Topic des codeurs [6] */

Ha, un classique smile

Tu fais ton scanf, l’utilisateur tape, par exemple, 'a' puis il appuie sur entrée.
Dans le buffer stdin tu as donc les caractères suivants : 'a' et '\n' (le saut de ligne obtenu par la touche entrée).
scanf lit un seul caractère (car "%c"), ici le 'a'.
stdin contient donc : '\n'
Tu arrives au getchar, il lit dans stdin. Comme stdin n’est pas vide pas besoin de demander à l’utilisateur : il lit le contenu (ici '\n').
Donc getchar n’est pas ignoré, mais c’est l’impression que ça donne.

scanf est une fonction souvent présenté au débutant, malheureusement son bon usage n’est pas trivial hmm

Dernière modification par grim7reaper (Le 24/10/2011, à 13:03)

Hors ligne

#1069 Le 24/10/2011, à 12:54

Вiɑise

Re : /* Topic des codeurs [6] */

Disons qu'il est facile à comprendre après qu'on ai vu printf. smile

Woké donc je mets un deuxième getchar() et c'est bon ?

Hors ligne

#1070 Le 24/10/2011, à 13:02

grim7reaper

Re : /* Topic des codeurs [6] */

Вiɑise a écrit :

Disons qu'il est facile à comprendre après qu'on ai vu printf. smile

Oui et non, scanf est bien plus piégeux que printf dans son usage.
Avoir vu printf permet de comprendre les chaînes de format de scanf, mais ça ne va pas plus loin.

Вiɑise a écrit :

Woké donc je mets un deuxième getchar() et c'est bon ?

Oui, c’est une solution mais moche.
Et si le gus, quand tu lui demande UN caractère, il tape "sdfvghbnj,kolohvddc" puis entrée : tu vas t’amuser à mettre 19 getchar à la suite :] ?
Le truc propre, si tu tiens absolument à scanf (qui n’est pas adapté ici), c’est de vider le buffer clavier (Cf. ici) après chaque appel de scanf

Sinon, tu utilises la fonction adapté : tu veux lire UN caractère venant de stdin (donc clavier dans 99% des cas), et bien utilise getchar il est fait tout spécialement pour ça smile (bon, ça ne dispense pas de vider le buffer clavier).

Pourquoi getchar plutôt que scanf dans ce cas-là ?
Bah c’est un peu la même chose que printf vs puts : plus performant, plus adapté (plus juste d’un point de vue sémantique).

Dernière modification par grim7reaper (Le 24/10/2011, à 13:07)

Hors ligne

#1071 Le 24/10/2011, à 13:23

Rolinh

Re : /* Topic des codeurs [6] */

Вiɑise a écrit :

Woké donc je mets un deuxième getchar() et c'est bon ?

A croire que je post dans le vide...
J'avais précisément fournit une petite fonction qui te permet de vider le buffer (équivalente à celle que t'as fourni ensuite grim dans sa réponse ci-dessus).

Sinon, je persiste: utiliser scanf pour récupérer les saisies utilisateurs c'est beurk. Si plus tard tu as besoin d'un exemple pour récupérer une chaîne du stdin sans scanf, je peux te le fournir même si ici c'est inutile car tu ne récupères qu'un caractère.

EDIT: c'est quoi un DUT?

Dernière modification par Rolinh (Le 24/10/2011, à 13:26)

Hors ligne

#1072 Le 24/10/2011, à 13:26

grim7reaper

Re : /* Topic des codeurs [6] */

Ha, les débats sur l’usage de scanf big_smile
Ça me rappelle ton arrivée sur ce topic (bon ça portait sur fscanf, mais c’est pas si éloigné).

Hors ligne

#1073 Le 24/10/2011, à 13:26

helly

Re : /* Topic des codeurs [6] */

Rolinh : sois pas trop dur, elle débute wink.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1074 Le 24/10/2011, à 13:28

Rolinh

Re : /* Topic des codeurs [6] */

@grim: que de souvenirs ^^
@helly: je sais bien donc autant lui éviter de prendre de mauvaises habitudes smile Et je lui propose mon aide wink

Hors ligne

#1075 Le 24/10/2011, à 13:30

grim7reaper

Re : /* Topic des codeurs [6] */

Rolinh a écrit :

EDIT: c'est quoi un DUT?

Diplôme Bac + 2 (Diplôme Universitaire de Technologie).
± équivalent aux deux premières années de licence si tu prends un cursus Licence/Master/Doctorat en comparaison
Je ne sais pas si ça te parle…

Rolinh a écrit :

@grim: que de souvenirs ^^

Ouais, c’était assez tendu par moments :]

Dernière modification par grim7reaper (Le 24/10/2011, à 13:31)

Hors ligne