Vergelijken in VB6

Status
Niet open voor verdere reacties.

byte78

Nieuwe gebruiker
Lid geworden
18 okt 2007
Berichten
3
Ik heb een progje geschreven die nog wat problemen geeft met het vergelijken van getallen.

als ik een getal getal1 wil vergelijken met getal2 bv.

Code:
If getal1 <  getal2 Then X_AS = getal2 -  getal1 

If getal1 > getal2 Then X_AS = getal1 -  getal2

dan werkt het de ene keer wel een de andere keer niet. Of beter gezegt, het progje ziet getal1 (dat kleiner is) groter dan getal2 (dat groter is).

Hoe kan dat en hoe kan ik dat verhelpen ??
 
Code:
dim X_AS as double[COLOR="SeaGreen"] 'of integer, ofzo[/COLOR]
Code:
if val(getal1) < val(getal2) then
X_AS = val(getal2) - val(getal1)
else
X_AS = val(getal1) - val(getal2)
end if
 
Code:
dim X_AS as double 'of integer, ofzo

Waar staat die double en integer voor ??? wat betekent dat ??
 
visual basic standaard kennis: variabelen. check deze site erover

even kort: elke variabele die je gaat gebruiken in je prog moet je dimensioneren; het moet een "soort" variabele worden
voorbeeldjes:
String - een tekenreeks. Kan "hallo" zijn, maar ook "2142" en "*($djksahjsk892174", altijd tussen ""
integer - een heel getal; -32,768 tot 32,767
double - *alle* getallen (tussen **, maar je zult wss nooit de grens merken, niemadn gebruikt in zijn programma het getal "2,43 ^ +309")
omdat het hier om een getal gaat, zou ik "double" gebruiken. Wat je nu zegt is dit: "Program, reserveer even een stukje memory, bij de naam "X_AS", ik ga er later mee werken." en daarna kan je er van alles mee doen, zoals in het stukje script dat ik gaf.

Je hoeft de variabelen opzich niet te dimensioneren, maar ik zou het aanraden, het maakt je programma sneller van, en het is beter voor je computer.
 
Laatst bewerkt:
Je kunt ook gewoon een functie schrijven die doet wat jij wilt berekenen.

Code:
Private Function bereken(a As Variant, b As Variant) As Variant
  If a > b Then
    grootste = a - b
  Else
    grootste = b - a
  End If
End Function
'[...]
X_AS = bereken(getal1, getal2)
 
rewrite code COD_

Code:
Public Function Bereken(a As Variant, b As Variant) As Variant
  If a > b Then
    Bereken = a - b
  Elseif a < b then
    Bereken = b - a
  Else
    Bereken = 0
  End If
End Function
roep aan via:
Code:
X_AS = bereken(getal1, getal2)
[COLOR="SeaGreen"]'Of: als je X_AS als getal wilt: X_AS = Cdbl(bereken(getal1, getal2))[/COLOR]
 
rewrite code COD_

Code:
Public Function Bereken(a As Variant, b As Variant) As Variant
  If a > b Then
    Bereken = a - b
  Elseif a < b then
    Bereken = b - a
  Else
    Bereken = 0
  End If
End Function
roep aan via:
Code:
X_AS = bereken(getal1, getal2)
[COLOR="SeaGreen"]'Of: als je X_AS als getal wilt: X_AS = Cdbl(bereken(getal1, getal2))[/COLOR]

Herschrijven is helemaal niet nodig. 'bereken(1,1)' geeft als resultaat gewoon 0;
 
dat weet ik, maar je variabele klopte niet ;)
Code:
Private Function bereken(a As Variant, b As Variant) As Variant
  If a > b Then
    grootste = a - b
  Else
    grootste = b - a
  End If
End Function
'[...]
X_AS = bereken(getal1, getal2)
"grootste = bla - bla"
maar "grootste" werd verder niet aan "Bereken" doorgegeven :)
 
dat weet ik, maar je variabele klopte niet ;)

"grootste = bla - bla"
maar "grootste" werd verder niet aan "Bereken" doorgegeven :)

:roflol:

Dat is helemaal mijn fout. De functie heette eerste 'grootste'.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan