Page loading

Share your opinion
What do you think about gambaslinux.fr?
 
Interesting
It miss some informations
Excellent website
Results
WIDGETS GAMBAS
GAMBAS 3 SOFTWARES
TUTORIALS
Library
Money - How much

How much ?


howmuch.jpg


This small tools will decompose your price into cash billet and coins.
In programming ,it uses 2 main functions who are  MOD and DIV


Here code of 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

Creation date : 07/02/2022 @ 19:39
Last update : 07/02/2022 @ 19:39
Category : Money
Page read 1436 times


Print the article Print the article


react.gifReactions to this article


Reaction #2 

by valaquarus 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

Reaction #1 

by spheris 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

QUICK MENU
SEARCH




LANGUAGE
COMPONENTS
Other
LANGUAGE
Where, who?
VISITS

   visitors

   visitors online

ARCHIVES GAMBAS 1/2
^ Top ^