Скажите в чем проблемма?

  • Автор темы DeaDRaiN
  • Дата начала
D

DeaDRaiN

#1
я тут создал массив а он не заполняет сортированный вроде все правильно а не работает(((

Код:
Public Class Form1
Dim stroc As String 'дополнительная переменная для обмена
Dim fon As Long, buk As Long 'дополнительные переменные для обмена
Dim A(0 To 10) As Integer
Dim j, i, k, p, Box, t, imax As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
stroc = TextBox1.Text
TextBox1.Text = TextBox2.Text
TextBox2.Text = stroc
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox2.BackColor = Color.DarkMagenta
GroupBox1.BackColor = Color.Gray
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox2.BackColor = Color.White
GroupBox1.BackColor = Color.Blue
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
TextBox3.Text = " "
Randomize()
ReDim A(0 To 10)
For i = 1 To 10
A(i) = Int(101 * Rnd())
TextBox3.Text = TextBox3.Text + " " + Str(A(i)) 'заполнение массива
Next i
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
For t = 1 To 10
For j = 1 To 9 'организуем 9 просмотров массива
For i = 1 To 9 ' организуем просмотр массива с 1-го по 9-ый элемент
If A(i) > A(i + 1) Then
Call Exchange(i, i + 1) 'вызов процедуры Exchange
End If
'  TextBox4.Text = TextBox4.Text + " " + Str(A(i))
Next i
' TextBox4.Text = TextBox4.Text + " " + Str(A(i))
Next j
TextBox4.Text = TextBox4.Text + " " + Str(A(i))
Next t
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
For t = 1 To 10
For j = 1 To 9 ' организуем 9 просмотров массива
For i = 1 To 9 ' организуем просмотр массива с 1-го по 9-ый элемент
Call max() ' вызов процедуры Max
Next i
Next j
TextBox5.Text = TextBox5.Text + " " + Str(A(j))
Next t
End Sub

Private Sub max()
imax = j
For i = j To 10
If A(i) > A(imax) Then
imax = i
End If
Next i
End Sub

Private Sub Exchange(ByVal k As Integer, ByVal p As Integer)
Box = A(k)
A(k) = A(p)
A(p) = Box
End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
End Sub
End Class
в прикрепленном файле сам проект и там есть exeшник)) помогите пожалуйста!!!
 

Вложения

Over

Well-known member
04.07.2007
116
0
#2
Насколько я помню, когда делаешь ReDim - массив обнуляется, все значения пропадают.
В твоей ситуации нужно два массива: поочерёдно будешь делать ReDim то первого, то второго, а в другом массиве будут значения, и будешь перебрасывать их из одного в другой после ReDim-а.