Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Массивы.


Автор: ndec 12.2.2007, 23:39
Код

Option Explicit
Dim bytI, bytN, bytJ, bytK, bytR, bytMin, bytA(1 To 10) As Byte
Sub MinElement(bytI, bytN As Byte)
bytMin = bytA(bytI)
bytN = bytI
For bytJ = bytI + 1 To 10
If bytA(bytJ) < bytMin Then
bytMin = bytA(bytJ): bytN = bytJ
Next bytJ
End Sub

Private Sub cmdDim_Click()
Randomize
For bytI = 1 To 10
bytA(bytI) = Int(Rnd * 10)
txtDim.Text = txtDim.Text + Str(bytA(bytI))
Next bytI
End Sub

Private Sub cmdMin_Click()
bytMin = bytA(1)
bytN = 1
For bytI = 2 To 10
If bytA(bytI) < bytMin Then bytMin = bytA(bytI): bytN = bytI
Next bytI
Print "Минимальный элемент "; bytMin; "его индекс"; bytN
End Sub

[color=orange]Private Sub cmdSort_Click()[/color]
txtSort.Text = ""
For bytI = 1 To 9
Call MinElement(bytI, bytN)
bytR = bytA(bytI)
bytA(bytI) = bytA(bytN)
bytA(bytN) = bytR
For bytK = 1 To 10
txtSort.Text = txtSort.Text + Str(bytA(bytK))
Next bytK
Next bytI
End Sub


Ребят, вот весь код программы, при сортировке чисел (cmdSort_Click) происходит ошибка и указывает на переменную bytN (Compile error: ByRef argument type mismath). Как я понимаю, нужно присвоить тип перемнной, но и тут возникает ошибка, пишет: Excpected: list separator or ). Подскажите, что нужно сделать, для нормальной сортировки символов в массиве?

Спасибо заранее.

Автор: Kirill89 13.2.2007, 01:13
Мне так кажется, что у тебя не сдесь ошибка. Ты хотел все переменные типа Byte создать?
Если да то надо так:
Код

Dim bytI As Byte, bytN As Byte, bytJ As Byte, bytK As Byte, bytR As Byte, bytMin As Byte, bytA(1 To 10) As Byte

Иначе у тебя остальные переменные типа variant.
Я так дописал, и он мне начал абсолютно другую ошибку выдавать... Думай дальше.

Кстати если я тебя неправилно понял, то всё-равно, не имей привычки создавать переменные без их описания... лучше написать dim a as variant, чем dim a.
Код становится намного читабилнее.

Автор: Akina 13.2.2007, 11:54
Цитата(Kirill89 @  13.2.2007,  02:13 Найти цитируемый пост)
Ты хотел все переменные типа Byte создать?
Если да то надо так:

ТО же касается объявления типов в заголовках функций.

Добавлено @ 11:56 
Цитата(Kirill89 @  13.2.2007,  02:13 Найти цитируемый пост)
не имей привычки создавать переменные без их описания... лучше написать dim a as variant, чем dim a.

аналогично дурным тоном счиается объявление в одной строке нескольких переменных (за исключением совершенно однотипных по назначению, если все они могут быть описаны одним КОММЕНТАРИЕМ), а равно отсутствие комментариев. И по коду, и по объявлению.

Автор: Кирилл 13.2.2007, 17:09
По-мойму Kirill89 прав. 
Могу даже предположить в каком месте это сказывается - в 32-й строке ты вызываешь процедуру и в качестве параметров ставишь Variant... Несовпадение типов...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)