VBA: Uitleg gevraagd over 2 sommen!?

Status
Niet open voor verdere reacties.

kbraakman

Gebruiker
Lid geworden
6 nov 2016
Berichten
10
Vraag 1:

Sub Vraag1()
Dim i As Double, a As Double

i = 0
a = 0

Do while a <= 1
i = i + 1
a = i / 10
Loop

MsgBox i

End Sub

Het antwoordt op deze vraag moet 11 zijn, terwijl ik niet verder kom dan 10.. Iemand een uitleg?!

Vraag 2:

Function f(x, y , z)
For i = 1 To 3

x = z + 1
z = x + 1
y = 1
Next

f = x + y + z

End Function

Het antwoord op deze vraag moet zijn:


For i = 1:
x=4, z=5,y=1

For i = 2
x=6, z=7,y=1

For i = 3
x = 8, z = 9, y = 1

f = 8 + 9 + 1 = 18

Als iemand deze twee of een vraag kan uitleggen heel graag, bij voorbaat dank!
 
Die eerste komt toch echt 11 uit, en dat is ook logisch.
De tweede kan alleen op 18 uitkomen als x, y en z initiëel 3 zijn,
 
Die eerste komt toch echt 11 uit, en dat is ook logisch.
De tweede kan alleen op 18 uitkomen als x, y en z initiëel 3 zijn,


Bedankt voor je reactie maar zou je me enige toelichting kunnen geven hoe je dan op 11 komt
 
Wil je even gebruik maken van de codetags. Een voorbeeldbestand wil ook nog wel eens helpen.
 
Bedankt voor je reactie maar zou je me enige toelichting kunnen geven hoe je dan op 11 komt

Omdat i bij 0 begint in plaats van 1.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Dat zijn 11 getallen.
 
Je tweede vraag.
Code:
=f(0;1;3)

En dan maakt het niet uit wat de waarde van y is; y wordt immers 1 in de function.
 
Laatst bewerkt:
Je tweede vraag.
Code:
=f(0;1;3)

En dan maakt het niet uit wat de waarde van y is; y wordt immers 1 in de function.

Ik ben niet heel denderend in VBA, dus zou je aub het verder uit willen leggen. Haha sorry..
 
Graag reageren via de reageerknop, ipv de quoteknop indien jouw reactie een reactie is op de laatste reactie.
Schoolopdrachten mogen niet door ons worden uitgewerkt (enkel helpen).

De uitkomst moest toch 18 zijn?

Wat weet je niet van de function?
De function hoort in een standaard module.
Het gegeven antwoord in een cel.
 
Vraag 2 lijkt mij bij i =1 logisch;
x = z + 1 --> wordt 4
z = x + 1 --> wordt 5
y = 1

Echter hoezo wordt bij i =2 en i=3 x en z met 2 hoger? Dank je
 
Laatst bewerkt:
Toevallig nieuw en geïnteresseerd? dan uiteraard welkom geheten.
Het wil nogal eens gebeuren dat iemand zich opnieuw aanmeld onder een nieuw pseudoniem om toch de oplossing aangereikt te krijgen.

Uiteraard kunnen we niet teveel uit de doeken doen daar het een schoolopdracht is, maar helpen kan wel.
Bij de 2 keer dat de lus loopt z een nieuwe waarde heeft gekregen uit de eerste keer.
Zo krijgt x dus de waarde weer van z + 1.

Bij de 3 in de lus zal x weer de waarde van z krijgen en z weer de waarde van x (snap je).
 
Ha HSV,

Bedankt, maar nee, ik ben toevallig wel hetzelfde aan het leren en met googlen kwam ik daarom snel op dit forum uit :)

Voor jullie informatie, het gaat om een tentamen en geen opdracht; wat ik niet begrijp (hopelijk nu wel) is hoe de loop voor i werkt op het moment dat je hiervoor 2 en 3 invult.
Als ik je uitleg goed begrijp gebeurd er het volgende;

i=2 dus de waarden bij i=1 (x=4, y=1, z=5) worden nu gebruikt;
Om eerst x op te lossen: z= 4 + 1 = 5 --> X = 5+1 = 6 --> z = 6+1 = 7?

Idem voor i=3
Om eerst x op te lossen:z= 6 + 1 --> x = 7 + 1 = 8 --> z = 8 + 1 = 9?
y = gegeven dus altijd 1

Dank je!
 
Laatst bewerkt:
Mooi dat je er uit bent.

Om zoiets beter leren te begrijpen zet je een onderbrekingspunt met sneltoets F9 op 'Function f(x, y , z)' in de Vb-editor.
De coderegel wordt nu donkerrood.
Sluit de VBE.
Ga op de cel met de function-formule staan en druk F2 en druk Enter om het bereken opnieuw uit te voeren.
Nu opent de Vb_editor zich weer.
Druk F8 om door de coderegels te lopen en met de muis de waarde te vangen van x en z.

 
Dank je Harry, ga dat uitproberen en verder oefenen in VBA met andere waardes/formules.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan