[premier code] resoudre equation du second degré

Soyez le premier à donner votre avis sur cette source.

Vue 5 267 fois - Téléchargée 272 fois

Description

Bon bah voici mon premier code, il résou les équations du second degré, je sais que c'est le Xeme code de ce genre, mais svp regardez le code source pour me donner un avis.

Il est pas super optimisé, par exemple il ne simplifie pas à fond les 2 racines (elles s'affichent sous la forme utilisable en cours de maths, et non pas en décimal tronqué au 28eme chiffre apres la virgule).

Voila à vos commentaires ^^

EDIT: Le code dispo est une MAJ améliorée est definitive

Source / Exemple :


Private Sub Command1_Click()
Dim a, b, c, d, d2, r, r2 As Double
If Not IsNumeric(Text1.Text) Then
GoTo erreur
End If
If Not IsNumeric(Text2.Text) Then
GoTo erreur
End If
If Not IsNumeric(Text2.Text) Then
GoTo erreur
End If
a = Text1.Text
b = Text2.Text
c = Text3.Text
If Text1.Text = "" Then
a = 1
End If
If Text2.Text = "" Then
b = 1
End If
If Text3.Text = "" Then
c = 0
End If
d = (b * b) - 4 * a * c
Label4.Caption = "Discriminant  =  " & d
Select Case d
Case Is = 0
  'd=0
  d2 = -(-b / 2 * a)
  If d2 = Int(d2) Then
  Label5.Caption = "X = " & -b / 2 * a
  Else
  Label5.Caption = "X = -" & b & " / " & (2 * a)
  End If
Case Is < 0
  'd inferieur a 0
  Label5.Caption = "Pas de solutions"
Case Is > 0
  'd superieur a 0
  Dim racine As Double
  racine = Sqr(d)
  'si la racine du discriminant est entière
  Select Case racine
  Case Is <> Int(racine)
    Label5.Caption = "X1 = " & (-b) & "-V(" & d & ") / " & (2 * a)
    Label6.Caption = "X2 = " & (-b) & "+V(" & d & ") / " & (2 * a)
  Case Is = Int(racine)
    r = (-b - racine) / (2 * a)
    r2 = (-b + racine) / (2 * a)
    If r = Int(r) Then
    Label5.Caption = "X1 = " & r
    Else
    Label5.Caption = "X1 = " & (-b - racine) & " / " & (2 * a)
    End If
    If r2 = Int(r2) Then
    Label6.Caption = "X2 = " & r2
    Else
    Label6.Caption = "X2 = " & (-b + racine) & " / " & (2 * a)
    End If
End Select
End Select
erreur:
End Sub

Conclusion :


Soft MAJ le 26/03/2005

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
pour racine carrée tu peux mettre ^(1/2) c'est plus simple ;)
Messages postés
251
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
1
Pour ce qui est de l'aspect de ton programme, tu aurais pu soigner un peu plus la présentation : supprimer le bouton d'agrandissement de la feuille (Form.MaxButton), voire remplacer "Go" par "Calculer". On parle français tout de même ! Sinon, pour le calcul en lui-même, je n'ai pas grand chose à dire, parce qu'il est bien fait... sauf peut-être que tu aurais pu traiter le cas des racines complexes (ce qui ne demande pas beaucoup de programmation supplémentaire). Cela dit, pour un début, c'est un bon début.

8/10

Cacophrène
Messages postés
9
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
2 avril 2005

soft MAJ, mais:

"-Si on ne mets rien ds les champs, l'équation considérée est y=x²+x"

Cela est faux, si on ne mets rien, le soft ne fait rien, je m'en suis rendu compte apres
Messages postés
9
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
2 avril 2005

C'est normal, il faut mettre 1 pour "x²"
J'avais pas pensé a cette possibilité, jve l'améliorer.

Sinon qq sait comment afficher le symbole "racine carrée" sous VB?

merci
Messages postés
4
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 avril 2005

Exemple: x²+3x+5
je tape go
Erreur d'éxecution '13'
Type incompatible
:S
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_skript)