Среда, 15.05.2024, 00:11
Приветствую Вас Гость

Mominis Russia

Меню сайта
Категории раздела
Уроки по Mominis [9]
Здесь представлены основные возможности конструктора Mominis.
Сторонние конструкторы и движки [0]
Наш опрос
Как вы узнали о нашем сайте
Всего ответов: 352
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Уроки по Mominis

Массив, возвращение результата, рекурсия, стэк, очередь и QuickSort
На данном этапе эволюции в платформе Mo'Minis нет встроенной поддержки массивов.
Но это можно сделать самому, так даже интересней

Создадим спрайт arr8 и добавим ему следующие Numeric properties:

a0,a1,a2,a3,a4,a5,a6,a7 //хранители информации
N=8 //длина массива

Теперь надо предоставить доступ к этим переменным (a0..a7).
Создадим следующие Custom Event-ы:
Set(x,k) // arr[k] = x
Get(k) // A0 = arr[k]


Тут натыкаемся на еще одну засаду, функции (custom events) пока еще не умеют возвращать значения.
Но это можно обойти следующим образом:
Создадим глобальную переменную A0, и условимся что все функции будут помещать туда свой результат. Имя A0 взято по аналогии с акумулятором в ассемблере.
Важно помнить что информация в A0 валидна лишь сразу после вызова функции (Custom Event), то есть ее можно использовать лишь в следующей строке комманд (actions), иначе есть большой шанс, что другая функция уже успела поместить туда свой результат.

Подобным образом можно создать массив любой разумной длины.
В примере показано как используя массив arr8, создать массивы arr16, arr32 и arr64.
Кроме простого хранителя информации, массив может служить как стэк (stack - LIFO) и очередь (queue - FIFO). (см. пример)


Имея в своем распоряжении стэк мы можем использовать рекурсию (см. пример ряда Фибоначчи)

Часто массивы приходится сортировать.
Один из самых быстрых алгоритмов сортировки это QuickSort - О(nlog(n)).

Смотри имплементацию в примере.

http://www.mominis.com/forum/index.php?action=dlattach;topic=481.0;attach=121


Урок предоставлен администраций Mominis.com 



Категория: Уроки по Mominis | Добавил: Infernal54 (15.03.2010)
Просмотров: 1126 | Теги: Стек | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Полезности
Мини-чат
200