Min и Max

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kveld
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 12.05.2004 (Ср) 18:28

Min и Max

Сообщение Kveld » 12.05.2004 (Ср) 18:39

Вот, понимаешь, налетел на неожиданные грабли - никак не могу сообразить как расчитать min среди элементов одномерного массива, то есть мне дан одномерный массив и надо найти минимальный среди его элементов. Всё просто, но чего-то сообразить ничего не могу.
Заранее спасибо за любое содействие

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.05.2004 (Ср) 19:18

Можно методом пузырька.

Код: Выделить всё
Const N = 10 'Сколько элементов

Sub Procedure()

Dim Arr(1 To N) As Long 'Массив
Dim Num As Long 'Для случайных чисел
Dim I As Long 'Счетчик
Dim Max As Long, Min As Long 'Два числа
Dim Str As String 'Для вывода информации

Randomize 'Разбросаем случайные числа

For I = 1 To N
Num = Round(Rnd * 100) 'Заполняем массив случайными числами от 0 до 100
Arr(I) = Num
Next

'========НАЧИНАЕТСЯ СУТЬ ПУЗЫРЬКА========
'Сначала, самый первый элемент является самым большим и самым маленьким
Min = Arr(1)
Max = Arr(1)

'Выявляем самый большой и самый маленький
For I = 2 To N
If Min > Arr(I) Then Min = Arr(I)
If Max < Arr(I) Then Max = Arr(I)
Next
'========СУТЬ ПУЗЫРЬКА ЗАКОНЧИЛАСЬ========

'Выводим информацию
For I = 1 To N
Str = Str & I & " = " & Arr(I) & vbCrLf
Next
Str = Str & vbCrLf & "Max = " & Max & vbCrLf & "Min = " & Min
MsgBox Str, vbInformation, "Массив"

End Sub

Private Sub Form_Load()
Procedure
End Sub
Нет меня больше

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 12.05.2004 (Ср) 23:31

:arrow: <DELETE> :arrow: :twisted:
Последний раз редактировалось EvilCoder 18.03.2006 (Сб) 13:37, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 13.05.2004 (Чт) 5:45

По-моему, EvilCoder ошибается. Как я поняла, нужно просто найти наименьший элемент массива, а не наименьший индекс. А LBound(Array), насколько мне известно, находит именно наименьший индекс. И пример A.A.Z. здесь наиболее уместен.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 13.05.2004 (Чт) 16:51

:arrow: <DELETE> :arrow: :twisted:
Последний раз редактировалось EvilCoder 18.03.2006 (Сб) 13:37, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 13.05.2004 (Чт) 17:43

гы! а я всегда думал что метод пузырька это сортировка :wink: :wink:
Ничто так не ограничивает полёт мысли программиста, как компилятор

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 13.05.2004 (Чт) 17:50

Пузырьковым методом можно обрабатывать все что угодно в массиве. В том числе и сортировать данные 8)
Моду создают модоки, а распространяют модозвоны.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 13.05.2004 (Чт) 17:57

:lol: offtop sorry......
все дело в волшебных пузырьках :lol:

Tauron
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 187
Зарегистрирован: 14.07.2002 (Вс) 17:43
Откуда: Kazakhstan

Сообщение Tauron » 13.05.2004 (Чт) 18:35

Метод пузырька это сортировка и только сортировка. Что значит "обрабатывать все что угодно" вообще непонятно. Для того, чтобы найти минимум сортировать массив не нужно. Это пустая трата времени.
Код: Выделить всё
Function getMin(A() as Long) as Long
Dim I As Integer
getMin=A(LBound(A))
For I=LBound(A) to UBound(A)
If A(I)<getMin Then
    getMin=A(I)
End If
Next
End Function
Трезвая голова, холодный ум и ледяное сердце.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 13.05.2004 (Чт) 19:45

Tauron:
приглядись, ты тоже обрабатываешь массив, чтобы получить минимальное или максимальное число.
А под "обрабатывать все что угодно" подразумевалось то, что с отсортированными данными легче работать, чем с "сырыми". Так что сортировка пузырьком бывает полезна не только при сортировке.

Z-zzz:
Короче, все покупаем 20 пачек "Виспы" и уходим в краткосрочный отгул 8)
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 7

    TopList  
cron