Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 10
1

Массив в обьектах

08.10.2010, 19:03. Показов 773. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна помощь
У меня есть Edit-ы:
e11,e12,e13 и тд и есть массив a[i][j]
для ввода массива данными , я сделал так:
C++
1
2
3
4
for(i=0;i<n;i++){
     for(j=0;j<n;j++)
     a[i][j]=random(20);
     }
и потом дальнейшие действия для заполнения Едитов-числами из массивов
C++
1
2
3
е11->Text=(String)a[0][0];
е12->Text=(String)a[0][1];
е13->Text=(String)a[0][2];
можно ли как-то сделать так что-бы цифры в едитах можно было заменить на i и j
чтобы получилось типо такого:
C++
1
2
3
4
5
for(i=0;i<n;i++){
     for(j=0;j<n;j++)
     a[i][j]=random(20);
    /*>>*/е[i][j]/*<<*/->Text=(String)a[i][j];
     }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2010, 19:03
Ответы с готовыми решениями:

Как называются методы, которые можно вызывать на любых обьектах?
5 клас 2-ая четверть. Методы Как называются методы, которые можно вызывать на любых обьектах....

Разработка системы расчета ущерба окружающей среде при авариях на потенциально опасных обьектах
Нужно предусмотреть не менее 3-х видов загрязнений и не менее 3-х элементов окружающей среды, все...

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный...

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

5
manfret
09.10.2010, 14:51 2
Попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TEdit ***mas=new TEdit**[n];          //двумерный массив указателей 
for (int j = 0; j < n; j++) {
mas[j]=new TEdit*[n];
}
for(i=0;i<n;i++){
     for(j=0;j<n;j++)
     a[i][j]=random(20);
     mas[i][j]=new TEdit(this);
     mas[i][j]->Name="e"+IntToStr(i)+IntToStr(j);
     mas[i][j]->Text=(String)a[i][j];
     }
 
for(i=0;i<n;i++){     //в обработчике выхода из программы
     for(j=0;j<n;j++)
    delete mas[i][j]; 
    }

обратиться к эдиту из массива можно так
C++
1
2
mas[1][1]=new TEdit(this);    //создание конкретного объекта TEdit
mas[1][1]->Name="as123";
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 22
26.11.2010, 15:32 3
Похожая проблема создал имеется 18 указателей TEdit, и нужно заполнить данными из указателей 2 двухмерных массива 3 на 3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int mas1[3][3], mas2[3][3] , mas3[3][3];
 
TEdit* t1[9] = {    Edit1,  Edit2,  Edit3,  Edit4,  Edit5,
                    Edit6,  Edit7,  Edit8,  Edit9} ;
TEdit* t2[9] = {    Edit10, Edit11, Edit12, Edit13, Edit14,
                    Edit15, Edit16, Edit17, Edit18} ;
 
int* p = mas1[0]; int* p_ = mas2[0];
    for(int i=0; i < 9; i++)
        {
            p + i = (TEdit*)t1[i] ;
            p_+ i = t2[i];
        }
Не могу сообразить что мне сделать тут p + i = (TEdit*)t1[i] , чтоб можно было обратиться к свойству Text у Edit'ов
0
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
26.11.2010, 15:37 4
Цитата Сообщение от manfret Посмотреть сообщение
TEdit ***mas=new TEdit**[n]; //двумерный массив указателей
Вы точно ничего не путаете?
Может вы имели в виду:
C++
1
TEdit **mas=new TEdit * [n];
???
0
manfret
27.11.2010, 14:59 5
Точно ничего не путаю, т.к. создается массив указателей на объекты, поэтому 3 звездочки, одна от указателя, 2 от двумерного массива.
Конструкция вида
C++
1
TEdit **mas=new TEdit * [n];
используется для объявления двумерного массива объектов.
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
27.11.2010, 16:18 6
manfret, согласен.
Но в таком случае, необходимо выполнять удаление массива указателей.

Глобально:
C++
1
2
TEdit ***Edits = NULL;
const int Num = 3;
Создание объектов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int Count = 0;
Edits = new TEdit ** [Num];
for (int i = 0; i < Num; i++) {
  Edits[i] = new TEdit * [Num];
}
 
for (int i = 0; i < Num; i++) {
  for (int j = 0; j < Num; j++) {
    Edits[i][j] = new TEdit(this);
    Edits[i][j]->Parent = this;
    Edits[i][j]->Left = j * 128;
    Edits[i][j]->Top = i * 32;
    Edits[i][j]->Name = "Edit" + IntToStr(Count);
    Edits[i][j]->Text = "Edit" + IntToStr(Count++);
  }
}
Удаление:
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < Num; i++) {
  for (int j = 0; j < Num; j++) {
    delete Edits[i][j];
  }
}
 
for (int i = 0; i < Num; i++) {
  delete []Edits[i];
}
delete []Edits;
Edits = NULL;
0
27.11.2010, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2010, 16:18
Помогаю со студенческими работами здесь

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а...

Сформировать массив C, который будет состоять из чисел, которые одновременно входят как в массив A, так и в массив B
Есть задание :На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru