Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme calculatrice [ Windows / Autre ] (Detonio)

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é 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 Soucis avec ma base de donnée !! [ par Yseno ] Bonjour à tous,Voilà mon petit soucis, j'utilise une base de donnée que je dois mettre à jour par le biais d'un formulaire en VB.Je créai mon premier Petit probleme d'authentification et d'uploade. [ par RMOINAS ] Et oui encore moi mais se n'est plus pour le prob de connection a un ftp avec winsock et en passant par un proxy:Private Sub Command1_Click()Shape1.Ba remplir un listbox automatiqument à partir d1 base [ par zx10 ] Bonjour,Quelqu'un peut m'expliquer pourquoi çà fonctionne pasau chargement de la feuille, je suis obligé de passer par un boutton de commandece qui ma Aller a la ligne [ par vinsus51 ] Private Sub Command1_Click()Text1.Text = Text1.Text & "salut"End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text & "aurevoir"End Sub1 textebox Aller a la ligne [ par vinsus51 ] Private Sub Command1_Click()Text1.Text = Text1.Text & "salut"End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text & "aurevoir"End SubJe souhaite démêleer l'utilisation de plusieur if puis de else [ par cricri_b34 ] bon J'ai créer un programme avec uniquement un textbox nommé: text1et un bouton nommé command1j'aimerais que mon programme réagisse a toute sorte de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.