Динамические массивы: особенности: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) Нет описания правки |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Данный пример иллюстрирует особенности работы с динамическими массивами. | |||
<source lang="Delphi">procedure Print(a: array of integer); | |||
begin | |||
foreach v: integer in a do | |||
Write(v, ' '); | |||
Writeln; | |||
end; | |||
var a: array of integer; | |||
begin | |||
a := new integer[10]; | |||
for var i:=0 to a.Length-1 do | |||
a[i] := PABCSystem.Random(100); | |||
Print(a); | |||
SetLength(a,12); // Перевыделение памяти. Старые данные сохраняются | |||
Print(a); | |||
System.Array.Sort(a); | |||
Print(a); | |||
System.Array.Reverse(a); | |||
Print(a); | |||
end.</source> | |||
Следует обратить внимание, что для получения длины массива используется a.Length. Кроме этого, память под массив может быть выделена не только процедурой SetLength, но и операцией new. | |||
Наконец, параметр подпрограммы a: array of integer представляет собой именно динамический массив, а не открытый массив, как в Delphi. | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 14:20, 12 января 2010
Данный пример иллюстрирует особенности работы с динамическими массивами.
procedure Print(a: array of integer);
begin
foreach v: integer in a do
Write(v, ' ');
Writeln;
end;
var a: array of integer;
begin
a := new integer[10];
for var i:=0 to a.Length-1 do
a[i] := PABCSystem.Random(100);
Print(a);
SetLength(a,12); // Перевыделение памяти. Старые данные сохраняются
Print(a);
System.Array.Sort(a);
Print(a);
System.Array.Reverse(a);
Print(a);
end.
Следует обратить внимание, что для получения длины массива используется a.Length. Кроме этого, память под массив может быть выделена не только процедурой SetLength, но и операцией new.
Наконец, параметр подпрограммы a: array of integer представляет собой именно динамический массив, а не открытый массив, как в Delphi.