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.

#2101 Le 05/10/2012, à 07:04

Mindiell

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

Ben, j'ai entendu beaucoup de choses sur l'epitech, mais là ça dépasse toutes mes espérances ! \o/

Tu devrais suivre les explications d'un éminent professeur en son temps :
"Avant donc que d'écrire, apprenez à penser"
et
"Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément."

Hors ligne

#2102 Le 05/10/2012, à 09:41

nathéo

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

Πυλάδης a écrit :

Euh… le but c’est de transformer un entier en constante de type caractère ? Si c’est ça, autant utiliser une constante de type caractère dès le début, hein… Sinon, les fonctions *printf servent entre autres à convertir des entiers en chaîne de caractères.

Le but est de faire en sorte que tout entier qui passe dans la fonction soit affiché tel quel. big_smile

J'ai pas mal avancer dans le code :

int	my_putchar(a)
{
  write(1, &a, 1);
}


void	my_put_nbr(int nb)
{
  
  int nb1;
  int nb2;
  
  while (nb > 0)
    {
      while (nb1 > 0)
	{
	  nb1 = nb/10; 
	  if (10>nb1>0)
	   
	      nb1 = nb1 + 48;
	      
	      my_putchar(nb1);
      
	} 
      
      nb = nb%10;
      nb2 = nb/10;
      
      if (10 > nb2 > 0)

	nb2 = nb2 + 48;
      
      my_putchar(nb2);
      
    }
  return;
}


int	main()
{
  int nb;
  nb = 789456;
  
  
  my_put_nbr(nb);
  
  return;
}

Mais le problème est que ça affiche des zéros, et pour le moment je ne cerne pas pourquoi...
Je préfère ignorer le post du dessus...

Dernière modification par nathéo (Le 05/10/2012, à 09:48)


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2103 Le 05/10/2012, à 09:43

Elzen

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

@nathéo : bah, utilise les trucs qui sont fait exprès, alors, au lieu d'essayer de détourner les trucs qui n'le sont pas tongue

@Mindiell : autant, je n'suis pas fan d'Epitech, autant, s'tu commences à sortir Boileau, ça n'va pas aller non plus tongue

Hors ligne

#2104 Le 05/10/2012, à 09:44

Pylades

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

Use *printf.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2105 Le 05/10/2012, à 09:49

nathéo

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

J'ai édité l'autre post (rajout de code), sinon pour ce qui est de printf, je l'aurais fait depuis bien longtemps si c'était permis... tongue


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2106 Le 05/10/2012, à 10:15

Dr Le Rouge

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

@ natheo : t'aurais pas inversé des divisions ('/') et des modulos ('%') par hasard ?


C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog

Hors ligne

#2107 Le 05/10/2012, à 11:21

Mindiell

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

Ben quoi ?
C'est déjà pas évident de comprendre ce qu'il demande et en plus il n'est même pas très poli je trouve... Et encore, je me suis édité plusieurs fois avant de poster wink

Je vais tâcher d'être plus constructif =>
@nathéo : Il serait bon de :
- commenter ton code
- initialiser tes variables avant de les utiliser
- donner des noms parlants à tes variables
- coder plus proprement (le return; dans le int main() par exemple)
- Mettre le problème à l'écrit, et faire l'algo sur papier à la main avant de le programmer

Voilà, c'est mieux comme ça ? smile

Hors ligne

#2108 Le 05/10/2012, à 11:50

nathéo

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

Le Rouge a écrit :

@ natheo : t'aurais pas inversé des divisions ('/') et des modulos ('%') par hasard ?

Pour la seconde boucle ? Bah non, enfin, dans le principe c'est le chiffre le plus à gauche qui doit être affiché, donc une fois que c'est fait, il y a utilisation de modulo de 10, puis une division par 10 jusqu'à ce qu'il ne reste plus que le nombre de gauche. Wait, je crois que j'ai trouvé pourquoi ça fonctionne pas, en fait j'aurais du remettre la boucle utilisé avant le modulo dans la boucle où est le modulo, merci de la remarque. big_smile

Mindiell a écrit :

Ben quoi ?
C'est déjà pas évident de comprendre ce qu'il demande et en plus il n'est même pas très poli je trouve... Et encore, je me suis édité plusieurs fois avant de poster wink

Je vais tâcher d'être plus constructif =>
@nathéo : Il serait bon de :
- commenter ton code
- initialiser tes variables avant de les utiliser
- donner des noms parlants à tes variables
- coder plus proprement (le return; dans le int main() par exemple)
- Mettre le problème à l'écrit, et faire l'algo sur papier à la main avant de le programmer

Voilà, c'est mieux comme ça ? smile

Selon la norme epitech les commentaires sont interdits, enfin en piscine avec pour objectif que l'on sache bien de quoi le code retourne.
Les variables sont initialisées dans main(), la fonction my_put_nbr sera appelé à être utilisé dans celle-ci.
En ce qui concerne le return, pour le moment on a pas vraiment d'indication, l'importance est que ça compile, on verra ça plus précisément plus tard.
Bah si tu avais bien lu mes messages tu aurais vu que le problème a été formulé, de même que le principe, ensuite pour ce qui est d l'algo, je suis justement en train d'y réfléchir, mais pour le moment ça n'a pas l'air de fonctionner...

Dernière modification par nathéo (Le 05/10/2012, à 12:04)


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2109 Le 05/10/2012, à 11:53

Elzen

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

Mindiell a écrit :

Ben quoi ?
C'est déjà pas évident de comprendre ce qu'il demande et en plus il n'est même pas très poli je trouve... Et encore, je me suis édité plusieurs fois avant de poster wink

Si ceci répond à ma remarque sur Boileau, je dirai simplement que

1- la pensée ne précède pas nécessairement l'écriture. Au contraire, c'est parfois (souvent, selon le domaine) en écrivant que l'on structure sa pensée.

2- la faculté de trouver les mots et d'énoncer clairement les choses dépend bien de la bonne compréhension, mais pas que, c'est loin d'être aussi automatique qu'il ne l'exprime ici.


Mais ceci mis à part, je soutiens ce post autant que le précédent me déplaisait ^^

Edit :

nathéo a écrit :

Selon la norme epitech les commentaires sont interdits

neutral

nathéo a écrit :

Bah si tu avais bien lu mes messages tu aurais vu que le problème a été formulé, de même que le principe

Pro-tip : le fait de formuler le problème ne veut pas dire que ce soit compréhensible (t'n'as qu'à lire mes demandes d'aides à moi pour t'en rendre compte tongue)

Dernière modification par ArkSeth (Le 05/10/2012, à 11:54)

Hors ligne

#2110 Le 05/10/2012, à 12:09

Kanor

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

ArkSeth a écrit :

Pro-tip : le fait de formuler le problème ne veut pas dire que ce soit compréhensible (t'n'as qu'à lire mes demandes d'aides à moi pour t'en rendre compte tongue)

lol

nathéo a écrit :

Selon la norme epitech les commentaires sont interdits

Oo
http://lesjoiesducode.tumblr.com/post/2 … n-commente

Hors ligne

#2111 Le 05/10/2012, à 12:25

Dr Le Rouge

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

Bah quoi ? Au moins, ils ne risquent pas de perdre de temps à choisir un logiciel de génération de documentation. Et ça évite que leur code soit maintenu par des gens qui n'y connaissent rien smile


C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog

Hors ligne

#2112 Le 05/10/2012, à 12:33

Mindiell

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

nathéo a écrit :

Selon la norme epitech les commentaires sont interdits, enfin en piscine avec pour objectif que l'on sache bien de quoi le code retourne.

Il me semblait bien l'avoir lu dans les journaux ! wink

nathéo a écrit :

Les variables sont initialisées dans main(), la fonction my_put_nbr sera appelé à être utilisé dans celle-ci.

Tu es en train de me dire que tu initialises la variable nb1 dans le main pour ensuite l'utiliser dans la fonction my_put_nbr ???

nathéo a écrit :

En ce qui concerne le return, pour le moment on a pas vraiment d'indication, l'importance est que ça compile, on verra ça plus précisément plus tard.

Oui, dans ma boite ils disent la même chose avec les tests, la documentation, le cahier des charges, les besoins utilisateurs, etc...

nathéo a écrit :

Bah si tu avais bien lu mes messages tu aurais vu que le problème a été formulé, de même que le principe, ensuite pour ce qui est d l'algo, je suis justement en train d'y réfléchir, mais pour le moment ça n'a pas l'air de fonctionner...

Alors je vais tâcher de t'aider parce que ça ira plus vite comme ça je pense :

Exposé du problème :
En utilisant une fonction spécifique "my_putchar(a)" qui écrit sur l'interface le caractère correspondant au code ASCII donné, on souhaite afficher un nombre quelconque (limité au type int positif dans l'exemple)

void my_putchar(a)
{
  write(1, &a, 1);
}

void afficher_nombre(int nombre)
{
 /*
 * C'est donc ici que se situe l'algorithme...
 */
}

int main(void)
{
 afficher_nombre(789456);
 return 0;
}

Bon, on a donc un nombre (789456) à afficher. Le modulo 10 est intéressant, car il permet de retrouver le chiffre le plus à droite du nombre. Exemple => 789456 % 10 => 6,  il s'agit du reste après la division entière par 10.
Le problème qui se trouve est qu'on risque alors d'afficher le nombre à l'envers, typiquement : 6, 5, 4, 9, 8, puis 7
Il faut donc inverser quelque chose à un moment donné...
Le type int positif est une valeur située entre 0 et +4,294,967,295, donc 10 caractères maximum.
Enfin, un chiffre tel quel ne représente pas sa valeur ASCII, pour ce faire, il faut lui ajouter 48 (48+0="0", etc...)

Donc on va établir un algorithme tel que :

Debut (nombre)
  // Le résultat à afficher
  resultat = chaine vide de 10 caractères;
  // Le nombre de digits du nombre
  nombre_digits = 0;
  // Le résultat du modulo par 10 sur le nombre à afficher. C'est donc le digit à afficher
  modulo = 0;

  // On va réduire le nombre au fur et à mesure que l'on écrit, jusqu'à le réduire à 0
  tant_que nombre > 0
    // On obtient le digit le plus à droite du nombre
    modulo = nombre modulo 10;
    // On le stocke dans la variable resultat en partant de la gauche
    resultat[nombre_digits] = modulo + 48;
    // On augmente le nombre de digits
    nombre_digits ++;
    // On divise alors le nombre par 10 pour supprimer son digit le plus à droite
    nombre = nombre / 10;
  fin_tant_que

  // Enfin, on peut afficher chaque chiffre un par un mais de droite à gauche, i est un simple compteur
  pour i allant de nombre_digits jusqu'à 1
    // On affiche le digit (décalé de 1 puisqu'on compte à partir de 0 dans les chaines)
    my_putchar(resultat[i-1]);
  fin_pour
Fin

Voilà, ça c'est ma manière de faire, je suis sur papier, j'ai p'tet loupé quelque chose, mais au moins j'obtiens rapidement un code propre que je comprends et les autres aussi, ils pourront alors m'aider beaucoup plus facilement.

Je suis désolé, mais ne pas prendre l'habitude de mettre des commentaires dans un code source c'est équivalent à se tirer une balle dans le pied tôt ou tard (variante plus agréable que la roulette russe tout de même)... Je n'ose croire que tes profs le font pour de vrai, ou alors ils faut qu'ils changent de métier... hmm

EDIT :
- En fait, je suis pas sur papier hein, je viens de tout faire à la va vite pour de vrai wink
- Je sais que je ne gère pas le nombre (0), mais vous allez pas m'en vouloir pour ça tout de même !
- J'aurais même tendance à mettre la partie en texte d'avant l'algo dans les commentaires du fichier pour que le suivant comprenne le pourquoi et le comment de mes choix wink
- Le tout a du me prendre environ 20 minutes, c'est cadeau wink

Dernière modification par Mindiell (Le 05/10/2012, à 12:37)

Hors ligne

#2113 Le 05/10/2012, à 12:38

Pylades

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

Le coup d’ajouter 48, c’est de la connerie. On ne bosse pas forcément en ASCII ; les constantes de type caractère, c’est pas fait pour les chiens.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2114 Le 05/10/2012, à 12:39

nathéo

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

Pour ce qui est des commentaires, j'ai bien précisé en piscine (donc les trois premières semaines intensives) à des fins pédagogiques, après oui on en utilise... tongue

D'accord, j'ai formulé le problème, mais il me semble aussi que j'ai formulé la manière dont je comptais m'y prendre pour le résoudre, c'est-à dire d'afficher le nombre correspond à la variable déclarée chiffre par chiffre, et pour y arriver, utiliser une boucle qui me permettrait d'abord de sélectionner le chiffre le plus à gauche avec diviser par 10, puis une fois fait, lui ajouter 48 avant d'appliquer la fonction my_putchar, puis une fois fait, sélectionner le second chiffre le plus à gauche en utilisant modulo de 10, puis sélectionner à nouveau le chiffre le plus à gauche en utilisant diviser par 10, lui ajouter 48, et ainsi de suite. tongue


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2115 Le 05/10/2012, à 12:40

Mindiell

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

@Πυλάδης : si tu réponds à mon message, j'ai tout simplifié hein, j'allais pas m'embêter à faire un truc compilable et tout wink Mais ton idée est intéressante, comme quoi partager ça permet d'apprendre toujours plus !

Hors ligne

#2116 Le 05/10/2012, à 12:41

Pylades

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

C’était une remarque générale.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2117 Le 05/10/2012, à 12:42

nathéo

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

Πυλάδης a écrit :

Le coup d’ajouter 48, c’est de la connerie. On ne bosse pas forcément en ASCII ; les constantes de type caractère, c’est pas fait pour les chiens.

L'important n'est pas d'afficher le chiffre, mais comment y parvenir je dirais...

@ mindielll : J'essayerais d'y penser à chaque fois que je posterais dans ce topic. big_smile

Dernière modification par nathéo (Le 05/10/2012, à 12:43)


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2118 Le 05/10/2012, à 12:46

Mindiell

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

nathéo a écrit :

D'accord, j'ai formulé le problème, mais il me semble aussi que j'ai formulé la manière dont je comptais m'y prendre pour le résoudre, c'est-à dire d'afficher le nombre correspond à la variable déclarée chiffre par chiffre, et pour y arriver, utiliser une boucle qui me permettrait d'abord de sélectionner le chiffre le plus à gauche avec diviser par 10, puis une fois fait, lui ajouter 48 avant d'appliquer la fonction my_putchar, puis une fois fait, sélectionner le second chiffre le plus à gauche en utilisant modulo de 10, puis sélectionner à nouveau le chiffre le plus à gauche en utilisant diviser par 10, lui ajouter 48, et ainsi de suite. tongue

Si tu parles du contenu de ta fonction, je suis désolé mais ça n'a rien à voir, preuve que tu n'as pas réfléchi à ce que tu faisais :
Je reprends ton code en commentant :

void	my_put_nbr(int nb)
{
  
  int nb1;
  int nb2;
  
  // Ah, toi non plus tu ne gères pas (0), ouf ! ;o)
  while (nb > 0)
    {
      // nb1 vaut combien ? Tu risques de ne pas passer dans cette boucle sans l'avoir initialiser à quelque chose
      while (nb1 > 0)
	{
          // Donc en prenant 789456, nb1 vaut 78945 maitnenant
	  nb1 = nb/10; 
          // Donc on ne passe ici que pour la dernière division
	  if (10>nb1>0)
	      // nb1 = 7
	      nb1 = nb1 + 48;
	      // On affiche 7, ok
	      my_putchar(nb1);
      
	} 
      // nb vaut donc 6
      nb = nb%10;
      // nb2 vaut alors 0
      nb2 = nb/10;
      // On ne passe pas ici
      if (10 > nb2 > 0)

	nb2 = nb2 + 48;
      
      my_putchar(nb2);
      
    }
  return;
}

Rien qu'en lisant ça tu devrais déjà voir qu'il y a un souci, non ? Ca ne fait pas du tout ce que tu dis dans ton post précédent. Je rappelle : "Ce qui se conçoit bien s'énonce clairement.... bla bla bla" wink

Hors ligne

#2119 Le 05/10/2012, à 13:03

Elzen

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

nathéo a écrit :

Pour ce qui est des commentaires, j'ai bien précisé en piscine (donc les trois premières semaines intensives) à des fins pédagogiques, après oui on en utilise... tongue

Certes, mais justement, pédagogiquement, ça me paraît une très mauvaise idée.

D'abord, ça fait prendre d'entrée de jeu de mauvaises habitudes (bon, s'ils obligent à en mettre ensuite, ça peut s'inverser⁽¹⁾, mais s'ils autorisent juste, j'suis à peu près certain qu'une partie non-négligeable de la promo continuera de ne pas en mettre).

Ensuite, ça vous rentre dans la tête l'idée selon laquelle quand on est suffisamment bon, on n'en a juste pas besoins, de commentaires, on est capable de comprendre directement, ce qui est juste fondamentalement stupide.

Enfin et surtout, les commentaires structurels (du genre /* Bon, là on démarre le code qui va faire ça */), c'est ce qu'il y a de plus important comme commentaires, et ça ne s'oppose absolument pas à une bonne compréhension du code par le code lui-même, donc c'est juste stupide de les interdire.

((1) Et encore, pas sûr, ç't'un coup à ce que les gens se mettent dans la tête qu'en mettre est un truc chiant que tu ne fais que par obligation, et que du coup, ils arrêtent dès qu'il n'y aura plus obligation.)

Hors ligne

#2120 Le 05/10/2012, à 13:10

Kanor

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

Je pense le mieux c'est de laisser chaque élève faire leur programme.
Et dans une seconde étape rajouter une fonctionnalité dans le code de ton voisin. tongue

Hors ligne

#2121 Le 05/10/2012, à 13:16

Mindiell

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

Kanor a écrit :

Je pense le mieux c'est de laisser chaque élève faire leur programme.
Et dans une seconde étape rajouter une fonctionnalité dans le code de ton voisin. tongue

Ah, une super idée ça ! Ca leur permettrait d'y réfléchir à deux fois la prochaine fois... +1 !

Hors ligne

#2122 Le 05/10/2012, à 13:23

Jules Petibidon

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

En même temps lorsqu'on apprend l'algo, écrire sans commentaires oblige à écrire un code "clair" (donc déjà trouver la piste de l'algo, et ensuite la simplifier au maximum pour retirer tout ce qui la pollue)

De même les cours d'algo donnés sans commentaires d'aide et avec des variables à la con (E element de L) oblige à une concentration supplémentaire pour identifier les variables tout au long de l'algo.

Enfin l'objectif de ce truc est pas de pondre un code C propre, vu que la "fonction" est totalement inutile, mais pondre un algo.

@nathéo : Essaye déjà de dérouler ton algo en pseudo code avant de le passer en C, ça aide smile

Hors ligne

#2123 Le 05/10/2012, à 13:45

Mindiell

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

Jules Petibidon a écrit :

En même temps lorsqu'on apprend l'algo, écrire sans commentaires oblige à écrire un code "clair" (donc déjà trouver la piste de l'algo, et ensuite la simplifier au maximum pour retirer tout ce qui la pollue)

Ah ben comme tu le dis dans ta dernière phrase, faire de l'algo c'est pas faire du code. S'ils apprennent l'algo, il faut un papier, un crayon et une gomme wink

Hors ligne

#2124 Le 05/10/2012, à 14:15

nathéo

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

@ Mindiell : Merci, j'ai vu où ça coinçait exactement, du coup j'ai essayé de corrigé ça, mais apparemment ça fonctionne pas trop...

Voilà comment je pense que ça devrait fonctionner :

tant que nb > 0 on a :
|
|| tant que nb1 >0
|| nb1 = nb%10
|
| si 0 < nb2 < 10
| nb1 = nb1 + 48
|
|sinon nb1 = 48 (pour un éventuel 0)
|
|afficher nb1
|
| nb%10

Dernière modification par nathéo (Le 05/10/2012, à 14:26)


C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]

Hors ligne

#2125 Le 05/10/2012, à 14:28

The Uploader

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

ArkSeth a écrit :

D'abord, ça fait prendre d'entrée de jeu de mauvaises habitudes (bon, s'ils obligent à en mettre ensuite, ça peut s'inverser⁽¹⁾, mais s'ils autorisent juste, j'suis à peu près certain qu'une partie non-négligeable de la promo continuera de ne pas en mettre).

C'est pas forcément une mauvaise chose. SI ton code est incompréhensible, c'est qu'il doit être clarifié. Le commentaire, c'est une aide à la compréhension, pas un truc qui doit excuser un code pas clair.

ArkSeth a écrit :

Ensuite, ça vous rentre dans la tête l'idée selon laquelle quand on est suffisamment bon, on n'en a juste pas besoins, de commentaires, on est capable de comprendre directement, ce qui est juste fondamentalement stupide.

Tout à fait ça peut être utile, mais la plupart du temps les commentaires expliquent le code parce que le code est mal fichu (en tout cas chez moi, ça me l'a fait souvent).

Sans compter que ton tas de commentaire, c'est de la maintenance en plus. Parfois à force, le commentaire décrit quelque chose qui n'a rien à voir avec le code...

ArkSeth a écrit :

Enfin et surtout, les commentaires structurels (du genre /* Bon, là on démarre le code qui va faire ça */), c'est ce qu'il y a de plus important comme commentaires

Bof. Question de goût. J'trouve que du code bien aéré et bien structuré, ça enlève l'intérêt de la moitié des commentaires structurants que j'ai vu. Et puis ça fait un texte grandiloquent.

Enfin, j'sais pas, pour moi une fois sur deux, ça répète une info déjà présente ("la fonction main démarre le programme. Ah ben ça je l'aurais pas deviné...").
Et c'est encore des commentaires qui seront à maintenir.... L'intérêt est limité, surtout quand c'est mal utilisé.

ArkSeth a écrit :

et ça ne s'oppose absolument pas à une bonne compréhension du code par le code lui-même, donc c'est juste stupide de les interdire.

Après, j'suis pas contre, donc +1.

ArkSeth a écrit :

((1) Et encore, pas sûr, ç't'un coup à ce que les gens se mettent dans la tête qu'en mettre est un truc chiant que tu ne fais que par obligation, et que du coup, ils arrêtent dès qu'il n'y aura plus obligation.)

Ou arrêtent de les mettre à jour au fur et à mesure des évolutions du code.


Enfin bref, la plupart du temps maintenant quand je met un commentaire, ça finit à la poubelle et sur une clarification de mon code.
Par contre un commentaire global pour la classe ou une fonction compliquée, c'est justifié.

Kanor a écrit :

Je pense le mieux c'est de laisser chaque élève faire leur programme.
Et dans une seconde étape rajouter une fonctionnalité dans le code de ton voisin. tongue

+ 1, collective code ownership ! tongue

Dernière modification par The Uploader (Le 05/10/2012, à 14:40)


- 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