Help me

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

Help me

Сообщение { Roman } » 27.09.2004 (Пн) 16:18

Как найти максимальное число из трёх заданных в Visual Basic
Если нетрудно пришлите мни исходник плииз :oops:



Tesla-Master@mail.ru :roll:

ZlydenGL
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 148
Зарегистрирован: 13.08.2004 (Пт) 10:02

Сообщение ZlydenGL » 27.09.2004 (Пн) 16:22

Ты что, издеваешься?
Код: Выделить всё
Dim Arr(2) as Double

Sub My()
Dim Temp As Double, I As Integer
For I=0 To 2
If Temp<Arr(I) Then Temp=Arr(I)
Next I
...
End Sub


И вообще, тебе с этим вопросом - к новичкам.
Покой нам только снится!!! И то редко. Поскольку нет в мире совершенства, а есть только стремление к оному.

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 27.09.2004 (Пн) 18:35

Точно, добро пожаловать:
http://bbs.vbstreets.ru/viewtopic.php?t=9880&highlight=
Ученье - свет, неученых - тьма.

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Сообщение kazah_ » 27.09.2004 (Пн) 19:23

ZlydenGL писал(а):Ты что, издеваешься?
Код: Выделить всё
Dim Arr(2) as Double

Sub My()
Dim Temp As Double, I As Integer
For I=0 To 2
If Temp<Arr(I) Then Temp=Arr(I)
Next I
...
End Sub


И вообще, тебе с этим вопросом - к новичкам.

"Это тебе к новичкам идти. Ситайвнимательно и учись!

Для максимального будет


Sub My()
Dim Temp As Double, I As Integer
For I=0 To 2
If Temp>Arr(I) Then Temp=Arr(I)
Next I
...
End Sub[/code]

или
private sub my
If (a > c) And (a >= b) Then Max = a
If (b > c) And (b >= a) Then Max = b
If (c > a) And (c >= b) Then Max = c
end sub
:arrow: :arrow: :arrow: :P
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 28.09.2004 (Вт) 0:12

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

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 0:16

SHURUP писал(а):Люди, а если нужно с наибольшей переменной произвести какие-то действия, то как получить, что-то типа указателя на эту перменную?

Самое простое - завернуть в объект.
Если эта переменная - элемент массива, как оно чаще всего бывает, то достаточно хранить индекс.
Если это три совершенно разные и несвязанные друг с другом переменные простого типа, тогда никак.
Ну, через VarPtr и CopyMemory-то всегда можно, это не в счёт ;-)
Изображение

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 28.09.2004 (Вт) 0:29

tyomitch маленькими буквами писал(а):Ну, через VarPtr и CopyMemory-то всегда можно, это не в счёт ;-)

А что это вообще за скрытые функции ObjPtr, StrPtr, VarPtr, что-то о них подробнее можно?
Так понимаю некий намек на указатели! Но инфы маловато! Желательно с примерчиками!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 0:37

Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2004 (Вт) 13:08

Самое простое - завернуть в объект.


А нафига?

Просто передать ее своей функции по ссылке. Кстати, по ссылке она передается по умолчанию, если не указано ByVal...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

ZlydenGL
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 148
Зарегистрирован: 13.08.2004 (Пт) 10:02

Сообщение ZlydenGL » 28.09.2004 (Вт) 13:16

kazah_ писал(а):Это тебе к новичкам идти. Ситайвнимательно и учись!

Для максимального будет


Sub My()
Dim Temp As Double, I As Integer
For I=0 To 2
If Temp>Arr(I) Then Temp=Arr(I)
Next I
...
End Sub[/code]


Товарисч, я могу ошибаться, но твой алгоритм выдаст не максимальное, а минимальное значение. :P
Покой нам только снится!!! И то редко. Поскольку нет в мире совершенства, а есть только стремление к оному.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 13:17

Andrey Fedorov писал(а):
Самое простое - завернуть в объект.


А нафига?

Просто передать ее своей функции по ссылке. Кстати, по ссылке она передается по умолчанию, если не указано ByVal...

А если функции нет?

Выделять десяток строк в отдельную функцию обычно не проще, чем завернуть переменную в объект.
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2004 (Вт) 13:19

А если функции нет?


А что тогда есть-то? Ну и пользуй собственно переменную.

Выделять десяток строк в отдельную функцию обычно не проще, чем завернуть переменную в объект.


Опять-же нафига?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 13:31

Andrey Fedorov писал(а):
А если функции нет?


А что тогда есть-то? Ну и пользуй собственно переменную.

Есть три переменные - a As Long, b As Long, c As Long.
Задача - заменить наибольшую из них (x) на x * Sin(x * x)
Твои действия? Временную переменную не предлагать :-)

Выделять десяток строк в отдельную функцию обычно не проще, чем завернуть переменную в объект.

Опять-же нафига?

А просто так:
Екклесиаст 2:11 писал(а):И я оглянулся на все мои дела, которые мои руки сделали, и на труд, которым я трудился, делая их: и вот, всё – суета и томление духа, и нет от них пользы под солнцем!
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2004 (Вт) 13:40

Есть три переменные - a As Long, b As Long, c As Long


Вах как сложно - сделай массив из трех (или скольки угодно) переменных, найди индекс наибольшего значения и выполни над этим значением свое действие. Объекты тут даром не нужны. ;)
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 13:45

Andrey Fedorov писал(а):
Есть три переменные - a As Long, b As Long, c As Long


Вах как сложно - сделай массив из трех (или скольки угодно) переменных, найди индекс наибольшего значения и выполни над этим значением свое действие. Объекты тут даром не нужны. ;)

Значит, ты не читал те посты, на которые отвечал ;-)
Я писал(а):Самое простое - завернуть в объект.
Если эта переменная - элемент массива, как оно чаще всего бывает, то достаточно хранить индекс.
Если это три совершенно разные и несвязанные друг с другом переменные простого типа, тогда никак.


А если это не массив?
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2004 (Вт) 13:49

Ладно, завертывай все числа в объекты - я не буду возражать....
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2004 (Вт) 13:50

А если это не массив?


Надо вообще-то определиться ЧТО ЖЕ ЭТО ТАКОЕ И ЧТО С НИМ ДЕЛАТЬ вначале!
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 18:13

Andrey Fedorov писал(а):
А если это не массив?


Надо вообще-то определиться ЧТО ЖЕ ЭТО ТАКОЕ И ЧТО С НИМ ДЕЛАТЬ вначале!

Безусловно. Я просто хотел тебе показать, зачем может понадобиться заворачивать числа в объекты.

Ещё, кстати, идея - можно завернуть в UDT (из одного поля) и работать в блоке With. Но там ограничение, что "ссылку" можно иметь всего одну.
Изображение


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

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

Сейчас этот форум просматривают: С.Т. и гости: 4

    TopList