Archief - vb.net wiskundige bewerking verkrijgen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

fat-beavis

Legacy Member
hallo , de vb.net noob is hier weer

ik heb 2 arrayLISTS

de ene bevat allemaal integers
de andere bevat chars( +, -, * en /) deze array bevat enkel die tekens

arraylistintegers
(0) = 1239
(1) = 238
(2) = 11

arraylistbewerkingen
(0) = chr(43)
(1) = chr(42)


mijn bedoeling is nu

om een resultaat te krijgen van mijn 3 integers in mijn arraylist maar met de bewerkingen van mijn arraylistbewerkingen , bv
1239 + 238 * 11

dus eerste index van integers, bewerking van de eerste index van bewerkingen ( in die geval + ) tweede index van integers , tweede index van de bewerkingen ( vermenigvuldigen in dit geval )

ik dacht met een geneste lus te werken ?
waar ik eerst mijn 2 getallen verkrijg en dan mijn bewerking in de andere lus
maar mijn probleem zit hoe ik die bewerking moet omzetten naar de effectieve bewerking


for i as short = 0 to arraylistintegers.count

getal1 = arraylistintegers(i)
getal2 = arraylistintegers(i +1)

for j as short = 0 to arraybewerkingen.count

bewerking = arraylistbewerkingen(i)

next
next

lbloplossing : ... hoe maak ik de link voor de bewerking,
kan ik dan eventueel een private function oproepen bvb zoals


public function verkrijgoplossing(byval getal1 , byval getal2)

if bewerking = chr(43)
then return getal1 - getal2

end sub


mvg, anthony

NeverwinterX

Legacy Member
Die geneste lus gaat niet werken: op jouw manier geprogrammeerd ga je dan de eerste 2 getallen met de eerste bewerking uitvoeren, maar ook met de tweede bewerking, derde ... en dat dan ook voor de volgende twee getallen enzovoort. Dat zal niet werken, denk daar nog maar wat over na.

Een bewerking kan je inderdaad opsplitsen naar zo'n aparte functie (bewerking wel ook meegeven als argument). En ja je kan gewoon vergelijken of de bewerking gelijk is aan het '+' character, of '-' character enzovoorts. Dat is wel niet de meest nette oplossing, voor dit gebruikt men gewoonlijk een soort van expression trees, maar ik neem aan dat dit nog niet aan de orde is.

Zhergan

Legacy Member
Je kan altijd gebruik maken van de reference "Microsoft Script Control 1.0"

Voorbeeld:
Dim ScriptEngine As New MSScriptControl.ScriptControl
Dim Problem As String
Dim Answer As String
ScriptEngine.Language = "VBScript"
Problem = "(150 + 20) * 2 / (7 - 4)"
Answer = ScriptEngine.Eval(Problem)

fat-beavis

Legacy Member
Zo met zelfgeschreven code lukt da al met eender welke bewerking maar ik zit voorlopig nog gelimiteerd tot 2 integers en 1 bewerking , vanaf 2 of meer zit ik nog vast.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan