Массивы
|
|
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) --------------------------------------------- можно массивы запихать в одну строку с разделителями и вытаскивать и сопоставлять в цикле в зависимости от номера в массиве, а номер в массиве нам дает счетчик цикла. так будет меньше кода писать
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... А тут... Просто... Елки, а две страницы про массивы... читал-читал... читал-читал... И не врубился, пока пример не увидел
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
|
|
| |
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) Ну и в реальных вещах, соотношения напряжение-температура имеют определенную математическую зависимость, Я вот тоже так думаю... Но преподаватель таких зависимостей дат не может - у него тупо таблица...
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
|
|
| |