begin process at 2012 02 14 07:18:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

Autre

 > 

Probleme calculatrice


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme calculatrice

lundi 9 octobre 2006 à 16:59:46 | Probleme calculatrice

Detonio

Bonjour tout le monde.
Jeune acquisiteur de VB6 je me suis mmis dans la tête de réussir une calculatrice personnellle.

Mais voila, rien ne se passe comme je le veut. C'est pour ca que je demande de l'aide ici. Voici mon code (ci dessous) et le probleme c'est qu'il ne prend pas compte le calcul des nombres décimaux ! Exemple 1-0.3333=1 ... c'est un petit probleme comme meme pour une calculatrice :D.

Merci de votre aide !

Code :
Dim nb As Single 'valeur du premier nombre saisie
Dim operation As Byte ' 0 = addition; 1=soustraction; 2=multiplication; 3=division
Dim r As String
Dim l As Integer
Dim i As Integer, fact As Integer, n As Single ' Variables pour calculer la factorielle

Private Sub Form_load()

    nb = 0
    Text1.Text = ""
'initialisation des variables
End Sub

Private Sub Command_plus_Click()

    If Text1.Text <> "" Then
        operation = 0 '0 = addition
        nb = Val(Text1.Text)
        Text1.Text = ""
    Else
        MsgBox "Saisissez un chiffre"
    End If

End Sub

Private Sub Command_moins_Click()

    If Text1.Text <> "" Then
        operation = 1 '1=soustraction
        nb = Val(Text1.Text)
        Text1.Text = ""
    Else
        MsgBox "Saisissez un chiffre"
    End If
   
End Sub

Private Sub Command_fois_Click()

    If Text1.Text <> "" Then
        operation = 2 '2=multiplication
        nb = Val(Text1.Text)
        Text1.Text = ""
    Else
        MsgBox "Saisissez un chiffre"
    End If
   
End Sub

Private Sub Command_div_Click()

    If Text1.Text <> "" Then
        operation = 3 '3=division
        nb = Val(Text1.Text)
        Text1.Text = ""
    Else
        MsgBox "Saisissez un chiffre"
    End If
   
End Sub

Private Sub Command_egal_Click()

    If operation = 0 Then 'addition
        Text1.Text = Val(nb) + Val(Text1.Text)
    End If
   
   
    If (operation = 1) Then 'soustraction
        Text1.Text = Val(nb) - Val(Text1.Text)
    End If
   
    If operation = 2 Then 'multiplication
        Text1.Text = Val(nb) * Val(Text1.Text)
    End If
   
    If operation = 3 Then 'division
        Text1.Text = Val(nb) / Val(Text1.Text)
    End If

End Sub

Private Sub Command_carre_Click()

    If Text1.Text <> "" Then
        Text1.Text = Val(Text1.Text) * Val(Text1.Text)
    Else
        MsgBox "Saisissez un chiffre"
    End If
       
End Sub

Private Sub Command_rac_Click()

    If Text1.Text <> "" Then
        Text1.Text = Val(Sqr(Text1.Text)) 'La fonction SQR est la fonction racine carré en language VB6
    Else
        MsgBox "Saisissez un chiffre"
    End If
   
End Sub

Private Sub Command_inver_Click()

If Text1.Text <> "" Then
    Text1.Text = 1 / Text1.Text
Else
    MsgBox "Saisissez un chiffre"
End If

End Sub

Private Sub Command_fact_Click()

If Text1.Text <> "" Then

fact = 1
n = Val(Text1.Text)
    For i = n To 1 Step -1
        fact = fact * i
    Next i
        Text1.Text = fact
Else
    MsgBox "Saisissez un chiffre"

End If

End Sub

Private Sub Command_C_Click()

    Text1.Text = Delete

End Sub

Private Sub Command_retour_Click()

If Text1.Text <> "" Then
    l = Len(Text1.Text)
    r = Left(Text1.Text, l - 1)
    Text1.Text = r
   
End If

End Sub

lundi 9 octobre 2006 à 17:13:41 | Re : Probleme calculatrice

jrivet

Membre Club
Salut,

Je viens de teste ton code et chez moi lorsque je fais

- 1 dans text1
- appuie sur -
- 0.3333 dans text1
- appuie sur egal

le résultat dasn text1 est bien 0.6667

Je en vois pas où est ton problème (je ne sais pas non si ca t'aide de savoir que cela "fonctionn" chez moi)

@+,  1/1 Ju£i€n1/1

lundi 9 octobre 2006 à 17:17:33 | Re : Probleme calculatrice

Detonio

ouai mais le probleme c'est que si tu refais - appuie sur - "-" puis -appuie- sur "6" alors il te mettra -6 ... Voila le probleme ! Et ca m'enerve un peu
mardi 10 octobre 2006 à 09:53:28 | Re : Probleme calculatrice

Vb Lover

je n'ai pas testé, mais c'est certainement dans la conversion de type de données... ce que je ferais donc:
quand tu veux écrire du texte à partir de nombre tu fais (par exemple) : Text1.Text = cstr(ton_nombre)
ensuite, pour avoir un nombre à partir de ta texte box, tu fais: nombre = cdbl(Text1.Text) pl
en résumé, tu fais attention à tes types de variables, et tu utilises le moins possible Val(ta_variable).
et peut-être encore un petit conseil: pour ce qui concerne la gestion des opérations, je ferais qqch du style:

Private const OP_ADDITION=0
Private const OP_SOUSTRATION=1
'...

Private Sub Command_egal_Click()
   dim resultat as Double, nb2 as Double

   nb2 = CDbl(Text1.Text)

   Select Case operation
      Case OP_ADDITION:           resultat = nb + nb2
     
Case OP_SOUSTRACTION: resultat = nb - nb2
      '...
   End If

    Text1.Text = CStr(resultat)

End Sub

C'est un peu plus clair et ça prend moins de lignes de code, non?
Bonne prog

mardi 10 octobre 2006 à 09:56:10 | Re : Probleme calculatrice

Vb Lover

désolé, je viens de voir une petite faute dans mon code, c'est bien un "end select" et pas un "end if"... et s'il y a d'autres petites erreurs, c'est que je fais du php depuis quelques semaines, et que je n'ai pas VB sous la main pour vérifier mon code.
je vois aussi que tu utilises des "single" et pas des "double", donc utilises peut-être la commande "csng" (ou qqch comme ça) à la place de "cdbl"

mardi 10 octobre 2006 à 19:26:40 | Re : Probleme calculatrice

Detonio

Le probleme c'est que je ne connait pas encore la fonction Case ... il faut encore attendre quelque semaine !
Donc en attendant je vais étudiés cela et attendre d'autre proposition me permettant de garder les fonctions que je connais déja.

Mais encore merci de m'aider je t'en suis reconnaissant.

PS : autre probleme 2+2+2 = 4


Cette discussion est classée dans : text, end, private, text1, val


Répondre à ce message

Sujets en rapport avec ce message

Winsoc probleme de connexion [ par ronando ] J'essay de fair un chatvoici le message : "etat de connexion ou de protocole erroné"voici le script de mon bouton "connexion" qui se trouve sur 1 feui "album photos" [ par stenie ] je voulais réaliser un album photos en VB et l'enregistrer sous forme d'éxécutable afin de pouvoir l'envoyer par email aux gens qui m'entourent. Pb : "album photos" [ par stenie ] je voulais réaliser un album photos en VB et l'enregistrer sous forme d'éxécutable afin de pouvoir l'envoyer par email aux gens qui m'entourent. Pb : Calculette-problème de chiffres [ par volobar ] Bonjour, je suis débutant et je suis en train de faire mon premier projet : une calculatrice !Alors, voici mon problème :Lorsque j'appuye sur un chiff erreur du à l'effacement du contenu des textbox [ par batman511 ] Bonjour; Mon probleme survient au moment ou j'utilise le "button commande 4" aux quels je luis demande d'efacer le contenus de tous mes textbox afin Comment arrrêter un thread Bgw1 (backgroundworker1) et démarer un autre bgw2 , ...pcq les deux en même temps ça ne veut pas marcher...voir explication avec code... [ par jasonray16 ] Bonjour, Voila mnt depuis pas mal de temps je fais mes essais avec le backgroundworker , pour réaliser la communication avec le port série vers deux p Comment séparer l'execution de deux Backgroudworker ? [ par jasonray16 ] Bonjour, Voila mnt depuis pas mal de temps je fais mes essais avec le backgroundworker , pour réaliser la communication avec le port série vers deux p comment régler ce code [ par zidane22 ] Bonjour à tous, je voudrais calculer la recette journalière et globale. Pour cela j'ai mis trois textboxes. Text1 pour fair entrer les données. (valeu drag and drop de plusieurs labels [ par bahharkarim ] bonjour a tout le monde j'ai créer une application ou il y a 6 labels et j'utilise la fonction drag and drop le problème c'est que lors le contenu d Vb6 probléme de calcul [ par omartt ] Bonjour Veuillez s'il vous plait m'aider à modifier ces codes et je vous serais trés reconnaissant. [code=vb]Private Sub Text1_KeyPress(KeyAscii As In


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,775 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales