Page en cours de chargement

Donnez votre avis..
Que pensez-vous de gambaslinux.fr?
 
Interessant
Il manque des rubriques
excellent site
Résultats
INTERFACE GAMBAS
LOGICIELS GAMBAS 3
TUTORIELS
=Bibliothèque
Finance - Combien ca coute

How much combien ça coute?


howmuch.jpg


Ce petit utilitaire est bien pratique pour décomposer une somme que vous saisirez dans la boite texte, en une combinaison de billets et de pièces pour arriver à la somme exacte.
Il utilise les deux commandes principales qui sont MOD et DIV


Voici le code de l'application :

 
Public Sub bok_Click()
Dim lasomme As Integer
Dim lecombien As Integer
Dim lereste As Integer
Dim lesdecimales As Float

lasomme = vsomme.Value
lecombien = lasomme Div 200
l1.Text = lecombien
lereste = lasomme Mod 200
lasomme = lereste
lesdecimales = vsomme.Value - (lecombien * 200)


lecombien = lasomme Div 100
l2.Text = lecombien
lereste = lasomme Mod 100
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 100)

lecombien = lasomme Div 50
l3.Text = lecombien
lereste = lasomme Mod 50
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 50)

lecombien = lasomme Div 20
l4.Text = lecombien
lereste = lasomme Mod 20
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 20)

lecombien = lasomme Div 10
l5.Text = lecombien
lereste = lasomme Mod 10
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 10)

lecombien = lasomme Div 5
l6.Text = lecombien
lereste = lasomme Mod 5
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 5)


lecombien = lasomme Div 2
l7.Text = lecombien
lereste = lasomme Mod 2
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 2)


lecombien = lasomme Div 1
l8.Text = lecombien
lereste = lasomme Mod 1
lasomme = lereste
lesdecimales = lesdecimales - lecombien

lasomme = lesdecimales * 100

lecombien = lasomme Div 50
l9.Text = lecombien
lereste = lasomme Mod 50
lasomme = lereste

lecombien = lasomme Div 20
l10.Text = lecombien
lereste = lasomme Mod 20
lasomme = lereste

lecombien = lasomme Div 10
l11.Text = lecombien
lereste = lasomme Mod 10
lasomme = lereste

lecombien = lasomme Div 5
l12.Text = lecombien
lereste = lasomme Mod 5
lasomme = lereste

lecombien = lasomme Div 2
l13.Text = lecombien
lereste = lasomme Mod 2
lasomme = lereste

lecombien = lasomme Div 1
l14.Text = lecombien
lereste = lasomme Mod 1
lasomme = lereste
End

Date de création : 07/02/2022 @ 19:39
Dernière modification : 07/02/2022 @ 19:39
Catégorie : Finance
Page lue 511 fois


Imprimer l'article Imprimer l'article


react.gifRéactions à cet article


Réaction n°2 

par valaquarus le 12/06/2022 @ 17:12

 Bonjour Spheris,j'ai relevé ton défi et voici le code :
Public Sub Calculs()    '<----------------------------------------------------- valable uniquement pour des sommes <= 20 000 000,00€

    Dim xDiv As Integer[] = [200, 100, 50, 20, 10, 5, 2, 1]
    Dim i As Integer
    Dim iText As New Integer[]
    Dim lasomme As Integer
    Dim lecombien As Integer
    Dim lereste As Integer
    Dim lesdecimales As Float

    For i = 0 To 13 '<----------------------------------------------------------- on s'assure que le tableau est vide
        iText.Clear
    Next

    lasomme = CInt(vsomme.Value)  '<--------------------------------------------- partie entière de la somme affichée

    lecombien = lasomme \ xDiv[0] '<------------------------------------------- la partie entière de billets de 200€
    lereste = lasomme Mod xDiv[0] '<--------------------------------------------- calcul du premier reste
    lasomme = lereste   '<------------------------------------------------------- bascule de variables
    lesdecimales = vsomme.Value - (lecombien * xDiv[0]) '<----------------------- uniquement les décimales
    iText.Add(lecombien, 0) '<--------------------------------------------------- on commence à remplir le tableau des valeurs à afficher

    For i = 1 To 7  '<----------------------------------------------------------- de 100€ à 1€
        lecombien = lasomme \ xDiv[i]
        lereste = lasomme Mod xDiv[i]
        lasomme = lereste '<------------------------------------------------------- bascule de variables
        lesdecimales -= (lecombien * xDiv[i])
        iText.Add(lecombien, i)
    Next

    ' lasomme = lesdecimales * xDiv[1]  '<----------------------------------------- génère un bug sur certaines valeurs à cause de l'arrondi

    lasomme = CInt(vsomme.Value * xDiv[1])  '<----------------------------------- on repart avec un nombre entier comprenant les décimales
    lecombien = lasomme \ xDiv[1]
    lereste = lasomme Mod xDiv[1]
    lasomme = lereste   '<------------------------------------------------------- bascule de variables
    lesdecimales = vsomme.Value - (lecombien * xDiv[1]) '<----------------------- on ne garde que les décimales pour les calculs suivants

    For i = 2 To 7  '<----------------------------------------------------------- de 50 cts à 1 cts
        lecombien = lasomme \ xDiv[i]
        lereste = lasomme Mod xDiv[i]
        lasomme = lereste '<------------------------------------------------------- bascule de variables
        iText.Add(lecombien, i + 6)
    Next

    '------ affichage des valeurs ------
    l1.Text = iText[0]
    l2.Text = iText[1]
    l3.Text = iText[2]
    l4.Text = iText[3]
    l5.Text = iText[4]
    l6.Text = iText[5]
    l7.Text = iText[6]
    l8.Text = iText[7]
    l9.Text = iText[8]
    l10.Text = iText[9]
    l11.Text = iText[10]
    l12.Text = iText[11]
    l13.Text = iText[12]
    l14.Text = iText[13]

End

Public Sub Form_KeyPress()

    If Key.code = Key.Enter Then Calculs()
    If Key.code = Key.Esc Then Me.Close

End

Public Sub vsomme_Change()

    Calculs()

    If vsomme.Value = 0 Or vsomme.value > 20000000.00 Then
        l1.Text = ""
      &nb

Réaction n°1 

par spheris le 07/02/2022 @ 19:45

 En me relisant, je viens de voir que nous pourrions intégrer la même fonction qui se répête dans une boucle pour simplifier grandement le code.Je vous laisse le soin de le faire, si vous le pouvez.dd
When i have read again this billet, i see it's possible to simplify this code and put inside loop all repeated functions.Maybe you could help me?dd

ACCES RAPIDE
RECHERCHE




LES INSTRUCTIONS
Divers
INSTRUCTIONS
Où ça, qui ça?
VISITES

   visiteurs

   visiteurs en ligne

ARCHIVES GAMBAS 1/2
^ Haut ^