Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем учить Pascal 
:(
    Опции темы
Lazin
Дата 20.10.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



ладно, в последний раз smile 

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
Вот только код привести наш гений так и не смог.

у меня нет компилятора паскаля или дельфи, codepad не знает pascal, если в 2х словах, то замыкание, в паскале, это вложенная процедура/функция, которая может обращаться к локальным переменным той функции, которая ее содержит
что-то вроде:
Код

function foo() : integer
var
   integer x;
begin
   function bar () : integer
   begin
      x := x + 1;
      result := x;
   end
   x := x + 1;
   process(bar);
   result := x;
end

тут, функция process, получает указатель на внутреннюю для foo, функцию bar, а функция bar может, в свою очередь, обращаться к локальным переменным функции foo(к переменной х)
не уверен насчет правильности кода, так как ни разу не паскалист =)

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
Если "ассоциативный контейнер" контейнер узкосишный термин, и не означает того, что я описал выше, то будь другом описать что это такое, мне в моей работе плюсы знать достаточно на уровне чтения заголовков ф-ий из хелпа по API. А иначе возникает терминологическая путаница, как с замыканиями, под которыми ты скорее всего имеешь в виду именно вложенные ф-ии.
замыкания и вложенные функции, это не одно и то-же, ассоциативный контейнер, это распространенное понятие, если в двух словах, это контейнер, содержащий пары ключ-значение и позволяющий при этом быстро находить значения по ключу

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
Определение по ссылке в моем посте.
молодец, наконец нашел определение

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
Возможность использования определяется с Delphi 2009. Неудивительно, что ни в одной книжке по более старым версиям даже слова-то такого нету.

Так что учи русский язык.
садись, два!
и на форум без родителей не приходи smile 
анонимные функции появились в D2009, а замыкания можно использовать черт знает сколько, я помню как кто-то из ваших приводил пример года полтора назад в одном из C++ vs Delphi холливаров 

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
Имею все основания предполагать, что уж такая-то фича всем программистам требуется примерно с одинаковой частотой, независимо от области дейятельности.
это зависит от программиста, я например довольно часто это использую в плюсах

Цитата(Beltar @  20.10.2009,  17:25 Найти цитируемый пост)
А ты не отвечай, ты вообще в раздел по Паскалю не пиши, я много вещей на дух не переношу, все языки с фигурными скобками, покемонов, теплое молоко, но я не иду на форум по плюсам доказывать, какой же это убогий язык, а теплое молоко просто гадость. 
да у вас тут заповедник! извини, я не знал, уже ухожу... smile 
PM MAIL Skype GTalk   Вверх
Beltar
Дата 20.10.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

function foo() : integer
var  integer x;

function bar () : integer
   begin
      x := x + 1;
      result := x;
   end;

begin
   x := x + 1;
   process(bar);
   result := x;
end


Правильно так. После begin никаких деклараций быть не может. Это ж Паскаль. smile  Обычная вложенная функция, которыми я охотно пользуюсь.

Цитата

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


Ну я бы просто определил класс из объекта и ключа и сделал для этого класса контейнер из TList. Минут 10 работы. Не спорю шаблоны тут бы выручили. Или я неправильно понял?

Цитата

да у вас тут заповедник! извини, я не знал, уже ухожу...


Это типа шутка юмора была?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Jmylia
Дата 20.10.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уряяя...!) Уже в Понедельник на городскую...Жаль что на каникулах,рано вставать( smile Говорят что у нас мало толковых програмистов,так что есть шансы smile Надо готовится...Ух как вы тему разговорили,подчеркнул для себя много полезного.Спасибо!)

Добавлено через 11 минут и 26 секунд
Цитата(Beltar @ 20.10.2009,  20:06)
Цитата

function foo() : integer
var  integer x;

function bar () : integer
   begin
      x := x + 1;
      result := x;
   end;

