LINUX.ORG.RU

Вышел Lazarus 3.0

 ,

Вышел Lazarus 3.0

2

4

Команда разработчиков Lazarus рада сообщить о выпуске Lazarus 3.0 — интегрированной среды разработки для Free Pascal. Этот релиз по-прежнему собирается компилятором FPC 3.2.2.

В этом выпуске:

  • добавлена поддержка Qt6, основанная на версии 6.2.0 LTS; Минимальная версия Qt для lazarus 3.0 — 6.2.7;
  • полностью переработана привязка Gtk3;
  • для Cocoa исправлены многочисленные утечки памяти и реализована поддержка многомониторных конфигураций;
  • добавлена подсветка синтаксиса для PasDoc;
  • исправления и улучшения для компонентов TCustomImageList, TTaskDialog, TSpeedButton и других.

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

★★★★★

Проверено: hobbit ()
Последнее исправление: Virtuos86 (всего исправлений: 5)

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

а на Паскале в 2х if-ах лишние (но не ошибочные) begin и end

Очень неоднозначный синтаксис, еще и ; не везде ставится, я даже в примере bormant не знаю, можно ли пропустить последний знак ; в end, или там он обязательно нужен? Очень и очень запутано с этим begin, end, стоило сделать их обязательными.

Потому что вы очень далёкий от математики человек

По сравнению с многими из тех кто будет изучать паскаль, я профессор математики и эксперт английского. И даже мне сложно вникнуть в то почему какой то Real, а int из C почему не Real то?

Затем, что программы надо не только писать, но и ЧИТАТЬ. Прочесть приведённые вами программы на Паскале проще, чем на Бейсике.

Спорно.

Это который плод гибридного скрещивания qBasic, VB, C и немного паскалевского синтаксиса?

Что первое в гугле вышло то и выбрал, паскаль в школы так и выбирают, где то fpc, где то abc.net.

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

В LibreOffice поддержка есть

Это сильно специфическая вещь, ни разу не подходящая для изучения программирования.

Вот в LibreOffice Calc всегда можно что то удобно посчитать.

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

Мы не программировали на VBA, просто задавали в ячейках формулы.

Это вообще мимо программирования.

Я за отмену обязательного образования

В этом случае мы за 1 поколение скатимся в первобытно-общинный строй. Ни одна страна не выбралась из него, не вводя хоть какого-то обязательного образования.

Файлик удобно таскать, можно скинуть другим, они его подредактируют

Вот за такое точно надо электричеством лечить. Запрограммированную э/т нельзя редактировать, только заполнить данными, но даже это может быть чревато боком.

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

Перед end точка с запятой опциональна. Хочешь ставишь, хочешь - нет.

novus
()
Ответ на: комментарий от MOPKOBKA

Очень неоднозначный синтаксис, еще и ; не везде ставится

Синтаксис ясный и понятный, ; ставиться в конце оператора, а в последнем end нет ;, там . , вот ПЕРЕД последним end ; не обязательна, но и не ошибочна.

Единственный затык может быть только в if then else, если чел забывает, что выражение между then и else не следует заканчивать ;, т.к. то ещё не конец оператора. Но на такое обязательно ругнётся компилятор.

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

С необязательными begin/end и скобками есть еще проблема когда думают что тело if заберет две строки, а обрабатывается только одна

some_code();

if x = y then
  writeln('x = y');
  writeln('x = y!!!');

some_code();
Есть тут знатоки Oberon, исправлено ли там это? В Rust исправили.

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

Я за отмену обязательного образования

В этом случае мы за 1 поколение скатимся в первобытно-общинный строй. Ни одна страна не выбралась из него, не вводя хоть какого-то обязательного образования.

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

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

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

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

Да я в общем то не спорю что можно написать, возможно эту программу можно было бы реализовать на VBA кстати.

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

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

Алгоритм другой кстати, у тебя d:=Sqr(b)-4*a*c, а у меня там вместо корня степень. Как степень в паскале записывается?

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

С необязательными begin/end и скобками есть еще проблема когда думают что тело if заберет две строки

Понятно, что вы вообще не знаете Паскаль с вашими _start, a.out и вот этим. Разделитель в Паскале – это ; и begin - end, а не отступы. Begin - end не обязательны для одного оператора, вернее, всё, заключённое в операторные скобки begin - end синтаксически считается единым оператором, потому если у вас единственный оператор, то begin - end не обязательны.

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

будут просто изучать семейное ремесло

Уже было, херня получается. Начиная с того, что обучение – особый вид деятельности, к которому (посмотрись в зеркало) не каждый способен, а многих (посмотри в зеркало ещё раз) к нему нельзя принципиально допускать.

