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)

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

Это факт. Нет нужды особенно объяснять x + y, а writeln такой же оператор как +, например.

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

как работает WriteLn не выйдет

Кто сказал, что необходимо объяснять, как работает writrLn для того, чтобы объяснить, для чего оно в программе?!

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

begin, end.

Ну как-то же объясняется, как я уже писал выше, 45 минут и ученик готов написать первую прогу. Это сложнее, чем объяснить, зачем {} ?

зачем писать program?

Можно не писать, это просто имя программы. Как видите. объяснение занимает примерно 3 сек.

Почему при исполнении readln программа «зависает» а не идет дальше?

Потому что ничего и не зависает.

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

Вы путаете обучение записи алгоритмов на ЯП и разъяснения, как эта программа работает «в процессоре».

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

объяснить даже за 10 уроков как работает WriteLn не выйдет.

Деды™ вообще считали I/O операторы «нинужными» в Алгол 60.

Для начала всегда можно пропустить некоторые детали.

Для этого есть «обучающе-игрушечные» подмножества типа Pascal Next © или Pascal N-IDE ©.

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

Ну как-то же объясняется, как я уже писал выше, 45 минут и ученик готов написать первую прогу. Это сложнее, чем объяснить, зачем {} ?

end. это не end

Можно не писать, это просто имя программы. Как видите. объяснение занимает примерно 3 сек.

Что за имя программы? Почему файл называется a.out а не imyaprogrammi?

Потому что ничего и не зависает.

То есть объяснять не хотите?

Кто сказал, что необходимо объяснять, как работает writrLn для того, чтобы объяснить, для чего оно в программе?!

На первых уроках объяснять не нужно, так же как и не нужно объяснять что именно делает std::cout << x << std::endl; / std::println(x);

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

end. это не end

Это ещё проще и быстрее: всё, что идёт после endю игнорируется, т.к. не является частью программы.

Что за имя программы?

Для человеков, вот как сочинению даётся имя, так и программе. Это не то, что хоть у кого-то вызывает непонимание.

Почему файл называется a.out а не imyaprogrammi?

Патамушта это вы как раз будете объяснять при изучении Си и пр. т.к. компиляторы Паскаля дают исполняемому файлу имя, совпадающее с именем файла исходного кода, а в Винде ещё и правильное расширение exe присобачивают. Ну, это если вы явно не указали имя исполняемого файла при компиляции.

как и не нужно объяснять что именно делает std::cout << x << std::endl; / std::println(x);

И получаем то, оп чём неоднократно писалось: почти все т.н. «промышленные» языки непригодны для первоначального обучения, т.к. слишком много будет вот таких заклинаний и объяснений «эту магию вы поймёте позже на пару курсов, ну, кто доживёт».

В чём начинающему сложнее сделать ошибку, а учителю проще её заметить? Вот в этом вашем std::cout << x << std::endl; / std::println(x); или во writeln(x);?

К слову, когда студент дорастёт до понимания объяснений, как этот «вритеэльэн» работает, он уже давно будет пыхтеть не над Паскалем, а глубоко ковыряться в Си.

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

То есть объяснять не хотите?

Это объясняется за те же 5 сек, если рабочая среда – Винда. "Дети, в конце программы перед end. пишете readln;, чтобы окно с результатами работы не закрывалось, а ждало, пока вы не нажмёте «Enter». Всё. Для Никсов не надо даже этого, как не надо readln;, поскольку компиляция и запуск проги идёт в окне терминала.

Что такое само readln объясняется в первые 45 мин, когда демонстрируется первая же программа.

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

.к. слишком много будет вот таких заклинаний и объяснений «эту магию вы поймёте позже на пару курсов, ну, кто доживёт».

Это ровно такая же магия как и writeln.

В чём начинающему сложнее сделать ошибку, а учителю проще её заметить? Вот в этом вашем std::cout << x << std::endl; / std::println(x); или во writeln(x);?

Ошибки находит компилятор, между std::println(x) и writeln(x) разницы нету.

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

Разница есть. И она космических масштабов.

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

Например, мой сын во второй половине «нулевых», классе в девятом или десятом, не помню уже, наваял для школы вариант среды Лого, которая была удобнее и лучше, по оценке преподавателей информатики. На Visual Basic, да. :)

И где ему потом пригодился этот навык? Да нигде. Вот в этом и состоит недостаток учебных языков - если бы написал к примеру на плюсах был бы востребованным специалистом, а вот после бейсика только переучиваться. Я вот как раз с Паскаля начинал когда-то, и потом пожалел. Потому что переучиваться на С++ было труднее чем сразу его изучать. Вместо С++ можно взять Java или что-то ещё, суть в том что время потраченное на их изучение не будет потрачено впустую в отличие от бейсика или паскаля.

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

Потому что переучиваться на С++ было труднее чем сразу его изучать.

Этого просто не может быть, потому что не может быть никогда.

а вот после бейсика только переучиваться.

Visual Basic это, вообще то, промышленный ЯП и весьма популярный.

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

И где ему потом пригодился этот навык? Да нигде

Да везде. Вы слишком прямолинейно и ограниченно воспринимаете это, как «одноразовое» событие. А это был этап его развития как программиста...

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

Это был его шаг в становлении как разработчика...

Вот в этом и состоит недостаток учебных языков

Повторюсь: НЕТ никаких «учебных» языков.

Есть лишь ваша неспособность освоить конкретный инструмент до уровня умения решать задачи именно с его помощью, здесь и сейчас, а не искать что-то другое, «лучшее», «профессиональное», и т.п.

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

Ошибки находит компилятор

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

между std::println(x) и writeln(x) разницы нету

Разница есть и очевидная, std::println(x) дольше печатать и проще ошибиться, не говоря уже о невнятности самого синтаксиса до изучения ООП в С++.

Это ровно такая же магия как и writeln

Нет, write и read можно воспринимать как обычные команды, такие же, как +, :=, begin и end, for и while. То, что они глубоко внутри реализованы совсем иначе, нежели другие операторы, не важно.

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

Я вот как раз с Паскаля начинал когда-то, и потом пожалел. Потому что переучиваться на С++ было труднее чем сразу его изучать

Потому что вы опять делаете всё ту же ошибку НЕПРАВИЛЬНОЙ постановки задачи. Паскаль следует использовать для ОБУЧЕНИЮ ПРОГРАММИРОВАНИЮ. А вот Си, С++, Джаву ИЗУЧАЮТ как язык программирования ПОСЛЕ того, как человек научился программировать. Да, желательно не на примерах на Бейсике.

И повторюсь ещё раз: приводить в пример свои ПРОГРАММИСТСКИ заточенные мозги в разговоре об ОБЩЕМ МАССОВОМ образовании не стоит.

Вместо С++ можно взять Java

Нельзя, вообще нельзя. Вы никак не поймёте, что школьное образование вообще ни разу не профессиональное.

Пример кода на Джава для решения квадратного уравнения:

import java.util.Scanner;
public class QuadraticEquation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите значение a: ");
        double a = scanner.nextDouble();
        System.out.print("Введите значение b: ");
        double b = scanner.nextDouble();
        System.out.print("Введите значение c: ");
        double c = scanner.nextDouble();
        double d = b * b - 4 * a * c;
        if (d > 0) {
            double x1 = (-b - Math.sqrt(d)) / (2 * a);
            double x2 = (-b + Math.sqrt(d)) / (2 * a);
            System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2);
        } else if (d == 0) {
            double x;
            x = -b / (2 * a);
            System.out.println("Уравнение имеет единственный корень: x = " + x);
        } else {
            System.out.println("Уравнение не имеет действительных корней");
        }
    }
}

Если вы скажете, что достаточно будет 45 минут введения в Джаву и девочки из «французской школы» вам напишут такое, то я вычислю вас по IP, приеду и плюну вам в ваши бесстыжие глаза.

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

Форт можно лучше понять после ассемблера, а не до.

Форт лучше понимается после «Электроники МК 61». ;)

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

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

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

<source>: In function 'int main(int, char**)':
<source>:4:10: error: 'prlntln' is not a member of 'std'; did you mean 'println'?
    4 |     std::prlntln("hello world");
      |          ^~~~~~~
      |          println
Compiler returned: 1

Разница есть и очевидная, std::println(x) дольше печатать и проще ошибиться, не говоря уже о невнятности самого синтаксиса до изучения ООП в С++.

Кто не может напечатать std::println, того и учить не стоит вообще, потому что единственное объяснение такому, это то что человек не хочет учится, зачем его заставлять? Хотя это совсем другая тема.

Нет, write и read можно воспринимать как обычные команды, такие же, как +, :=, begin и end, for и while.

std::println и std::cout можно воспринимать как обычные команды, такие как +, =, if, for, while.

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

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

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

Можно просто дать шаблон где уже будет класс, и функции println, readln, и говорить что в main() {} вписываем код. И уже никаких отличий от паскаля.

Очень надуманные претензии.

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

Блоксхемы я бы тоже выпилил.

Зря. Они очень помогали в программах для микрокалькуляторов «Электроника МК» в журнале «Техника – молодёжи».

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

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

Самые лучшие сообщения об ошибках они дают при инстанцировании шаблонов.

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

Курс по программируемым(!) микрокалькуляторам проходили в школе в 6-м классе в рамках алгебры. 1988 год. СССР. Начало массовой компьютеризации школ.

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

проходили в школе в 6-м классе

В РСФСР и/или в крупных городах – возможно. Я аттестат получил в 1989 г. и МК-52 был только у меня. А информатику начали преподавать в 1990 г., я не застал. :)

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

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

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

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

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

s-warus ★★★
()
Ответ на: комментарий от saahriktu

эк какой то ресурс так много значит (что требует твоих телодвижений), ты больше значишь

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

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

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

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

я начинал ребёнком со справочника по assembler z80.
Как учил питон стоит задача сканер qr кода сделать, что сделал написал свои вебсервер на сокетах, свой парсер ini, свою систему логов, за неделю, потом прочитал учебник стыдно было несказанно, зато все прошилось на подкорку.
Радость, что оно работает главный стимул освоить, дочь начал обучать с xdottools, одного вечера хватило, чтобы через неделю бот помощник для игры бомбермен был готов, а там распознание что противник рядом, условия, алгоритм поиска пути.

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

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

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

Вот в этом и состоит недостаток учебных языков

В мире не существует никаких «учебных» языков программирования.

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

Ну, работая, в своё время (90-е) лаборантом, подменял преподавателя на практикумах по бейсику у девчонок (предполагалось, что немногочисленные на нашем факультете юноши хоть как-нибудь программировать уже умеют, им давали более продвинутый курс). Постоянно приходилось объяснять, что = это не математическое равенство, и почему i=i+1 — это не какая-то бредяиина, а способ организовать счётчик.

Так что даже на этом уровне двоеточие из Паскаля/Алгола оно не на голом месте придумано.

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

говорить что в main() {} вписываем код

Не получится, потому как сначала всегда будут инклюды. Т.е. речь оп том, что для Си, С++ или Джавы необходимо (не)много магии, которую учащийся не будет понимать никак, что неверно методологически.

Так сложно осознать, что речь идёт не об изучении ЯП для зарабатывания денег, речь идет об изучении программирования в массовой общеобразовательной школе? Вопрос заключается в том, на каком языке быстрее, проще и яснее будет иллюстрировать алгоритмы? На каком языке учащимся будет проще их писать самим? На каком языке учителю будет проще читать ученические программы?

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

Зря. Они очень помогали в программах для микрокалькуляторов

Да. И для программ на Фортране и Бейсике. А вот для Паскаля они уже вообще не нужны.

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

Кто не может напечатать std::println, того и учить не стоит вообще

Массовая ОБЩЕОБРАЗОВАТЕЛЬНАЯ ОБЯЗАТЕЛЬНАЯ школа. Что вам ещё не понятно?!

