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

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.08.2010, 04:58
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 1  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Question Вопрос: наличие закономерности в 8-и системах...

приветствую...
пишу тут, т.к. прямого отношения к программингу на AS отношения не имеет, т.к. не имеет непосредственного отношения к флешу...
есть 8 системок уравнений. Системы - описывают условия, при которых выполняется некое действие... Системы попарно сочетаются (при выполнении условий или первой или второй системы - выполняется одно и то же действие, т.е. система1||система2 -> true => действие1; система3||система4 -> true => действие2; система5||система6 -> true => действие3; система7||система8 -> true => действие4) - мозг уже сломал как загнать их в условный оператор...
набивать условие if как
Код:
if(((x[i]==x[i-1])&&(x[i]<x[i+1])&&(y[i]==y[i+1])&&(y[i]<y[i-1]))||((x[i]==x[i+1])&&(x[i]<x[i-1])&&(y[i]==y[i-1])&&(y[i]<y[i+1]))){
//...
}
ввиду громоздкости и не читаемости не хочется...

может упустил какую-то закономерность? гляньте =)
_________
система 1
x[i]=x[i-1]
x[i]<x[i+1]
y[i]=y[i+1]
y[i]<y[i-1]

система 2
x[i]=x[i+1]
x[i]<x[i-1]
y[i]=y[i-1]
y[i]<y[i+1]
_________
система 3
x[i]=x[i-1]
x[i]>x[i+1]
y[i]=y[i+1]
y[i]>y[i-1]

система 4
x[i]=x[i+1]
x[i]>x[i-1]
y[i]=y[i-1]
y[i]<y[i+1]
_________
система 5
x[i]=x[i+1]
x[i]>x[i-1]
y[i]=y[i-1]
y[i]>y[i+1]

система 6
x[i]=x[i-1]
x[i]<x[i+1]
y[i]=y[i+1]
y[i]>y[i-1]
_________
система 7
x[i]=x[i+1]
x[i]<x[i-1]
y[i]=y[i-1]
y[i]<y[i+1]

система 8
x[i]=x[i-1]
x[i]>x[i+1]
y[i]=y[i+1]
y[i]>y[y-1]

P.S. не пинаемся и не ругаем особо...

Старый 26.08.2010, 12:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
8 систем, 8 строк и 32 условия. Лучше всего просто вбить, запоминая результат в булевой переменной, а лучше в массиве.

Старый 26.08.2010, 12:59
amesqit вне форума Посмотреть профиль Отправить личное сообщение для amesqit Найти все сообщения от amesqit
  № 3  
Ответить с цитированием
amesqit
 
Аватар для amesqit

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
8 условий дают 8 переменных, их можно запихнуть как говорилось выше в массивчик и обойти как треугольную матрицу с нулевыми диагональными элементами. Таким образом можно попарно сравнить все элементы.
__________________
ответ прост: be || !be == true

Старый 26.08.2010, 13:28
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 4  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Сомневаюсь, что эти системы нельзя преобразовать для начала.
система 2
x[i]=x[i+1]
x[i]<x[i-1]
y[i]=y[i-1]
y[i]<y[i+1]
система 4
x[i]=x[i+1]
x[i]>x[i-1]
y[i]=y[i-1]
y[i]<y[i+1]
Помимо if есть и другие операторы ветвления алгоритма.

Старый 01.09.2010, 15:40
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 5  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
На мой взгляд тут основная проблема в читабельности кода, я бы предложил занести всё в булевы переменные и потом использовать их.

Код AS3:
// Запоминаем условия для X
var isXEqualPrev:Boolean = (x[i] == x[i-1]);
var isXEqualNext:Boolean = (x[i] == x[i+1]);
var isXMorePrev:Boolean = (x[i] > x[i-1]);
var isXMoreNext:Boolean = (x[i] > x[i+1]);
var isXLessPrev:Boolean = (x[i] < x[i-1]);
var isXLessNext:Boolean = (x[i] < x[i+1]);
// Запоминаем условия для Y
var isYEqualPrev:Boolean = (y[i] == y[i-1]);
var isYEqualNext:Boolean = (y[i] == y[i+1]);
var isYMorePrev:Boolean = (y[i] > y[i-1]);
var isYMoreNext:Boolean = (y[i] > y[i+1]);
var isYLessPrev:Boolean = (y[i] < y[i-1]);
var isYLessNext:Boolean = (y[i] < y[i+1]);
 
// Проверка всех систем
if(isXEqualPrev && isXLessNext && isYEqualNext && isYEqualPrev)
{
    //…
}else if(isXEqualNext && isXLessPrev && isYEqualPrev && isYLessNext)
{
    //…
}
Как альтернатива занесения всех возможных условий в отдельные переменные можно в самом начале создать только 8 переменных, каждая из которых будет отвечать за соответствующую систему, и уже работать с этими переменными, например так:

Код AS3:
var isSystem1:Boolean = (x[i] == x[i-1] && x[i] < x[i+1] && y[i] == y[i+1] && y[i] < y[i-1]);
var isSytem2:Boolean = …

Старый 02.09.2010, 17:47
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 6  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Всем спасибо за наводки/подсказки =)
Psycho Tiger, amesqit, в массиве всё это и будет обрабатываться =)

aksios, акромя if в памяти всплывает switch, использование которого читаемость не улучшит ни сколько, ИМХО... А вот за то что ткнул где системки можно упростить - спасибо - я проглядел это =)) жаль только что такому упрощению могут подлежать только первые 2 пары систем (хотя... надо попробовать будет привести две последние пары к другому виду - может и там удастся упрощения добиться) =(

koIIImarik, спасибо за подсказку - второй вариант на мой взгляд общую читаемость кода улучшит - возьму на вооружение, наверное =)

Старый 02.09.2010, 20:26
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Contemplator, я вообще-то и написал то же, что и Кошмарик во 2 варианте =))

Старый 03.09.2010, 03:48
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 8  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Contemplator, я вообще-то и написал то же, что и Кошмарик во 2 варианте =))
=)) koIIImarik просто условно представил как будет выглядеть запись в первом варианте и втором - что лично мне умозрительно даёт лучшее представление о том как всё будет выглядеть в конечном итоге при том и другом варианте реализации =)
но и тебе, разумеется, огромное спасибо за помощь

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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