Archief - [PROG] Visual Basic HELP !!!!

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


Sub Main()
Dim waarde, 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

Flipkikker

Legacy Member
Ik zie nergens 200 staan in je code :s

Is al ff geleden datk VB geprogrammeerd heb
maar als ik je code lees zie ik:

Definieer variabelen

Doe: waarde vragen, inlezen en in de tabel steken zo lang dat de teller kleiner is dan de waarde + 1
Daarna de teller 1tje verhogen
....

En dan zag ik dat het mis was

Je combineert 2 types van While statements, namelijk een "Do ... While" en een "While ... End"

Trouwens:
ofwel heb je de opgave verkeerd overgetypt, ofwel interpreteer ik hem anders,
maar volgens mij is hetgeen je hieronder wil doen ook helemaal fout :s

Aangezien ik nu zelf niet kan garanderen correcte code te schrijven zal ik het in pseudo taal schrijven:

Code:
* Definieer variabelen (N, I, V)
* Vraag een geheel getal (N) tussen 0 en 200
* Controleer het getal
* Laat een teller (I) lopen van 0 tot ...
Do
Veelvoud (V) = I * N
I = I + 1

While (V < 200)

* Bij die loop laat je het getal telkens afdrukken,
als je wilt kun je die ook in een tabel steken (maar die tabel gebruik je hier nu toch niet ? :s)

yeev

Legacy Member
hi, thx voor snele reactie.

1. mijn code is idd heel fout maar het was hetgene wat ik geproberd had voro oef op te lossen.
2. Tabel hoef jij hier idd niet te geven, maar ik dacht voor sommide warden heb jij heel veel veelvouden ( dan is dat miss beter om al deze veelvouden in een tabel weergeven ni ?).
3.Zou jij het kunne deze in Vb opschrijven zo dat ik em eens kan toepassen en zien hoe het werkt?

alvast bedankt

Btw. opgaven is correct

Flipkikker

Legacy Member
Zelf kan ik niet genoeg meer VB om een correcte code te schrijven, op google vind je genoeg over VB code als je ergens twijfelt over een statement


Als je die opgave krijgt, is het teken dat je al VB zou moeten geleerd hebben toch?
En dit is wel een heel simpele opgave btw

Probeer het nog es, adhv de richtlijnen die ik gegeven heb,
en post het resultaat ;)
Als het niet werkt kunnen we je code corrigeren

yeev

Legacy Member
ky ik heb hem denk ik ...

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

      

        Do
            Console.WriteLine("geef waarde in:")
            waarde = Console.ReadLine
            For teller = 0 To 10 '(of waarde)  Tot waar moe tik teler laten lopen Snap ik ni zo goed 
                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

of niet echt ?

Oky ik denk dat ik hem volledig heb, hier is uiteindelijke versie kan het iemand bevestigen a.u.b. of het klopt ?

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

        If waarde < 10 Then 
                teller = 100
            Else
                teller = 10
            End If

            veelvoud = waarde * teller

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

R3Deye

Legacy Member
yeev, er onbreekt een deel code in je laatste post.

Code:
Sub main()

    Dim waarde As Integer
    Dim MAXvv As Integer
    
    Dim bRun As Boolean
    bRun = True
    Do While (bRun)

        Console.WriteLine("geef waarde in:")
        waarde = Console.ReadLine
        
        ' waarde moet minstens 1 zijn
        If waarde < 1 Then
            Console.WriteLine("waarde moet minstens 1 zijn.")
            GoTo AskAgain
        End If
    
        ' heeft waarde een veelvoud dat kleiner is dan 200?
        If (waarde * 2) >= 200 Then
            Console.WriteLine("{0} heeft geen veelvoud kleiner dan 200.",waarde)
            GoTo AskAgain
        End If
    
        ' vind de grootste veelvoud die kleiner is als 200 (kan ook gelijk aan 200 zijn, daarvoor dient volgende regel nadien)
        MAXvv = 200 - (200 Mod waarde)
        ' als de grootste veelvoud gelijk aan 200 is, trek waarde eraf om de vorige veelvoud als de grooste te zetten
        If MAXvv = 200 Then MAXvv = MAXvv - waarde
    
        ' nu loop van de eerste veelvoud tot de laatste, en verhoog bij elke stap met waarde
        Dim i As Integer
        For i = (waarde * 2) To MAXvv Step waarde
            Console.WriteLine("{0},",i)
        Next i

        Console.WriteLine("Klaar.")
        
AskAgain:
    Loop

End Sub

waarde 25 geeft 50, 75, 100, ..., 175
waarde 6 geeft 12, 18, 24, ..., 198

landloperkeuh

Legacy Member
klopt allemaal voor de grootste deel maar soms veel te ingewikkeld

in de opgave staat er ook dat het een geheel getal mag zijn dat ingegeven wordt

als je ingegeven getal negatief is zijn al zijn veelvouden kleiner dan 200
als ge effectief ook met negatieve getallen moet kunnen werken
moet je maar eens pm'en voor de code ( gewoon simpel werken met abs)

zuiver wiskundig gezien is nul en het getal zelf ook een veelvoud van zichzelf
die komen niet te voorschijn met bovenstaand programma
moet je ook inbrengen inde code

R3Deye

Legacy Member
landloperkeuh zei:
...
zuiver wiskundig gezien is nul en het getal zelf ook een veelvoud van zichzelf
die komen niet te voorschijn met bovenstaand programma
moet je ook inbrengen inde code

Oops, mijn fout, mja verander
For i = (waarde * 2) To ...
naar
For i = 0 To ...
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