Page 1 of 1

ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 20, 2018 9:47 pm
by bad_Dr3dd0x
Пожалуйста, помогите! Мне надо ОБЫЧНЫЙ ПАСКАЛЬ НА КОЛИБРИ!

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 20, 2018 10:07 pm
by Siemargl
зачем?

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 20, 2018 10:10 pm
by bad_Dr3dd0x
Я умею писать ТОЛЬКО НА ПАСКАЛЕ, а меня отправляют либо на Дельфи/Оберон, либо я не могу разобраться, как пользоваться Паскалем

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 20, 2018 10:12 pm
by bad_Dr3dd0x
И ещё: никто не знает, как пользоваться exetokex!

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 20, 2018 10:39 pm
by 0CodErr
Alex2003 wrote:Я умею писать ТОЛЬКО НА ПАСКАЛЕ, а меня отправляют либо на Дельфи/Оберон, либо я не могу разобраться, как пользоваться Паскалем
А в чём проблема-то? Возьмём такой пример http://rosettacode.org/wiki/Sierpinski_triangle#Pascal выводящий в консоль такую штуку:

Code: Select all

               *
              * *
             *   *
            * * * *
           *       *
          * *     * *
         *   *   *   *
        * * * * * * * *
       *               *
      * *             * *
     *   *           *   *
    * * * *         * * * *
   *       *       *       *
  * *     * *     * *     * *
 *   *   *   *   *   *   *   *
* * * * * * * * * * * * * * * *
Вот изменённый код для Delphi

Code: Select all

{$APPTYPE CONSOLE}
program Sierpinski;

function ipow(b, n	: Integer) : Integer;
var
   i : Integer;
begin
   ipow := 1;
   for i := 1 to n do
      ipow := Result * b
end;
 
function truth(a : Char) : Boolean;
begin
   if a = '*' then
      truth := true
   else
      truth := false
end;

function rule_90(ev :  String) : String;
var
   l, i	: Integer;
   cp	: String;
   s	: Array[0..1] of Boolean;
begin
   l := length(ev);
   cp := copy(ev, 1, l);
   for i := 1 to l do begin
      if (i-1) < 1 then
	 s[0] := false
      else
	 s[0] := truth(ev[i-1]);
      if (i+1) > l then
	 s[1] := false
      else
	 s[1] := truth(ev[i+1]);
      if ( (s[0] and not s[1]) or (s[1] and not s[0]) ) then
	 cp[i] := '*'
      else
	 cp[i] := ' ';
   end;
   rule_90 := cp
end;
 
procedure triangle(n : Integer);
var
   i, l	: Integer;
   b	: String;
begin 
   l := ipow(2, n+1);
   b := ' ';
   for i := 1 to l do
      b := concat(b, ' ');
   b[round(l/2)] := '*';
   writeln(b);
   for i := 1 to (round(l/2)-1) do begin
      b := rule_90(b);
      writeln(b)
   end
end;

begin
   triangle(4);
end.
Было добавлено:
  • Code: Select all

    {$APPTYPE CONSOLE}
    потому что по умолчанию создаются GUI-приложения.
  • Замена внутри функции ipow вместо ipow стало Result

    Code: Select all

    ipow := Result * b
    в справке по этому поводу вот:
    When the function name appears on the left side of an assignment statement, the compiler assumes that it is being used (like Result) to track the return value; when the function name appears anywhere else in the statement block, the compiler interprets it as a recursive call to the function itself.
Что, сильно код отличается? Было бы желание...

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sun Aug 26, 2018 9:37 am
by Leency
Alex2003
Компили тут http://kolibri-n.org/inf/hll/hll
Но я бы очень советовал смотреть в сторону С--

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Mon Aug 27, 2018 1:38 am
by 0CodErr
Leency wrote:Компили тут http://kolibri-n.org/inf/hll/hll
Ну ссылку я ему уже давал http://board.kolibrios.org/viewtopic.ph ... 900#p70937
Там вообще можно немного лулзов поймать :mrgreen:
если вкратце
Spoiler:
Alex2003 wrote:У меня не получилось скомпилировать... :(
Alex2003 wrote:Дело в том, что я пишу на языке Паскаль Турбо, а не на Обероне. Наверняка поэтому у меня и не получилось скомпилировать.
Комилил, открывая файл с помощью Compiler.kex
Может быть, из-за этого?
Кстати, чем-то он напоминает http://board.kolibrios.org/memberlist.p ... ile&u=6786 и тот тоже Alex, только на 20 лет старше(судя по юзернейму) :lol:
И оба они пишут капсом:

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Wed Aug 29, 2018 8:15 pm
by bad_Dr3dd0x
Понятно, тут все языковые компиляторы кроме FASM'а полуфабрикаты. Ладно, будем учиться жарить тушёнку! :lol:

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Wed Aug 29, 2018 9:52 pm
by paulcodeman
Alex2003 wrote:Понятно, тут все языковые компиляторы кроме FASM'а полуфабрикаты. Ладно, будем учиться жарить тушёнку! :lol:
Assembler изучай)

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Wed Aug 29, 2018 10:12 pm
by bad_Dr3dd0x
Хм.... Мысль интересная!

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sat Oct 03, 2020 11:24 am
by maxcodehack
короче
Pascal Pro
http://kolibri-n.org/inf/hll/hll#ppro
FreePascal
http://board.kolibrios.org/viewtopic.ph ... =45#p71523
UPD
Увидел что не получалось скомпилировать
У меня получилось в pascal pro
http://board.kolibrios.org/viewtopic.ph ... =15#p75029
Возможно потом и в fpc получится, не пробовал еще

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sat Oct 03, 2020 11:26 am
by maxcodehack
Leency wrote:Alex2003
Компили тут http://kolibri-n.org/inf/hll/hll
Но я бы очень советовал смотреть в сторону С--
А я бы нет
И Ghost тоже:
http://board.kolibrios.org/viewtopic.ph ... 082#p19147
Лучше уж kos32-gcc

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sat Oct 03, 2020 12:05 pm
by rgimad
Что понимается под обычным Паскалем? Turbo Pascal или FreePascal ?

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sat Oct 03, 2020 12:19 pm
by maxcodehack
Либо то, либо то
Главное чтобы не делфи и не оберон :lol:

Re: ГДЕ ПАСКАЛЬ? НЕ ОБЕРОН, НЕ ДЕЛЬФИ, А НОРМАЛЬНЫЙ ПАСКАЛЬ!!!!!

Posted: Sat Dec 05, 2020 7:40 pm
by Freeman
На самом деле с Delphi SDK программы на Delphi являются обычными программами на Паскале.

Консоль:

Code: Select all

program Hello;

uses
  CRT;

begin
  InitConsole('Hello');
  WriteLn('Hello, world!');
end.
GUI:

Code: Select all

program HelloGUI;

uses
  KolibriOS;

var
  WndLeft, WndTop, WndWidth, WndHeight: Integer;

begin
  with GetScreenSize do
  begin
    WndWidth := Width div 4;
    WndHeight := Height div 4;
    WndLeft := (Width - WndWidth) div 2;
    WndTop := (Height - WndHeight) div 2;
  end;

  while True do
    case WaitEvent of
      REDRAW_EVENT:
        begin
          BeginDraw;
          DrawWindow(WndLeft, WndTop, WndWidth, WndHeight, 'Hello!', $00FFFFFF,
            WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE);
          EndDraw;
        end;
      KEY_EVENT:
        GetKey;
      BUTTON_EVENT:
        if GetButton.ID = 1 then
          Break;
    end;
end.
Компилируется набором инструментов, включенным в состав SDK. Больше примеров — в SDK и на форуме.