![]() |
Модераторы: LSD Страницы: (12) Все « Первая ... 7 8 [9] 10 11 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ладно, в последний раз
![]() у меня нет компилятора паскаля или дельфи, codepad не знает pascal, если в 2х словах, то замыкание, в паскале, это вложенная процедура/функция, которая может обращаться к локальным переменным той функции, которая ее содержит что-то вроде:
тут, функция process, получает указатель на внутреннюю для foo, функцию bar, а функция bar может, в свою очередь, обращаться к локальным переменным функции foo(к переменной х) не уверен насчет правильности кода, так как ни разу не паскалист =) замыкания и вложенные функции, это не одно и то-же, ассоциативный контейнер, это распространенное понятие, если в двух словах, это контейнер, содержащий пары ключ-значение и позволяющий при этом быстро находить значения по ключу молодец, наконец нашел определение садись, два! и на форум без родителей не приходи ![]() анонимные функции появились в D2009, а замыкания можно использовать черт знает сколько, я помню как кто-то из ваших приводил пример года полтора назад в одном из C++ vs Delphi холливаров
да у вас тут заповедник! извини, я не знал, уже ухожу... ![]() |
||||
|
|||||
Beltar |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Правильно так. После begin никаких деклараций быть не может. Это ж Паскаль. ![]()
Ну я бы просто определил класс из объекта и ключа и сделал для этого класса контейнер из TList. Минут 10 работы. Не спорю шаблоны тут бы выручили. Или я неправильно понял?
Это типа шутка юмора была? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||||
|
|||||||
Jmylia |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 12.10.2009 Где: Кривой Рог Репутация: нет Всего: нет |
Уряяя...!) Уже в Понедельник на городскую...Жаль что на каникулах,рано вставать(
![]() ![]() Добавлено через 11 минут и 26 секунд
А мы покамисть выводим резулитат result := x; используя текст: begin writeln('Введите цифру'); readln(x); writeln('Вы ввели цифру:',x); end. Ну ет из очень простого счаз мы учим новую тему,возьму себе во внимание команду result := так удобнее,еще и похвалят ![]() Это сообщение отредактировал(а) Jmylia - 20.10.2009, 20:34 |
||||
|
|||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
||||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Там вообще много чего нет того, что в Delphi кажется очевидным => лучше сразу учить Delphi. По собственно языку я бы Фаронова порекомендовал, у меня, например, очень хорошая его книга по Delphi 7 есть, в отличие от многих других книг для начинающих, там нет траты времени на БД и т. п. частные технологии. http://www.ozon.ru/context/detail/id/1421512/
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Beltar, он ее уже переиздал: http://www.ozon.ru/context/detail/id/4088055/.
Но тут вроде не о книгах речь. Речь вроде была о том, какой язык наиболее прост и гибок для обучения и с какого следует начать. З.Ы. Если уж об обучении, то можно попробовать вот с этого. Это сообщение отредактировал(а) Keeper89 - 20.10.2009, 23:45 |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
я бы так ответил на сабж, выбор языка программирования для обучения важен, но еще важнее, не учиться программированию по Фараонову
![]() а иначе, будете ваять ассоциативные контейнеры, на основе класса TList ![]() |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: нет Всего: 306 |
В свое время очень популярна была книга "Язык Pascal и основы программирования в Delphi" А. Я. Архангельского. Но дельфисты Архангельского не любят, ибо он в ведении просит не учить Pascal(Delphi), а сразу переходить на С++ ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
В условиях отсутствия псевдонимов типов приходиться пользоваться безтиповым указателем, других альтернатив нет. Кстати в Delphi TList это аналог вектора, а не std::list. Лично я предпочитаю использовать типизированные управляемые конструкции типа array of type или же писать полноценного наследника для TList заточенного под конкретный тип. Кроме того как бы не хвалили новые дженерики, как оказалось они в Delphi 2009 не работают ![]() Упс. А почему тема не в холиварах? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
Alexeis, речь шла о ассоциативных контейнерах, о тех, которые позволяют находить значение по ключу, и эта операция имеет сложность, в зависимости от реализации, либо O(1) (для хэш таблиц, если нет коллизий), либо О(log N) (сбалансированные деревья)
единственный способ использовать в таком качестве TList - хранить в нем пары ключ - значение, постоянно поддерживать его в отсортированном по ключу состоянии и искать в нем бинарным поиском то-есть добавление элемента в такой контейнер, будет выполняться за O(N*log(N)) (поиск того места, куда нужно вставлять - за O(log N), вставка - за O(N), так-как нужно переместить N(в худшем случае) элементов), в отличии от добавления элемента в дерево или хэш таблицу единственное, что есть в BDS 2006 (за другие версии ничего сказать не могу), это TBucketList, но он совсем не тянет на полноценную хэш таблицу, это и есть не более чем bucket list, там даже элементарные операции не реализованы, такие как поиск элемента по ключу, про rehash я вообще молчу ![]() и не надо мне говорить, что существуют библиотеки и компоненты, потому-что в любом ЯП, такие вещи есть в стандартной библиотеке |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
THashedStringList -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Beltar |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Ну так просвети нас темных, ответ в стиле "я не паскалист" не принимается и приравнивается к сливу.
А фактически пересказ тех же самых книжек. Литературу я бы все-таки предпочел иметь, как в бумажном, так и в электронном виде. Вообще тут на днях анекдотичная история была, мой боевой товарищ по C&C Generals Zero Hour, проживающий в городе-герое Риге и в этом году поступивший на первый курс попросил помочь с C++. Используется у них какой-то компилятор под Линукс и сиди гадай на чем можно писать дома, где Линукс, скорее всего, нафиг не упал, чтобы оно в итоге заработало ТАМ, при этом если использовать C++Builder, то уже надо знать, как им вообще пользоваться, и чего там надо щелкать, чтобы он создал то, что требуется, а VS, это вообще финиш. При этом получаю вопрос, почему в BCC311 не работает using namespace std. Да блин, попробуйте так просто объяснить человеку вообще не знакомому с программированием и у которого, похоже, не бог весть какой препод, что такое этот namespace. Сравните это с юнитами, которые, локализованы в одной файле и уже хотя бы поэтому проще для понимания и на первом уроке не придется растолковывать студентам чего-то там про область видимости еще до того, как "Hello world" напечатаете. А ведь по себе знаю, некоторые вещи, которые сейчас вроде как очевидны, при первом знакомстве могут быть непонятны. Что неопытный человек будет делать, если упрется в какую-то ошибку при работе с памятью? Моя ненавить с Си, как раз от одной такой грабли и идет. А сколько нервов могут попортить эти жуткие if(a=0), (никто не будет сразу писать 0==a т. к. это просто сбивает человека с мысли) scanf("%d",n), или якобы удобное a+=b одним ненажатием кнопки превращающееся в a=b? Это даже не указатели, а просто на редкость непродуманный синтаксис. А вчера получаю от знакомого, пишущего на Билдере довольно длинный лог с объяснением новичку, как сделать в VS какую-то элементарную вещь. Вроде так и просится задорновское "ну-у тупы-ы-ые!", но мне как-то совсем не смешно стало, а наоборот весьма грустно от нашей системы образования, которая не может предложить ни методологию, ни инструмента. Мой младший брат проучившись С# так ничего из него и не вынес, ничего удивительного в принципе нету, учитывая, что у меня самого просто не хватило терпения даже дочитать "талмуды" по этому языку, пока доходишь до конца главы, уже забываешь что там было в начале. И самое страшное, что человек не знакомый с Паскалем, или плюсами не способен понять ущербности ряда особенностей языка. Он не успев открыть книгу оказывается атакованым классами еще до того как поймет, что же вообще такое ООП, которое я бы расшифровал как Объектно Ориентированное Проектирование т. к. если я думаю, что мне нужен класс, чего-то там реализующий, это проектное решение, кодить этот класс я все равно буду структурно. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||
|
|||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Не забудь добавить, что в Си-подобных языках. Кроме того, я конечно, за STL, но наличие или отсутствие в библиотеке какого-то языка каких-то нужных конкретно тебе вещей, других пользователей может колыхать довольно слабо. И в масштабах большого проекта реализация каких-то там базовых структур данных может занять менее 0,001% времени, а то и вообще несколько минут для поиска и скачки готового. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
опять не то
![]() во первых, нельзя задать свою хэш функцию, во вторых, в качестве ключей - строки, в третьих, в качестве значений - строки, в четвертых, я не вижу, что-бы эта штука умела расти, ну и в пятых, вряд-ли в ней можно хранить больше пары тысяч элементов ![]() вообще, умиляет, что вы даже разницы не видите ![]()
допустим, в кач. ключа выступает строка, в кач. значения - число, сделай это на основе TList, пристыди меня ![]() |
||||
|
|||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
речь идет о том, что ты сказал, что реализуешь ассоциативный контейнер на основе TList, а не о том, что где-то там что-то есть |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |