![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Реально ли создать массив с n количеством ключей, которое юзверь указывает через readln? Если да, то как?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Можно, но через динамическую память, т.к. при объявлении в var ты можешь указать N, но это N должно быть вышеобъявленной константой.
|
|||
|
||||
| Rencom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
Можно определить большой массив, например, из 1000 элементов. Когда юзер вводит n<1000, работать с частью массива: A[0], ..., A[n]. В итоге будет казаться, что размерность массива задал юзер.
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Rencom это самое простое решение, но представь, если N = 3, то сколько памяти уйдет в пустую? Ведь ОП выделит место все-равно под 1000 элементов.
|
|||
|
||||
| Rencom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
А как в списке реализовать быстрый доступ к нужному элементу, не перебирая весь список?))
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
В дин. памяти? Сразу указать смещение. |
|||
|
||||
| Rencom |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
т.е. запускать примерно такой цикл?
или есть процедура в паскале специальная? |
||||||
|
|||||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Ну типа того. На вскидку я не помню, но делал точно.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Нет. Это все делается проще. Просто за давностью и ненужностью я уже забыл.
Но в любом учебнике по паскалю это можно найти. Делается примерно так: Объявляем массив [0..1] Отключаем директивой компилятора проверку границ массива. А вот что потом, не помню Качни какой-нить учебник по паскалю. В Delphi то такой проблемы нет, а в TP была. |
|||
|
||||
| volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Вот это:
|
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Может тогда лучше -1..-1 написать?
|
|||
|
||||
| Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Точно. Нужен тип "Указатель на массив". Вспомнил.
Зависит от того, какой элемент мы хотим видеть первым. Меняем мы количество элементов, а первый задаем сразу.
А это она и есть - директива компилятору, чтобы не ругался на выход за пределы массива. Только пользоваться нужно аккуратно. |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |