Archief - Visual Basic

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.

yeev

Legacy Member
HI,

heb een lastige problem kan nl. deze oef niet opgelost krijgen.

oef: Schrijf een programma dat een geheel getaal inleest en alle veelvouden van de getal kleiner dan 200 afdrukt. ( het moet in consoleApplication geschreven worden).

Hier is mijn versie... ( dat niet werkt) please help:doh:


Sub Main()
Dim waarde, waarde1, veelvoud As Integer
Dim teller As Integer = 0

Dim tabel() As Integer


Do
Console.WriteLine("geef waarde in:")
waarde = Console.ReadLine
ReDim tabel(waarde)

While teller < waarde + 1
teller = teller + 1


If waarde = waarde Mod teller Then
tabel(veelvoud) = teller

End If

End While

Console.WriteLine("Veelvoud van {0} is: ", waarde)

For veelvoud = 1 To waarde
Console.Write("{0},", tabel(veelvoud))

Next
Loop
End Sub

yeev

Legacy Member
Juist, had mij nooit opgevallen, ga daar nog is vragen :)

thx

killgore

Legacy Member
komt er op neer, als ge getal n hebt (algoritme in C++-like pseudocode), N = ingelezen getal.

Code:
i=0 --> teller
p=0 --> veelvouden opslaan
while ( p < 200)
{
    print p;
    p=N*++i; --> postconditie
}

en dit antwoord zou je ook van mij krijgen in progging trouwens :p.

edit: wat aan te passen als je het veelvoud nul niet wil tonen & als je taal geen ++ operator ondersteunt :p. Het het omwille van die laatste reden in een while gestopt :).

zeer korte versie is:
Code:
for(i=0,p=0; p <200; p=N*++i)
{
    print p;
}

yeev

Legacy Member
hmm daar begrijp ik idd niet veel van. Denk jij dat jij in mijn vb. mijn fouten zou vinden en verbeteren ? :)

thx

killgore

Legacy Member
buh, laat maar, eenvoudiger:
gebruik deze code (weer pseudo):

Code:
for(p=0;p<200;p=p+N)
{
    print p;
}

N is uw ingelezen waarde, p is een variabele die het veelvoud bijhoudt.

Wat doen we hier:
eerst maken we p aan, ik zet dit op 0, wil je beginnen bij N, dan zet je dit op N zelf natuurlijk :).
Daarna gaan we in de lus, onder voorwaarde dat p kleiner is dan 200
we printen p af
op het einde van de lus (dit is hoe for werkt) verhogen we p met de waarde N, wat eigenlijk neerkomt dus op het volgende veelvoud te nemen :).
daarna gaan we dus weer in de lus, onder voorwaarde dat p kleiner is dan 200

enzovoort enzovoort :).

snap je dit beter?

edit: ik haat vb en het is jaren geleden dat ik er in gecode heb, dus kan niet echt helpen :).

yeev

Legacy Member
denk ji jdat deze correct zou zijn ?

Code:
    Sub Main()
        Dim waarde, veelvoud As Integer
        Dim teller As Integer

      

        Do
            Console.WriteLine("geef waarde in:")
            waarde = Console.ReadLine

            For teller = 1 To 10
                veelvoud = waarde * teller
            Next teller

            If veelvoud < 200 Then
                Console.WriteLine("Veelvoud van {0} is {1}", waarde, veelvoud)
            Else
                Console.WriteLine("geen veelvoud")


            End If
            Console.ReadLine()

        Loop
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