login  Naam:   Wachtwoord: 
Registreer je!
 Forum

de array waarden veranderen plaats. (Opgelost)

Offline verhaba - 03/11/2008 19:13 (laatste wijziging 03/11/2008 22:41)
Avatar van verhabaLid Hallo

Ik heb een vraagje: Ik moet een array maken. Eens die array gemaakt is (of gegenereerd is) moet ik via een switch de waarden veranderen in de array twee aan twee.

De waarde op index 0 moet op index 1 komen.
De waarde op index 1 moet index 0 komen.
De waarde op index 2 moet op index 1 komen
de waarde op index 3 moet op index 2 komen
etc
Dit zou het verloop moeten zijn.:
---------------------------------------
Array BEFORE switch : 10 20 30 40 50
Array AFTER switch : 20 10 40 30 50
---------------------------------------
Het schoentje knelt gedeeltelijk bij de switch, ik geraak er maar niet uit. Voornamelijk het opslagen in een backup. Dit is mijn code:

  1. Module Module1
  2.  
  3. Sub Main()
  4. Console.WriteLine("Count ?")
  5. Dim count As Integer = Console.ReadLine()
  6.  
  7. Dim value(count) As Integer
  8.  
  9. ' de array opbouwen
  10. Dim index As Integer
  11. For index = 0 To count - 1
  12. Console.WriteLine("Number " & index + 1 & " ?")
  13. value(index) = Console.ReadLine()
  14. Next
  15.  
  16. ' de array uitschrijven:
  17. Console.WriteLine("----------------------------------------")
  18. Console.Write("Array BEFORE Switch : ")
  19. For index = 0 To count - 1
  20. Console.Write(value(index) & " ")
  21. Next
  22.  
  23. Dim backup As Integer
  24. 'de waarden in de array veranderen; de switch toepassen!
  25. For index = 0 To count - 1 Step 2
  26. value(index) = backup
  27. If index Mod 2 = 0 Then
  28. value(index) = value(index + 1)
  29. Else
  30. value(index) = backup
  31. End If
  32.  
  33. Next
  34.  
  35. ' de array uitschrijven:
  36. Console.WriteLine()
  37. Console.Write("Array AFTER Switch: ")
  38.  
  39. For index = 0 To count - 1
  40. Console.Write(value(index) & " ")
  41. Next
  42. Console.WriteLine()
  43. Console.WriteLine("----------------------------------------")
  44.  
  45. 'de console laten wachten op input om af te sluiten.
  46. Console.ReadLine()
  47.  
  48. End Sub
  49.  
  50. End Module

4 antwoorden

Gesponsorde links
Offline Stijn - 03/11/2008 22:46 (laatste wijziging 03/11/2008 22:46)
Avatar van Stijn PHP expert
  1. value(index) = backup

Je moet die twee omwisselen .
Offline verhaba - 03/11/2008 23:33 (laatste wijziging 03/11/2008 23:36)
Avatar van verhaba Lid Ik ben er bijna...
  1. Dim backup As Integer
  2. 'de waarden in de array veranderen; de switch toepassen!
  3. For index = 0 To count - 1 Step 2
  4. backup = value(index)
  5. If index Mod 2 = 0 Then
  6. value(index) = value(index + 1)
  7. value(index + 1) = backup
  8. End If


Bij de laatste index mag de waarde niet nul zijn.
Offline Stijn - 03/11/2008 23:38
Avatar van Stijn PHP expert En wat als "index Mod 2" niet gelijk is aan 0? Je moet dus nog een else blokje schrijven.
Offline verhaba - 04/11/2008 00:17 (laatste wijziging 04/11/2008 00:33)
Avatar van verhaba Lid je hebt gelijk die lijn mag geschrapt worden.
Ik ben er bijna. Als de count oneven is, is volgens bovenstaande code de waarde van de laatste index 0, wat niet mag. De waarde moet dan wel behouden worden. dit is de code...

  1. Dim backup As Integer
  2. 'de waarden in de array veranderen; de switch toepassen!
  3. For index = 0 To count - 2 Step 2
  4. backup = value(index)
  5. value(index) = value(index + 1)
  6. value(index + 1) = backup

Voila, damned dit is verschrikkelijk boeiend, maar heeft iedereen zo veel tijd nodig als ik? Ben wel nog maar een paar weekjes bezig les aant volgen. En pas van verleden week deftig aan het oefenen... Alvast bedankt voor jullie hulp.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s