FreePascal

High-level languages programming questions
  • bw, не могу разобраться, как получить .pp-файл. Подскажи, где искать?
  • Что значит получить? Берешь любимый текстовый редактор и пишеш Pascal или ObjectPascal код. Если тебе больше нравится можешь создавать .pas, .foo, .bar, .mysourcecode и т.д. Это просто расширение файла с исходными кодами, которое принято в сообществе FreePascal.

    ..bw
  • bw, скомпилировал слудующую программу заполнения массива:
    Const n=24;
    Type MyArray = Array [1..n] Of Integer;
    Var i: Integer; a: MyArray;
    Procedure fill;
    Begin
    For i:=1 To n Do
    Begin
    a:=Random(24);
    WriteLn (i,'. ',a);
    End; End;
    Begin
    fill;
    ReadLn;
    End.

    При исполнении в Колибри получается какая-то ерунда - постоянно одни и те же значения, причем 6 вместо 24.
  • А что делает fill?
    Проблема в рандоме. Особенность ли это колибри или сего паскаля мне не ясно. А там есть что-то типа randomize timer?
    С Уважением, Альберт Перельман
  • там есть просто randomize, и чел этого не делает! last_day, ты забыл randomize!
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • last_day, у меня проблем не возникло. Код отработал как под линухом, так и в колибри. Вышли мне получившийся kex.

    p.s. Предлагаю прекратить флуд. last_day, ReadLn не реализована, о чем мы с тобой уже говорили. Randomize реализован, но на svn этого кода еще нет. Сейчас я выложу на местный ftp бинарные модули RTL, попробуй использовать их, а не собирать из исходников svn.

    ..bw
  • > У меня проблем не возникло
    > Randomize реализован, но на svn этого кода еще нет.

    Ппц. А в чём тогда спор, last_day ставь апдейты и всё будет ok
    С Уважением, Альберт Перельман
  • Я вижу проблему только в этом: > На местном SVN (http://www.kolibrios.org/repos/programs/develop/fp/) лежит исходники RTL для KOS, утиль и примеры, но я сейчас несколько забросил обновление этого репозитория так как грядет некоторая реструктуризация каталогов, а так же механизна сборки RTL и примеров.
    Возможно код с svn, которым пользовался last_day, был кривой, но на сколько я помню random был реализован в первые дни, так как там реализовывать особенно нечего, а вот randomize я сделал только вчера-сегодня. Вобщем то я и вопрос не до конца понял. Одни и теже значения в одном цикле или при каждом перезапуске программы, если второе, то нужно вызывать Randomize при запуске приложения, если первое, то это непонятный мне косяк, смотри первый пост.

    ..bw
  • Привет!

    Собираюсь качать Фри Паскаль для доса, он сойдет? Для виндоса много весит.
    http://www.freepascal.org/down/i386/go32v2-russia.var
    Вот эти собираюсь:

    You can download the contents of the above zip files as separate files:

    1. Mandatory files:
    * Install program: install.exe (352 kB)
    * ...and its data file install.dat (24 kB)
    * Base files (program and units): basedos.zip (4 MB)
    * GNU as and ld: aslddos.zip (1 MB)

    # Optional files:

    * Free Vision units: ufvdos.zip (558 kB)
    * GDB interface units: ugdbdos.zip (35 kB)
    * Regular expressions unit: uregdos.zip (28 kB)
    * IDE: idedos.zip (1.5 MB)
    * GNU debugger, gdb: gdbdos.zip (901 kB)
    * Unit Graph: ugrphdos.zip (126 kB)
    * Hash units: uhashdos.zip (40 kB)
    * Free Component Library (FCL)-base units: ufclbdos.zip (450 kB)
    * Free Component Library (FCL)-datasets units: ufclddos.zip (559 kB)
    * Free Component Library (FCL)-FPCUnit units: ufcludos.zip (208 kB)
    * Free Component Library (FCL)-images units: ufclidos.zip (460 kB)
    * Free Component Library (FCL)-network units: ufclndos.zip (8 kB)
    * Free Component Library (FCL)-Pascal source processing units: ufclsdos.zip (189 kB)
    * Free Component Library (FCL)-registry units: ufclrdos.zip (58 kB)
    * Free Component Library (FCL)-process management units: ufclpdos.zip (23 kB)
    * GD library interface units: ulgddos.zip (17 kB)
    * Symbolic (unit for parsing and evaluating expressions): usymbdos.zip (62 kB)

    И того: 14 700 Кб

    Подскажите пожалуйста которые можно убрать?

    Или где скачать Про Паскаль? И ее Юниты?
  • 1. Нужен сам компилятор (35Mb).
    2. Нужны исходники RTL и прочие (22Mb).
    3. Нужен мой код (сущие копейки).

    Так как с недавних пор у меня безлимит, я попробую (постараюсь за неделю уложиться) скомпоновать всё что требуется в несколько архивов (компилятор + сорцы) и выложить на местном FTP. Вообще я давненько не занимался KOS и FPC для неё, нехорошо. Подождите.
    Если вас вообще интересует Pascal, я всё же рекомендую скачать полную версию для винды (или линуха, как в моём случае) и поупражняться в оной среде (прежде чем программить под KOS). Полный набор исходников - это отдельный интерес, он не увсех возникает.

    Про ProPascal мне ничего не известно. Вроде здесь неподалёку была про него тема. Под Linux версии нет, а такой вариант меня не устраивает.

    ..bw
  • FreePascal - это, конечно, хорошо.
    Я, если очень мягко сказать, новичок в KolibriOS (хотя идея мне нравится, в качестве начала подойдёт), да и не ассемблерщик (увы, ассемблером для x86 я могу слегка пользоваться лишь строго по инструкции, хотя у меня и был небольшой опыт работы/баловства с мнемокодом системы команд 8080/КР580), но в среде FreePascal (и под linux, и под win32, и под win64) и особенно Lazarus я уже не новичок (хотя, к сожалению, большая часть моих задумок там переписывалась с нуля).
    Без проблем адаптировал Ваш RTL под текущую svn-версию fpc, собрал примеры.
    Теперь идея пойти дальше: адаптировать классы GUI, в частности, есть такой проект fpgui. Сам по себе он уже обеспечивает VCL-подобные классы ("кнопочки" он отрисовывает сам!), кроме того, его интерфейс есть в IDE Lazarus. Да, конечно, за счёт модуля classes получится нечто монстроподобное, но, возможно, есть смысл урезать этот модуль.
    Начал первые попытки по созданию kos-интерфейса. Возникли вопросы:
    1. Как я понял из описания API, в kolibrios действует идеология "одно окно - одно приложение". В принципе, идея уменьшения количества окон весьма интересна, но неужели всё так плохо? Т.е., либо следует забыть о многооконных программах (вроде того же fpgui designer), либо придумывать "хаки" с "липовыми" приложениями, создающими вспомогательные окна (в принципе, это возможно и даже не так сложно сделать через IPC, над этим можно подумать, но как это загрузит систему?), либо создавать что-то по типу MDI (окна в окне)...
    2. Не нашёл функции отслеживания местоположения и размера окна. Вероятно, все перемещения и изменения размера должно отслеживать приложение?
    Извините, если написал глупость или не нашёл очевидного - знаком с kos меньше недели.
  • Извините за п.2 - он решается функцией 9