Это я ещё не говорю про такие «мелочи» как неспособность к семейному ремеслу, излишек работников (сколько парикмахеров надо на 100 человек?), невозможность в современных условиях «на дому» подготовить смену, отсутствие у родителей времени на и т.д. Как вы себе представляете освоение профессии физик-ядерщик-инженер-АЭС как «семейное ремесло»?!

Та даже грамотной речи и письму так просто не научишь. Вот вы знаете, как правильно учить ЧИТАТЬ, чтобы потом личинка человека могла правильно ПИСАТЬ?

свободное время можно потратить на оттачивание навыков

Навыков чего? Махания полосатой палкой и чтения документов из10 строк?!

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

Веgin end это составной оператор, как и в си {}. Хотя есть и отличия, например begin end не содержит описаний и не создает отдельного пространства имен.

sabacs
()
Ответ на: комментарий от MOPKOBKA

Алгоритм другой кстати, у тебя d:=Sqr(b)-4ac

Это ещё одна демонстрация незнания Паскаль ВООБЩЕ, Sqr – возведение в квадрат, извлечение корня sqrt.

Как степень в паскале записывается?

Никак. a^m == exp(m*ln(a))

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

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

В Си с этим большой напряг, с пространством имён по {}. Пример:

int main (void)
{
 int a=200;
 printf ("A = %d \n",a);
  {
    float a=-3.7;
    printf ("A = %f\n",a);
   }
printf ("A = %d \n",a); ///Печатает 200
printf ("A = %f \n",a); ///Печатает -3.7
float c=3.7,q;
q=c+a;
printf ("Q = %f \n",q); 
return 0;
}
mister_VA ★★
()
Ответ на: комментарий от mister_VA

Проблема в том, что в printf («A = %f \n»,a); ///Печатает -3.7
Память есть, но в ней не значение типа float.
То бишь спецификатор для значения float, а в памяти INT.

Можете просто попробовать вот такой код:

#include "stdio.h"

int main(){
    
 float a=200;
   
 printf ("A = %d \n",a);
 
 return 0;

}

Си и C++ верят программисту, даже если код с UB.

Доскональный ответ можно получить лишь анализируя исходный код функции printf().

Ради интереса попробуйте вот так (с UB).

#include "stdio.h"

int main(){
    
 char a=200;
   
 printf ("A = %d \n",a);
 
 return 0;

}

или так (c UB)


#include "stdio.h"

int main(){
    
   char a=200;
   
 printf ("A = %f \n",a);
 
 
    return 0;
}

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 9)
Ответ на: комментарий от sabacs

Переменная не существует после выхода из блока.

Переменная НЕ должна существовать, вот только её можно передать в функцию вне области видимости.

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

Проблема в том, что в printf («A = %f \n»,a); ///Печатает -3.7

Память есть, но в ней не значение типа float.

То бишь спецификатор для значения float, а в памяти INT.

В памяти есть ОБА значения и оба могут ПРАВИЛЬНО использоваться, хотя должно быть одно. В том и проблема. Ещё проблема в том, что если в памяти есть одно значение, пусть int, но печатаем мы его с форматом вещественных, то компилятор не ругается, а при исполнении прога выдаёт мусор.

И вот на этом, позволяющем отстрелить себе яйца самым разным способом с использованием СТАНДАРТНЫХ средств языка в примитивнейших прогах, местные клоуны предлагают НАЧАТЬ обучать детей программированию?!

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

ИМХО Си и C++ для системного программирования.
При обучении можно лишь упомянуть о том, что для более тонкой работы с памятью и ... Си и C++.

Шутка

И дать ссылку на стандарт языка, который содержит 1500 страниц текста.

Иногда может в коде быть чушь, а компилятор ничего не увидит.
Например:

 int Vp01 = 0,
     flag = 1;

// Ерунда в стиле 1С (31 декабря после 1С такой "гениальный" код написал. Вообщем пол часика долой.)
//
 Vp01 = ( flag == 1,
          5,
          6
        );

Для компилятора всё ok, а правильный код

 Vp01 = ( flag == 1
          ? 5
          : 6
        );
 

В памяти есть ОБА значения и оба могут ПРАВИЛЬНО использоваться, хотя должно быть одно.

При выходе из блока в стеке по идее всего лишь одно значение.
Второе значение в стеке появится при кодогенерации для q=c+a;
Вообщем нужно смотреть ассемблерный код компилятора для этого алгоритма.

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

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

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

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

Программировать калькулятор удобно и легко примерно так же, как выбивать руны не камнях. Все эти «расчёты» потребны и понятны учащимся как раз на уровне вырезания рун.

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

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

Выжрал Бейсик сильно платформо зависим, а так же в который раз: ЯП в школе совсем не главное, т.е. опосля школы школота всё равно не будет знать этот ваш Выжрал, зато под этот Выжрал надо целую IDE изучать, M$ Exel, который опять же, под Винду и т.д.

Интерпретатор QBasic входил в поставку DOS 5.0 и Windows 95/98. Его компилирующий аналог — QuickBasic — приобретался отдельно. В Википедии написано, что «с 2007 года существует версия QBasic для 64-битных систем, работающая в операционных системах Windows 7, 8, 10»; «QBasic широко использовался в школах для обучения основам программирования. В России вплоть до 2010 года QBasic использовали 60-80% учителей информатики. По состоянию на 2020 год, продолжают публиковаться отдельные методические рекомендации по использованию QBasic в обучении информатике. Несмотря на отсутствие поддержки в новых операционных системах, для его запуска используется DOSBox.»

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

Sqr(b) - это square - квадрат b - суть b*b.
Разницы нет, привычка.
Корень - SqRt - square root.

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

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

Обо что я и говорю.

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

С Бейсиком тоже неловко вышло ;)
Желание объявить переменные через Dim выльется в чуть более громоздкую конструкцию:

Dim a As Double, b As Double, c As Double, d As Double

Вот такой он, Option Explicit, бессмысленный и беспощадный, в сравнении с DEFDBL ;)

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interfac...

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

По поводу структурного If с Бейсиком тоже неловко вышло:
End If — это 2 слова, через пробел,
ElseIf — тут нормально, без пробела.

;)

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interfac...

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

Интерпретатор QBasic

Это смерть личинки программиста

QBasic — это вам не basica, не gwbasic ;)
QBasic позволяет писать логику структурно, в отличие от помянутых предшественников.
Но, тоже правы, не принуждает писать только структурно, успешно прожевывая и кашу в стиле basica, бррр...

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

_start это метка на начало программы в elf. Ее не существует физически, но это стандартное имя у gcc вроде, ну метка входа очевидно и у fpc есть, это было все про нее.

В паскале мне понятно что begin, end необязательны, а вот со знаком ; уже вопросы.

bormant писал кратко, но зачем он поставил после последнего end точку с запятой, там же конец программы потом?

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

Уже было, херня получается. Начиная с того, что обучение – особый вид деятельности, к которому (посмотрись в зеркало) не каждый способен

Для них есть пенсия по инвалидности.

а многих (посмотри в зеркало ещё раз) к нему нельзя принципиально допускать.

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

Это я ещё не говорю про такие «мелочи» как неспособность к семейному ремеслу

Ну другое освоит, ничего сложного.

излишек работников

Население вымирает, и так же можно пойти учится на юриста а потом жаловаться.

Как вы себе представляете освоение профессии физик-ядерщик-инженер-АЭС как «семейное ремесло»?!

Ну тут надо АЭС иметь под рукой, это в общем то дело уже АЭС.

Та даже грамотной речи и письму так просто не научишь. Вот вы знаете, как правильно учить ЧИТАТЬ, чтобы потом личинка человека могла правильно ПИСАТЬ?

А кому это надо? У меня спелчекер старается.

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

Это ещё одна демонстрация незнания Паскаль ВООБЩЕ, Sqr – возведение в квадрат, извлечение корня sqrt.

О как удобно, это и есть твоя наглядность?

Никак. a^m == exp(m*ln(a))

Тоже очень удобно. Но я думаю проще подключить модуль математики, уверен он есть.

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

Ещё проблема в том, что если в памяти есть одно значение, пусть int, но печатаем мы его с форматом вещественных, то компилятор не ругается, а при исполнении прога выдаёт мусор.

Любой современный компилятор выведет предупреждение.

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

-Wextra -Werror -fanalyzer на компилятор и все, в рамках обучения почти все проблемы С с неоднозначностью и отладкой будут убраны.

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

Полно программ для внутреннего пользования для автоматизации бизнес-процессов. У нас например складской учет/торговля.

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

Ну и никак получается этот ваш код не посмотреть, значит информации нету, отсутствует.

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

Код посмотреть можно тут, если сами ссылку не смогли найти. https://github.com/zamtmn/zcad

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

Один человек или много делают - что это меняет?

Вот другая программка, граф.редактор, можно скачать исходники, скомпилить, запустить. https://github.com/bgrabitmap/lazpaint

Ну и если на том же гитхабе пофильтровать по тегам pascal/lazarus/delphi - то можно найти массу программ. И это только те что выложены в опенсорс.

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

Про код был ответ на другой комментарий, код zcad действительно можно почитать и это хорошо.

Ну и если на том же гитхабе пофильтровать по тегам pascal/lazarus/delphi - то можно найти массу программ

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

А чему учится читая lazpaint? Лучше почитать исходники GIMP.

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