Äîìîé! Çíàêîìèìñÿ: Free Pascal è Lazarus


Ýòî ñêîðåå ïóòåâûå çàìåòêè ïðè èçó÷åíèè Free Pascal è Lazarus, ÷åì ó÷åáíèê. Ñîáñòâåííî, ó÷åáíèêè ïî Ïàñêàëþ è Äåëôè åñòü, ïîýòîìó èçó÷àÿ Free Pascal è Lazarus íóæíî ðàçîáðàòüñÿ ÷åì îíè îòëè÷àþòñÿ îò Turbo Pascal7 è Äåëôè7.

×òî òàêîå FreePascal è Lazarus ?

Free Pascal (FPC) ÿâëÿåòñÿ 32-õ è 64-ðàçðÿäíûì êîìïèëÿòîðîì Pascal. Êîìïèëÿòîð è Run-Time áèáëèîòåêè äîñòóïíû äëÿ ìíîãèõ îïåðàöèîííûõ ñèñòåì, â òîì ÷èñëå: DOS, Linux, Windows, FreeBSD.
Free Pascal ðàçðàáîòàí ñ öåëüþ, íàñêîëüêî ýòî âîçìîæíî, îáåñïå÷åíèÿ ñîâìåñòèìîñòè èñõîäíèêîâ ñ Turbo Pascal 7.0 è Delphi 7 (õîòÿ ýòà öåëü åùå íå äîñòèãíóòà), à òàêæå óëó÷øèòü ýòè ÿçûêè òàêèìè ýëåìåíòàìè, êàê îïåðàòîð ïåðåãðóçêè. È, â îòëè÷èå îò ñâîèõ ïðåäøåñòâåííèêîâ, îí ïîääåðæèâàåò íåñêîëüêî ïëàòôîðì.

Lazarus - ýòî áèáëèîòåêè êëàññîâ Free Pascal äëÿ ýìóëÿöèè Delphi. Free Pascal - ýòî êîìïèëÿòîð ÿçûêà Ïàñêàëü, ñâîáîäíî ðàñïðîñòðàíÿåìûé íà óñëîâèÿõ GNU Public License (GPL), êîòîðûé ðàáîòàåò íà ìíîãèõ ïëàòôîðìàõ: Linux, Win32, OS/2, 68K è äðóãèõ. Free Pascal ïîçâîëÿåò ïèñàòü ïðîãðàììû, èñïîëüçóÿ îáúåêòíî-îðèåíòèðîâàííûé ñèíòàêñèñ Delphi. Òàê ÷òî Lazarus - ýòî òî íåäîñòàþùåå çâåíî, êîòîðîå îòêðûâàåò âîçìîæíîñòè êðîññïëàòôîðìíîé ðàçðàáîòêè Delphi-ïîäîáíûõ ïðîãðàìì.  îòëè÷èå îò ÿçûêà Java, íà êîòîðîì îäíàæäû íàïèñàííûå ïðîãðàììû ìîãóò èñïîëíÿòüñÿ íà ðàçíûõ ïëàòôîðìàõ ñ ïîìîùüþ âèðòóàëüíîé ìàøèíû, ïðîãðàììû íà Lazarus è Free Pascal ìîãóò áûòü ñêîìïèëèðîâàíû áåç èçìåíåíèé â "ðîäíîé" êîä ðàçëè÷íûõ ïëàòôîðì.

Îòëè÷èÿ Free Pascal îò Òóðáî7 è Äåëôè7

Ïðè ïîðòèðîâàíèè ïðèëîæåíèé Òóðáî7 è Äåëôè7 âî Free Pascal è ðàçðàáîòêå ïðèëîæåíèé ïðè ïîìîùè Free Pascal ìîãóò âñòðåòèòüñÿ ñèòóàöèè, òðåáóþùèå ó÷åòà ýòèõ îòëè÷èé, îïèñàííûõ çäåñü (ñîêðàùåííûé ïåðåâîä ãë.7 Ðóêîâîäñòâà ïîëüçîâàòåëÿ FPC 2.0.4).

Èñòî÷íèêè èíôîðìàöèè â Èíòåðíåòå.

  1. Ñàéò ðàçðàáîò÷èêîâ FreePascal. Çäåñü ìîæíî íàéòè äèñòðèáóòèâ FreePascal
  2. Ñòðàíèöà ðàçðàáîò÷èêîâ Lazarus. Çäåñü ìîæíî íàéòè äèñòðèáóòèâ Lazarus
  3. Ñòàòüè î FreePascal è Lazarus
  4. Ñòàòüè î FreePascal è Lazarus
  5. Ôîðóì http://freepascal.ru/forum/
  6. Ôîðóì Free Pascal íà delphimaster.ru
  7. Ñóùåñòâóåò "Ñàìîó÷èòåëü ïî ïðîãðàììèðîâàíèþ íà Free Pascal è Lazarus" (ñîîáøèë Viesturs Lasinskis).
    Àâòîðû: Àëåêñååâ Å.Ð., ×åñíîêîâà Î.Â., Êó÷åð Ò.Â. Ôîðìàò - .pdf 4,6Mb Ñàéòû àâòîðà: ww.teacher.dn-ua.com è www.teacher.ucoz.net . Êîïèþ (âîçìîæíî, óñòàðåâøóþ) ìîæíî ñêà÷àòü (4Mb, .rar) íà ìîåì ñàéòå.

Äëÿ èçó÷åíèÿ FreePascal ïîëüçîâàëñÿ äîêóìåíòàöèåé (ïàïêà \doc\), ïðèëîæåííîé ê äèñòðèáóòèâó (eng), ïîòîìó ÷òî íå óäàëîñü íàéòè â Èíòåðíåòå ïåðåâîäà äëÿ ðàáîòû Offline.

Ãäå ÷åðïàòü èíôîðìàöèþ î ÿçûêå Pascal ?

Êîíå÷íî, ïðåæäå âñåãî â ó÷åáíèêàõ, èç êîòîðûõ ìíå íðàâÿòñÿ:
À.Ì. è Â.À. Åïàíåøíåêîâû - Turbo Pascal 7.0 (ìîæíî ñêà÷àòü â ôîðìàòå .djvu, 2Mb) è êíèãè Â.Â.Ôàðîíîâà.

Íà ýòîì ñàéòå ìîæíî òàêæå ñêà÷àòü àâòîðêèé ó÷åáíèê-ñïðàâî÷íèê (Ïàñêàëü, îñíîâû Äåëôè), â êîòîðîì ìíîãî ïðèìåðîâ âûïîëíåíèÿ ó÷åáíûõ çàäàíèé.

Ïîëåçíî âñòðîèòü â ñðåäó IDE Free Pascal ðóñèôèöèðîâàííûé ñïðàâî÷íèê ïî Borland Pascal (êàê ýòî ñäåëàòü - ñì çäåñü ). Íåîáõîäèìûé äëÿ ýòîãî ôàéë Turbo.tph ( ðóññèôèöèðîâàë ñòóäåíò ÌÃÒÓ èì. Áàóìàíà Øåïåëü Îëåã Áîðèñîâè÷, èçâåñòíûé â Internet êàê VideoLord.) - çäåñü (0,3Ìá .rar). Ïåðåèìåíóéòå êàê-íèáóäü àíãëîÿçû÷íûé Turbo.tph äîáàâüòå âìåñòî íåãî ñêà÷àííûé è ðàñïàêîâàííûé Turbo.tph

Ïðèìåðû ïðîãðàìì ñêîìïèëèðîâàííûõ â FreePascal

  1. Çäåñü ïðèìåð êîìïèëÿöèè ïðîãðàììû â cðåäå IDE FreePascal. Çàìåòèì, ÷òî êîìïèëÿöèþ ìîæíî âûïîëíÿòü è â ðåæèìå êîìàíäíîé ñòðîêè, ò å íå èñïîëüçóÿ IDE. Ïóñòü òåêóùàÿ ïàïêà - E:\FPC2.0.4\bin\i386-win32\, ñîäåðæàùàÿ .exe-ôàéëû ïðîåêòà FreePascal, (â òîì ÷èñëå fp.exe - cðåäà IDE è fpc.exe - êîìïèëÿòîð) è â íåå âñòàâëåíà ïàïêà Prob, â êîòîðîé íàõîäèòñÿ ôàéë menu.pas. Òîãäà êîìàíäà:
    > fpc prob\menu.pas
    - âûïîëíèò êîìïèëÿöèþ ôàéëà menu.pas. Èñïîëíÿåìûé ôàéë menu.exe ïîÿâèòñÿ â ïàïêå prob
  2. Ïðîãðàììà (Turbo Pascal7) äëÿ ðàáîòû ñ ôàéëîì àíêåò
  3. Ïðîáëåìû ïðè êîìïèëÿöèè â FPC ýòîé ïðîãðàììû äëÿ ðàáîòû ñ ôàéëîì àíêåò
  4. Ïðîãðàììà äëÿ ïîäñ÷åòà ÷èñëà ñòðîê â ôàéëå (èç ïàïêè demo FreePascal). (paramstr, assign, reset, blockread, new, dispose). Îïöèè êîìïèëÿòîðà
  5. FreePascal: Ñîçäàíèå ïðîñòåéøåãî îêíà (Hello, World) íà óðîâíå WinAPI
  6. Free Pascal: Ïðèìåð èç ïàïêè examples: ñïèñîê óñòðîéñòâ CDROM
  7. FreePascal: Ïðèìåð èç ïàïêè examples: Òåñòèðóåì êëàññ StringList
  8. Free Pascal: èç ïàïêè examples: Äîñòóï ê áàçå äàííûõ MySQL4,5
  9. Free Pascal: èç ïàïêè examples: Äîñòóï ê áàçå äàííûõ: ODBC - MS Access, MySQL
  10. Free Pascal: èç ïàïêè examples: íåîáðàòèìîå øèôðîâàíèå md5

Èíòåðôåéñíûå ðàçäåëû ìîäóëåé (âåðñèÿ fpc-2.2.4)

×òîáû ïîëüçîâàòüñÿ ïîäïðîãðàììàìè, îïèñàííûìè â ìîäóëÿõ, íóæíî îçíàêîìèòüñÿ ñ çàãîëîâêàìè ýòèõ ïîäïðîãðàìì. Ïîýòîìó çäåñü ðàçìåùåíû èíòåðôåéñû íåêîòîðûõ ìîäóëåé (õîòÿ ïîëüçû îò íèõ ìàëî). Â Ëàçàðóñå òåêñòû ìîäóëåé äîñòóïíû (êàê è â Äåëôè) åñëè íàâåñòè êóðñîð íà èìÿ ìîäóëÿ (â ïðåäëîæåíèè uses), íàæàòü Ctrl à çàòåì ùåëêíóòü ïîÿâèâøóþñÿ ññûëêó. (À áåç Ctrl - âèäåí ïóòü ê ìîäóëþ íà äèñêå)

  1. CRC, õåøèðîâàíèå, øèôðîâàíèå: crc, md5, ntlm
  2. Áàçû äàííûõ: MySQL

Ïðîãðàììû ñ ãðàôè÷åñêèì èíòåðôåéñîì. Lazarus.

Ñîçäàåì ïðèëîæåíèÿ â ñðåäå Ëàçàðóñ

Ïðèìå÷àíèå:
Òåêñòû áîëüøèíñòâà èñõîäíèêîâ - â êîäèðîâêå UTF8, îäíàêî, åñëè ó Âàñ WinXP, òî ïðîñìàòðèâàòü òåêñòû Âû ñìîæåòå áëîêíîòîì (èëè â Ëàçàðóñå).

Îïûòû ñ ïåðåêîäèðîâêîé Win1251 -> UFF-8

  1. Îáå êîäèðîâêè îòêðûâàþòñÿ áëîêíîòîì (WinXP) è îí ñîõðàíÿåò â ëþáîé (ïî âûáîðó) êîäèðîâêå

  2. Òåêñò PHP-ñêðèïòà ïåðåêîäèðîâêè (ïîëåçíî ïîñìîòðåòü åãî, ïåðåêëþ÷èâøèñü â êîäèðîâêó UTF-8):
    <?
    //Copyright:  akaghost@ua.fm
    $ttbl=array("À"=>"Ð�","Á"=>"Б","Â"=>"Ð’","Ã"=>"Г","Ä"=>"Д","Å"=>"Е","¨"=>"Ð�",
    "Æ"=>"Ж","Ç"=>"З","È"=>"И","É"=>"Й","Ê"=>"К","Ë"=>"Л","Ì"=>"М","Í"=>"Ð�",
    "Î"=>"О","Ï"=>"П","Ð"=>"Ð ","Ñ"=>"С","Ò"=>"Т","Ó"=>"У","Ô"=>"Ф","Õ"=>"Ð¥",
    "Ö"=>"Ц","×"=>"Ч","Ø"=>"Ш","Ù"=>"Щ","Ú"=>"Ъ","Û"=>"Ы","Ü"=>"Ь","Ý"=>"Э",
    "Þ"=>"Ю","ß"=>"Я","¯"=>"Ї","²"=>"І","ª"=>"Є","¡"=>"ÐŽ","à"=>"а","á"=>"б",
    "â"=>"в","ã"=>"г","ä"=>"д","å"=>"е","¸"=>"Ñ‘","æ"=>"ж","ç"=>"з","è"=>"и",
    "é"=>"й","ê"=>"к","ë"=>"л","ì"=>"м","í"=>"н","î"=>"о","ï"=>"п","ð"=>"Ñ€",
    "ñ"=>"Ñ�","ò"=>"Ñ‚","ó"=>"у","ô"=>"Ñ„","õ"=>"Ñ…","ö"=>"ц","÷"=>"ч","ø"=>"ш",
    "ù"=>"щ","ú"=>"ÑŠ","û"=>"Ñ‹","ü"=>"ÑŒ","ý"=>"Ñ�","þ"=>"ÑŽ","ÿ"=>"Ñ�","³"=>"Ñ–",
    "¿"=>"Ñ—","º"=>"Ñ”","¢"=>"Ñž");
    $string=join("", file("input.win"));
    echo strtr($string, $ttbl);
    ?>
  3. Ïåðåêîäèðîâùèê íà Ïàñêàëå. Òåêñò äëÿ FreePascal (ïîäñêàçàë v-t-l - ôîðóì FreePascal.ru )
        program win1251_UTF_8;
        var
          f1, f2: Text;
          s: string;
        begin
          if paramcount<2 then
            begin
              writeln('Usage: win1251_UTF_8 infile outfile');
              readln; halt(1);
            end;
          Assign(f1, ParamStr(1));
          Reset(f1);
          Assign(f2, ParamStr(2));
          Rewrite(f2);
          while not EOF(f1) do
          begin
            ReadLn(f1, s);
            WriteLn(f2, AnsiToUtf8(s));
          end;
         Close(f1); Close(f2);
        end.
Rambler's Top100
Hosted by uCoz