ALGORITHME DE NIVEAU POUR LA RÉSOLUTION DU MÉTHODE POTENTIEL MÉTRA (MPM)

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 15 déc. 2009 à 18:46
sagessekaye Messages postés 5 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 14 mai 2013 - 14 mai 2013 à 16:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50976-algorithme-de-niveau-pour-la-resolution-du-methode-potentiel-metra-mpm

sagessekaye Messages postés 5 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 14 mai 2013
14 mai 2013 à 16:17
En tout cas, chaque fois, quand je revois mes codes ci-dessus, je me moques de moi-même grave, mais depuis lors j'ai vraiment avancé, et cela grâce aux commentaires ci-dessus...

Ha le début!
pipo27 Messages postés 7 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 janvier 2011
21 déc. 2009 à 21:31
merci a tous mai je charche un programme en c++builder
pour les algorithmes génétiques appliquer au pb de voyageurs de commerces
merci........
lmame Messages postés 12 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 9 mai 2008
16 déc. 2009 à 10:51
Sur le code:
-> tu ne vérifies pas la valeur de nt et pourtant tu boucles dessus (nt+1) pour faire du dt[a]=0...
Et vu que tu as déclaré "int dt[20]" ça ne doit pas être triste quand tu donnes une valeur de nt à plus de 18...
Evidemment c'est la même chose ensuite quand tu fais les cin sur les "d[i][j]" et ça se retrouve dans l'utilisation de "r" plus tard.
Comme C++ est très gentil, il ne plantera pas, en revanche je te dis pas la tronche des data autour de tes variables en mémoire...

-> ensuite ton code n'est pas franchement un modèle niveau présentation alors même qu'il est simpliste. Pas de tabulation après les "if", des lignes sautées on se demande bien pourquoi (pour aérer le code?), des noms de variables qui ne ressemblent à rien (sonnerie, love ???), des fois on a:
if()
code

des fois
if()
{code;}

des fois:
for()
code

des fois

for
{
code
}

-> des fois des printf, des fois des cout..., -=1 parfois et -- ailleurs

-> et puis bien sûr les goto... Alors, je veux bien que dans un code extrêmement compliqué et pompé sur d'autres languages on puisse faire du goto (et encore...), mais là... il n'y a absolument aucune raison car tu peux très facilement les remplacer par une boucle while (ou autre) et par un "break;".


Bref si tu cites Dieu dans ton code on se demande en effet bien ce qu'il fait dans cette galère...
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
16 déc. 2009 à 10:38
Préférer quelque chose de plus propre, au choix:
* Utilisation de using std:: simple.
* Alias de namespace
* Regroupement de using
* Laisser le préfixe

Le but étant d'éviter de faire "sauter" brutalement une fonctionnalité très utile du C++: les namespaces.
D'une par, c'est con de créer un namespace pour le faire sauter après, ça c'est un avis personnel.
La véritable raison arrive surtout sur des codes de grandes tailles, des conflits peuvent apparaître parce que je ne connais pas beaucoup de gens qui savent tout ce qu'il y a dans std par coeur, créer une classe portant le nom de quelque chose d'existant peut arriver. Donc si vraiment on veut utiliser un using, ne le faire que sur des choses connues, dans une portée limitée.

Je ne parle même pas de ceux qui foutent un using namespace std; dans un .hh !

La question reviens très souvent. Dès que j'ai un peu de temps, j'écrirais un tutoriel là dessus.

http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
16 déc. 2009 à 10:29
Complètement d'accord avec ce que dit le capitaine, à part une chose: pourquoi c'est mal using namespace std; ?
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
15 déc. 2009 à 18:46
Code sale:
- Variable global
- Goto
- system
- Pas de découpage en fonction, voir même qui ne porte pas le nom de leur usage.
- Variables peu explicites
- using namespace std: => beurk. Préférer using std::cout et using std::endl;
- #include <cstdlib> => on pourrait aisément s'en passer.

> -GLOIRE SOIT RENDU A DIEU

La religion tout comme la politique n'as PAS sa place sur un site d'échange de code.
Rejoignez-nous