Помощь - Поиск - Пользователи - Календарь
Полная версия: величина массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
compiler
Добрый день!
есть ли функция возвращающая величину массива(одномерного) то есть количество элементов массива?
если нету то как ее можна реализовать?
Заранее благодарен.
klem4
Какой компилятор ?
volvo
Цитата
Какой компилятор ?
Какая разница? High(X) никто не отменял...
мисс_граффити
no1.gif
var ar: array[5..10] of integer;

begin
writeln(High(ar));
end.

Что выдаст? (проверяла на TP 7.0)
а нам надо
Цитата
количество элементов массива
volvo
а
writeln(High(ar) - Low(ar) + 1);

что выдаст? smile.gif

Я ж не буду давать полностью готовый ответ, правда? Если уж речь про High, то логично, что (поскольку это не С), у массива кроме верхней границы есть еще и нижняя...
compiler
всем спасибо!
klem4
Всетаки не для всех случаев это годится, например
x: array ['a'..'d'] of Byte;
compiler
вот же оно
Код
The Low function on a dynamic array will always return 0, and the High function will return the value Length-1, i.e., the value of the highest allowed array index. The Length function will return the number of elements in the array.

мануал
а с символами незнаю как... но мне и не надо(пока)
мисс_граффити
а в каком месте твой array будет dynamic?
речь вроде как про паскаль, а не делфи. про компилятор ты не отвечаешь...
volvo
Цитата
Всетаки не для всех случаев это годится

writeln(Ord(High(ar)) - Ord(Low(ar)) + 1);


Кто еще какие извращения придумает?
compiler
Цитата(мисс_граффити @ 8.04.2007 19:53) *

а в каком месте твой array будет dynamic?
речь вроде как про паскаль, а не делфи. про компилятор ты не отвечаешь...
я вообще пользуюсь FP но стремлюсь что б мой код был совместим с TP...
а цитата была с документации по FP...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.