Книга «Экспресс курс программирования в Lazarus»

Форум для изучающих FPC и их учителей.

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

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 12.07.2020 00:48:17

Vadim, исходник в формате ODF пойдет?
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение Vadim » 12.07.2020 06:02:52

tuzik87@inbox.ru
Вне всякого сомнения.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 16.07.2020 12:34:04

Выложил на свой сайт новую редакцию книги по Free Pascal и Lazarus с исправлением небольших неточностей в тексте.
Ссылка для скачивания - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 23.07.2020 12:00:06

Доступна новая редакция книги. Дополнил материал девятой главы из седьмой части.
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 30.07.2020 14:31:17

Выложил на свой сайт новую редакцию книги по Free Pascal и Lazarus. Дополнил материал второй и третьей глав из третьей части.
Ссылка - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 29.08.2020 13:18:23

Выложил на свой сайт новую редакцию книги. Дополнил материал второй главы из третьей части.
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение Seenkao » 30.08.2020 11:02:57

Полезное дело делаешь!
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение zoltanleo » 31.08.2020 18:20:52

tuzik87@inbox.ru писал(а):Выложил на свой сайт новую редакцию книги.


ты бы писал изначально в каком-нибудь удобоваримом формате верстки (md, LaTex и др). Там есть и встроенные механизмы форматирования кода, формул, и возможность конвертации текста в наиболее популярные форматы (doc, pdf, html etc). Читать же невозможно.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение iskander » 31.08.2020 20:20:43

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

Что бы это значило?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 05.09.2020 10:39:00

Выложил на свой сайт новую редакцию книги с внесением правок в главы 7 и 28 из первой части.
Ссылка на скачивание - http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение MylnikovDm » 08.09.2020 01:09:08

На странице 6 в разделе "модификаторы" пропущен overload.

И на мой взгляд, не хватает поясняющих примеров непосредственно на языке 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?
MylnikovDm
постоялец
 
Сообщения: 103
Зарегистрирован: 15.02.2007 21:26:10
Откуда: Челябинск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение tuzik87@inbox.ru » 08.09.2020 12:50:30

MylnikovDm, спасибо за отзыв. В плане расширенных записей вы ошибатесь. Конструкторы там запрещены. Об этом прямо говорит официальная документация - https://freepascal.org/docs-html/curren ... -1410009.1

Процитирую: "Constructors or destructors cannot be defined"
tuzik87@inbox.ru
постоялец
 
Сообщения: 145
Зарегистрирован: 25.12.2012 15:05:28
Откуда: Россия, Новосибирск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение Vadim » 09.09.2020 04:18:47

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.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение iskander » 09.09.2020 10:08:54

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
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Книга «Экспресс курс программирования в Lazarus»

Сообщение Vadim » 09.09.2020 11:39:05

iskander писал(а):Полагаю вместо слова "придумал" лучше использовать "разработал"...

Если речь идёт именно о 1968-ом годе, то в тот год он его как раз придумал. Хотя, надо сказать, что придумывать он его начал в тот момент, когда разругался с алгольным комитетом. Понятно, что тот Алгол, который разработали Вирт с Дейкстрой, ему объявить не дадут - типа тут всякие разные патентные права, поэтому пришлось изобретать новое название для языка. Да и напрямую ту разработку не используешь: опять же - алгольцы засудят. Необходимо было внести какие-то существенные отличия. В 1970 был готов полностью рабочий прототип, по-моему для PDP-11 (тут я могу попутать название :-) ), а вот в 1972 году уже подошёл тот самый всамоделешный Паскаль, потому что Вирт как раз в этом году закончил его документацию и выложил её на всеобщее обозрение. :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Пред.След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru