Книга «Экспресс курс программирования в Lazarus»
Модератор: Модераторы
-
tuzik87@inbox.ru
Vadim, исходник в формате ODF пойдет?
tuzik87@inbox.ru
Вне всякого сомнения.
Вне всякого сомнения.
-
tuzik87@inbox.ru
Выложил на свой сайт новую редакцию книги по Free Pascal и Lazarus с исправлением небольших неточностей в тексте.
Ссылка для скачивания - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Ссылка для скачивания - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
-
tuzik87@inbox.ru
Доступна новая редакция книги. Дополнил материал девятой главы из седьмой части.
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
-
tuzik87@inbox.ru
Выложил на свой сайт новую редакцию книги по Free Pascal и Lazarus. Дополнил материал второй и третьей глав из третьей части.
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
-
tuzik87@inbox.ru
Выложил на свой сайт новую редакцию книги. Дополнил материал второй главы из третьей части.
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Полезное дело делаешь!
tuzik87@inbox.ru писал(а):Выложил на свой сайт новую редакцию книги.
ты бы писал изначально в каком-нибудь удобоваримом формате верстки (md, LaTex и др). Там есть и встроенные механизмы форматирования кода, формул, и возможность конвертации текста в наиболее популярные форматы (doc, pdf, html etc). Читать же невозможно.
Решил наконец заглянуть в эту книжицу.
Что бы это значило?
Введение
Данная книга представляет собой краткий справочник, содержащий
необходимые сведения, для того чтобы освоить один из вариантов языка
Паскаль
Что бы это значило?
-
tuzik87@inbox.ru
Выложил на свой сайт новую редакцию книги с внесением правок в главы 7 и 28 из первой части.
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
-
MylnikovDm
- постоялец
- Сообщения: 103
- Зарегистрирован: 15.02.2007 20:26:10
- Откуда: Челябинск
На странице 6 в разделе "модификаторы" пропущен overload.
И на мой взгляд, не хватает поясняющих примеров непосредственно на языке Free Pascal, которые демонстрируют правильное использование синтаксических конструкций. Есть только общие описания.
Также в описаниях синтаксических конструкций явно не хватает отступов.
То есть, у вас сейчас дано
а должно быть
Добавлено спустя 9 минут 24 секунды:
Глава 23. Записи.
Во Free Pascal записи могут содержать процедуры и функции. В плане использования это похоже на использование классов. Разница в том, что для записей отсутствует возможность наследования, а значит и объявления виртуальных функций и процедур. В остальном вложенные в записи процедуры и функции работают аналогичным образом и имеют неявный параметр self. Также в record advanced можнов включать конструктор, деструктор, констаты и типы, а также области видимости. В общем, как в Delphi. Поддерживается начиная с версии 2.6.
Почитать можно тут https://wiki.freepascal.org/FPC_New_Features_2.6.0#Advanced_record_syntax
Добавлено спустя 3 минуты 48 секунд:
Глава 27. Про тип Variant.
Слишком мало и не информативно. Хотелось бы видеть основные функции и приёмы для работы с типом вариант. Как определить реальный тип? Как преобразовать? Как проверить на NIL?
И на мой взгляд, не хватает поясняющих примеров непосредственно на языке Free Pascal, которые демонстрируют правильное использование синтаксических конструкций. Есть только общие описания.
Также в описаниях синтаксических конструкций явно не хватает отступов.
То есть, у вас сейчас дано
Код: Выделить всё
repeat
оператор1;
…
операторN;
until условие;а должно быть
Код: Выделить всё
repeat
оператор1;
…
операторN;
until условие;Добавлено спустя 9 минут 24 секунды:
Глава 23. Записи.
Во Free Pascal записи могут содержать процедуры и функции. В плане использования это похоже на использование классов. Разница в том, что для записей отсутствует возможность наследования, а значит и объявления виртуальных функций и процедур. В остальном вложенные в записи процедуры и функции работают аналогичным образом и имеют неявный параметр self. Также в record advanced можнов включать конструктор, деструктор, констаты и типы, а также области видимости. В общем, как в Delphi. Поддерживается начиная с версии 2.6.
Почитать можно тут https://wiki.freepascal.org/FPC_New_Features_2.6.0#Advanced_record_syntax
Добавлено спустя 3 минуты 48 секунд:
Глава 27. Про тип Variant.
Слишком мало и не информативно. Хотелось бы видеть основные функции и приёмы для работы с типом вариант. Как определить реальный тип? Как преобразовать? Как проверить на NIL?
-
tuzik87@inbox.ru
MylnikovDm, спасибо за отзыв. В плане расширенных записей вы ошибатесь. Конструкторы там запрещены. Об этом прямо говорит официальная документация - https://freepascal.org/docs-html/curren ... -1410009.1
Процитирую: "Constructors or destructors cannot be defined"
Процитирую: "Constructors or destructors cannot be defined"
tuzik87@inbox.ru писал(а):В плане расширенных записей вы ошибатесь. Конструкторы там запрещены. Об этом прямо говорит официальная документация
Конструктор класса - работает.
Код: Выделить всё
{$mode objfpc}
{$modeswitch advancedrecords}
program primer;
Type
TMyRecord = record
class var
r: Integer;
class constructor Init;
end;
class constructor TMyRecord.Init;
Begin
r := 4;
End;
Var
mr: TMyRecord;
Begin
WriteLn(mr.r);
End.А вот если надо просто конструктор, то он работает только с параметрами. Без параметров действительно, будет ошибка компиляции. Нужно писать как-то так:
Код: Выделить всё
{$mode objfpc}
{$modeswitch advancedrecords}
program primer;
Type
TMyRecord = record
r: Integer;
constructor Init(d: integer);
end;
constructor TMyRecord.Init(d:integer);
Begin
r := d;
End;
Var
mr: TMyRecord;
Begin
WriteLn(mr.r);
mr.Init(6);
WriteLn(mr.r);
End.iskander писал(а):Введение
Данная книга представляет собой краткий справочник, содержащий
необходимые сведения, для того чтобы освоить один из вариантов языка
Паскаль
Что бы это значило?
Попытаюсь объяснить, что именно ввело меня в ступор на этом абзаце.
Вариант языка обычно называют диалектом. Диалектов FPC поддерживает изрядное количество(см. "Режим совместимости"), поэтому, полагаю, уместнее здесь было бы слово "компилятор". Всё это так же относится и к следующему абзацу.
Третий абзац:
Язык Паскаль придумал швейцарский ученый Никлаус Вирт в 1968 году.
Своему названию язык обязан французскому математику девятнадцатого века
Блезу Паскалю.
Полагаю вместо слова "придумал" лучше использовать "разработал" и у меня есть сомнения насчёт Блеза Паскаля и девятнадцатого века.
Насчёт конструкторов-деструкторов: в FPC-3.2.0 появилась интересная фишка - record management operators, кмк их вполне можно было бы считать конструкторами-деструкторами по умолчанию.
Что касается собственно конструкторов для extended record, как справедливо отметил Вадим они существуют и уже достаточно давно, в 3.0.4 они уже точно были.
Что забавно, их можно использовать двумя способами:
Код: Выделить всё
type
TMyRec = record
a,
b: Integer;
constructor Create(aA, aB: Integer);
end;
constructor TMyRec.Create(aA, aB: Integer);
begin
a := aA;
b := aB;
end;
...
r := TMyRec.Create(1, 2);
WriteLn(r.a, ' ', r.b); //1 2
r.Create(11, 12);
WriteLn(r.a, ' ', r.b); //11 12
...
iskander писал(а):Полагаю вместо слова "придумал" лучше использовать "разработал"...
Если речь идёт именно о 1968-ом годе, то в тот год он его как раз придумал. Хотя, надо сказать, что придумывать он его начал в тот момент, когда разругался с алгольным комитетом. Понятно, что тот Алгол, который разработали Вирт с Дейкстрой, ему объявить не дадут - типа тут всякие разные патентные права, поэтому пришлось изобретать новое название для языка. Да и напрямую ту разработку не используешь: опять же - алгольцы засудят. Необходимо было внести какие-то существенные отличия. В 1970 был готов полностью рабочий прототип, по-моему для PDP-11 (тут я могу попутать название
