Als je het weer met een loop doet, dan wordt voor iedere textbox hetzelfde stukje code uitgevoerd.
Je hebt bijvoorbeeld dit in je loop staan: "Msgbox("Tien aanwezig!")". En er is 1 textbox waarin een 10 staat, dan krijg je 1 keer die messagebox. Maar als er nu 2 textboxen zijn waarin een 10 staat, dan krijg je 2 keer die messagebox.
En opnieuw scheelt dat weer een hoop typwerk...
Geen dank voor de hulp, daarvoor is het toch immers een forum...
Succes!
PS: Je moet nog wel een goede code verzinnen voor in de loop... Maar dat lukt wel
*EDIT*
Ik heb nog even een klein vraagje: Snap je (tot nu toe) alles? Is het niet zo dat je onze oplossingen hier kopiëerd en dan inlevert?
Helaas kan ik een paar mensen die dat zo zouden doen...![]()
Nope, ik kopieer niks. Snap alles, alleen de loops zijn een beetje wazig. En je bent niet de enige die een hekel heeft aan mensen die gewoon alles kopieren.
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Ik ben een tijdje afwezig geweest in dit topic, maar als ik het goed begrijp moet je met een loop checken of een waarde in een array is?
Dit kan met een For-Each loop, maar ook met de Exists-method van de array
@MartinJM: Ja, daar kan ik ook over meepraten
Maar Scandax denkt zelf actief mee aan een oplossing, dus ik ben er van overtuigd dat hij, al dan niet met behulp van onze code, zelf zijn code schrijft![]()
Heb eens geprobeerd met een loop, echter voegt hij elk item nu opnieuw toe en blijft van het sorteren vrij weinig over. Hieronder een deel van de code.
Ik denk dat het mis gaat doordat ik twee keer een loop onder elkaar heb staan. Wat denken jullie hiervan, en hoe is dit probleem op te lossen?Code:Dim tien As Integer = 10 Dim getallen As String() = {TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text} Array.Sort(getallen) For Each i As String In getallen ListBox1.Items.Add(i) Next For Each tien In getallen ListBox1.Items.Remove("10") ListBox1.Items.Add(tien) Next
Trouwens, " Dim getallen as... " heb ik zeer lang gemaakt, is het nuttig om hier ook nog een loop voor te maken? Want dit werkt op zich ook goed.
Laatst aangepast door Scandax : 5 april 2012 om 14:48
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Nee, het is niet omdat je 2 loops onder elkaar hebt staan. Het is omdat hij de variable 'tien' ziet als een integer (wat het ook is). Kortom, hoe vb de 2e loop ziet is zo:
Code:Voor elke Integer in de array 'getallen': "10" uit "listbox1" halen. De Integer (die opgehaald is met de eerste regel van de loop) in "listbox1" zetten. Volgende integer.
Wat hieraan te doen is, is op zich simpel:
Je maakt een nieuwe integer aan in het begin van de loop, en gebruikt die verder in de loop. In de loop check je dan eerst of die integer het getal 10 is. Als die integer het getal 10 is, dan moet er iets gebeuren:
Code:Dim tien As Integer = 10 Dim getallen() As Integer = {3, 5, 10, 2, 6} Array.Sort(getallen) For Each i As String In getallen ListBox1.Items.Add(i) Next For Each i As Integer In getallen If i = 10 Then ListBox1.Items.Remove("10") ListBox1.Items.Add(i) End If Next
Je kan hier ook nog wat meer info vinden over loops, dan kan je ze misschien beter begrijpen: http://msdn.microsoft.com/en-us/library/5z06z1kb.aspx & http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx.
Persoonlijk gebruik ik vaker (/altijd) de "for..next" loop en niet de "for each...next" loop, omdat ik die eerste makkelijker in gebruik vind. Misschien ook een beetje omdat ik die ook moet gebruiken in C#.
Succes!
*EDIT*
Wat me nu opeens opvalt, is dat je in de eerste loop naar iedere string kijkt... Waarom niet gewoon integer? Het gaat toch alleen maar over getallen?
Voor de loop met textboxen: Het kan wel met een loop en dat gaat waarschijnlijk ook wel lonen als je meer textboxen wilt gaan toevoegen. Maar voor nu zou ik zeggen dat het zo ook werkt.
Dus eigenlijk staat die i in " For each i as... " gewoon voor een willekeurig getal, tenzij je er een naam aan geeft?
Eigenlijk zijn loops dus zeer simpel in gebruik, ik vond ze er altijd een beetje ingewikkeld uit zien.
Het programmaatje is dan nu ook klaar, heb geen andere fouten meer gevonden. Als jullie willen, kan ik het cijfer dat ik hiervoor krijg hier posten? Alleen als jullie het graag willen weten
Hartelijk dank voor al de hulp, weer een stuk slimmer geworden afgelopen week.
Groetjes
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Goed als ik 'm PM? Weet dat een aantal mede-leerlingen ook wel eens op het forum kijken, en wil niet het risico lopen dat ik voor fraudeur wordt aangezien.
Hoe dan ook, kijk maar eens in de PM box
--edit--
Wist niet dat ik niet kon PM'en...
e-mail?
Laatst aangepast door Scandax : 5 april 2012 om 15:29
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Alleen getallen tussen de 1 en 10 zijn toegestaan. Ik weet dat het op sommige plekken korter kan, maar het werkt![]()
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Heb ik net niet kunnen vinden?? Er staat alleen "Stuur PM".
Laatst aangepast door Scandax : 5 april 2012 om 15:49
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Ziet er langer uit dan dat het is![]()
Laatst aangepast door Scandax : 5 april 2012 om 15:55
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk
Ik heb ff een voorbeeldprojectje gemaakt:
Download: http://dl.dropbox.com/u/30158654/HM/...n_Sorteren.rar
Code:
CPP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Private Sub Button1_Click() Handles Button1.Click Try ListBox1.Items.Clear() Dim Getallen As New ArrayList For Each row As DataGridViewRow In DataGridView1.Rows Dim data As String = row.Cells(0).Value If IsNumeric(data) Then If data.Contains(".") Then data = data.Replace(".", ",") If CDbl(data) >= 0 And CDbl(data) <= 10 Then Getallen.Add(data) End If End If Next Getallen.Sort() Dim aant As Integer = 0 For Each getal As Double In Getallen If getal <> 10 Then ListBox1.Items.Add(getal) Else aant += 1 Next For i = 1 To aant : ListBox1.Items.Add("10") : Next ''//tienen alsnog toevoegen Catch ex As Exception MsgBox(ex.ToString, 16 + 4096, "Foutmelding") End Try End Sub
Dat is een zeer efficiënte code, en ik snap de betekenis van de code, maar zelf was ik hier nooit op gekomen.
Met de vriendelijke groeten van Scandax"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater." - Albert EinsteinTwitter: @TheEijk