Текущий архив: 2007.05.13;
Скачать: CL | DM;
Вниз
High, Low и двумерный массив Найти похожие ветки
← →
p3.14 (2007-04-18 19:37) [0]Каким образом получить размерность двумерного массива?
например массив есть 3x4:temp: array of array of Double;
SetLength(temp, 3, 4);
и как получить при помощи High и Low его его размерность? Или для двумерного существует иная форма High и Low?
← →
Kolan © (2007-04-18 19:48) [1]
> и как получить при помощи High и Low его его размерность?Height := Length(temp);
if Length(temp) > 0 then
Width := Length(temp[0])
else
Width := 0;
Примерно так.
← →
Kolan © (2007-04-18 19:48) [2]> Или для двумерного существует иная форма High и Low?
Ну с Low/High тоже самое + 1
← →
{RASkov} (2007-04-18 20:05) [3]Посмотри
http://delphimaster.net/view/2-1176840303/
← →
{RASkov} (2007-04-18 20:06) [4]У динамических массивов нижняя граница всегда 0
← →
Kolan © (2007-04-18 20:08) [5]> У динамических массивов нижняя граница всегда 0
> Каким образом получить размерность двумерного массива?
А у двумерных невсегда.
← →
{RASkov} (2007-04-18 20:25) [6]> [5] Kolan © (18.04.07 20:08)
>А у двумерных невсегда.
Всегда. Приведи пример двумерного массива (Arr: array of array of Integer) c отличной от нуля нижней границей.
← →
Kolan © (2007-04-18 21:43) [7]> [6] {RASkov} (18.04.07 20:25)
> Всегда. Приведи пример двумерного массива c отличной от нуля нижней границей.A: array[10𠟬, 10𠟬] of Integer
И не говори, что это не двумерный массив.
← →
Kolan © (2007-04-18 21:44) [8]> [10??, 10??]
10 … 100, 10 … 100
что-то глюк с точками…
← →
Kolan © (2007-04-18 21:46) [9]А еще есть строки, которые с 1 :)
← →
{RASkov} (2007-04-18 22:44) [10][4] {RASkov}
> У динамических массивов нижняя граница всегда 0
Следом
> [5] Kolan
> А у двумерных невсегда.
[6] {RASkov}
> Приведи пример двумерного динамического(имелось ввиду) массива
> [7] Kolan © (18.04.07 21:43)
> A: array[10??, 10??] of Integer
> И не говори, что это не двумерный массив.
Двумерный но не динамический :)
> [9] Kolan © (18.04.07 21:46)
А это что? Строки типа String все с 1 по умолчанию... :)
← →
Kolan © (2007-04-18 22:50) [11]> Строки типа String все с 1 по умолчанию
не да, типаS: array of array of String
Вроде не с 0.
Но тут я не уверен, а проверять лень…
← →
{RASkov} (2007-04-18 22:58) [12]> [11] Kolan © (18.04.07 22:50)
СМ [4]
:)
По барабану строки или байты...
← →
Kolan © (2007-04-18 23:13) [13]S: array of array of String — тут я погорячился, получилось 3 измерения.
procedure TForm3.BitBtn1Click(Sender: TObject);
var
A: array of String;
begin
SetLength(A, 10);
A[0] := "Kolan";
ShowMessage(A[0]); //Kolan
ShowMessage(A[0, 1]); //K
ShowMessage(A[0, 0]); //А это вообще не компилиться ([Pascal Error] Unit3.pas(34): E2157 Element 0 inaccessible — use "Length" or "SetLength") хотя может я чего-то не понял, но строка — вроде тоже массив…
end;
← →
{RASkov} (2007-04-18 23:33) [14]> [13] Kolan © (18.04.07 23:13)
Во первых массив А одномерный... во вторых в строках в нулевом байте хранится счетчик и длинна строки
← →
{RASkov} (2007-04-18 23:36) [15]В третьих - посмотри что покажет Low(A)
← →
{RASkov} (2007-04-18 23:41) [16]ShowMessage(A[0, 0]);
я чего-то не понял, но строка — вроде тоже массив…
Попробуй, тоже самое что и ShowMessage(A[0, 0]);
A: String;
.....
A:="Kolan";
ShowMessage(A[0]);
и туже ошибку получишь...
Строки похожи на дин массивы но таковыми не являются...
← →
Юрий Зотов © (2007-04-19 11:10) [17]> p3.14 (18.04.07 19:37)
> Каким образом получить размерность двумерного массива?
var
Temp: array of array of Double;
Low(Temp) - нижняя граница "наружного" массива (всегда 0);
High(Temp) - верхняя граница "наружного" массива (на 1 меньше его длины);
Low(Temp[i]) - нижняя граница i-го "внутреннего" массива (всегда 0);
High(Temp[i]) - верхняя граница i-го "наружного" массива (на 1 меньше его длины);
Длины "внутренних" массивов могут, но не обязаны быть одинаковыми. Какую длину хотим - ту и ставим.
Страницы: 1 вся ветка
Текущий архив: 2007.05.13;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.05 c