heb een basis code, maar kom niet tot een oplossing...

Status
Niet open voor verdere reacties.

DavidWebb

Gebruiker
Lid geworden
11 mei 2012
Berichten
8
Hallo,

Ik zoek een code die dit op het scherm brengt:

Numbers < capacity 2, count 0 > :
Number ? : 10
Numbers < capacity 2, count 1 > : 10
Number ? : 5
Numbers < capacity 2, count 2 > : 5 10
Number ? : 7
Numbers < capacity 4, count 3 > : 5 7 10
Number ? : 5
Numbers < capacity 4, count 4 > : 5 5 7 10
Number ? : 0
Numbers < capacity 8, count 5 > : 0 5 5 7 10
Number ? : 6
Numbers < capacity 8, count 6 > : 0 5 5 6 7 10
Number ? : 8
Numbers < capacity 8, count 7 > : 0 5 5 6 7 8 10
Number ? : 9
Numbers < capacity 8, count 8 > : 0 5 5 6 7 8 9 10
Number ? : 15
Numbers < capacity 16, count 9 > : 0 5 5 6 7 8 9 10 15
Number ? : - 5
Numbers < capacity 16, count 10 > : -5 0 5 5 6 7 8 9 10 15
Number ? : _

De in te voeren getallen (zie number ? + waarde die dient ingevoerd te worden, dus eerste getal dat dient ingevoerd te worden is 10, dan 5 enz.) worden in een array op de juiste plaats ingevoegd. De array wordt op een "intelligente wijze" vergroot indien noodzakelijk. Dit wil zeggen dat er vertrokken wordt van een bepaalde capaciteit (2 elementen) en dat indien nodig de capaciteit wordt verdubbeld. Enkel de opgevulde elementen worden afgeprint. Het is niet de bedoeling de array steeds te sorteren na het toevoegen van een waarde, maar eerder om de waarde meteen op de juiste plaats in te voegen.

Ik heb volgende code in elkaar gebrokkeld, maar ik versta niet op welke manier je aan de oplossing kan komen. Kan iemand me helpen a.u.b.?

Code:
Module Module 1
    Sub Main()
        Dim capacity As Integer = 2
        Dim count As Integer
        Dim numbers(capacity - 1) As Integer
        '
        Do
            Dim index As Integer
            Console.Write("Numbers ( capacity " & capacity & _
                          ", count " & count & " ) : ")
            For index = 0 To count - 1
                Console.Write(numbers(index) & " ")
            Next
            Console.WriteLine()
            Console.Write("Number ? : ")
            Dim number As Integer = Console.ReadLine()
            count += 1
            If count > capacity Then
                capacity *= 2
                ReDim Preserve numbers(capacity - 1)
            End If
            numbers(count - 1) = number
        Loop
    End Sub
End Module
 
Laatst bewerkt door een moderator:
Code:
Dim tmp, tmp2 as integer
tmp2 = number
For i=0 to capacity - 1
If number < Preserve(i) then 
For j = i to capacity - 1
tmp = Preserve(j)
Preserve(j) = tmp2
tmp2 = tmp
Next
Exit For
End If
Next

Bedoel je zoiets?
 
Hallo,

De code die je genoteerd heb, pas je die in in de code die ik genoteerd heb, waar je niet tot een eindoplossing mee komt ?

Groeten,
DavidWebb
 
Ik versta niet goed wat u bedoeld.
 
Laatst bewerkt door een moderator:
Ik snap ook niet precies wat-ie bedoelt...

Werkt het ja/nee. Zo nee: wat moet er veranderd worden? :)
 
Hallo,

De code werkt niet...

Volgende code dient meteen bij het drukken op F5 op het scherm te komen.

Numbers < capacity 2, count 0 > :
Number ? :

Dan dien je 10 in te toetsen en verschijnt:

Numbers < capacity 2, count 1 > : 10
Number ? :

Nu dien je opnieuw een nummer in te toetsen, in dit geval dus 5 en dan krijg je opnieuw hetvolgende op het scherm:

Numbers < capacity 2, count 2 > : 5 10
Number ? :

Enzoverder... Nummer opnieuw in te vullen...


Mvg,
David Webb

