Задачи на массивы в Vb
Модератор: Naeel Maqsudov
Хм, если там нет Min, Max, тогда можно попробывать циклом (перебором), сравнивая каждый элемент массива с другим и таким методом найти Min и Max.
Может кто что подскажет нам ?
Вот посмотрите пример нахождение мин. значения в массиве
http://personnel.uapa.ru/print.asp?id=8 ... 2%E3..html
Может кто что подскажет нам ?
Вот посмотрите пример нахождение мин. значения в массиве
http://personnel.uapa.ru/print.asp?id=8 ... 2%E3..html
Исходя из той логике, я думаю, вашу задачу можно решить так
Хотя может кто-то предложит что-то проще
Код: Выделить всё
Dim iArray() As Single
Dim i%, n%, Min!, Max!
Private Sub CommandButton1_Click()
Me.Hide
n = Me.TextBox1.Text 'Колличество элементов в массиве
ReDim iArray(1 To n)
For i = 1 To n
iArray(i) = InputBox("Введите " & i & "-е значение для массива", "Заполнение массива")
If iArray(i) = 0 Then i = i - 1 'защита от ввода нуля и нажатия кнопки Отмена
Next
n = UBound(iArray())
'Находим Min
Min = 10000
For i = 1 To n
If iArray(i) < Min Then
Min = iArray(i)
End If
Next
'Находим Max
Max = 0
For i = 1 To n
If iArray(i) > Max Then
Max = iArray(i)
End If
Next
Me.TextBox1.Text = Min + Max
Me.Show
End Sub
Код: Выделить всё
Dim iArray() As Single
Dim i%, n%, Min!, Max!
Private Sub CommandButton1_Click()
Me.Hide
On Error Resume Next
n = Me.TextBox1.Text 'Колличество элементов в будущем массиве
If n = 0 Then
MsgBox "Укажите размерность массива"
Me.Show
End If
ReDim iArray(1 To n)
For i = 1 To n
iArray(i) = InputBox("Введите " & i & "-е значение для массива", "Заполнение массива")
If iArray(i) = 0 Then i = i - 1 'защита от ввода нуля и нажатия кнопки Отмена
Next
Min = 10000
For i = 1 To n
If iArray(i) < Min Then Min = iArray(i)
If iArray(i) > Max Then Max = iArray(i)
Next
Me.TextBox1.Text = Min + Max
Me.Show
End Sub
Min = 10000
Обычно за начальный Min и Max берется 1-ый элемент массива, а поиск начинается со второго.
Обычно за начальный Min и Max берется 1-ый элемент массива, а поиск начинается со второго.
Кто ещё что интересного подскажет ?
Код: Выделить всё
Option Explicit
Dim iArray() As Single
Dim i%, n%, Min!, Max!
Private Sub CommandButton1_Click()
Me.Hide
On Error Resume Next
n = Me.TextBox1.Text 'Колличество элементов в будущем массиве
If n = 0 Then
MsgBox "Укажите размерность массива"
Me.Show
End If
ReDim iArray(1 To n)
For i = 1 To n
iArray(i) = InputBox("Введите " & i & "-е значение для массива", "Заполнение массива")
If iArray(i) = 0 Then i = i - 1 'защита от ввода нуля и нажатия кнопки Отмена
Next
Min = iArray(1)
Max = iArray(1)
For i = 2 To n
If iArray(i) < Min Then Min = iArray(i)
If iArray(i) > Max Then Max = iArray(i)
Next
Me.TextBox1.Text = Min + Max
Me.Show
End Sub
Ух ты... спасибо =)) щас проверю все версии =)))
))) а зачем все ? Это же одна и та же версия (логика), только последния версия более оптимизирована.
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Можно соптимизировать код
Код: Выделить всё
Dim t as single
...................
'В цикле
t = iArray(i)
If t < Min Then
Min = t
ElseIf t > Max Then
Max = t
end if
Pavel55, все работает!
спасибо=)))))))))))))))))))
а вторую задачку в простом варианте, типа для на смертных мона? )))
спасибо=)))))))))))))))))))
а вторую задачку в простом варианте, типа для на смертных мона? )))