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 aangepast door huijb : 17 mei 2012 om 17:42
Bedoel je zoiets?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
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 aangepast door huijb : 17 mei 2012 om 17:42
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 aangepast door frankwannet : 17 mei 2012 om 22:43 Reden: Onnodige quote verwijderd.
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 = ""![]()
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
Ik had:
CPP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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
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
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