Numbers < capacity 2, count 0 > :
Number ? : 10 'getal dat telkens ingevuld moet worden
Numbers < capacity 2, count 1 > : 10 'datgene wat steeds op het scherm dient te verschijnen
Number ? : 5
Numbers < capacity 2, count 2 > : 5 10
Number ? : 7
Numbers < capacity 4, count 3 > : 5 7 10
Number ? : 5
Numbers < capacity 4, count 4 > : 5 5 7 10
Number ? : 0
Numbers < capacity 8, count 5 > : 0 5 5 7 10
Number ? : 6
Numbers < capacity 8, count 6 > : 0 5 5 6 7 10
Number ? : 8
Numbers < capacity 8, count 7 > : 0 5 5 6 7 8 10
Number ? : 9
Numbers < capacity 8, count 8 > : 0 5 5 6 7 8 9 10
Number ? : 15
Numbers < capacity 16, count 9 > : 0 5 5 6 7 8 9 10 15
Number ? : - 5
Numbers < capacity 16, count 10 > : -5 0 5 5 6 7 8 9 10 15
Number ? : _
 
kan je je vragen wat beter formuleren? wat is er fout?
 
Laatst bewerkt door een moderator:
Ik denk dat ik het begrijp:

Code:
 Dim input As String = ""
        Dim count As Integer = 0
        Do
            cijfers.Sort()
            Dim temp As String = ""
            input = ""
            For Each item As Integer In cijfers
                temp &= " " & item.ToString
            Next
            Console.WriteLine("Numbers < count " & count.ToString & " > :" & temp)
            input = Console.ReadLine()
            If IsNumeric(input) Then cijfers.Add(CInt(input)) : count += 1 Else _
                Console.WriteLine("Invalid input. Try again.")
        Loop Until input = ""

AVAD6.png
 
Dag joZ1 en de rest :-)

Ja, wat jij voorstelt, dat gaat de goede richting uit, ik denk dat we bijna een oplossing hebben.

Wanneer ik jou code invoer, komt volgende foutmelding op mijn scherm:

'cijfers' is not declared. It may be inaccessible due to its protection level.

Enig idee hoe we dit handig kunnen oplossen ?


Mvg,
DavidWebb
 
Oeps! Ik heb niet de hele code gekopieerd :o

Ik had:

[cpp]Private cijfers As New List(Of Integer)
Sub Main()
Dim input As String = ""
Dim count As Integer = 0
Do
cijfers.Sort()
Dim temp As String = ""
input = ""
For Each item As Integer In cijfers
temp &= " " & item.ToString
Next
Console.WriteLine("Numbers < count " & count.ToString & " > :" & temp)
input = Console.ReadLine()
If IsNumeric(input) Then cijfers.Add(CInt(input)) : count += 1 Else _
Console.WriteLine("Invalid input. Try again.")
Loop Until input = ""
End Sub[/cpp]
 
Laatst bewerkt:
We zijn er bijna...

De getallen dienen van klein naar groot te verschijnen.

Je voert ales eerste cijfers 10 in en 10 verschijnt.

Erna voer je 5 in en 5 10 verschijnt op het scherm, in die volgorde.

Erna voer je bv. - 5 in en - 5 5 10 verschijnt, in die volgorde.

Enig idee ?

Bijna een oplossing, alvast bedankt ! ! !
Mvg,
DavidWebb
 
Het ligt aan de code die ik vergeten was en later nog heb toegevoegd.

[cpp]Private cijfers As New List(Of String)[/cpp] moet natuurlijk [cpp]Private cijfers As New List(Of Integer)[/cpp] zijn :)
 
Hoi,

De oplossing klopt ! ! ! Nu, hartelijk dank hiervoor.
Ik merk wel dat ik iets over het hoofd heb gezien. Datgene wat ik wens te bereiken is ook dat "capacity" genoteerd staat. Zie eerste post.

< capacity 2, count 0 >
< capacity 2, count 1 >
< capacity 2, count 2 >
< capacity 4, count 3 >
< capacity 4, count 4 >
< capacity 8, count 5 >
< capacity 8, count 6 >
< capacity 8, count 7 >
< capacity 8, count 8 >
< capacity 16, count 9 >
< capacity 16, count 10 >

Mvg,
DavidWebb
 
Een Generic List heeft oneindig veel capaciteit. :)
Dus die groeit automatisch mee.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan