Télécharger le zip
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...)
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.....
... sans compter les nombreux fichiers inutiles (.dcu et tous les ~.) @+ Matt
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 872 737 membres 149 nouveaux aujourd'hui 16 150 membres club