forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Размер массива (http://forum.boolean.name/showthread.php?t=5292)

kyb66 14.12.2007 12:46

Размер массива
 
Есть-ли в МР стандарная функция, показывающая максимальный размер массива как в Дельфи High(array) ? Или как узнать размерность массива, т.е.его последнюю границу?

ViNT 14.12.2007 18:03

Re: Размер массива
 
Нет такой, если только либу на java писать.
А вообще зачем она? Массивы то статические, число элементов фиксированное.

kyb66 14.12.2007 18:10

Re: Размер массива
 
А для того, что когда в проге используется много массивов, то не нужно указывать явно верхнюю его границу и запоминать их все.

impersonalis 14.12.2007 23:49

Re: Размер массива
 
Цитата:

Сообщение от kyb66
А для того, что когда в проге используется много массивов, то не нужно указывать явно верхнюю его границу и запоминать их все.

используй для этого первый байт массива :dontknow:
ЗЫЖ чисто алгоритмические предположения - на MidletPascal не кодю

ViNT 15.12.2007 00:36

Re: Размер массива
 
Нет, так не получится. Это можно делать только со строками(да и то только в TP под DOS), к массиву побайтного доступа нет,

odd 15.12.2007 08:21

Re: Размер массива
 
Да просто при создании массива тут же рядом в константах прописывай длину массива. И потом юзай эту константу.

Код:


Program Nubie;
Const
    m_size = 40;
    s_size = 50;
Var
    m: array [0..m_size] of integer;
    s: array [0..s_size] of string;
.....
    for i:=0 to m_size do m[i]:=0;
.....


impersonalis 15.12.2007 21:09

Re: Размер массива
 
Цитата:

Сообщение от ViNT
Нет, так не получится. Это можно делать только со строками(да и то только в TP под DOS), к массиву побайтного доступа нет,

зачем тебе побайтный доступ?

Var
m: array [0..5] of integer;

m[0]:=5;

Видно что-то туплю. замолчал.

ViNT 15.12.2007 21:32

Re: Размер массива
 
Так конечно можно, но тогда нужно иметь один запасной элемент.
А если требуется нумерация именно с 0?
Написать
Код:

a:array[-1..10]of integer;
нельзя.

P.S. Сколько писал прог на Delphi, массивов было иногда очень много, но такой проблемы не возникало.


Часовой пояс GMT +4, время: 08:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot