Задача на массивы, исправить ошибку нужно - VB

Узнай цену своей работы

Формулировка задачи:

массивы color1 и color2 состоят каждый из 7 элементов. Их значения - семь цветов(рандомные). Значения элементов массива формируются случайным образом и определяют цвет кругов одного радиуса, расположенных в горизонтальный ряд на объектах Picture1 и Picture2 соответственно. Выведите на Picture3(массив Color3) из 14 кругов: его элементами с нечётными значениями индексов являются элементы массива Color1, а с чётными индексами -Color2 Код вот:
Листинг программы
  1. Option Explicit
  2. Dim Color1(6) As String, Color2(6) As String, Color3(13) As String, I As Integer, a As Integer, i2 As Integer
  3. Private Sub Form_Load()
  4. Randomize
  5. For I = 0 To 6
  6. Randomize
  7. a = Rnd() * 6
  8. Select Case a
  9. Case 0
  10. Color1(I) = vbBlue
  11. Case 1
  12. Color1(I) = vbGreen
  13. Case 2
  14. Color1(I) = vbCyan
  15. Case 3
  16. Color1(I) = vbRed
  17. Case 4
  18. Color1(I) = vbMagenta
  19. Case 5
  20. Color1(I) = vbYellow
  21. Case 6
  22. Color1(I) = vbWhite
  23. End Select
  24. Next
  25. Randomize
  26. For I = 0 To 6
  27. Randomize
  28. a = Rnd() * 6
  29. Select Case a
  30. Case 0
  31. Color2(I) = vbBlue
  32. Case 1
  33. Color2(I) = vbGreen
  34. Case 2
  35. Color2(I) = vbCyan
  36. Case 3
  37. Color2(I) = vbRed
  38. Case 4
  39. Color2(I) = vbMagenta
  40. Case 5
  41. Color2(I) = vbYellow
  42. Case 6
  43. Color2(I) = vbWhite
  44. End Select
  45. Next
  46. For I = 0 To 6
  47. For i2 = 0 To 13
  48. If i2 Mod 2 = 0 Then
  49. Color3(i2) = Color2(I)
  50. Else
  51. Color3(i2) = Color1(I)
  52. End If
  53. Next
  54. Next
  55. End Sub
  56. Private Sub Timer1_Timer()
  57. For I = 0 To 6
  58. Picture1.FillStyle = vbSolid
  59. Picture1.FillColor = Color1(I)
  60. Picture1.Circle (30 + 30 * I, 40), 10, Color1(I)
  61. Next
  62. For I = 0 To 6
  63. Picture2.FillStyle = vbSolid
  64. Picture2.FillColor = Color2(I)
  65. Picture2.Circle (30 + 30 * I, 40), 10, Color2(I)
  66. Next
  67. For i2 = 0 To 13
  68. Picture3.FillStyle = vbSolid
  69. Picture3.FillColor = Color3(i2)
  70. Picture3.Circle (30 + 30 * i2, 40), 10, Color3(i2)
  71. Next
  72. End Sub
проблема в то, что третий массив там где 14 кругов выдаёт только круги 2 цветов

Решение задачи: «Задача на массивы, исправить ошибку нужно»

textual
Листинг программы
  1. Option Explicit
  2. Dim Color1(6) As Long, Color2(6) As Long, Color3(13) As Long, I As Integer, ar()
  3.  
  4. Private Sub Form_Load()
  5. Timer1.Interval = 10000
  6. ar = Array(vbBlue, vbGreen, vbCyan, vbRed, vbMagenta, vbYellow, vbWhite)
  7. Picture1.FillStyle = vbSolid
  8. Picture2.FillStyle = vbSolid
  9. Picture3.FillStyle = vbSolid
  10. Timer1_Timer
  11. End Sub
  12.  
  13. Private Sub Timer1_Timer()
  14. For I = 0 To 6
  15.   Color1(I) = ar(Int(Rnd() * 7))
  16.   Picture1.FillColor = Color1(I)
  17.   Picture1.Circle (30 + 30 * I, 40), 10, Color1(I)
  18.  
  19.   Color2(I) = ar(Int(Rnd() * 7))
  20.   Picture2.FillColor = Color2(I)
  21.   Picture2.Circle (30 + 30 * I, 40), 10, Color2(I)
  22.  
  23.   Picture3.FillColor = Color1(I)
  24.   Picture3.Circle (30 + 30 * I * 2, 40), 10, Color1(I)
  25.   Picture3.FillColor = Color2(I)
  26.   Picture3.Circle (30 + 30 * (I * 2 + 1), 40), 10, Color2(I)
  27. Next
  28. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут