Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 17:54   #1
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Смущение Как отыскать максимальное число на VBScript?

NERV, привет!!!! Это Софико! Мне просто пришлось перерегистрироваться!
Теперь буду жить под этим ником, администрация сказала, что тот прежний уже не восстановить. (И е-мэйл который у меня был pogoninini@rambler.ru оказался вдруг нерабочим, письма не принимал, словом какая-то напасть...)

У меня снова вопрос, очень надеюсь на твой ответ!

Есть ли в VBScript анализ выбора, аналогичный Math.max() и Math.min() в JScript, вычисляющие максимальное/минимальное число из заданных?
Чую нутром, что там не так просто, ибо в материалах которыми располагаю ничего подобного не находила… Я (покуда на нашем этом форуме дверь для меня закрыта была, - спасла меня только перерегистрация) стала шнырять по другим форумам (просто читать), и где то встретила слова, мол чтобы пользоваться командами Джавы нужно как-то соединить их: JS и VBA в 1 файл «.wsf»… ну, ты понимаешь, что «.wsf», что это и с чем едят – я (естественно) ни сном ни духом не ведаю…

Я всё продолжаю мучать тот макрос, вижу что ему ещё расти и расти…
Сейчас, проанализировав вынесенный (ну просто, ура))) рада до сих пор))!!!) в Ексель массив, мне стало ясно, что нужно было создать ещё 1 массив с производными (ну , не шибко это производные, а просто отношение: «изменение «А»/изменение «В»), и это я успешно сделала )).
А дальше, на каждом шаге расчета определять у кого из контролируемых эта производная больше. Записав Math.max() естессенно ничо у мэня не вышло.

Описываю ситуацию:

Dim x(999, 14) – наш старый знакомый ))
Dim y(999, 3) – новенький )

' массив текущих значений
x(shag,0)=Rastr.Calc("val","node"," pnr","ny="&UzelN1)
x(shag,1)=Rastr.Calc("val","node"," pnr","ny="&UzelN1)
x(shag,2)=Rastr.Calc("val","node"," pnr","ny="&UzelN2)
x(shag,3)=Rastr.Calc("val","node"," qnr","ny="&UzelN2)
x(shag,4)=Rastr.Calc("val","node"," pnr","ny="&UzelN3)
x(shag,5)=Rastr.Calc("val","node"," qnr","ny="&UzelN3)
x(shag,6)=Rastr.Calc("val","node"," pnr","ny="&UzelN4)
x(shag,7)=Rastr.Calc("val","node"," qnr","ny="&UzelN4)
x(shag,8)=Rastr.Calc("val","node"," vras","ny="&UzelN)
x(shag,9)=Rastr.Calc("val","node"," uhom","ny="&UzelN)
x(shag,10)=Rastr.Calc("val","node", "delta","ny="&UzelN)
x(shag,11)=Rastr.Calc("val","node", "vras","ny="&UzelShbm)
x(shag,12)=Rastr.Calc("val","node", "vzd","ny="&UzelShbm)
x(shag,13)=Rastr.Calc("val","node", "pgr","ny="&UzelShbm)
x(shag,14)=Rastr.Calc("val","node", "qgr","ny="&UzelShbm)



' массив производных
y(shag,0)=(x(shag,1)-x(shag-1,1))/(x(shag,8)-x(shag-1,8))
y(shag,1)=(x(shag,3)-x(shag-1,3))/(x(shag,8)-x(shag-1,8))
y(shag,2)=(x(shag,5)-x(shag-1,5))/(x(shag,8)-x(shag-1,8))
y(shag,3)=(x(shag,7)-x(shag-1,7))/(x(shag,8)-x(shag-1,8))

' определение максимальной производной на текущем шаге:
max_pr=Math.max(y(shag,0), y(shag,1), y(shag,2), y(shag,3))

Rastr.printp "максимальная производная = " & max_pr ' видимая строчка для онлайн контроля величины


Ну и т.д. , в остальном смысл не изменился.
Макрос запускается, и дойдя до действия Math.max() выскакивает табличка «Object required: 'Math'… и полный останов, макрос дальше не идёт…
Вот, такая вот фигня.
Он мне сказал: «Держись, браток!» - И я держался.

Последний раз редактировалось Соффи; 20.12.2011 в 18:40.
Соффи вне форума Ответить с цитированием
Старый 20.12.2011, 21:01   #2
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
(И е-мэйл который у меня был pogoninini@rambler.ru оказался вдруг нерабочим
в этом я уже убедился)
Цитата:
Есть ли в VBScript анализ выбора, аналогичный Math.max() и Math.min() в JScript
Нет. Придется вспомогательную функцию писать. Сколько аргументов Вам нужно сравнить? И сколько раз это требуется сделать?
Например, можно так:
Код:
Dim j
j = Max(Array(12, 18, 101, 9, 99)) ' образец синтаксиса
MsgBox j

Private Function Max(Arr)
Dim x
For Each x In Arr
    If x > Max Then Max = x
Next
End Function
Вложения
Тип файла: zip getMax.zip (304 байт, 11 просмотров)
Тишина – самый громкий звук

Последний раз редактировалось nerv; 20.12.2011 в 21:21.
nerv вне форума Ответить с цитированием
Старый 20.12.2011, 21:48   #3
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Смущение



4 переменные надо сравнить

y(shag,0), y(shag,1), y(shag,2), y(shag,3)

и далее сравнивать на каждом шаге.


я завтра на работе попробую так, как ты написал
скажу что получилось)


PS:
а емэйл для общения придется новый завести
этот только соглашался посылать, а ничо не принимает, вот конфуз-то...
Он мне сказал: «Держись, браток!» - И я держался.

Последний раз редактировалось Соффи; 21.12.2011 в 10:35.
Соффи вне форума Ответить с цитированием
Старый 20.12.2011, 21:55   #4
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от Соффи Посмотреть сообщение
а емэйл для общения придется новый завести
этот только соглашался посылать, а ничо не принимает, вот конфуз-то...
может превышен лимит сообщений/мб ящика?
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 20.12.2011, 22:01   #5
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Радость

ммм... скорее всего я долго им не пользовалась, он был заведен примерно в 2002 году, во времена активных переписок, потом перешла на рабочий , а этот был позабыт-позаброшен, может его как-то заблокировали хитро
однако, отправлять у меня получалось
Он мне сказал: «Держись, браток!» - И я держался.

Последний раз редактировалось Соффи; 21.12.2011 в 10:36.
Соффи вне форума Ответить с цитированием
Старый 21.12.2011, 12:32   #6
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Сообщение

Ну, NERV, с первого раза у меня никогда не получается

Я написала в точности как сказал, только заменила имена "j" и "x" на "a" и "b", для собственного удобства, так как буквы "j" и "x" у меня уже использовались

То есть записала (это конкретно то место в процедуре, это после очередного шага, сравнение после каждого шага):


y(shag,0)=(x(shag,1)-x(shag-1,1))/(x(shag,8)-x(shag-1,8))
y(shag,1)=(x(shag,3)-x(shag-1,3))/(x(shag,8)-x(shag-1,8))
y(shag,2)=(x(shag,5)-x(shag-1,5))/(x(shag,8)-x(shag-1,8))
y(shag,3)=(x(shag,7)-x(shag-1,7))/(x(shag,8)-x(shag-1,8))



Dim a
a = Max(Array(y(shag,0), y(shag,1), y(shag,2), y(shag,3)))
MsgBox a

Private Function Max(Arr)
Dim b
For Each b In Arr
If b > Max Then Max = b
Next
End Function


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

Может это от того что не указаны размеры заполняемых при сравнении "а" и "b" ?

Ведь ты написал что сравниваешь просто числа (19, 101...) а у меня сравниваются элементы массива "y" (массив y(999, 3) оглашен до тела процедуры, как это было у нас с массивом "х", а заполняется в самой процедуре) - может в этом тоже проблема..
Он мне сказал: «Держись, браток!» - И я держался.

Последний раз редактировалось Соффи; 21.12.2011 в 12:46.
Соффи вне форума Ответить с цитированием
Старый 21.12.2011, 14:06   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Соффи, полный код макроса/скрипта приложите
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 21.12.2011, 14:32   #8
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
По умолчанию

вот он, в приложении
Вложения
Тип файла: txt max.txt (10.9 Кб, 135 просмотров)
Он мне сказал: «Держись, браток!» - И я держался.
Соффи вне форума Ответить с цитированием
Старый 21.12.2011, 15:48   #9
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

1. Скачайте и установите Notepad++
2. Скачайте приложенный к этому сообщению файл
3. Откройте его в Notepad++
4. Сделайте Ваш код читаемым по примеру того, как я сделал в файле до
Код:
'==========================================
Вложения
Тип файла: zip max.zip (3.1 Кб, 11 просмотров)
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 21.12.2011, 16:01   #10
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Сообщение

NERV, Боже мой, как открылось , какая красота получилась-то в этом npp++ ..

(а нотепад++ я установила по твоей первой рекомендации, ещё тогда, когда у меня был первый вопрос )

щас попробую всё это запустить...
Он мне сказал: «Держись, браток!» - И я держался.

Последний раз редактировалось Соффи; 21.12.2011 в 17:54.
Соффи вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить максимальное число? ВДПУ Помощь студентам 4 12.12.2011 21:00
Как в vb6 выбрать максимальное число из 3-х? LINKEDimmortal Помощь студентам 0 01.06.2010 19:21
(ASM) Как обозначить максимальное число..?? hen Помощь студентам 2 05.03.2010 12:58
Как в idHttp выставить максимальное число времени, которое может быть потрачено на запрос? TwiX Работа с сетью в Delphi 7 15.02.2010 19:54
Максимальное число LOVELY Помощь студентам 2 12.02.2010 01:21