std::println и std::cout можно воспринимать как обычные команды, такие как +, =, if, for, while.

Нельзя, потому как вопрос, а почему std::println, но не std::for ?! Синтаксис языка для учащегося должен быть прозрачен и единообразен.

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

В мире не существует никаких «учебных» языков программирования.

В мире существует множество языков единственной целью создания которых является обучение и изначально не имеющих никаких перспектив практического использования, например Лого или российский КуМир. Вы можете объяснить почему я и другие граждане не можем называть их учебными? Это чем-то не соответствует действительности или нарушает какой-то закон? Или оскорбляет ваши религиозные чувства? С полным перечнем учебных языков рекомендую вам ознакомиться по адресу https://ru.wikipedia.org/wiki/Учебный_язык_программирования. Там и Паскаль Ваш есть)) С Паскалем разумеется не все так просто, отнесение его к учебным как минимум требует указания временного отрезка и локации. В 70-ых и 80-ых он был реально востребован. Но по моему мнению как минимум с середины 90-ых в этой стране в большинстве случаев использовался для обучения студентов именно как учебный без перспектив или даже какой-то надежды практического использования. Т.е. студентов обучали Паскалю даже не скрывая что он им нигде не пригодится, после сдачи экзамена можно его сразу забыть и им самим или на производстве нужно будет переучиваться на «взрослый» язык.

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

Не получится, потому как сначала всегда будут инклюды

А в паскале begin. Про begin и include говорим что это начало программы, все. Меня куда больше другие вопросы интересовали когда я начинал программировать, заучить #include как какую то магию это очень просто, посмотри на тех кто начинает писать на C/C++, они могут часто думать что #include добавляют функции в язык, или что это подключение библиотеки, ну им и не нужно для начала знать что это.

Вопрос заключается в том, на каком языке быстрее, проще и яснее будет иллюстрировать алгоритмы?

C/С++ намного более выразительнее, и что то найти на них еще куда более проще чем на умирающем паскале. А уж количество библиотек под C/C++ зашкаливающее.

На каком языке учителю будет проще читать ученические программы?

Хорошо если бы он знал языков 5 общеутвержденных, а ученики могли бы их выбирать, как с иностранным. Кто то бы выбрал паскаль, кто то С++.

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

Массовая ОБЩЕОБРАЗОВАТЕЛЬНАЯ ОБЯЗАТЕЛЬНАЯ школа. Что вам ещё не понятно?!

Да вроде все понятно, вот если бы это был интернат для умственно отсталых, то тогда может и согласился бы.

Нельзя, потому как вопрос, а почему std::println, но не std::for ?! Синтаксис языка для учащегося должен быть прозрачен и единообразен.

А что такое writeln? Почему не writeline? Почему не write line? Почему end и end с точкой? Почему где то begin end есть а где то нету?

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

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

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

Насколько я знаю, fpc и Delphi несовместимы между собой в этом плане? А значит реализации есть только в отдельных компиляторах? Ну и можно ли на них написать вычисление факториала?

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

мне 36 лет, стаж с 17и, в основном железо, последние лет 15 ушел именно в разработку железной части, окончательно перестав что-то писать, но много было, очень много написано под микроконтроллеры. Я до сих пор не понимаю зачем нужен ООП. Нет как это рабоатет саму парадигму, тут все нормально. Вопрос зачем? Как не прикидывали на практике, ну не получается тут выигрыша, только писанина лишняя.

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

Это явно не про средне-образовательную школу.

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

ООП же не серебряная пуля, не нужно его везде тащить.

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

А в паскале begin. Про begin и include говорим что это начало программы, все.

Что-то Вы совсем зарапортовались. :)

C/С++ намного более выразительнее, и что то найти на них еще куда более проще чем на умирающем паскале. А уж количество библиотек под C/C++ зашкаливающее.

Какое это имеет отношение к навыкам реализовывать алгоритмы?

Кто то бы выбрал паскаль, кто то С++. Изучение С++ в школе это профанация обучения.

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

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

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