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

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

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

Регистрация: Oct 2010
Сообщений: 53
По умолчанию Произведение двух квадратных матриц

Здравствуйте. Пишу программу для нахождения произведения двух квадратных матриц. После ввода размерности матрицы, создаются поля для ввода элементов. Как эти элементы добавить в двумерный массив и по возможности перемножить на элементы другой матрицы?
Вот часть кода(поля создаются а в массив не добавляются):

Код AS3:
var arr:Array=new Array();
         var tf:TextField;
        for (var j:int = 0; j < num_ans; j++) //создание столбцов для ввода. num_ans - размерность матрицы. 
         {
       for (var i:int = 0; i < num_ans; i++)//создание строк для ввода. 
            {
            tf = new TextField();
            tf.type = TextFieldType.INPUT;
       tf.x = 100 + (15 * j);
            tf.y = 80 + (15 * i);
            tf.width = 15;
            tf.height = 15;
            tf.border = true;
            tf.background = true;
            tf.defaultTextFormat = text_type;
       tf.backgroundColor = 0xFFFFFF;
            addChild(tf);
            arr[i][j].push(tf);
       }
       }

Старый 15.03.2011, 00:43
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Наверное потому, что забыли создать массив
Код AS3:
arr[i] = new Array();
....
....
arr[i][j].push(tf);

Старый 15.03.2011, 00:52
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 3  
Ответить с цитированием
linnard

Регистрация: Oct 2010
Сообщений: 53
Код AS3:
arr[i] = new Array();
Синтаксическая Ошибка: ожидается точка с запятой перед leftbracket

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Мы не можем создать 2-мерный массив. Мы можем только создать массив массивов:
Код AS3:
 
var table:Array/*of Array*/ = new Array();
var column:Array/*of TextField*/ = null;
 
var col:int = 0;
var width:int = 10;
 
var row:int = 0;
var height:int = 10;
 
for (col = 0; col  < width; ++col) {
 
column = new Array();
table.push(column);
 
for (row = 0; row < height: ++row) {
 
column.push(new TextField());
 
}
 
}
А потом к этому массиву массивов можно обращаться так
Код AS3:
table[x][y].text = "Какой-то текст"
__________________
...вселенская грусть

Старый 15.03.2011, 00:54
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 5  
Ответить с цитированием
linnard

Регистрация: Oct 2010
Сообщений: 53
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Мы не можем создать 2-мерный массив. Мы можем только создать массив массивов:
Код AS3:
 
var table:Array/*of Array*/ = new Array();
var column:Array/*of TextField*/ = null;
 
var col:int = 0;
var width:int = 10;
 
var row:int = 0;
var height:int = 10;
 
for (col = 0; col  < width; ++col) {
 
column = new Array();
table.push(column);
 
for (row = 0; row < height: ++row) {
 
column.push(new TextField());
 
}
 
}
А потом к этому массиву массивов можно обращаться так
Код AS3:
table[x][y].text = "Какой-то текст"
Спасибо, буду экспериментировать)

Добавлено через 1 минуту
Цитата:
Сообщение от i.o. Посмотреть сообщение
вы уверены, что именно это строка? я уверен, что нет
Уверен, ошибка на этой строке

Добавлено через 23 часа 7 минут
Подскажите пожалуйста, где я допустил ошибку в ниже приведенном алгоритме умножения двух квадратных матриц. почему-то не работает...

Код AS3:
var table_res:Array =new Array();
var column_res:Array = null;
for(i = 0; i < num_ans; i++)
	column_res = new Array(); 
	table_res.push(column_res);
    for(j = 0; j < num_ans; j++){
 
      for(var k:int = 0; k < num_ans; k++)
        //table_res[i][j] += table[i][k] * table2[k][j];
   column_res.push(table[i][k].text * table2[k][j].text); 
	}

Старый 15.03.2011, 00:54
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
вы уверены, что именно это строка? я уверен, что нет

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

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

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


 


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


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