Sunteți pe pagina 1din 4

MINISTERUL EDUCAIEI

AL REPUBLICII MOLDOVA

MHCTEPCTBO IIPOCBEEH
PECJIK MO

Olimpiada Republican la Informatic

FreePascal

Ghid de utilizare

ncepnd cu anul 2007, Olimpiada Republicana de Informatica (ORI) are loc folosind
sistemul de operare Windows, cu compilatoarele respective. Acest lucru prezint mai multe
avantaje pentru competitori, i anume:
Programele pot folosi toata memoria calculatorului, nu doar 640 KB, ct sunt
accesibile din TurboPascal (DOS). Astfel, declaraia:
var a:array[1..100*1000] of integer;

va fi acceptata de FreePascal, dar nu si de TurboPascal.


O variabila poate ocupa mai mult de 64 KB de memorie, deci nu va mai fi nevoie de
rupt variabilele mari n mai multe segmente;
variabilele statice pot ocupa n total mai mult de 64 KB. Astfel, declaraia:
var a,b: array[1..10*1000] of longint;

va fi acceptata de FreePascal, dar nu si de TurboPascal (deoarece att a, ct i b, ocup cte


40 KB i au n suma mai mult de 64 KB).
Acelai program compilat cu FreePascal ruleaz mult mai repede dect compilat cu
TurboPascal, deoarece FreePascal este un compilator pe 32 de bii i folosete toate avantajele
procesoarelor moderne.
FreePascal coincide practic cu TurboPascal, ns este cu mult mai rapid. Astfel, n
baza testrilor programelor propuse de elevi la olimpiadele precedente, s-a constatat c peste
95% din programele scrise pentru TurboPascal s-au compilat fr nici o problema n
FreePascal, iar viteza de execuie a fost de pna la 3 ori mai mare.
FreePascal este limbajul folosit la Olimpiadele Internaionale de Informatica
ncepnd cu anul 2001. n Republica Moldova, ncepnd cu anul 2006, FreePascal-ul este
folosit pentru selectarea elevilor ce vor fi inclui n lotul olimpic. Prin urmare, utilizarea
FreePascal-ului va armoniza olimpiadele republicane i cele internaionale.
Un program scris in FreePascal poate fi compilat, fr modificri, i n sistemul de
operare Linux, care este un sistem avansat i gratuit.

FreePascal, precum i spune i numele, este un compilator care se distribuie absolut


gratis, fr a se nclca dreptul de autor.
FreePascal poate fi descrcat gratis de pe site-ul oficial http://www.freepascal.org.

Modul de lucru cu FreePascal


Toate fiierele mediului de dezvoltare a programelor FreePascal pot fi gsite n
directoriul FPC. n acest directoriu vei gsi subdirectoarele:
bin\i386-win32 fiierele executabile. Acolo se afla fp.exe, mediul de
programare, care seamn foarte mult cu turbo.exe-ul lui TurboPascal si fpc.exe, care
are un rol asemntor lui tpc.exe (compilatorul in linie de comanda);
doc documentaia in limba engleza despre limbaj si utilizarea lui;
examples exemple de programe in FreePascal;
alte directoarei.
Atenie! Fiierele programelor-exemplu au extensia .pp, nsa FreePascal accepta fr
probleme i fiiere cu extensia .pas

Primul program in FreePascal


Paii necesari sunt:
1. Lansarea mediului de programare:
c:\pp\bin\i386-win32\fp.exe

(in loc de c:\pp punei directorul unde ai instalat FreePascal pe calculatorul Dvs.).
2. Crearea unui fiier nou: File -> New
3. Scrierea programului: introducei cu ajutorul editorului urmtorul program:
uses crt;
var i : integer;
begin
clrscr;
writeln('Buna ziua, acum voi numara pana la 10!');
for i := 1 to 10 do
begin
writeln(i);
end;
writeln('Apasati Enter');
readln;
end.

4. Salvai codul-sursa ntr-un fiier cu un nume oarecare (Atenie: FreePascal nu poate


compila codurile-sursa care nu au fost salvate).
5. Compilarea programului: apsai tastele <Alt>+<F9>.
6. Executarea programului: apsai tastele <Ctrl>+<F9>.
Precum se observa, lucrul in mediul de programare FreePascal nu se deosebete n mod
esenial de lucrul n TurboPascal.

Depistarea erorilor de compilare


Principala deosebire dintre lucrul n TurboPascal i FreePascal o constituie detectarea
erorilor in codul sursa. Astfel, TurboPascal arat doar prima eroare pe care a gsit-o, pe cnd
FreePascal arata toate erorile pe care le-a putut depista. Pentru exemplificare, s compilm
urmtorul program:
uses crt;
var i:integer;
begin
clrscr;
writenl('i=', ij);
end;
Acest program conine urmtoarele erori:

writenl in loc de writeln;


variabila ij nu este declarat;
dup ultimul end n loc de punct apare ;.
TurboPascal-ul va afia doar prima eroare:

FreePascal-ul va depista mai multe erori concomitent:

Variabilele de tip ntreg


ntruct FreePascal este un compilator de 32 de bii, n anumite condiii integer
poate fi un ntreg de 32 de bii, iar n altele de 16 bii (ca n TurboPascal). n cazurile n care
conteaz dimensiunea unei variabile, se va utiliza smallint pentru ntregi de 16 bii
(smallint are 16 bii n orice condiii) i longint pentru ntregi de 32 de bii:
var i: smallint;

n FreePascal adresarea absoluta nu mai este posibil, astfel:


var l: longint absolute $40:$6c

se compileaz n TurboPascal, dar nu i n FreePascal.


Mai multa informaie putei gsi pe site-ul FreePascal, la adresele:
http://www.freepascal.org/docs.var (toat documentaia);
http://www.freepascal.org/port.var (trecerea de la TurboPascal la FreePascal).