Форум
Написать нам
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Массивы (Не догоняю)
Массивы
Alex3AДата: Воскресенье, 25 Мая 2008, 23:15 | Сообщение # 31
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
для кнопки назад
i=i-1
Browser("ie","a$[i]")
для кнопки вперед
i=i+1
Browser("ie","a$[i]")

Добавлено (25 Май 2008, 23:08)
---------------------------------------------
Да проверяй что бы не выйти за границы массива,
If (i>1) Then
i=i-1
End

If (i<max) Then
i=i+1
End
ну, max = сколько у тебя страниц.

Добавлено (25 Май 2008, 23:15)
---------------------------------------------

Quote (serkhg)
читал что-то про переменные

Ну тогда, в скрипте свойств страницы не забудь установить
начальное значение переменной i=1,
и массив заполнить можно там же
a$[1]='<Embedded>\1.htm'
a$[2]='<Embedded>\2.htm'
a$[3]='<Embedded>\3.htm' ........
Можешь посмотреть у меня на сайте все описано и куча примеров.
 
Alex3AДата: Воскресенье, 25 Мая 2008, 23:35 | Сообщение # 32
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (serkhg)
так, с i понятно. А что на счет "ie" ?

Имя объекта, можешь давать любому объкту свое имя,
по умолчанию htm объект генерирует себе имя типа "Browser","Browser1"
и так далее, в зависимости от их количества на сранице.
 
Alex3AДата: Воскресенье, 25 Мая 2008, 23:36 | Сообщение # 33
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Надеюсь ты найдешь где в свойствах объкта его имя.
 
Alex3AДата: Воскресенье, 25 Мая 2008, 23:53 | Сообщение # 34
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Или указывай полный путь к странице a$[i]='f:/soft/mmb/index.html'
что бы посмоиреть.
или установи внешний плеер
tools-desingersetting-run external player...
на жми на кнопку и укажи путь к папке со своим проектом.
Рекомендую.
Или скомпилируй проект.
А, у тебя <Embedded>, тогда эти файлы должны быть включены в проект
project-embedded files - add.
не рекомендую, лучше использовать внешние файлы и применять <SrcDir> , включить
внешний плеер.

Добавлено (25 Май 2008, 23:53)
---------------------------------------------
Да, палка утебя не вту сторону
a$[i]='<Embedded>/index.html'.
\\\\ , надо /

 
Alex3AДата: Понедельник, 26 Мая 2008, 00:10 | Сообщение # 35
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Кинь скрипт.
 
Alex3AДата: Понедельник, 26 Мая 2008, 00:22 | Сообщение # 36
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
i - это переменная, то есть она может иметь разное значение, в зависимости
от того что ты назначишь.
i=2
a$[i ] будет эквивалентно a$[2]
и так далее, это индекс массива, то есть номер элемента в массиве,
соответственно ты получаешь то или иное значение (<Embedded>/2.htm),
путь и имя к файлу.

a$[1]='<Embedded>/1.htm'
a$[2]='<Embedded>/2.htm'
a$[3]='<Embedded>/3.htm'
а это что за фигня a$[i]='1' убери

 
basmeДата: Понедельник, 26 Мая 2008, 15:29 | Сообщение # 37
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
Да можно и без массивов вовсе.
Допустим, Ваши страницы имеют имена 1.htm, 2.htm, 3.htm. Вы заводите переменную, которая будет обозначать номер текущей страницы - например, переменная current. Кнопка "Далее" будет выполнять такой скрипт:
Quote

current=current+1
topage$=CHAR(current)+'.htm'
Browser("MyBrowser","topage$")

В кнопке "Назад" всё точно также, но значение переменной не увеличивается, а уменьшается на 1.
Можно точно такое же сделать с использованием массива, но будет дольше и сложнее.
 
YURIYДата: Понедельник, 26 Мая 2008, 19:14 | Сообщение # 38
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
basme, да, и не забыть сделать проверку на недопустимые значения i!


Вечная память Андрею Сергееву!
 
Alex3AДата: Понедельник, 26 Мая 2008, 20:16 | Сообщение # 39
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (basme)
Да можно и без массивов вовсе.

Конечно можно. НО.
Как по мне, не люблю многостраничных проектов, лучше одна динамическая, ну в крайнем случае,
нсколько, и то ради переходов.
 
ИгорьДата: Вторник, 16 Февраля 2010, 06:32 | Сообщение # 40
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Доброго времени, нконец то снова попалась интересная работка. Сделал две лабораторные, на третьей запнулся. Итак, смысл - индикатор температуры и прибор, регулирующий напряжение. Выставил, например, 0,96 милливольт - индикатор показал 24 градуса. Выставил 11,18 - индикатор показал 275 градусов. Но вот в чем загвоздка - нет прямой зависимости между температурой и милливольтами. ну, там, например - милливольты меняются через 0,05, а градусы соответственно, через 10.

Имеем таблицу с 50 строками, но я укажу только несколько

температура - милливольт
325-13,25
350-14,30
375-15,35
400-16,40
425-17,46

И вот я сперва начал так:

If (mv=13.25) Then
T=325
Else
If (mv=14.30) Then
T=350
Else

End
End

Но, представьте, сколько этих самых if Then Else будет.

Нутром чувствую, что массивы могут помочь... но вот как... Для меня это пока тяжелый вопрос, потому как я массивами ни разу не пользовался.
Ну, предположим, заполнил я массив типа
mv[1] = 13.25
mv[2] = 14.30
mv[3] = 15.35
mv[4] = 16.40
mv[5] = 17.46

А вот что с этим добром дальше делать...
И потом - регуляторами выставляется именно эти самые mv.

В общем, работа стала. Все уже отработано - и крутящиеся регуляторы, и стрелочные приборы и графики и черт те что... но вот как в данном случае быть - ???

Добавлено (16 Февраль 2010, 06:32)
---------------------------------------------
Я так понимаю, что без if Then Else все равно не обойтись...


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 06:47 | Сообщение # 41
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ну и что сделать то надо, в готовой таблице сопоставить значения? Если да то не проблема. А они не будут меняться, показания то могут разные быть? Если есть фиксированное значение, например mv, и есть неопределенное T, то его нужно сопоставить заданному mv, правильно я понял? а то суть проблемы не отражена конкретно в данном посте.

Добавлено (16 Февраль 2010, 06:42)
---------------------------------------------
или все значения фиксированы и их надо просто сопоставить друг с другом?

Добавлено (16 Февраль 2010, 06:47)
---------------------------------------------
что там у тебя, график зависимости строишь чтоли?




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:02 | Сообщение # 42
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Ну да, когда выставляешь, например, mv=14.30 то Т должно быть равное, соответственно таблице, 350

Добавлено (16 Февраль 2010, 06:52)
---------------------------------------------
Да, студент должен снять эти показания и построить график.

Там на самом деле все сложнее, потому как должны быть погрешности и устанавливаться начальная температура, но все равно пляска идет именно от этих двух переменных. С погрешностями мне все понятно - вот, как эти фиксированные значения сопоставить?

Добавлено (16 Февраль 2010, 07:02)
---------------------------------------------
а, блин, набрехал... График строился в предыдущей лабораторной - но там по формуле все шло. А тут просто выставляется напруга, показывается температура и студенты сравнивают эти значения с эталонными из таблицы. Соответственно, мне нужно к эталонному значению прибавить или отнять какое-то число "от балды". Но это потом...

А сейчас мне именно соотношение фиксированных значений нужно... Не знаю... Уже башка туго соображает, две недели с этими лаюбораторными сижу...


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:06 | Сообщение # 43
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
а как это конкретно должно быть реализовано в проекте? так чтоли?

Добавлено (16 Февраль 2010, 07:04)
---------------------------------------------
т.к. тут возможны варианты в зависимости от того что конкретно надо сделать в самом проекте.

Добавлено (16 Февраль 2010, 07:06)
---------------------------------------------
можно массивы запихать в одну строку с разделителями и вытаскивать и сопоставлять в цикле в зависимости от номера в массиве, а номер в массиве нам дает счетчик цикла. так будет меньше кода писать

Прикрепления: mv.zip (0.7 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:06 | Сообщение # 44
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
БЛИ-И-ИН!!! Да! Точнее, там не руками вбивать цифры - они регуляторами выставляются, но суть не меняется - расчет вот именно такой и нужен! СПАСИБО!!!! Ну, сейчас попробую именно на регуляторах и индикаторах...

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:08 | Сообщение # 45
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (DEMBEL)
а номер в массиве нам дает счетчик цикла

я уже где-то описывал данный подход подробно...

Добавлено (16 Февраль 2010, 07:08)
---------------------------------------------
или только собирался... :) возьми на заметку.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:22 | Сообщение # 46
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Обязательно!
Уже попробовал подставлять случайные значения-погрешности - все работает! То есть ,напрмиер, регулятором нужно выставить не конкретно 14.30, как в таблице (это эталонная величина), а, например, 14.29 или 14.32 - и индикатор должен показать 350. То есть мы к фиксированному элементу массива присобачиваем случайное дробное число - и получаем то, что нужно. Черт, я подобное делал, но там я использовал if - это такой код был! Аж вспомнить страшно... и это при том, что там значений было всего 15...

А тут... Просто... Елки, а две страницы про массивы... читал-читал... читал-читал... И не врубился, пока пример не увидел thumbs_up


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:24 | Сообщение # 47
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Я все собираюсь "статью" об этом написать, чтобы раскрыть тему полностью, но чтото никак не соберусь :(



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:29 | Сообщение # 48
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Да уж... нехватка времени - больная тема, наверное, всех...

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:34 | Сообщение # 49
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Игорь)
То есть ,напрмиер, регулятором нужно выставить не конкретно 14.30, как в таблице (это эталонная величина), а, например, 14.29 или 14.32

это как так ты присобачиваешь, в моем примере все значения фиксированы. Если хочешь присобачивать к заданному MV, то делай это только для визуализации, а не в скрипте, он считает по фиксированным, а отображать MV с погрешностью (типа мы его ввели) ты конечно можешь, но погрешность должна быть отдельно. сам не понял что написал, но надеюсь ты догнал что я хочу сказать.

Добавлено (16 Февраль 2010, 07:34)
---------------------------------------------
или ты уже задаешь mv[i] с погрешностями?




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:40 | Сообщение # 50
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
А это... вот так, например

mv[1] = 13.25+RND(10)

Массив вписываем в скрипт выполнения при загрузке страницы. Что там будет - неизвестно, но поскольку значение не вписывается от руки, а выставляется тремя регуляторами плюс-минус 0,01, то в любом случае мы попадем на это "неизвестное" значение.

Я уже попробовал - работает.

Добавлено (16 Февраль 2010, 07:40)
---------------------------------------------
RND(10) - это я от фонаря написал...


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:40 | Сообщение # 51
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Игорь)
то в любом случае мы попадем на это "неизвестное" значение.

ну смотри, т.к. значения mv сопоставляются с Т только по номерам массива, ты можешь получить ошибку если чтото не совпадет или совпадет неверно. Непосредственно mv и Т на соответствие не проверяются, ну так даже лучше, универсальный вариант.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 07:48 | Сообщение # 52
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Не, так а сам массив я написал в одном скрипте - стартовом, а непосредственно вычисления - в другом, так что значения RND создаются один раз и не меняются.

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 07:59 | Сообщение # 53
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ну смотри, ты сам знаешь что делаешь. а массив все же перепиши в одну строку, у тебя же там только цифры, так будет удобнее и быстрее, и вынимай их с помощью GetArrayItem

Добавлено (16 Февраль 2010, 07:59)
---------------------------------------------
хотя в твоем случае удобнее наверно отдельно определять переменные массива, ты же там чтото все равно прибавляешь к ним...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 08:03 | Сообщение # 54
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
А в строку - это, пардон... как?

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 08:05 | Сообщение # 55
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Items$ = 'item1#item2#item3#item4#item5#'
For i = 1 To 5
ArrayItem$ = GetArrayItem(Items$,#,i)
Message("Элемент массива: ","ArrayItem$")
Next i




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 08:06 | Сообщение # 56
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Ай, елки... да да да...

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
DEMBELДата: Вторник, 16 Февраля 2010, 08:07 | Сообщение # 57
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ну короче сам решай как лучше и удобнее... я отключаюсь...



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
ИгорьДата: Вторник, 16 Февраля 2010, 08:10 | Сообщение # 58
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
спасибо!

Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
Alex3AДата: Вторник, 16 Февраля 2010, 13:52 | Сообщение # 59
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Игорь, при
Items$ = 'item1#item2#item3#item4#item5#'
после заполнения в цикле массива ArrayItem$
выражения
а$=ArrayItem$[1]
а$= GetArrayItem(Items$,#,1)
будут эквивалентны.
Ну и в реальных вещах, соотношения напряжение-температура имеют определенную
математическую зависимость, иначе не имеет смысла использовать датчик, характеристику которого нельзя описать.
 
ИгорьДата: Четверг, 18 Февраля 2010, 06:53 | Сообщение # 60
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
Ну и в реальных вещах, соотношения напряжение-температура имеют определенную
математическую зависимость,

Я вот тоже так думаю... Но преподаватель таких зависимостей дат не может - у него тупо таблица...


Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету...
Марк Твен
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Массивы (Не догоняю)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: