Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.12.2008, 21:42
igrayka вне форума Посмотреть профиль Отправить личное сообщение для igrayka Найти все сообщения от igrayka
  № 1  
Ответить с цитированием
igrayka
[+1.3 21.08.09]
 
Аватар для igrayka

Регистрация: Oct 2007
Сообщений: 39
Отправить сообщение для igrayka с помощью ICQ Отправить сообщение для igrayka с помощью Skype™
По умолчанию Выборка наименьшего значения из массива

Есть массив , в нем допустим 13 2 16 233 188 45
как попрсить флэш чтобы выбрала наименьшее ( наибольшее ? )
Пожалуйста

Добавлено через 7 минут
Если в массиве 2-3 числа , то я понимаю их можно сравнить , а если больше ?

Старый 03.12.2008, 22:09
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 2  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Код AS1/AS2:
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
Arr.sort(sravnenie);
var vivod_min = Arr[0];//наименьшее число
Arr.reverse()
var vivod_max = Arr[0];// наибольшее число
trace(vivod_min)
trace(vivod_max)
//
function sravnenie(el1, el2) {
	if (el1<el2) {
		return -1;
	} else if (el1>el2) {
		return 1;
	} else {
		return 0;
	}
}
__________________
Я просто добрый шутник.

Старый 03.12.2008, 23:04
igrayka вне форума Посмотреть профиль Отправить личное сообщение для igrayka Найти все сообщения от igrayka
  № 3  
Ответить с цитированием
igrayka
[+1.3 21.08.09]
 
Аватар для igrayka

Регистрация: Oct 2007
Сообщений: 39
Отправить сообщение для igrayka с помощью ICQ Отправить сообщение для igrayka с помощью Skype™
Большое спасибо !

Старый 04.12.2008, 04:39
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 4  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
если сам массив изменяться не должен, а нужно только найти значения, то можно так:
Код AS1/AS2:
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
 
 
function max_min(arr){
	var indexes = arr.sortOn(null, 16 | 8);
	var min = arr[indexes.shift()];
	var max = arr[indexes.pop()];
	return {max: max, min: min};
}
 
 
var rslt = max_min(Arr);
 
trace('max = ' + rslt.max + ', min = ' + rslt.min);
trace(Arr);


Последний раз редактировалось Mnilionic; 04.12.2008 в 04:45.
Старый 04.12.2008, 11:07
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 5  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Вариант:
Код AS1/AS2:
var arr:Array = new Array();
arr = [13, 2, 16, 233, 188, 45];
var arr2:Array = new Array();
arr2=arr2.concat(arr)
arr2.sortOn("", Array.NUMERIC);
trace("arrMin="+arr2[0])
trace("arrMax="+arr2[arr.length-1])

Старый 09.12.2008, 20:44
igrayka вне форума Посмотреть профиль Отправить личное сообщение для igrayka Найти все сообщения от igrayka
  № 6  
Ответить с цитированием
igrayka
[+1.3 21.08.09]
 
Аватар для igrayka

Регистрация: Oct 2007
Сообщений: 39
Отправить сообщение для igrayka с помощью ICQ Отправить сообщение для igrayka с помощью Skype™
Жень Шень
Привет , слушай , а что значит конкатенация , для чего она ? )
У меня все вроде работает и без неё , использую Array.NUMERIC

Старый 09.12.2008, 22:59
_musicano вне форума Посмотреть профиль Отправить личное сообщение для _musicano Посетить домашнюю страницу _musicano Найти все сообщения от _musicano
  № 7  
Ответить с цитированием
_musicano
 
Аватар для _musicano

Регистрация: Dec 2008
Сообщений: 31
Отправить сообщение для _musicano с помощью ICQ
Ребята, а не проще ли так?
(поиск наименьшего члена последовательности)

Код AS1/AS2:
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
N = Arr.length;
 
min = Arr[0];
for (i=1; i<N; i++) {
	if (Arr[i]<min) {
		min = Arr[i];
	}
}
 
trace(min);
Функции sort, sortOn, reverse, concat вообще-то необоснованно увеличивают шаги алгоритма (и он дольше работает, хоть это и незаметно в данном случае). Несмотря на современные мощности, красоту алгоритмов ещё никто не отменял.

Объясняя человеку, как ищется наименьший элемент, неплохо бы детально понимать, как работает та же функция sortOn, согласны?

Старый 10.12.2008, 11:32
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 8  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от _musicano Посмотреть сообщение
Объясняя человеку, как ищется наименьший элемент, неплохо бы детально понимать, как работает та же функция sortOn, согласны?
Я доверяю ХЭЛПу от разработчика. В нем практичечки все понятно. Но может быть sortOn особый случай?
2igrayka я тоже много не знаю, но если возникает проблема толкования слова я обращаюсь сначала к википедии. Это не "тык", а предложении внести ссылку в свои закладки.
А если это по поводу "arr2=arr2.concat(arr)", то смотрим пункт #4: "если сам массив изменяться не должен..."


Последний раз редактировалось Жень Шень; 10.12.2008 в 11:37.
Создать новую тему Ответ Часовой пояс GMT +4, время: 16:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.