EQUATION DU SECOND DEGRÉ

antubis Messages postés 6 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 23 décembre 2006 - 23 sept. 2006 à 15:17
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 - 23 sept. 2006 à 19:35
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/39662-equation-du-second-degre

Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
23 sept. 2006 à 19:35
... sans compter les nombreux fichiers inutiles (.dcu et tous les ~.)

@+
Matt
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
23 sept. 2006 à 17:13
Et sans vouloir être cassant, on commence à connaitre, les trinômes du second degrées...... En faire un source... alors que y 'en a déja au moins 60 sur le thème....... Si encore la qualité allait croissant.....
antubis Messages postés 6 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 23 décembre 2006
23 sept. 2006 à 15:17
Ah, les équations du second degré, que de souvenirs lointains...

Cependant, quelques petites choses de votre code chiffonnent le programmeur du dimanche que je suis :


1) pourquoi 2 fenêtres distinctes ? Eventuellement faites un splash screen ou une AboutBox pour vous présenter (je sais c'est quand même jouissif sur un programme de son propre cru ;-])

2) sur la fenêtre principale, au lieu de laisser les 3 Edit "orphelins", pourquoi ne pas présenter de la façon suivante (qui n'est qu'un exemple):
[edit1] 'x² +' [edit2] 'x +' [edit3] '= 0'
[] : contrôles TEdit
'..': TLabels
C'est certes personnel mais çà me semble aussi plus intuitif

3) petit détail de gros chipoteur : l'application est petite mais donnez des noms plus explicites aux composants que vous utilisez sur la fiche...

4) dernier point sur l'interface : pourquoi masquer le bouton d'affichage du résultat à chaque réponse, relancer le programme pour une petite faute de saisie est fastidieux (qui à dit feignasse?)

5) concernant le code de résolution :
- vous vous encombrez de trop de variables (x1, x2, x1texte, x2texte, d) qui en fait découlent de a, b et c par calcul.
- concernant leur type : pourquoi déclarer toutes les variables numériques comme des flottants, alors que vous précisez que a, b et c sont des entiers?

Voici votre code "optimisé" (notion très relative...) que je vous propose, débarrassé de toutes les variables inutiles (c'est moins explicite si le code a un but didactique pour des élèves, mais ceci peut être compensé par des commentaires éventuellement) :

procedure TResol.Button2Click(Sender: TObject);
var
a, b, c : Integer;
begin
a := StrToInt(Edit1.Text) ;
b := StrToInt(Edit2.Text) ;
c := StrToInt(Edit3.Text) ;
if a <> 0 then
if sqr(b) - 4*a*c < 0 then label3.Caption := ' L''équation n''a pas de solution réelle .'
else
if sqr(b) - 4*a*c = 0 then
label3.Caption :' L''équation a une solution réelle double : x ' + FloatToStr(-b/2*a)
else
begin
label3.Caption :' L''équation a deux solutions réelles : x ' + FloatToStr((-b+sqrt(sqr(b) - 4*a*c))/(2*a)) ;
label6.Caption :' et x ' + FloatToStr((-b-sqrt(sqr(b) - 4*a*c))/(2*a)) ;
label4.Caption := '1' ;
label5.Caption := '2' ;
end
else
if b = 0 then
if c = 0 then label3.Caption := ' L''équation est du premier degré et tout réel est solution .'
else label3.Caption := ' L''équation est du premier degré et n''a aucune solution .'
else
label3.Caption :' L''équation est du premier degré et a une solution : x ' + FloatToStr(-c/b) +'.'
end;

Sinon joli petit code qui me rappelle quelques bons souvenir de ma jeunesse (à 24 ans la nostalgie commence...)
Rejoignez-nous