begin
   x := x + 1;
   process(bar);
   result := x;
end

А мы покамисть выводим резулитат result := x; используя текст: 

begin
      writeln('Введите цифру');
        readln(x);
           writeln('Вы ввели цифру:',x);
end.

Ну ет из  очень простого счаз мы учим новую тему,возьму себе во внимание команду result := так удобнее,еще и похвалят smile 

Это сообщение отредактировал(а) Jmylia - 20.10.2009, 20:34
PM MAIL   Вверх
Keeper89
Дата 20.10.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

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



Цитата(Jmylia @  20.10.2009,  21:30 Найти цитируемый пост)
Ну ет из  очень простого счаз мы учим новую тему,возьму себе во внимание команду result := так удобнее,еще и похвалят smile 

Не спеши, ее нет в Паскале.


--------------------
PM MAIL WWW   Вверх
Beltar
Дата 20.10.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Там вообще много чего нет того, что в Delphi кажется очевидным => лучше сразу учить Delphi. По собственно языку я бы Фаронова порекомендовал, у меня, например, очень хорошая его книга по Delphi 7 есть, в отличие от многих других книг для начинающих, там нет траты времени на БД и т. п. частные технологии. http://www.ozon.ru/context/detail/id/1421512/


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Keeper89
Дата 20.10.2009, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

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



Beltar, он ее уже переиздал: http://www.ozon.ru/context/detail/id/4088055/
Но тут вроде не о книгах речь. 
Речь вроде была о том, какой язык наиболее прост и гибок для обучения и с какого следует начать.

З.Ы. Если уж об обучении, то можно попробовать вот с этого.

Это сообщение отредактировал(а) Keeper89 - 20.10.2009, 23:45


--------------------
PM MAIL WWW   Вверх
Lazin
Дата 21.10.2009, 05:36 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



я бы так ответил на сабж, выбор языка программирования для обучения важен, но еще важнее, не учиться программированию по Фараонову smile 
а иначе, будете ваять ассоциативные контейнеры, на основе класса TList smile 
PM MAIL Skype GTalk   Вверх
mrbrooks
Дата 21.10.2009, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(Keeper89 @  20.10.2009,  23:43 Найти цитируемый пост)
З.Ы. Если уж об обучении, то можно попробовать вот с этого.

В свое время очень популярна была книга "Язык Pascal и основы программирования в Delphi" А. Я. Архангельского. Но дельфисты Архангельского не любят, ибо он в ведении просит не учить Pascal(Delphi), а сразу переходить на С++  smile 
PM MAIL   Вверх
Alexeis
Дата 21.10.2009, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Lazin @  21.10.2009,  04:36 Найти цитируемый пост)
а иначе, будете ваять ассоциативные контейнеры, на основе класса TList

  В условиях отсутствия псевдонимов типов приходиться пользоваться безтиповым указателем, других альтернатив нет. Кстати в Delphi TList это аналог вектора, а не std::list. Лично я предпочитаю использовать типизированные управляемые конструкции типа array of type или же писать полноценного наследника для TList заточенного под конкретный тип. Кроме того как бы не хвалили новые дженерики, как оказалось они в Delphi 2009 не работают smile .

Упс. А почему тема не в холиварах?


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

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

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Alexeis, речь шла о ассоциативных контейнерах, о тех, которые позволяют находить значение по ключу, и эта операция имеет сложность, в зависимости от реализации, либо O(1) (для хэш таблиц, если нет коллизий), либо О(log N) (сбалансированные деревья)
единственный способ использовать в таком качестве TList - хранить в нем пары ключ - значение, постоянно поддерживать его в отсортированном по ключу состоянии и искать в нем бинарным поиском
Цитата(Alexeis @  21.10.2009,  09:19 Найти цитируемый пост)
Кстати в Delphi TList это аналог вектора
то-есть добавление элемента в такой контейнер, будет выполняться за O(N*log(N)) (поиск того места, куда нужно вставлять - за O(log N), вставка - за O(N), так-как нужно переместить N(в худшем случае) элементов), в отличии от добавления элемента в дерево или хэш таблицу

единственное, что есть в BDS 2006 (за другие версии ничего сказать не могу), это TBucketList, но он совсем не тянет на полноценную хэш таблицу, это и есть не более чем bucket list, там даже элементарные операции не реализованы, такие как поиск элемента по ключу, про rehash я вообще молчу smile 

и не надо мне говорить, что существуют библиотеки и компоненты, потому-что в любом ЯП, такие вещи есть в стандартной библиотеке
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 21.10.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Lazin @  21.10.2009,  09:21 Найти цитируемый пост)
единственное, что есть в BDS 2006 (за другие версии ничего сказать не могу), это TBucketList, но он совсем не тянет на полноценную хэш таблицу

  THashedStringList 


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

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

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


Опытный
**


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

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



Цитата

а иначе, будете ваять ассоциативные контейнеры, на основе класса TList 


Ну так просвети нас темных, ответ в стиле "я не паскалист" не принимается и приравнивается к сливу.

Цитата

Если уж об обучении, то можно попробовать вот с этого.


А фактически пересказ тех же самых книжек. Литературу я бы все-таки предпочел иметь, как в бумажном, так и в электронном виде.

Вообще тут на днях анекдотичная история была, мой боевой товарищ по 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++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Beltar
Дата 21.10.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

и не надо мне говорить, что существуют библиотеки и компоненты, потому-что в любом ЯП, такие вещи есть в стандартной библиотеке


Не забудь добавить, что в Си-подобных языках. Кроме того, я конечно, за STL, но наличие или отсутствие в библиотеке какого-то языка каких-то нужных конкретно тебе вещей, других пользователей может колыхать довольно слабо. И в масштабах большого проекта реализация каких-то там базовых структур данных может занять менее 0,001% времени, а то и вообще несколько минут для поиска и скачки готового.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Alexeis @  21.10.2009,  10:24 Найти цитируемый пост)
THashedStringList
опять не то smile 
во первых, нельзя задать свою хэш функцию, во вторых, в качестве ключей - строки, в третьих, в качестве значений - строки, в четвертых, я не вижу, что-бы эта штука умела расти, ну и в пятых, вряд-ли в ней можно хранить больше пары тысяч элементов smile 

вообще, умиляет, что вы даже разницы не видите smile 
Цитата(Beltar @  21.10.2009,  11:18 Найти цитируемый пост)
Ну так просвети нас темных, ответ в стиле "я не паскалист" не принимается и приравнивается к сливу.
я в предидущем посте распинался на эту тему, для особо одаренных, мне нужен класс TDictionary, который можно использовать вот так:
Код

var 
   kvmap : TDictionary;
   foo : Integer;
begin
  // добавление элементов в контейнер:
  kvmap.Add("foo", 42); // выполняется за O(log N) или быстрее
  // поиск элемента
  foo := kvmap.Lookup("foo"); // выполняется за O(log N) или быстрее
end

допустим, в кач. ключа выступает строка, в кач. значения - число, сделай это на основе TList, пристыди меня smile 
PM MAIL Skype GTalk   Вверх
Lazin
Дата 21.10.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Beltar @  21.10.2009,  11:34 Найти цитируемый пост)
Не забудь добавить, что в Си-подобных языках. Кроме того, я конечно, за STL, но наличие или отсутствие в библиотеке какого-то языка каких-то нужных конкретно тебе вещей, других пользователей может колыхать довольно слабо. И в масштабах большого проекта реализация каких-то там базовых структур данных может занять менее 0,001% времени, а то и вообще несколько минут для поиска и скачки готового. 
речь идет о том, что ты сказал, что реализуешь ассоциативный контейнер на основе TList, а не о том, что где-то там что-то есть
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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