Petite analyse de code C

Aller en bas

Petite analyse de code C

Message par Dlzlogic le Sam 14 Juil - 15:29

Bonjour,
http://www.les-mathematiques.net/phorum/read.php?15,1677588
Ce sujet est intéressant et manifestement il n'a pas abouti.
Voilà ce qu'on pourrait dire, mais naturellement ce n'est pas limitatif.
1- Lorsqu'on écrit un programme, il est indispensable de dire ce qu'il fait. C'est dans le texte de la question posée, mais il est très largement préférable de le mettre en commentaire en tête du code source.
2- D'une façon générale, et particulièrement pour un débutant, il est très vivement conseillé de rédiger en français l'algorithme, c'est à dire la façon dont on va procéder pour résoudre le problème. Bien-sûr le lecteur du code peut le faire lui-même, autant lui demander tout simplement de faire tout le boulot. Comme dans le cas présent il ne s'agit pas d'une opération "classique", on en est au stade de la devinette
3- autre point général : la présentation. Personnellement je mets bien en évidence les accolades ouvrantes et fermantes, parce qu'elle délimitent un bloc. C'est à dire, que je ne mets jamais l'accolade ouvrante au bout de la ligne qui crée le bloc, avec les instructions du type for, if, do, while, switch etc. et je prends bien soin d'aligner sur une même colonne (même rang sur la ligne) les accolades ouvrantes et fermante. Si ces blocs ne prennent qu'une seule instruction, par exemple un print, alors les accolades ne sont pas nécessaire, soit je mets cette instruction au bout de la ligne du code qui l'appelle, soit sur la ligne suivante, avec un décalage de 2 cases. Dans le cas de 2 boucles imbriquées, je n'omets jamais les accolades.
4- concernant les tableaux. D'abord, le terme "matrice" est employé, alors qu'il s'agit de "tableaux". Le C impose de réserver la place mémoire nécessaire à un tableau. Ceci se fait dans les déclarations. Mais, le C ne vérifie jamais si une lecture ou une écriture de variable dans la mémoire a été correctement réservée. Par exemple, si on déclare un tableau "int Tab[10];" le compilateur et le link vont réserver 10 espaces de dimension "int" que l'on pourra utiliser en toute tranquillité, mais si on cherche à utiliser la 12è case, rien ne se passera, sauf une faute probable. Il est donc indispensable de contrôler la validité de l'indice de lecture ou d'écriture d'un tableau.
5- comparaison de valeurs. Là, je suis face à un paradoxe : lors des discussions dans le cadre des probabilités, on m'oppose l'argument, que je résume de façon simpliste, "la probabilité que A soit égal à B est nulle, puisque A et B appartiennent à des ensembles infinis", par contre, cela ne semble gêner personne de comparer deux flottant avec l'opérateur '=='.

Voilà ce que je pouvais dire sur ce code.
avatar
Dlzlogic

Messages : 1711
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Petite analyse de code C

Message par Dlzlogic le Sam 14 Juil - 16:54

Bon, j'ai vu qu'il y avait des informations complémentaires, c'est à dire l'énoncé.
D'abord, cet énoncé emploie des termes rarement utilisé dans ce contexte. J'avoue que je n'arrive pas à discerner le but de cet exercice, en effet on peut lire :
Ainsi, nous pouvons donner une description par evenement de la matrice P, en
utilisant les sept evenements donnes par l'algorithme.
0
BBBB@
pe5 + pe6 + pe7 pe4 pe3 pe1 + pe2 0
pe6 + pe7 pe5 + pe4 pe3 pe2 pe1
pe6 + pe7 pe5 pe4 pe2 + pe3 pe1
pe7 0 pe6 pe2 + pe3 + pe5 + pe4 pe1
0 0 pe6 + pe7 pe5 pe1 + pe2 + pe3 + pe4
1
CCCCA
Nous donnons maintenant la preuve que la fonction de transition  donne par
l'algorithme 7 est monotone par evenement.
2
Autrement dit, je ne sais pas si c'est un exercice d'algorithmique destiné à montrer qu'une certaine opération est monotone, il s'agirait alors du chapitre "théorie de la programmation", et le code lui-même n'étant pas le but de l'exercice.

Donc, en gros, mon premier message ne correspond pas à une bonne réponse au demandeur. Autrement dit, je n'ai rien compris et apparemment les autres membres qui ont répondu, non plus.
avatar
Dlzlogic

Messages : 1711
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Petite analyse de code C

Message par Dlzlogic le Dim 15 Juil - 10:23

Bonjour,
Je dois revoir ma copie.
Je viens de découvrir ce qu'est une matrice stochastique, c'est en relation presque directe avec les chaines de Markov, notion que je connais très peu.
Par contre, le calcul de ce type d'objet peut poser des problèmes en informatique puisque la somme de différentes valeurs flottant ne peut pas, en général, être égal à 1.000
avatar
Dlzlogic

Messages : 1711
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Petite analyse de code C

Message par Dlzlogic le Dim 15 Juil - 13:24

C'est un exercice tout à fait intéressant, d'abord de comprendre ce qui est nommé "algorithme", et ensuite de comprendre où on veut en venir.
Par ailleurs le terme "probabilité" devient, à mon avis, un mot passe-partout :
"Dans la suite nous indiquons les probabilités des évènements obtenus à chaque étape".
Evidemment, si on considère que la fraction de 1, c'est à dire un nombre compris entre 0 et 1 dont le total de la ligne fait obligatoirement 1, est une probabilité, alors c'est normal. Dans le langage habituel, on appelle généralement cela une proportion.
avatar
Dlzlogic

Messages : 1711
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Petite analyse de code C

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum