0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
1

Инициализация динамических массивов в Delhpi

30.10.2011, 14:47. Показов 10759. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, как в коде программы инициализировать динамический массив.

Заранее благодарю за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2011, 14:47
Ответы с готовыми решениями:

Инициализация динамических массивов при создании
как создавать динамические массивы,чтоб вводить данные с клавиатуры знаю.. примерно это выглядит...

Инициализация динамических матриц в с++
Необходимо реализовать класс матриц, вот мой набросок: // Класс.cpp: определяет точку входа для...

Не работает деструктор. Инициализация динамических переменных
class Vector3D { public: Vector3D() { x = y = z = 0; } Vector3D(float *x, float *y,...

Программирование одномерных массивов. Программирование двумерных массивов. Программирование динамических массивов VBA
1. Написать процедуру по упорядочению элементов заданного массива В в следующем порядке: сначала...

16
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.10.2011, 14:49 2
Delphi
1
2
3
4
5
var a:array of array;
      n:integer;
.............................
n:=.......
Setlength(a,n);
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
30.10.2011, 14:51  [ТС] 3
Это я понимаю, мне нужно именно в коде программы присвоить определенные значения элементам данного динамического массива.
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
30.10.2011, 14:54 4
ну и добавляй в программе
Delphi
1
2
3
a[0] := 23;
a[1] := 78;
и т.д и т.п
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
30.10.2011, 17:02  [ТС] 5
Тогда очень громадный код получается.

Нельзя ли как в Python'е:
Python
1
matrix = [[4,2,3],[4,2,5],[7,8,2]]
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
30.10.2011, 18:02 6
Delphi
1
const A: Array[1..3, 1..3] of Integer = ((1,2,3), (4,5,6), (7,8,9))
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.10.2011, 18:18 7
Только при чем здесь динамические массивы?
0
deathNC
30.10.2011, 18:23
  #8

Не по теме:

Puporev, :scratch:
Может, в питоне оно так присваивать умеет? сразу группе элементов. Хотя, бред какой-то...

0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.10.2011, 18:29 9
Возможно... В некоторых языках внутри программы можно хоть черта лысого объявить...
0
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
30.10.2011, 18:30 10
Цитата Сообщение от Puporev Посмотреть сообщение
хоть черта лысого объявить...
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
30.10.2011, 20:40  [ТС] 11
Arcor, это, увы, работает только со статическими массивами.

deathNC, что вам показалось странным в коде на Python'е?
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
30.10.2011, 20:45 12
ну динамический массив, это массив который меняет свои размер в ходе работы программы, т.е. пользователю не известно его размер и что в нем находится заранее, так как можно, не зная что в нем будет заранее записать в него что либо? вот этот вопрос напрашивается, если мы знаем что в нем хранится то мы и можем заранее в него записать и сделать его статичным, Вы видимо сударь сами не понимаете что вы пишите
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
30.10.2011, 21:06  [ТС] 13
Я понимаю. Просто нужно задать некоторый массив с самого начала, размеры которого бы в процессе исполнения программы изменялись и т.п.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.10.2011, 21:53 14
Цитата Сообщение от DelphiBeginner Посмотреть сообщение
размеры которого бы в процессе исполнения программы изменялись и т.п.
нет проблем.
Delphi
1
2
3
n:=n+1;
Setlength(a,n);
a[n-1]:=5;
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
30.10.2011, 23:32  [ТС] 15
Puporev, я знаю про эту команду и обычно использую следующий код:
Delphi
1
2
SetLength(a,length(a)+1)
high(a):=5;
Мне нужно, найти метод, чтобы чтобы именно в коде можно было ввести значения элементов динамического массива таким образом:
Delphi
1
a := ((1,2,3),(4,3,2),(4,5,3));
Возможны, конечно, следующим варианты, но они не подходят по разным причинам:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
   A: Array[1..3, 1..3] of Integer = ((1,2,3), (4,5,6), (7,8,9))
 
var
  B:array of array of integer;
  i,j:integer;
 
begin
  SetLength(B,3,3);
 
for i:=0 to high(B) do
     for j:=0 to high(B[i]) do
         B[i][j] = A[i][j]
 
end.
 
//Причина: достаточно громоздко, существует лишний константный массив, используется цикл.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var
  A:array of array of integer;
 
begin
  SetLength(A,3,3);
 
A[0][0] := 1; A[0][1] := 3; A[0][2] := 4; 
A[1][0] := 4; A[1][1] := 5; A[1][2] := 6; 
A[2][0] := 7; A[2][1] := 8; A[2][2] := 9; 
 
//Причина: в чем-то уже лучше, но слишком громоздко, особенно если имя массива достаточно длинное.
end.
0
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
31.10.2011, 08:19 16
Цитата Сообщение от DelphiBeginner Посмотреть сообщение
deathNC, что вам показалось странным в коде на Python'е?
Вообще-то ничего, просто ещё не сталкивался с языками, где можно не один элемент, а сразу несколько присвоить в массиве...

Цитата Сообщение от DelphiBeginner Посмотреть сообщение
я знаю про эту команду и обычно использую следующий код.
Delphi
1
2
SetLength(a,length(a)+1)
high(a):=5;
Что это?
Что значит high(a) := 5; ??? Мне такое и в страшном сне не снилось...

Цитата Сообщение от DelphiBeginner Посмотреть сообщение
Возможны, конечно, следующим варианты, но они не подходят по разным причинам
Первый вариант вполне сносный. Или ты хочешь, чтобы при написании огромных систем у тебя было всего лишь пара строчек?
Второй вариант глупый... так что делай либо с файла инициализации, либо с константы. Более простого и ленивого решения я не знаю.
0
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
31.10.2011, 22:37  [ТС] 17
Что значит high(a) := 5; ??? Мне такое и в страшном сне не снилось...
Конечно,я ошибся, должно было быть так:
Delphi
1
a[high(a)]:=5
Спасибо deathNC, Puporev, Arcor за помощь. Буду тогда делать так по старинке.
0
31.10.2011, 22:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2011, 22:37
Помогаю со студенческими работами здесь

Динамических массивов
Всем доброго дня!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! 1....

Обработка динамических массивов с++
Из одномерного целочисленного массива вывести те элементы, которые являются делителями для...

обработка динамических массивов
Заполнить массив В(10) случайными значениями. Организовать вывод на экран. Присвоить указателю...

Объявление динамических массивов
Подскажите надо в массив типа: (запишу на дельфи языке) buf: array of byte; //dunamic massiv...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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