Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как найти количество элементов массива? 
:(
    Опции темы
sidd
Дата 18.9.2007, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 7.10.2006
Где: Киев

Репутация: нет
Всего: нет



есть массив. нужно посчитать количество его элементов. можно ли это сделать без цикла?
есть ли какая-то функция (что-то вроде count() в PHP) для этого?
PM MAIL WWW ICQ Skype Jabber   Вверх
MetalFan
Дата 18.9.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



Length() - размер массива
Low(), High() - верхняя и нижняя границы

Добавлено через 31 секунду
Цитата(sidd @  18.9.2007,  20:45 Найти цитируемый пост)
нужно посчитать количество его элементов. можно ли это сделать без цикла?

эмм.. а как можно кол-во элементов с пом.цикла посчитать?  smile 


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sidd
Дата 18.9.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 7.10.2006
Где: Киев

Репутация: нет
Всего: нет



Length() работает только для стринга.
а Low() и High() не подходят. к примеру есть массив:
Код
var a: array[1..10] of integer;

а потом идет код:
Код

a[1] = 01;
a[2] = 02;
a[3] = 03;

то Low() и High() будут возвращать значения 1 и 10, а не 1 и 3. 
а циклом можно так:
Код

for i := 1 to high(arr) do if arr[i] <> '' then count = count + 1;

я, наверно, неточно сформулировал вопрос. нужно подщитать количество непустых элементов массива. 
или все-таки такое только с помощью цикла возможно?

Это сообщение отредактировал(а) sidd - 18.9.2007, 22:16
PM MAIL WWW ICQ Skype Jabber   Вверх
MetalFan
Дата 18.9.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



Цитата(sidd @  18.9.2007,  22:13 Найти цитируемый пост)
Length() работает только для стринга.

ого! а в CodeGear то и не знают!

Цитата(sidd @  18.9.2007,  22:13 Найти цитируемый пост)
я, наверно, неточно сформулировал вопрос.

вот именно.

Цитата(sidd @  18.9.2007,  22:13 Найти цитируемый пост)
нужно подщитать количество непустых элементов массива. 

по любому с пом.цикла. явного или неявного для тебя.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Alexeis
Дата 18.9.2007, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: нет
Всего: 459



Цитата(MetalFan @  18.9.2007,  22:59 Найти цитируемый пост)
по любому с пом.цикла. явного или неявного для тебя. 

  Ну можно и бинарным поиском, так будет быстрее.
проверить серединный элемент и определить в какой из половин массив заканчивается, потом ту половину еще пополам и т.д. пока не найдем последний элемент массива.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
sidd
Дата 18.9.2007, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 7.10.2006
Где: Киев

Репутация: нет
Всего: нет



ну мне вообще-то количество элементов считать не нужно. просто нужно сделать,
чтоб все элементы вывелись на экран. 
я думал сделать так:
Код

for i := 0 to <количество_элементов> do writeln(arr[i]);

но, может, данную задачу можно по-другому решить?
PM MAIL WWW ICQ Skype Jabber   Вверх
BaD_SeCt0R
Дата 19.9.2007, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: нет
Всего: 18



И в цикле воткни
Код

if arr[i]=0 then Break;



--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
volvo877
Дата 19.9.2007, 08:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(MetalFan @  18.9.2007,  21:59 Найти цитируемый пост)
ого! а в CodeGear то и не знают!

А ты не посмотрел, что тема - НЕ в разделе Дельфи? И как ты в TP собрался с помощью Length определять размер массива? Давно Incompatible types не получал?

Цитата(sidd @  18.9.2007,  22:26 Найти цитируемый пост)
просто нужно сделать, чтоб все элементы вывелись на экран. 
И ты это хочешь сделать БЕЗ цикла? Оригинально...


Это сообщение отредактировал(а) volvo877 - 19.9.2007, 08:41
PM MAIL   Вверх
sidd
Дата 19.9.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 7.10.2006
Где: Киев

Репутация: нет
Всего: нет



BaD_SeCt0R, спасибо.
PM MAIL WWW ICQ Skype Jabber   Вверх
MetalFan
Дата 19.9.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



Цитата(volvo877 @  19.9.2007,  08:41 Найти цитируемый пост)
А ты не посмотрел, что тема - НЕ в разделе Дельфи?

каюсь, не посмотрел  smile 


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.