LINUX.ORG.RU

Lazarus 1.6.4

 , ,


2

3

Вышла новая версия свободной кроссплатформенной среды разработки на языке Object Pascal. Данная версия собрана при помощи Free Pascal версии 3.0.2 (предыдущая использовала 3.0.0).

Данный релиз является корректирующим.

Lazarus по функциональности сопоставим с некогда популярной проприетарной средой разработки Delphi, однако является кроссплатформенным (поддерживает Windows, GNU/Linux, FreeBSD и macOS).

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 2)

Ответ на: комментарий от Deleted

Сишный return - это вообще преступление. Сколько багов с утечкой ресурсов он породил, сколько сложности в анализ code flow добавил.

Во многих кодстайлах требуют единую точку выхода, единую переменную result. Паскаль это форсит и правильно делает.

anonymous
()
Ответ на: комментарий от navrocky

JavaScript самое то для знакомства с программированием.

А ничего, что первые алгоритмы всегда синхронные?

Shadow ★★★★★
()
Ответ на: комментарий от Solexid

У дримкаса есть своя прога (написаная на делфях, так что это даже в тему) по имени Fito.

Fito(настройка), FCM15(работа с ФП), SetStart - РМК, LPIns(или как там утила налоговика называется) есть и под винду (может и на дельфях - не ковырял, у них и так всё что надо доступно), и под линуху (точно не помню то ли обрезанный дебиан, то ли ещё что-то) на «планшетах» Viki-Mini.

По внешнему виду виндовое не отличается от линухового. Но при обновах очень много жабы...

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от KRoN73

как минимум, какие-нибудь #include/use/require в шапку вбивать

если бы это было самым сложным.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Вложенные функции и процедуры делаются часто при использовании рекурсии. Рекурсивная функция вкладывается в нерекурсивную и имеет доступ, например, к общему счётчику числа вызовов.

Vudod ★★★★★
()
Ответ на: комментарий от KRoN73

Ага. Т.е. кроме, собственно, оверхеда на программирование ещё и оверхед на изучение Интернета :D

Тогда пусть и не вылазит из уютного excel(ненавижу)

NextGenenration ★★
()
Ответ на: комментарий от grem

Это точно, а то даже студенту (в больших расчетных программах та ж фигня) для реализации какого-нибудь простого итерационного метода в учебных целях сначала придётся написать простыню для рарсинга входных данных и записи выходных, и только потом коротенькую процедуру ради которой всё писалось

Да ладно. Если есть данные в текстовом файле в любом формате, хоть в json, хоть xml, да даже просто в виде таблицы, где в качестве разделителя столбцов выступают пробелы, а строк - переносы коретки - то кода будет не так уж и много.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Инкапсуляция запросто скроет методы этого класса.

Ради этого создавать класс?

anonymous
()
Ответ на: комментарий от NextGenenration

А разбить на обычные функции никак?

Думаю локальные функции и процедуры это плюс. Позволяет освободить внешнюю область видимости. А внутри - довольно часто бывает в каком-нить switch/case выполнять одинаковые громоздкие блоки кода. Так же можно внутрях функции зарядить свою рекурсию.

drfaust ★★★★★
()
Ответ на: комментарий от anonymous

В больших проектах выразительность Си ограничивают кодинг стайлами и ревью. Недавно меня попросили исправить отправленный коммит:

if (check_msg_signature(data, offset+(jmp_step=2))
 || check_msg_signature(data, offset+(jmp_step=3))
{
    // do something depending on jmp_step
}
Посовещавшись, пришли вот к чему:
jmp_step = 0;
if (check_msg_signature(data, offset+2))
    jmp_step = 2;
else if (check_msg_signature(data, offset+3))
    jmp_step = 3;

if (jmp_step)
{
    // do something depending on jmp_step
}
Дескать, первый случай элегантнее, но второй проще, а значит, нужно так.

Это не значит что выразительность не нужна. Мне нравится писать для себя на Perl и C так как _мне_ хочется. Но также я люблю строгость, явность паскаля. В больших проектах всё чаще вижу что программируют в стиле его конструкций. И, в отличие от С, примитивный код на паскале — красив.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от AntonyRF

Мало примеров что ли? Вот держите:

Пара часов практики, и если даже ты забыл что такое разыменовывание или приоритет операций, как ты уже понял данную тему.

NextGenenration ★★
()
Ответ на: комментарий от vada

«Сколько языков ты знаешь - столько раз ты человек», (с) А.П.Чехов. вот человек дебил был, да? А еще и русский...

mul4 ★★★★★
()
Ответ на: комментарий от andreyu

А как еще отличить подпрограмму, без возвращаемого значения и подпрограмму, возвращающую значение :)

Лично мне нравится как сделано в go - можно брать аргументы, а можно и не брать. Можно возвращать значения, можно и не возвращать.

NextGenenration ★★
()
Ответ на: комментарий от mul4

Детям нужно сначала изучить бы родную речь, попутно изучая родной язык (в старом его понимании ;)), а потом уже, изучив и усвоив досконально, переходить к иностранщине. А то сейчас получаются какие-то «дети мира», ни к одному языку не относящиеся, а говорящие на рунглише. Вот Дмитрий Анатольевич, например ;)

GluckMan ★★★
()
Ответ на: комментарий от leave

Почему тебя так сильно бесит аналог ключевого слова void?

Не знаю. Я могу лишь осознать свои идеалы, но не всегда могу найти причину. Может быть потому что когда-то давно в книге по паскалю читал про то что функции надо использовать когда надо вернуть только одно значение, а процедуры во всех остальных случаях. мне показалось это не самым логичным.

NextGenenration ★★
()
Ответ на: комментарий от navrocky

Ок. Чем это с костылями будет лучше питона без костылей? В жс не учтенная асинхронность всегда ноги оторвет, особенно в синхронном коде А, да. Сексом стоя в гамаке тоже можно заниматься.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от TechnoMag

Назовите что-нибудь «популярное», на котором можно написать для десктопа Linux, для работы с БД MSSql, MySQL, Firebird, особо не заморачиваясь созданием гридов и графиков ...

под линукс я пишу только для себя и с базами данных для себя ничего не писал. прости.

NextGenenration ★★
()
Ответ на: комментарий от iZEN

Чтобы правильно представлять себе работу «хвостовой» оптимизации вызовов в случае использования рекурсии.

можно пример? а то как то не могу понять как хвостовая рекурсия может быть связанна с функцией в отличие от процедуры

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

а то как то не могу понять как хвостовая рекурсия может быть связанна с функцией в отличие от процедуры

Сначала разберись с терминологией, а потом задавай вопросы. Нет такого понятия «хвостовая рекурсия».

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

А о чем тогда? Описанная вами ситуация никакого отношения к оператору return не имеет. Я указываю на потенциальную опасность внесения путаницы в код, что стало возможно благодаря тому что паскаль - язык с математическим синтаксисом.

A-234 ★★★★★
()
Ответ на: комментарий от TechnoMag

Назовите что-нибудь «популярное», на котором можно написать для десктопа Linux, для работы с БД MSSql, MySQL, Firebird, особо не заморачиваясь созданием гридов и графиков ...

Вокруг JDBC довольно много визуальных фреймворков написано. Примерно с 1998 года...

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от mul4

«Сколько языков ты знаешь - столько раз ты человек»

Чем дважды человек отличается от трижды человека? И самое главное, как в толпе идентифицировать дважды человеков?

NextGenenration ★★
()
Ответ на: комментарий от A-234

Плюс к этому в С есть оператор return

... а в FPC для этого есть Exit(что_вернуть)...
http://www.freepascal.org/docs-html/rtl/system/exit.html

Exit
Exit current subroutine.

Declaration

procedure Exit(
  const X: TAnyType
);
procedure Exit;

... The optional argument X allows to specify a return value, in the case Exit is invoked in a function. The function result will then be equal to X.

In Object Pascal or Delphi modes, if the Exit statement is surrounded by one or more Try .. Finally constructs, the Finally blocks are executed, which means that if the finally blocks are used to free resources, then these resources will also be freed when Exit is called.

bormant ★★★★★
()
Ответ на: комментарий от GluckMan

а потом уже, изучив и усвоив досконально

что входит в понятие «досконально»?

NextGenenration ★★
()
Ответ на: комментарий от Deleted

Я выдумал? ISO 7185 в помощь, никаких выдумок. Никто не запрещает присвоить один результат, потом другой. В С такого нет. Так понятно?

A-234 ★★★★★
()
Ответ на: комментарий от A-234

Я указываю на потенциальную опасность внесения путаницы в код

Путаницы не больше чем множественный return... Проще говоря, никакого преимущества return не дает.

anonymous
()
Ответ на: комментарий от A-234

Никто не запрещает присвоить один результат, потом другой. В С такого нет. Так понятно?

Мне понятно. Это ты не понял что я написал.

Deleted
()
Ответ на: комментарий от NextGenenration

Значит я неправильно выразился.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Забей. Чехов писал не про языки программирования.

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

NextGenenration ★★
()
Ответ на: комментарий от rmammoth

Суть в принципе оптимизации вызовов при использовании функций и процедур, а не в самом явлении хвостовой рекурсии.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Суть в принципе оптимизации вызовов при использовании функций и процедур, а не в самом явлении хвостовой рекурсии.

Хм. Если написано:

Нет такого понятия «хвостовая рекурсия».

то понять это утверждение иначе как отрицание существования понятия «хвостовая рекурсия» у меня лично не получается. И не стоит лепить теперь отмазки ;).

rmammoth
()
Ответ на: комментарий от iZEN

Хвостовая рекурсия - явление. Хвостовая оптимизация - метод.

Да ладно. Поездка на автомобиле это метод или явление? И какая разница, если только что мне сказали что этого нет?

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Поездка на автомобиле это метод или явление?

Поездка - явление. Поездка на автомобиле, поездка на трамвае - методы.

В случае использования функций в рекурсии используется один метод хвостовой оптимизации. В случае использования процедур - другой. Что тут неясного?

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от iZEN

Не надо увиливать. Сказано было про то что я ошибся с терминологией? Был приведён аргумент про то что я сделал всё правильно? И то и другое было. И не важно как это называть.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Был приведён аргумент про то что я сделал всё правильно? И то и другое было. И не важно как это называть.

Ты не дошёл до сути того, о чём я говорил. Надеюсь, я исправился в последних постах и подвёл тебя к истине.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Хвостовая рекурсия - явление.

Явление — это когда к тебе после грибочков Наполеон является. Хвостовая рекурсия — термин, строго говоря. И давай не будем разводить казуистику, тождественно ли «понятие» «термину», «явлению» или еще чему-то. Облажался — имей характер это признать.

rmammoth
()
Последнее исправление: rmammoth (всего исправлений: 1)
Ответ на: комментарий от NextGenenration

Чехов был не дурак, и я лишь могу предполагать, что он имел ввиду. Как вариант: умение поставить себя на место другого человека, и умение понимать другого поможет человеку избегать конфликтов в дальнейшем. Найти общие точки соприкосновения.

mul4 ★★★★★
()

В институте в 1989-1992 годах нас обучали Turbo Pascal 3.0 на ПЭВМ Искра-1030 с монохромным зеленым дисплеем... :-)

anonymous
()
Ответ на: комментарий от A-234

В паскале присвоение значения имени функции возможно только 1 раз. Иначе --- предупреждение или некомпиляция. Вот с переменною result действительно можно творить разные разности. Но это всё равно лучше, чем множественный return.

Vudod ★★★★★
()
Ответ на: комментарий от anonymous

Я играл на Искре в Прехисторик и Прехисторик 2, загружаясь с дискеты в DOS 5, кажется. Помню, там была алюминиевая клавиатура.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

В паскале присвоение значения имени функции возможно только 1 раз. Иначе — предупреждение или некомпиляция.

Какой же транслятор так себя ведёт, позвольте спросить?
Какой-нибудь пруф будет?

bormant ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.