Просмотр полной версии : И снова арреи, но не просто.....
Countach
07.12.2001, 00:44
Я тут уже спрашивал недавно про массивы во флэше, а вот теперь появилось не сколько других проблем. PS мы говорим исключительно о двухмерных массивах. И просьба не засарять топик ненужными коментариями, спасибо. :)
В прошлый раз мы нашли очень удобный метод
a=new Array(2);
b=new Array(2);
myarray= new Array(a,b);
for (i=0; i<2; i++) {
for (j=0; j<2; j++) {
myvar=random(5);
myarray[i][j]=myvar;
}
}
for (i=0; i<2; i++) {
for (j=0; j<2; j++) {
myvar=myarray[i][j];
trace(myvar);
}
}
Тут вродеб все чудненько, но у меня такой случай, что я не знаю размеры массива с самого начала :(
То есть
будет например переменная
NoResources=6; //кол-во ресурсов в системе
И будет другая переменная, которую введет пользователь
NoProcesses
Вот мне и надо бы хотя бы один примерчик как такое осуществить, надо задекларировать массив, занести туда данные, а потом есстесно считать данные оттуда :) вот и все.
Пологите пожалуйста, и желательно не очень трудным способом, а то итак программа будет нагружена ойойой как :)
Всем заранее спасибо :)
Кароче говоря делаеш форму первое поле получает переменную "X" да и второе к примеру переменную "Y"...
потом пишеш
my_array = new Array () - создали одномерный массив но не определили для него размера :) !!!
за тем
for (i = 0; i<= X ; i++){
//здесь присваеваеш для каждого элемента массива свой массив!!!
for (j = 0; j<= Y ; j++){
//здесь описуеш свой массив
my_array[i] = new Array(); опять таки не определенного размера :). Затем тулиш туда свои переменные
my_array[i][j] = {...}-это не указатель как прописывать строку а указатель на пустое множество типа можно присвоить чему хочеш ... Это не намек на C++... :D
}
}
Ну вот и все но я кажется уже об этом писал когдато :D :) :D
Читать массив my_array также как и заполнять
variable = y_array[x][y]
где
- x,y - переменные я думаю тебе известные
- variable переменная каторой нужно присвоить ечейку массива
Да чуть не забыл если у тебя массив будет не матричного вида а на пример такой
1,2,3,4,5,6,7,8,9,0
2,3,4,5,6,7,8
1,2,3,3,4,5,6,7,8,0
1,1,2,2,1,1
1,
то в место пустых ячеек flash присваюет нолики хотя я думаю ты и сам догадалси :D то есть получиш ты такое вот...
1,2,3,4,5,6,7,8,9,0
2,3,4,5,6,7,8,0,0,0
1,2,3,3,4,5,6,7,8,0
1,1,2,2,1,1,0,0,0,0
1,0,0,0,0,0,0,0,0,0
удачи ;)
Countach
07.12.2001, 20:00
Блин ну написано вроде намана, но вот проблемки опять. Теперь конкретней :)
my_array = new Array ();
X=6;
Y=5;
for (i = 0; i<= X ; i++){
for (j = 0; j<= Y ; j++){
my_array[i] = new Array();
my_array[i][j] = {...};
}
}
my_array[1][1]=6;
trace(my_array[1][1]);
В output выводит следущее, просто во флешке такое никада не делал и не знаю, это наверное оч просто
Scene=Scene 1, Layer=Layer 1, Frame=1: Line 8: Identifier expected
my_array[i][j] = {...};
Scene=Scene 1, Layer=Layer 1, Frame=1: Line 10: Unexpected '}' encountered
}
Вообщем помогите пожалуйста :( почему он так ругается?
ЗЫ мне это фигня не понятна на С++ смахивает но типа что тут, и действительно ли надо 3 и только 3 точки там, что синтаксис такой типа ? :)
my_array[i][j] = {...};
Countach
07.12.2001, 20:03
А вот так ВАЩЕ ни хрена не выводит :(
my_array = new Array ();
X=6;
Y=5;
for (i = 0; i<= X ; i++){
for (j = 0; j<= Y ; j++){
my_array[i] = new Array();
myvar=random(5);
my_array[i][j] = myvar;
}
}
trace(my_array[1][1]);
:confused:
Countach
07.12.2001, 20:07
PS плиз не используйте Х и У как фиг знает чё, пишите плизззз row и column
а то итак через задницу все во флэшке ;)
Countach
07.12.2001, 20:17
Не млин мне пора на прогулку, а то уже хернииииия пошла. :)
my_array = new Array ();
X=6;
Y=5;
for (i = 0; i<= X ; i++){
my_array[i] = new Array();
for (j = 0; j<= Y ; j++){
myvar=random(5);
my_array[i][j] = myvar;
}
}
for (i = 0; i<= X ; i++){
for (j = 0; j<= Y ; j++){
trace(my_array[i][j]);
}
}
Во так работаеть :)
Блин а все-таки Х=row, Y=column??? Правильно???
ЗЫ Big_J_=Big_thx_;
ну дык а количество элементо массива кто указывать будет? :)
или так тогда:
my_array = new Array ();
X=6;
Y=5;
for (i = 0; i<= X ; i++){
my_array.push(new Array());
for (j = 0; j<= Y ; j++){
myvar=random(5);
my_array[i].push(myvar);
}
}
trace(my_array[1][1]);
или же:
X=6;
Y=5;
my_array = new Array(X);
for (i = 0; i<= X ; i++){
my_array[i]=new Array(Y)
for (j = 0; j<= Y ; j++){
myvar=random(5);
my_array[i][j]=myvar;
}
}
trace(my_array[1][1]);
Countach
07.12.2001, 20:22
2ish
пасибки
Но вот тока я смотрю вы тут все STACK любите трогать, со всеми там "пуш энд поп" :)
Вот как я сделал, так мона ж тоже. Наверно тоже прально. Или я не усек мистейку??? ;)
Countach
07.12.2001, 20:26
Эээээээ почему он мне 42 элемента в аутпут выдает вместо 30 (типа 6 на 5)????
Не понял :(
my_array = new Array ();
X=6;
Y=5;
for (i = 0; i< X ; i++){
my_array[i] = new Array();
for (j = 0; j< Y ; j++){
myvar=random(5);
my_array[i][j] = myvar;
}
}
for (i = 0; i< X ; i++){
for (j = 0; j< Y ; j++){
trace(my_array[i][j]);
}
}
Тут просто до меньше икса надо идти, а не до меньше равно :)
for (i = 0; i< X ; i++){
:)) ну можно и так
ЗЫ: push, pop ...эээ причем тут стеки :) эт тебе не асм эт экшенскрипт :) стандартные функции присущие объекту Array
не 6х5 а 7х6 :)
0<i<=5 // (0,1,2,3,4,5) total 6
o<j<=6 // (0,1,2,3,4,5,6) total 7
Countach
07.12.2001, 20:31
Ууууу тут как все запущено :( не ну идея такая же наверно
push -> write to the top
pop -> read from the top
:)
ASM rulez ;sometimes :D
Countach
07.12.2001, 20:33
:)
Пасибо бАльшое человеческое, я уж думал на С++ делать этот примитив :(
Флэшик спас :) отлечу на шарика, тычер сказал что ему до фени в чем мы програмить будем :)
Countach
07.12.2001, 20:38
Не блин, а если серьёзно :) Х (икс) - это ряды или колонки??
//и пора пойти воздуха подышать, холодно блин +10 :(
:) это вопрос философии, смотря как смотреть :)
ну вобще принято что обрабатываются строчки столбца, а не столбцы строчки, то есть для твоего примера X это количество столбцов а i номер столбца.
Countach
07.12.2001, 20:48
[big joke]
А в С++ типа так
for (i=0; i<row; i++) {
for (j=0; j<column; j++) {
....
}
}
получается что обрабатываются колонки одного ряда, затем колонки другого ряда
ХОТЯ
это прально дело философии
лана все пора отдохнуть :)
[/big joke]
УШЕЛ, тока не дразните, все сам понял :p
Ну ты Countach даеш
давай по парядку тебе нужен был массив да ПОЛУЧИ
my_array = new Array();//СТОЛБИКИ
for (col = 0; col<=6; col++){//цыкл для каждого столбика
my_array[col] = new Array();//объевляеш массив строк для каждого из столбиков :)
for(row = 0; row<= 5; row++){
my_array[col][row] = random(5) //Вроде так ДА???
}
}
А потом трейсь себе ...
Тока я одого не понял если ты C++ изучал то не ушто есть разница как переменную назвать :D
Это как в армейском анегдоте :)
Летело "К" самолетов не К-а мало пусть будет "Н" самолетов :)
главное алгоритма :)
Ну ладушки дерзай... УДАЧИ
Countach
10.12.2001, 17:12
Блин я просто тада плохо соображал, а ты наеежаешь теперь :( Писал фиготень всякую, я бы на следущий день постирал это все ;)
Сори за дурь не подумай ниче плохого :p
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.