Форум «Всё о Паскале» _ Теоретические вопросы _ величина массива
Автор: compiler 8.04.2007 17:02
Добрый день! есть ли функция возвращающая величину массива(одномерного) то есть количество элементов массива? если нету то как ее можна реализовать? Заранее благодарен.
Автор: klem4 8.04.2007 17:37
Какой компилятор ?
Автор: volvo 8.04.2007 17:53
Цитата
Какой компилятор ?
Какая разница? High(X) никто не отменял...
Автор: мисс_граффити 8.04.2007 21:48
var ar: array[5..10] of integer;
begin writeln(High(ar)); end.
Что выдаст? (проверяла на TP 7.0) а нам надо
Цитата
количество элементов массива
Автор: volvo 8.04.2007 22:16
а
writeln(High(ar) - Low(ar) + 1);
что выдаст?
Я ж не буду давать полностью готовый ответ, правда? Если уж речь про High, то логично, что (поскольку это не С), у массива кроме верхней границы есть еще и нижняя...
Автор: compiler 8.04.2007 23:28
всем спасибо!
Автор: klem4 8.04.2007 23:44
Всетаки не для всех случаев это годится, например
x: array ['a'..'d'] of Byte;
Автор: compiler 8.04.2007 23:49
вот же оно
Код
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.
мануал а с символами незнаю как... но мне и не надо(пока)
Автор: мисс_граффити 8.04.2007 23:53
а в каком месте твой array будет dynamic? речь вроде как про паскаль, а не делфи. про компилятор ты не отвечаешь...
Автор: volvo 8.04.2007 23:59
Цитата
Всетаки не для всех случаев это годится
writeln(Ord(High(ar)) - Ord(Low(ar)) + 1);
Кто еще какие извращения придумает?
Автор: compiler 9.04.2007 15:55
Цитата(мисс_граффити @ 8.04.2007 19:53)
а в каком месте твой array будет dynamic? речь вроде как про паскаль, а не делфи. про компилятор ты не отвечаешь...
я вообще пользуюсь FP но стремлюсь что б мой код был совместим с TP... а цитата была с документации по FP...