Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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&#133100, 10&#133100] of  Integer
И не говори, что это не двумерный массив.


 
Kolan ©   (2007-04-18 21:44) [8]

> [10??, 10??]

10 &#133 100, 10 &#133 100
что-то глюк с точками&#133


 
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.
Но тут я не уверен, а проверять лень&#133


 
{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") хотя может я чего-то не понял, но строка — вроде тоже массив&#133
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.043 c
4-1166094492
niko
2006-12-14 14:08
2007.05.13
Создание окна в потоке с помощью ф-й WINAPI (в dll)


15-1176554514
Kerk
2007-04-14 16:41
2007.05.13
Интересный сервис


2-1176801098
dr_craigan
2007-04-17 13:11
2007.05.13
полупрозрачность


15-1176447880
Александра
2007-04-13 11:04
2007.05.13
Помогите разобраться с Ораклом


8-1144830596
chizra
2006-04-12 12:29
2007.05.13
Как загрузить изображение в формате .psd из буфера обмена в