|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
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 | ||
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Цитата:
Цитата:
Например, можно так: Код:
Тишина – самый громкий звук
Последний раз редактировалось nerv; 20.12.2011 в 21:21. |
||
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 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
может превышен лимит сообщений/мб ящика?
Тишина – самый громкий звук
|
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 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Соффи, полный код макроса/скрипта приложите
Тишина – самый громкий звук
|
21.12.2011, 14:32 | #8 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
вот он, в приложении
Он мне сказал: «Держись, браток!» - И я держался.
|
21.12.2011, 15:48 | #9 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
1. Скачайте и установите Notepad++
2. Скачайте приложенный к этому сообщению файл 3. Откройте его в Notepad++ 4. Сделайте Ваш код читаемым по примеру того, как я сделал в файле до Код:
Тишина – самый громкий звук
|
21.12.2011, 16:01 | #10 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 33
|
NERV, Боже мой, как открылось , какая красота получилась-то в этом npp++ ..
(а нотепад++ я установила по твоей первой рекомендации, ещё тогда, когда у меня был первый вопрос ) щас попробую всё это запустить...
Он мне сказал: «Держись, браток!» - И я держался.
Последний раз редактировалось Соффи; 21.12.2011 в 17:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как определить максимальное число? | ВДПУ | Помощь студентам | 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 |