420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
|
|
1 | |
Динамический массив14.10.2010, 18:35. Показов 2290. Ответов 5
Метки динамические массивы (Все метки)
Вопроса два, первый простой, второй по занятнее
1. Как инициализировать весь массив нулями (или же как должен быть объявлен массив что бы это само происходило) 2. как определить длинну подмассива состоящего только из нулевых байтов (только идею типа перебором каждого символа не предлагать...)
0
|
14.10.2010, 18:35 | |
Ответы с готовыми решениями:
5
Используя многострочный редактор и динамический массив ввести массив произвольного размера Создать двумерный динамический массив произвольного размера NxN (размер ввести). Заполнить массив случайным об Массив строк в Memo, динамический массив Динамический массив |
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
|
|
14.10.2010, 20:03 | 2 |
1ое ты прав не сложно
юзай FillChar - есть такая процедура а над вторым нужно подумать, попробуй рекурсивный метод а не циклический только по правде говоря оба они перебором
1
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
15.10.2010, 11:26 | 3 | |||||
От перебора никуда не уйти. Вопрос - надо ли перебирать все элементы и откуда его начинать. Выбор способа зависит от метаданных - т. е. данных о содержимом массива - они могут быть получены, перед этапом поиска - например, во время записи значений в массив. Здесь всё банально на самом деле - чтобы выяснить где подмассив с нулями начался/закончился, надо брать элемент и сверять на ноль/не ноль. Методы здесь могут быть разными - перебор от начала до конца, либо исследование значений не по порядку - метод бисекций, например. Если, например, известно, что имеется достаточно большие подмассивы из нулей, тогда удобнее исследовать элементы с шагом, равным предполагаемой минимальной длине подмассива. При обнаружении нуля ведём пербор в обоих направлениях - влево и вправо. И т. д. Если подмассивы с нулями могут быть небольшими - тогда проще выполнить последовательный пербор всех элементов.
1
|
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
|
|
15.10.2010, 12:38 | 4 |
Я тоже пришел к мнению Mawrat, для второго пункта
0
|
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
|
|
15.10.2010, 12:57 [ТС] | 5 |
Mawrat, т.е. как я понял, что в первом случае, что во втором придется перебирать массив?
PS а вот по поводу этого есть что-то:
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
15.10.2010, 13:22 | 6 |
Когда выделяется память для дин. массива, то происходит автоматическое обнуление байтов. Память, видимо, выделяется через функцию, подобную AllocMem().
А вот память для строк типа AnsiString или WideString выделяется без обнуления байтов. Так, по крайней мере, в Delphi 7.
1
|
15.10.2010, 13:22 | |
15.10.2010, 13:22 | |
Помогаю со студенческими работами здесь
6
Динамический массив динамический массив Динамический массив Динамический массив? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |