Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Нужен алгоритм поиска переменных с заданным значением ((из определенного множества переменных))
Нужен алгоритм поиска переменных с заданным значением
ВадимДата: Вт, 08 Июня 2010, 06:06 | Сообщение # 1
Генератор идей
Имеется 33 переменных вида [O1]...[O33] (в названии имеющих букву "O"+номер и содержащих значение от 1 до 7). Например, SetVar "[O24]" "3"
Надо найти и (желательно) "собрать в кучу" все переменные с наименьшими значениями (1 и 2) и все с наибольшими (6 и 7). Т.е., в идеале, алгоритм должен давать возможность определения имен переменных с заданным диапазоном значений (чтобы с его помощью, изменив конечно, можно было находить и переменные с наибольшим значением из указанного множества переменных).

Вот как я попытался найти просто наименьшее значение (без получения имени переменной и без попыток сбора всех переменных с меньшим значением). Однако, в результатах почему-то не фигурируют случаи, когда Nn>Nnn...
Мне кажется я тут что-то напутал (может кто видит ошибку?) и вообще, получившийся алгоритм мне не нравится, не даёт всех наименьших заданного диапазона...

Code
SetVar "[min]" "7"
Loop "1" "33" "[n]"
    SetVar "[Nn]" "[O[n]]"
    SetVar "[Nnn]" "[O[n]]+1"
    If "[Nn]" "<=" "[Nnn]"
      If "[Nn]" "<=" "[min]"
        SetVar "[min]" "[Nn]"
      Else
        SetVar "[min]" "[min]"
      EndIf
    Else
      SetVar "[min]" "[Nnn]"
    EndIf
EndLoop


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Вт, 08 Июня 2010, 08:07
 
СообщениеИмеется 33 переменных вида [O1]...[O33] (в названии имеющих букву "O"+номер и содержащих значение от 1 до 7). Например, SetVar "[O24]" "3"
Надо найти и (желательно) "собрать в кучу" все переменные с наименьшими значениями (1 и 2) и все с наибольшими (6 и 7). Т.е., в идеале, алгоритм должен давать возможность определения имен переменных с заданным диапазоном значений (чтобы с его помощью, изменив конечно, можно было находить и переменные с наибольшим значением из указанного множества переменных).

Вот как я попытался найти просто наименьшее значение (без получения имени переменной и без попыток сбора всех переменных с меньшим значением). Однако, в результатах почему-то не фигурируют случаи, когда Nn>Nnn...
Мне кажется я тут что-то напутал (может кто видит ошибку?) и вообще, получившийся алгоритм мне не нравится, не даёт всех наименьших заданного диапазона...

Code
SetVar "[min]" "7"
Loop "1" "33" "[n]"
    SetVar "[Nn]" "[O[n]]"
    SetVar "[Nnn]" "[O[n]]+1"
    If "[Nn]" "<=" "[Nnn]"
      If "[Nn]" "<=" "[min]"
        SetVar "[min]" "[Nn]"
      Else
        SetVar "[min]" "[min]"
      EndIf
    Else
      SetVar "[min]" "[Nnn]"
    EndIf
EndLoop

Автор - Вадим
Дата добавления - 08 Июня 2010 в 06:06
AlienДата: Вт, 08 Июня 2010, 12:24 | Сообщение # 2
Вот алгоритм нахождения минимального числа
Code
SetVar "[index_min]" ""
Loop "1" "33" "[i]"
       SetVar "[arr[i]]" "[i]"
       If "[index_min]" "=" ""
          SetVar "[index_min]" "[i]"
          SetVar "[min]" "[arr[i]]"
       EndIf
       If "[arr[i]]" "<" "[min]"
          SetVar "[index_min]" "[i]"
          SetVar "[min]" "[i]"
       EndIf
EndLoop
AlertBox "" "[min]"

Если надо, можно написать чтобы чередовал 33 раза от 1 до 7 :)

Добавлено (08 Июнь 2010, 12:20)
---------------------------------------------
вот твой пример

Code
SetVar "[index_min]" ""
Loop "1" "33" "[i]"
       SetVar "[n]" "[n]+1"
       SetVar "[O[i]]" "[n]"
       If "[n]" "=" "7"
        SetVar "[n]" "0"
       EndIf
        If "[index_min]" "=" ""
           SetVar "[index_min]" "[i]"
           SetVar "[min]" "[O[i]]"
        EndIf
        If "[O[i]]" "<" "[min]"
           SetVar "[index_min]" "[i]"
           SetVar "[min]" "[i]"
        EndIf
EndLoop

AlertBox "" "Минимальное значение в массиве: [min]"

Добавлено (08 Июнь 2010, 12:24)
---------------------------------------------
С наибольшим то же самое, только If "[O[i]]" "<" "[min]" знак поменять на > thumbs_up

Сообщение отредактировано
Alien - Вт, 08 Июня 2010, 12:25
 
СообщениеВот алгоритм нахождения минимального числа
Code
SetVar "[index_min]" ""
Loop "1" "33" "[i]"
       SetVar "[arr[i]]" "[i]"
       If "[index_min]" "=" ""
          SetVar "[index_min]" "[i]"
          SetVar "[min]" "[arr[i]]"
       EndIf
       If "[arr[i]]" "<" "[min]"
          SetVar "[index_min]" "[i]"
          SetVar "[min]" "[i]"
       EndIf
EndLoop
AlertBox "" "[min]"

Если надо, можно написать чтобы чередовал 33 раза от 1 до 7 :)

Добавлено (08 Июнь 2010, 12:20)
---------------------------------------------
вот твой пример

Code
SetVar "[index_min]" ""
Loop "1" "33" "[i]"
       SetVar "[n]" "[n]+1"
       SetVar "[O[i]]" "[n]"
       If "[n]" "=" "7"
        SetVar "[n]" "0"
       EndIf
        If "[index_min]" "=" ""
           SetVar "[index_min]" "[i]"
           SetVar "[min]" "[O[i]]"
        EndIf
        If "[O[i]]" "<" "[min]"
           SetVar "[index_min]" "[i]"
           SetVar "[min]" "[i]"
        EndIf
EndLoop

AlertBox "" "Минимальное значение в массиве: [min]"

Добавлено (08 Июнь 2010, 12:24)
---------------------------------------------
С наибольшим то же самое, только If "[O[i]]" "<" "[min]" знак поменять на > thumbs_up


Автор - Alien
Дата добавления - 08 Июня 2010 в 12:24
ВадимДата: Ср, 09 Июня 2010, 00:24 | Сообщение # 3
Генератор идей
Quote (Alien)
Вот алгоритм нахождения минимального числа
Alien[/b], спасибо! Буду пробовать!
Quote (Alien)
вот твой пример
[b]Что-то в этом примере он не то считает... Или я где-то наврал... В переменных выставил значения от 3 до 7, а в [min] показывает "1"... Ой, а во второй раз, при тех же цифрах, уже подсчитал [min] = "33" ...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Ср, 09 Июня 2010, 00:25
 
Сообщение
Quote (Alien)
Вот алгоритм нахождения минимального числа
Alien[/b], спасибо! Буду пробовать!
Quote (Alien)
вот твой пример
[b]Что-то в этом примере он не то считает... Или я где-то наврал... В переменных выставил значения от 3 до 7, а в [min] показывает "1"... Ой, а во второй раз, при тех же цифрах, уже подсчитал [min] = "33" ...

Автор - Вадим
Дата добавления - 09 Июня 2010 в 00:24
Alex3AДата: Ср, 09 Июня 2010, 01:38 | Сообщение # 4
Друг клуба ММВ
Есть такой модуль math в котором имеются ряд функций мин макс и много других, в том
числе и статистических и финансовых. Про нб не скажу, а для ммв я такой плагин делал.
Есть еще вариант с базой данных лайтскюель, да и плагин на нб такой есть, загнав свои переменные в базу, вы сможете найти среди них все что вам заблагорассудится оформив
соответствующий скюель запрос.
 
СообщениеЕсть такой модуль math в котором имеются ряд функций мин макс и много других, в том
числе и статистических и финансовых. Про нб не скажу, а для ммв я такой плагин делал.
Есть еще вариант с базой данных лайтскюель, да и плагин на нб такой есть, загнав свои переменные в базу, вы сможете найти среди них все что вам заблагорассудится оформив
соответствующий скюель запрос.

Автор - Alex3A
Дата добавления - 09 Июня 2010 в 01:38
AlienДата: Ср, 09 Июня 2010, 04:29 | Сообщение # 5
Quote (Вадим)
[b]Что-то в этом примере он не то считает... Или я где-то наврал... В переменных выставил значения от 3 до 7, а в [min] показывает "1"... Ой, а во второй раз, при тех же цифрах, уже подсчитал [min] = "33" ...

Code
SetVar "[index_min]" ""
SetVar "[n]" "2"
Loop "1" "33" "[i]"
        SetVar "[n]" "[n]+1"
        SetVar "[O[i]]" "[n]"
        If "[n]" "=" "7"
         SetVar "[n]" "2"
        EndIf
         If "[index_min]" "=" ""
            SetVar "[index_min]" "[i]"
            SetVar "[min]" "[O[i]]"
         EndIf
         If "[O[i]]" "<" "[min]"
            SetVar "[index_min]" "[i]"
            SetVar "[min]" "[i]"
         EndIf
EndLoop

AlertBox "" "Минимальное значение в массиве: [min]"

Просто не задана в начале переменная [n], он ей сразу задает значение 0, а потом приплюсовывает 1.

 
Сообщение
Quote (Вадим)
[b]Что-то в этом примере он не то считает... Или я где-то наврал... В переменных выставил значения от 3 до 7, а в [min] показывает "1"... Ой, а во второй раз, при тех же цифрах, уже подсчитал [min] = "33" ...

Code
SetVar "[index_min]" ""
SetVar "[n]" "2"
Loop "1" "33" "[i]"
        SetVar "[n]" "[n]+1"
        SetVar "[O[i]]" "[n]"
        If "[n]" "=" "7"
         SetVar "[n]" "2"
        EndIf
         If "[index_min]" "=" ""
            SetVar "[index_min]" "[i]"
            SetVar "[min]" "[O[i]]"
         EndIf
         If "[O[i]]" "<" "[min]"
            SetVar "[index_min]" "[i]"
            SetVar "[min]" "[i]"
         EndIf
EndLoop

AlertBox "" "Минимальное значение в массиве: [min]"

Просто не задана в начале переменная [n], он ей сразу задает значение 0, а потом приплюсовывает 1.


Автор - Alien
Дата добавления - 09 Июня 2010 в 04:29
ВадимДата: Ср, 09 Июня 2010, 06:11 | Сообщение # 6
Генератор идей
Quote (Alex3A)
модуль math в котором имеются ряд функций
В NB есть такая команда, может содержать любые формулы (только их надо уметь составлять), а специальной версии поиска значений по заданным характеристикам нет, это больше действительно на базы данных похоже....
Quote (Alex3A)
Есть еще вариант с базой данных лайтскюель
С базами еще вообще дел не имел. Всё больше поводов...
Quote (Alien)
Просто не задана в начале переменная [n], он ей сразу задает значение 0, а потом приплюсовывает 1.
Ага, понял. Спасибо!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alex3A)
модуль math в котором имеются ряд функций
В NB есть такая команда, может содержать любые формулы (только их надо уметь составлять), а специальной версии поиска значений по заданным характеристикам нет, это больше действительно на базы данных похоже....
Quote (Alex3A)
Есть еще вариант с базой данных лайтскюель
С базами еще вообще дел не имел. Всё больше поводов...
Quote (Alien)
Просто не задана в начале переменная [n], он ей сразу задает значение 0, а потом приплюсовывает 1.
Ага, понял. Спасибо!

Автор - Вадим
Дата добавления - 09 Июня 2010 в 06:11
Alex3AДата: Ср, 09 Июня 2010, 12:10 | Сообщение # 7
Друг клуба ММВ
Quote (Вадим)
Всё больше поводов...

Вот именно!
А добыча данных из базы почти на человеческом языке - выбрать то то, от тудого, и условия отбора, а так же куча полезных функций, и условия отбора могут быть сколь угодно сложными. Акромя того, результат запроса могет быть отсортирован, одним из способофф. У бд можна даж спросить сколька время и какое сегодня число, и она даст
ответ.
 
Сообщение
Quote (Вадим)
Всё больше поводов...

Вот именно!
А добыча данных из базы почти на человеческом языке - выбрать то то, от тудого, и условия отбора, а так же куча полезных функций, и условия отбора могут быть сколь угодно сложными. Акромя того, результат запроса могет быть отсортирован, одним из способофф. У бд можна даж спросить сколька время и какое сегодня число, и она даст
ответ.

Автор - Alex3A
Дата добавления - 09 Июня 2010 в 12:10
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Нужен алгоритм поиска переменных с заданным значением ((из определенного множества переменных))
  • Страница 1 из 1
  • 1
Поиск: