Odysseos
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору apnss нет не так Учите матчасть Послушайте-ка, тролль, хамить хватит. память под дин массив выделяется сразу под все элементы, а не так как вы описали Код: SetLength(dyn_array, 1); // выделили память под первый элемент SetLength(dyn_array, Length(dyn_array) + 1); // перевыделили память для Length() + 1 элементов | Вопрос на "засыпку" - сколько аллокаций/реаллокаций в приведенном коде? ...Это под статический массив память выделяется вся сразу, да еще и не в куче, а на на стеке. Дальше - учите устройтво менеджемента памяти в Delphi. а арифметика у каждой делфи своя. и пытаться описать логику стандартных объектов дело неблагодарное Если Вы так подходите к программированию на Delphi - то лучше занимайтесь проектированием классов, проблемы распределения памяти, кэширования, оптимизации - явно не для Вас. 2. если уж все равно по юнитам ходили не нужно было торопиться, а взглянуть на то что в основе TList лежит как раз дин масcив поинтеров Я, не поверите, об этом знаю. Я даже об этом написал: Цитата: - выделяем 16-ть байт под внутренний дин. массив указателей (TList инициализируется с Capacity = 4, 4 * SizeOf(Pointer) = 16) | Только Вы этого не заметили в вашем апломбе "знатока". Так зачем вы в делфи подались. Линейный турбо паскаль рулит. ООП не заменяет алгоритмы, а позволяет упрощать инфраструктуру описания и использования оных алгоритмов, не более того. И если описание инфраструктуры в конкретном случае оказывается сложней, чем то, для чего она создаётся - то в рабочем процессе, например, за это надо увольнять, как за растрату рабочего времени. порядок должен быть во всем. особенно при использовании модульного метода программирования когда код пишется под многоразовое использование. А не как у вас. Еще раз повторяю - алгоритм без преувеличения на 10-ть строк. И без предполагаемого многоразового использования. Мало того - это вообще не _программа_, а именно алгоритм, описанный такими структурами данных и кода, чтоб его понял человек, не знающий программирование глубоко (учитывая, что вопрошающий не смог реализовать столь простой алгоритм и не знает, что такое двумерный массив, а основы динамического выделения/освобождения памяти для записей объяснять мне ну очень лень). слава богу, уже давно научился и сам научил и не один проект за плечами. Рад за Вас. Продолжайте рефакторить проекты на 500 форм. Но не лезьте в 10-тистрочный алгоритм - особенно если по теме работы самого алгоритма Вам сказать нечего. А чем хоть он вам не угодил? Расскажите-ка, знаток и любитель ООП и порядка, каким же именно образом TList реализует все "три кита" ООП. Ну, ладно, два - потому что инкапсуляция там таки есть. Да - и уж раскройте секрет, каким образом можно в _данном_случае_, для поиска аппликатур аккордов, извлечь пользу из наследования и полиморфизма. Не раскроете - подтвердите реноме тролля, и разговаривать с Вами более не о чем. В ответ принимается только код, а не разглагольствование на общие темы. Добавлено: psa1974 Человек пришел в конструктивное обсуждение с какими-то совершенно "левыми" замечаниями не по теме - мало того, полуграмотными замечаниями. Как-то вот... напрягает, да. | Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 02:58 12-04-2010 | Исправлено: Odysseos, 03:01 12-04-2010 |
|