Bonjour à tous,
j'ai développé une classe Polynôme.
J'aimerais avoir vos avis sur cette classe, ce que vous pensez du style de programmation, des tests sur les références null (car j'ai un peu de mal comment les utiliser efficacement, des exceptions, des asserts etc.
Pourriez-vous me donner de précieux de conseils que je puisse améliorer mon code ?
Merci.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 using System; using System.Collections.Generic; using System.Text; namespace MyLibrary.Mathematic { class Polynome { /// <summary> /// Coefficients du polynôme /// </summary> private double[] m_Coefficient = null; public double[] Coefficient { get { return m_Coefficient; } set { if (m_Coefficient != value) m_Coefficient = value; } } /// <summary> /// Constructeur /// </summary> /// <param name="ordre"></param> public Polynome(uint ordre) { System.Diagnostics.Debug.Assert((ordre > 0 ), "L'ordre" + " doit être supérieur à 0"); if (ordre >0) { double[] coeff = new double[ordre+1]; m_Coefficient = coeff; } else throw new ArgumentException("L'ordre doit être supérieur à 0"); } /// <summary> /// Constructeur /// </summary> /// <param name="coeff"></param> public Polynome(double[] coeff) { System.Diagnostics.Debug.Assert((coeff !=null), "La référence" + " du coefficient est nulle"); if (coeff != null) m_Coefficient = coeff; else throw new ArgumentException("Le paramètre n'est pas valide"); } /// <summary> /// Calcul d'une valeur à partir du polynôme /// </summary> /// <param name="value"></param> /// <returns></returns> public double CalculValueFromPoly(double valueOfX) { double varTemp = 0; for (int i = 0; i < m_Coefficient.Length; i++) { varTemp += m_Coefficient[i]*System.Math.Pow(valueOfX,i); } return varTemp; } /// <summary> /// Retourne la formule /// </summary> /// <returns></returns> public override String ToString() { return ConstructFormule(m_Coefficient); ; } /// <summary> /// Construction de la formule /// </summary> /// <returns>Formule</returns> private string ConstructFormule(double[] coeff) { System.Diagnostics.Debug.Assert(coeff != null, "Les" + " coefficients sont nuls"); if (coeff != null) { string formule = ""; for (int i = 0; i < coeff.Length; i++) { if (i != 0) formule = " + " + formule; formule = coeff[i].ToString() + "X^" + i.ToString() + formule; } return formule; } else return null; } } }
Partager