Sunteți pe pagina 1din 44

Vornicescu Silviu

Programarea n Turbo Pascal

Vornicescu Silviu

Vornicescu Silviu

Programarea n Turbo Pascal

Vornicescu Silviu

Programarea n Turbo Pascal

Programarea n Turbo Pascal


Introducere n Turbo Pascal
Limbajul Pascal a fost elaborat n 1972 de ctre Nicklaus Wirth de la
Universitatea din Zurich n scopul unei mai bune nvri a programrii. Dei la
nceput el a fost cunoscut doar de mediul universitar, apoi el a cunoscut un
succes imens.

Structura programelor Pascal


1. Orice program ncepe printr-un cuvnt numit PROGRAM care este
urmat de numele propriu-zis al programului, adic de un nume ales de
utilizator i de semnul ; (punct i virgul)
2. Orice program conine cel puin odat cuvintele cu un neles special
BEGIN i END
3. Orice program se termin prin punct
4. Orice cuvnt al programului poate fi scris cu litere mari sau mici,
deoarece nu are importan
5. n versiunea Turbo, prima linie poate lipsi, dei nu se recomand
acest lucru, din raiuni de ordine
6. Plasarea cuvintelor pe linie i numrul de spaii dintre ele snt la
alegerea programatorului. Se poate scrie tot programul pe o singur
linie, ns este bine ca programul s fie scris n aa fel nct s fie uor
de neles.
Un program scris n Pascal, orict de complex ar fi, are urmtoarea
structur :
PROGRAM nume ;
definiii de constante ;
definiii de tipuri ;
declaraii de variabile ;
declaraii de proceduri i funcii ;
BEGIN
Instruciuni
END
Nu este obligatoriu ca ntr-un program s figureze toate acestea, dar
dac ele figureaz, trebuie s apar n aceast ordine.
Orice program cuprinde dou pri eseniale :
descrierea instruciunilor ( a aciunilor) i
3

Vornicescu Silviu

Programarea n Turbo Pascal

descrierea datelor care snt prelucrate de instruciuni


Un program Turbo Pascal este structurat astfel :
a) un antet de program, care conine cuvntul rezervat PROGRAM urmat de
numele programului
b) o declaraie, introdus n cuvntul rezervat USES, a numelor unit-urilor, care
se vor folosi ntr-un program
c) o parte obligatorie format dintr-un bloc, urmat de caracterul punct
Componentele a) i b) , de mai sus, pot s lipseasc dintr-un program
Un UNIT este o colecie de declaraii de constante, tipuri, variabile i
subprograme n cod obiect (adic compilate separat), care se utilizeaz n
program prin specificarea numelui su n clauza Uses. Folosirea unit-urilor
permite scrierea unor programe mari care depesc 64 K. Dimensiunea unui
program, ca i ceea a unui unit, nu poate depi 64 K. Numrul unit-urilor utilizate
de un program nu este ns limitat i de aceea programul poate atinge dimensiuni
care depind de capacitatea memoriei interne. Utilizatorii pot s-i creeze unit-uri
proprii dar pot utiliza i cele 8 unit-uri standard oferite de mediul Turbo Pascal :
SYSTEM, DOS, GRAPH, CRT, OVERLAY, PRINTER, GRAPH3, TURBO3. Unitul SYSTEM este ncorporat n toate programele Pascal, fr s fie obligatorie
declararea lui n USES, deoarece el cuprinde procedurile i funciile cel mai des
folosite. Folosirea unit-urilor, nu este posibil n Pascal Standard.
Blocul, este elementul de baz al programului i cuprinde o seciune de
declaraii, care este opional i o seciune obligatorie de program.

Elementele limbajului

Turbo Pascal folosete urmtorul subset al caracterelor ASCII :


litere : a z, A Z
cifre : 0 9
cifre hexa : 0 9; A F; a f
caractere speciale : + - * / @ # $ % ^ & { }
caracterele ASCII 0 32

Cuvintele cheie (rezervate)


Aceste cuvinte pot fi scrise att cu litere majuscule, ct i cu minuscule
sau pot fi chiar i amestecate. Cuvintele rezervate snt cuvinte care au un neles
special, ele neputnd fi redefinite de utilizator.

Vornicescu Silviu

And
Asm
Array
Begin
Case
Const
Constructor
Destructor
Div
Do
Downto
Else

Programarea n Turbo Pascal

End
Exports
File
For
Function
Goto
If

Label
Library
Mod
Nil
Not
Object
Of
Or
Packed
Procedure
Program
Record

Implementation

In
Inherited
Inline
Interface

Repeat
Set
Shl
Shr
String
Then
Until
Uses
Var
While
With
Xor

Directive standard
Spre deosebire de cuvintele rezervate, directivele standard pot fi
redefinite de programator, aceasta ns nu este recomandat.
Absolute
Far
Near
Virtual
Assembler
Forward
Private
Export
Index
Public
External
Interrupt
Resident

Identificatorii
Snt simboluri care desemneaz variabile, proceduri, funcii, unit-uri,
constante, tipuri, programe i cmpuri de articole. Un identificator ncepe cu o
liter, care poate fi urmat de orice combinaie de litere, cifre sau caracterul de
subliniere (_ , ASCII $5F). Lungimea identificatorilor nu este limitat, dar snt
semnificative doar primele 63 de caractere.
n cazul programelor ce folosesc unit-uri, pot exista instane cu acelai
identificator. Pentru a putea selecta o instan specific, identificatorul ales,
trebuie calificat. Calificarea se realizeaz printr-o construcie de forma :

Nume_unit.identificator
Adic numele identificatorului trebuie s fie precedat de numele unit-ului de
origine, urmat de un punct.
Exemplu : dos.exec

Vornicescu Silviu

Programarea n Turbo Pascal

O alt categorie special de identificatori snt tipurile predefinite ale


limbajului. Aceste snt urmtoarele :
Boolean
Byte
Bytebool
Char

Comp
Double
Extended
Integer

Longbool
Longint
Openstring
Pchar

Pointer
Real
Shortint
Single

Text
Word
Wordbool

O alt categorie special de identificatori o reprezint, directivele name,


index, resident (folosite de biblioteci de legare dinamic .DLL), precum i
parametrul Self.
Att tipurile predefinite, ct i directivele precedente pot fi redefinite, dar
aceast redefinire nu este recomandat.

Etichetele
Snt specificate sub form de numere ntegi din domeniul 09999 sau
de identificatori. Etichetele snt utilizate la instruciunile de salt necondiionat goto.
Dac o instruciune este precedat de o etichet, este permis folosirea ei prin
instruciunea goto. O etichet marcheaz numai o linie. Eticheta este separat de
instruciunea corespunztoare prin caracterul dou puncte (:). Toate etichetele
utilizate trebuie declarate n seciunea label.
Exemplu de etichet :

Label 1234;
{}
begin
{}
1234: y:=sin(x)+1.0;
{}
goto 1234;
{}
end.

Constantele, numerele
Constantele, desemneaz valori ntregi sau reale. n mod obinuit se
folosete notaia zecimal, dar este permis i folosirea notaiei hexazecimale, n
cazul numerelor ntregi. O constant hexazecimal, folosete semnul dolarului ($)
ca prefix.
6

Vornicescu Silviu

Programarea n Turbo Pascal

Numerele reale se scriu sub forma :

partea_ntreag.partea_zecimal
adic n locul virgulei zecimale, se folosete punctul zecimal. Opional se poate
aduga i un exponent, la care litera E sau e este urmat de un exponent cu sau
fr semn. Dac exponentul este prezent, numrul este nmulit cu 10 la puterea
exponentului. Numerele hexa trebuie s fie cuprinse ntre $00000000 i
$FFFFFFFF , iar numerele ntregi trebuie s fie cuprinse ntre 2,147,483,648 i
2,147,483,647.

Operatorii
Limbajul Turbo Pascal 7.0 are nou tipuri de operatori :
1) asignare,
4) relaionali
7) mulime
2) aritmetici,
5) logici
8) asamblare
3) lucru cu bii
6) adresare
9) ir
Unii operatori snt binari, solicitnd doi operanzi, restul snt unari,
solicitnd un operator.

Precedena (prioritile) operatorilor


n expresii complexe, regulile de preceden (prioritate), clarific ordinea
n care se vor executa operaiile. Tabelul urmtor prezint prioritile :
Operator
Prioritate
@ not
1
* / div mod and shl shr
2
+ - or xor
3
= <> < > <= >= in
4
Operatorii care au aceiai prioritate snt executai n mod normal de la
stnga la dreapta. Expresiile cu paranteze snt evaluate mai nti, independent de
operatorii precedeni sau de succesori.

1) Operatorul de asignare
Una din cele mai frecvente operaii n cadrul programelor este asignarea,
adic operaia de atribuire a unei valori, unei variabile. Simbolul de asignare este
format din caracterul dou puncte (:) urmat de caracterul egal (=).
Exemplu : A:=3;

Vornicescu Silviu

Programarea n Turbo Pascal

2) Operatorii aritmetici
*
Div
/
Mod
+
-

Multiplicare, nmulire
mprire ntreag
mprire cu rest
Modul
Adunare
Scdere

3) Operatori pentru bii


SHL (shift left)
Shr (shift right)
And
Or
Xor
Not

4) Operatori relaionali
Operatorii relaionali permit compararea a dou valori i returneaz
rezultatul boolean , TRUE sau FALSE.
>
>=
<
<=
=
<>
in

mai mare
mai mare sau egal cu
mai mic
mai mic sau egal cu
egal
diferit
apartenena

5) Operatorii logici
Limbajul Turbo Pascal are patru operatori logici :
and
xor
or
not
8

Vornicescu Silviu

Programarea n Turbo Pascal

care snt similari, dar nu identici cu operatorii pentru bii.

6) Operatorii de adresare
Limbajul Turbo Pascal folosete doi operatori de adresare :
- adresa lui @, care returneaz adresa unei variabile
- (^) operatorul de indirectare

7) Operatorii pentru mulimi


+
-

reuniunea
diferena
intersecia

8) Operatorii limbaj de asamblare


&
()
[]
HIGH
LOW
+
:
OFFSET
SEG
TYPE
PTR
*
/
MOD
SHL
SHR
+
NOT
AND
OR
XOR

redefinire identificator
subexpresie
referin memorie
ntoarce octetul cel mai semnificativ
ntoarce octetul cel mai puin semnificativ
plus unar
minus unar
redefinire segment
ntoarce partea offset
ntoarce partea segmentului
ntoarce tipul, n octei
multiplicare
diviziune
modul
shift logic stng
shift logic drept
adunare binar
scdere binar
negare
intersecie
reuniune
reuniune exclusiv

9) Operatorul pentru iruri

Vornicescu Silviu

Programarea n Turbo Pascal

Singurul operator pentru iruri, este operatorul plus (+), care permite
concatenarea (alipirea) a dou iruri.

Separarea instruciunilor
Este realizat prin caracterul punct i virgul ( ;). Acest caracter este
destinat separrii i nu terminrii unei instruciuni. Prezena lui nu este obligatorie
dup fiecare instruciune iar n faa instruciunii End, poate s i lipseasc, iar n
faa cuvntului cheie Else, acest caracter este interzis.

iruri de caractere
Un ir de caractere este o secven de caractere ncadrate ntre dou
apostroafe. Dac se dorete ca irul nsui s conin caracterul apostrof, acest
caracter trebuie s fie dublat. irul poate s conin zero sau mai multe caractere
din setul extin de caractere ASCII. Un ir nu poate fi desprit n mai multe linii. Un
ir de caractere, care nu conine nici un caracter, se numete ir vid (nul).
Limbajul Turbo Pascal permite introducerea caracterelor n iruri i n felul
urmtor : semnul # urmat de un numr natural din domeniul 0255 desemneaz
un caracter din setul ASCII extins. ntre # i numrul natural, nu trebuie s existe
nici un separator. Dac mai multe caractere astfel scrise, snt pri ale unui ir,
atunci nici aici nu snt folosii separatori.
Exemple de iruri de caractere :

Turbo
#13#10#13
#7#7Atenie#7#7
Youll see
Linia 1#13Linia 2

Comentarii
Un comentariu este o secven de caractere inserate n program cu
scopul facilitrii nelegerii aciunilor sale. Comentariile snt construcii ignorate
de compilator i servesc la precizarea observaiilor programatorului, privitor la o
seciune din program. Un comentariu ncepe cu caracterul { sau cu perechea de
caractere (* i se ncheie cu caracterul } sau cu perechea *). Un comentariu care
conine semnul dolar ($), imediat dup deschiderea sa, reprezint o directiv de
compilare. Comentariile pot s conin orice secven de caractere exceptnd pe
cele menionate mai sus.
Exemple de comentarii :
10

Vornicescu Silviu

Programarea n Turbo Pascal

{ Acesta este un comentariu }


(* Acesta este un program *)

Directive de compilare
Directivele de compilare, snt comentarii cu o sintax special, i pot fi
utilizate peste tot unde snt admise comentarii. Directivele de compilare ncep cu
caracterele {$ sau (*$, care snt urmate de numele directivei i se termin cu
caracterul } sau *). Exist trei categorii de directive :
Directivele tip comutator, prin care pot fi activate diferite funcii ale
compilatorului. Numele directivei este urmat de caracterul + pentru cuplare sau
de caracterul pentru decuplare.
Directivele tip parametru, specific anumii parametri care afecteaz modul
de compilare.
Directivele condiionale, controleaz compilarea condiional a anumitor pri
ale textului surs.
Directivele de compilare tip comutator
Directivele de compilare tip comutator furnizeaz anumite informaii
necesare compilatorului. Ele pot fi cuplate sau decuplate. De regul, dup
caracterul $, apare o liter i semnul + sau -, de exemplu {$F+}, {$R-}. Ele
se refer la anumii comutatori (valori logice). Directivele de compilare pot fi :
locale
globale
Directivele locale pot s apar oriunde n program sau n unit, pentru c
ele afecteaz doar o parte a compilrii.
Directivele globale trebuie s fie plasate naintea prii de declarare a
programului sau a unit-ului care se compileaz, pentru c ele afecteaz ntreaga
compilare.
Se permite gruparea mai multor directive de compilare, care trebuie
separate cu virgul.
Exemplu :

{$F+, R+, E-, D-}


Directiv

{$A+}
{$A-}
{$B+}
{$B-}

Descriere
Aliniere date

Valoare implicit
Cuplat [X]

Efect
Global

Evaluare boolean

Decuplat [ ]

Local

11

Vornicescu Silviu

{$D+}
{$D-}
{$E+}
{$E-}
{$F+}
{$F-}
{$G+}
{$G-}
{$I+}
{$I-}
{$L+}
{$L-}
{$N+}
{$N-}
{$O+}
{$O-}
{$P+}
{$P-}
{$Q+}
{$Q-}
{$R+}
{$R-}
{$S+}
{$S-}
{$T+}
{$T-}
{$V+}
{$V-}
{$X+}
{$X-}
{$Y+}
{$Y-}

Programarea n Turbo Pascal

Informaii de depanare

Cuplat [X]

Global

Emulare

Cuplat [X]

Global

Model de apel far

Decuplat [ ]

Local

Generare de instruciuni Decuplat [ ]


286

Local

Testare operaii
intrare / ieire

Cuplat [X]

Local

simboluri Cuplat [X]

Local

Informaii
locale

Prelucrare numeric

Decuplat [ ]

Global

Structur de acoperire.

Decuplat [ ]

Global

Parametru ir deschis de Decuplat [ ]


caractere

Global

Testare depire numere Decuplat [ ]


ntregi

Local

Testare domeniu de valori Decuplat [ ]

Local

Testare depire stiv

Local

Numai n mod real !

Cuplat [X]

Operator de adresare @ Decuplat [ ]


cu tip

Local

Test identitate tip la Cuplat [X]


parametru / argument ir

Local

Sintaxa extins

Decuplat [ ]

Global

Informaii tip browser


Numai n mod protejat !

Cuplat [X]

Global

Directivele de compilare i echivalenele lor n meniul Option/Compiler


Directiv

{$A+}
{$A-}

Grupa
Generare de cod
Generare de cod

Echivalent
[X] Word Align Data
[ ] Word Align Data
12

Vornicescu Silviu

{$B+}
{$B-}

Sintaxa
Sintaxa

{$D+}
{$D-}
{$E+}
{$E-}
{$F+}
{$F-}
{$G+}
{$G-}
{$I+}
{$I-}
{$L+}
{$L-}
{$N+}
{$N-}
{$O+}

Depanare
Depanare
Prelucrare numeric
Prelucrare numeric
Generare de cod
Generare de cod
Generare de cod
Generare de cod
Erori de execuie
Erori de execuie
Depanare
Depanare
Prelucrare numeric
Prelucrare numeric
Generare de cod

{$O-}

Generare de cod

{$P+}

Sintax

{$P-}

Sintax

{$Q+}
{$Q-}
{$R+}
{$R-}
{$S+}
{$S-}
{$T+}
{$T-}
{$V+}
{$V-}
{$X+}
{$X-}
{$Y+}

Erori de execuie
Erori de execuie
Erori de execuie
Erori de execuie
Erori de execuie
Erori de execuie
Sintax
Sintax
Sintax
Sintax
Sintax
Sintax
Depanare

{$Y-}

Depanare

Programarea n Turbo Pascal


[X] Complete Boolean eval.
Boolean
Evaluation.
Short
Circuit
Debug Information.On
Debug Information.Off
Emulation.On
Emulation.Off
Force Far Calls.On
Force Far Calls.Off
286 Code.On
286 Code.Off
I/O Checking.On
I/O Checking.Off
Local Symbols.On
Local Symbols.Off
80x87 Code.On
80x87 Code.Off
Overlay Code Generation.On
(Numai n mod real)
Overlay Code Generation.Off
(Numai n mod real)
Open string parameters.
Enabled
Open string parameters.
Disabled
Overflow Checking.On
Overflow Checking.Off
Range Cecking.On
Range Cecking.Off
Stack Cecking.On
Stack Cecking.Off
Typed @ operator.On
Typed @ operator.Off
Strict Var String Checking
Relaxed Var String Checking
Extended Syntax.On
Extended Syntax.On
Symbol reference information.
On (numai n mod real)
Symbol reference information.
Off (numai n mod real)

13

Vornicescu Silviu

Programarea n Turbo Pascal

Directive tip parametru


Directivele tip parametru specific parametri care afecteaz modul de
compilare a programului.
Directive parametru Semnificaie
$C Atribut
Atributul segmentului de cod (sub Windows i n mod
protejat)
$D Text
Descriere (sub Windows i n mod protejat)
$I Numefiier
Includerea fiierului surs, cu extensia .PAS
$G NumeUnit
Segmente de grup unit (sub Windows i n mod protejat)
$L Numefiier
Includerea fiierului obiect, cu extensia .OBJ
$M DimensiuneStiv, Dimensiunile de alocare a memoriei : stiv i valori
HeapMinim, extreme pentru heap.
HeapMaxim
$O NumeUnit
Numele unit-ului de acoperire, cu extensia .OVR (numai
n mod real)
$R NumeFiier
Fiier de resurse (sub Windows i modul protejat)
$S DimSegment
Preferin dimensiune segment (sub Windows i n mod
protejat)
ntre numele directivei i parametrii trebuie plasat cel puin un caracter
blanc.
Exemplu :
{I TYPES.INC}
{$O XYZUNIT}
Directivele i simbolurile compilrii condiionate
Compilarea condiionat se bazeaz pe evaluarea simbolurilor
condiionale.

{$DEFINE nume}
Introducerea simbolului nume n lista simbolurilor convenionale. Acest
simbol este recunoscut pn nu va fi ters cu o directiv :

{$UNDEF nume}
Existena simbolului poate fi testat cu directiva :

{$IFDEF nume}
Introducerea simbolurilor condiionale poate fi realizat i cu opiunea
Conditional Defines (comanda Compiler din meniul Options).

{$UNDEF nume}
tergerea simbolului nume din lista simbolurilor condiionale. Dac simbolul nu
este definit, directiva nu are efect.

{$IFDEF nume}
14

Vornicescu Silviu

Programarea n Turbo Pascal

Dac simbolul nume exist n lista simbolurilor condiionale, se compileaz


textul cuprins ntre aceast directiv i directiva :

{$ELSE}
sau

{$ENDIF}
Dac simbolul nume nu exist, nu se compileaz textul cuprins ntre aceast
directiv i

{$ELSE}
sau

{$ENDIF}
{$IFNDEF nume}
Lucreaz similar directivei

{$IFDEF nume}
cu deosebirea c se testeaz lipsa simbolului nume n lista simbolurilor
condiionale.

{$IFOPT k+}
Dac opiunea k (care poate fi una din literele A, B, D, E, F, G, I, L, O, P,
Q, R, S, T, V, X, Y) este cuplat, se compileaz textul ntre aceast directiv i
directiva :

{$ELSE}
sau

{$ENDIF}
Dac opiunea k nu este cuplat, nu se compileaz textul cuprins ntre aceast
directiv i

{$ELSE}
sau

{$ENDIF}

Declaraii de variabile
nainte de a trece la declararea variabilelor, vom arta mai nti modul de
aezare a programului i a diverselor date n memoria operativ.
Programul, mpreun cu procedurile i funciile care aparin programului,
este depus n segmentul de cod. naintea versiunii 4.0 a compilatorului, lungimea
maxim admis a fost de 64Ko. Prin utilizarea unit-urilor i a bibliotecilor
dinamice, lungimea maxim a devenit de 640Ko.
n afar de segmentul de cod, mai exist segmentele de date, de stiv
i segmentul extra. Segmentul de date permite memorarea datelor
programului. Aceast memorare este ajutat i de segmentul de stiv, care este
zona principal a gestionrii datelor dinamice. Datele programului ncrcate, n
funcie de tipul lor, vor fi depuse n segmentele de cod, stiv i date.

15

Vornicescu Silviu

Programarea n Turbo Pascal

Variabilele programului principal, dac nu snt specificate ulterior alte


atribute, snt memorate n segmentul de date. Aceste variabile snt statice,
deoarece locaia lor din memorie n timpul execuiei rmne nemodificat. Din alt
punct de vedere aceste variabile snt i globale, deoarece pot fi folosite n
ntreaga ntindere a programului.
O alt clas de variabile este legat de subprograme. Aceste variabile
triesc doar n timpul execuiei subprogramului (procedur sau funcie).
Variabilele locale snt alocate la nceputul segmentului de stiv. n segmentul de
stiv, alocarea se face n ordine invers, adic de la adrese mai mari la adrese
mai mici. n momentul apelrii subprogramului, variabilele locale vor fi alocate,
adic stiva va crete. n momentul ieirii din subprogram, spaiul din stiv alocat
variabilelor locale, va fi eliberat. n momentul declarrii variabilelor noi, spaiul din
memorie eliberat, va fi din nou reutilizabil.
Tot n segmentul de stiv, n zona numit heap, snt alocate variabilele
dinamice. Declararea variabilelor dinamice difer substanial de declararea
celorlalte variabile, deoarece declararea lor se realizeaz n timpul execuiei
programului. Dup ce aceste variabile au fost utilizate, spaiul ocupat de ele poate
fi eliberat. Cu alte cuvinte ele ocup spaiu atta timp, ct snt efectiv necesare.
Alocarea de memorie pentru variabilele dinamice se realizeaz cu procedurile
New i GetMem, iar eliberarea de memorie se realizeaz cu subprogramele
Dispose, FreeMem, Mark i Release.
Geografia memoriei este urmtoarea :
Adres superioar memorie DOS
FreePtr
List pentru descrierea zonelor libere n Heap
HeapPtr
Zon de memorie liber
HeapOrg
Heap (crete spre adrese mari)
Tamponul overlay (de acoperire)
Sseg:Sptr Stiv (Stack crete spre adrese mici)
Sseg:0000 Stiv neutilizat
Variabilele globale din programul principal i din unit-uri

Dseg:0000 Variabilele iniializate (constante tipizate)


Segmentul de cod pentru unit-ul SYSTEM
Segmentul de cod pentru unit-ul U 1
Segmentul de cod pentru unit-ul U 2
Segmentul de cod pentru unit-ul U n
Cseg:0000 Segmentul de cod pentru programul principal
(n care apare directiva :

Uses U 1, U 2, , U n;
PrefixSeg

)
Program Segment Prefix PSP 256 octei
Adres inferioar memorie DOS

Zona desemnat cu semnul

16

OvrHeapEnd
OvrHeapOrg

Vornicescu Silviu

Programarea n Turbo Pascal

Reprezint coninutul fiierului .EXE.


O declaraie de variabil asociaz un nume i un tip unei locaii de
memorie. Valorile tipului specificat vor fi memorate n locaia respectiv.
Fiecare variabil care apare ntr-un program trebuie s fie introdus
printr-o declaraie de variabil. Declaraia trebuie s precead orice utilizare a
variabilei.
Declaraia variabilelor se face n seciunea var astfel :
var
list de identificatori : tip;
{}
list de identificatori : tip;
unde identificatorii din list snt desprii prin virgul. Tipul asociat unei variabile
poate s fie predefinit sau utilizator,caz n care tipul respectiv trebuie s fie definit
n seciunea type din cadrul blocului actual sau ntr-un bloc exterior.

Modul Real i modul Protejat


Microprocesoarele 80286, 80386, 80486 i urmtoarele, pot opera n
dou moduri diferite : n mod Real (Real mode) i n mod Protejat (DPMI; DOS
Protected Mode Interface).
Modul Real permite gestiunea spaiului de memorie tradiional, cu o
dimensiune de pn la 1Mo.
Modul Protejat se poate adresa un spaiu de memorie de dimensiune
maxim de 16 Mo.
Att la modul real ct i la modul protejat, adresa logic este
memorat pe dou cuvinte, fiecare avnd 16 bii, adic n total 32 de bii. Unul
dintre cuvinte este denumit adresa de baz (n mod real) sau selector (n mod
protejat). Cellalt cuvnt poart numele de deplasament. Din adresa logic se
formeaz adresa fizic, ns prin dou metode diferite. Se menioneaz c
deplasamentul n ambele cazuri, permite adresarea unei zone de memorie
(segment) de 64 Ko, deoarece pe 16 bii se pot reprezenta

216 = 65536 = 64 * 1024 = 64 K octei

Pornirea i descrierea mediului de programare


Pentru a lansa compilatorul de la prompter-ul sistemului de operare, se
introduce cuvntul Turbo pentru modul real sau BP pentru modul protejat.
Deoarece n modul protejat, putem accesa o memorie de pn la 16 Mo, n tot
ceea ce vom face de acum n colo, ne vom referi la modul protejat.
Programul BP.EXE se gsete n catalogul C: \ BP \ BIN. Dup pornire,
pe ecran apar urmtoarele informaii :
File Edit Search Run Compile Debug Tools Options Window Help

17

Vornicescu Silviu

F1 Help

F2 Save

F3 Open

Programarea n Turbo Pascal

Alt + F9 Compile

F9 Make

Alt + F10 Local menu

n rndul cel mai de sus, adic n lista meniurilor, snt specificate


meniurile din mediu. Pentru a activa aceast linie, este suficient s se apese tasta
F10 sau se ine apsat tasta Alt plus prima liter a meniului, care este de
culoare roie sau cu mouse-ul.

Meniul File
Meniul FILE permite realizarea unor operaii elementare la nivel de fiier,
navigarea pe discuri, ieirea definitiv sau parial din mediul de programare.
New iniiaz deschiderea unei zone de lucru. Aceast zon reprezentnd
o nou fereastr de editare nu are n coresponden un fiier. Pentru
recunoaterea ferestrei, aceasta primete o identificare special format din
cuvntul NONAME concatenat de o valoare numeric de exact dou cifre ntre 00
i 99. Identificarea este aleas astfel nct s fie unic pentru ferestrele deschise
i fiierele din directorul n care se lucreaz curent. Valoarea numeric este mai
mare dect toate cele utilizate pentru identificrile de aceast form. Dup
deschidere, fereastra devine activ, iar ferestra activ nainte de iniierea
comenzii, dac exist, devine inactiv.
Open permite ncrcarea unui fiier salvat anterior cu extensia .PAS .
ncrcarea unui fiier se poate face mai rapid prin apsarea tastei F3.
Save se aplic la fereastra de editare activ i permite realizarea salvrii
coninutului pe o unitate de disc. Atunci cnd exist deja un fiier salvat anterior, la
o nou salvare vechiul fiier i modific extensia n .BAK. Salvarea se face mai
rapid dac se apas tasta F2.
Save as salveaz fiierul din fereastra activ sub un nume specificat,
ntr-o unitate i catalog specificat.
Save all salveaz toate fiierele prezente n ferestrele de editare
deschise i care au fost deja modificate.
Change dir se folosete pentru a schimba amplasarea pe disc a zonei
de lucru, operaie cunoscut ca schimbare de director.
Print se utilizeaz pentru realizarea imprimrii coninutului ferestrei de
editare active. Activitatea se poate activa doar de la nivelul meniului.
Printer setup se utilizeaz pentru stabilirea unor caracteristici legate de
imprimanta conectat la calculator i a modului de realizare a imprimrii.
Dos shell se utilizeaz pentru ieirea temporar din mediul de
programare, cu trecerea la sistemul de operare. Pentru revenirea n mediu,
trebuie dat comanda EXIT la prompterul sistemului de operare. Ieirea
temporar se face cu salvarea strii mediului la momentul ieirii, stare care este
restaurat la revenirea n mediu. Activitatea se iniiaz doar de la nivelul meniului.
Exit (Alt + X) permite ieirea definitiv din mediul de programare i
rentoarcerea la sistemul de operare DOS.
18

Vornicescu Silviu

Programarea n Turbo Pascal

Meniul Edit
Comenzile meniului Edit permit efectuarea diferitelor operaii legate de
fiierul Clipboard i anumite operaii speciale de anulare i de refacere a
diferitelor aciuni. Fiierul Clipboard realizeaz legtura ntre diferitele ferestre de
editare, care la rndul lui poate fi editat, deplasat, redimensionat sau vizualizat, la
fel ca celelalte ferestre de editare.
Undo (Alt + BkSp) anuleaz efectul unei aciuni anterioare sau al unui
grup de aciuni anterioare. Comanda se refer la un grup de aciuni, dac
comutatorul Group Undo din meniul Options / Environment / Editor Options
este cuplat. n caz contrar, comanda se refer doar la ultima aciune.
Redo permite refacerea aciunilor anulate anterior prin comanda Undo,
n forma i ordinea original.
Cut (Shift + Del) decupeaz un bloc marcat, din fereastra activ de
editare care este adugat n clipboard. Blocul marcat, dispare.
Copy (Ctrl + Ins) copiaz un bloc marcat, din fereastra activ de editare
care este adugat n clipboard. Blocul marcat rmne intact.
Paste (Shift + Ins) insereaz blocul marcat din clipboard, n fereastra
activ de editare, ncepnd cu poziia n care se gsete cursorul.
Clear (Ctrl + Del) terge un bloc marcat din fereastra activ de editare,
fr ca acest bloc s fie depus n clipboard.
Show clipboard deschide o nou fereastr de editare cu numele
clipboard i arat coninutul fiierului clipboard.

Meniul Search
Meniul conine o serie de operaii necesare deplasrii ntr-o fereastr de
editare. Deplasarea se poate realiza necondiionat sau pentru regsirea unei
informaii asupra creia se poate realiza i o editare. Meniul permite diferite
cutri ale diferitelor texte, precum i nlocuirea lor cu alte texte.
Find permite cutarea unui text i deplasarea cursorului la textul
respectiv. Se afieaz o fereastr cu urmtoarea form :
Text to find
Options
[ ] Case sensitive
[ ] Whole words only
[ ] Regular expression
Scope
( . ) Global
( ) Selected text

Direction
( . ) Forward
( ) Backward
Origin
( . ) From cursor
( ) Entire scope

19

Vornicescu Silviu

Programarea n Turbo Pascal


OK

Cancel

Help

n cmpul cu inscripia Text to find se introduce irul de caractere care


trebuie cutat. Cmpul este prevzut cu o list, cu istoricul cuvintelor cutate.
Pentru demararea operaiei de cutare se apas butonul OK. Textul gsit este
marcat i rmne marcat pn la urmtoarea acionare a unei taste. Cursorul este
plasat n urma cuvntului gsit. n cazul n care cuvntul nu este localizabil, se
emite un mesaj de eroare de forma String not found (irul nu este gsit).
[ ] Case sensitive dac este poziionat [X], se face distincie ntre
majuscule i minuscule. Implicit, nu se face aceast distincie.
[ ] Whole words only dac este poziionat [X], atunci se caut numai
cuvintele ntregi, adic irul cutat trebuie s fie ncadrat de caracterul spaiu
sau de semne de punctuaie.
[ ] Regular expression dac este poziionat [X], atunci
n
specificarea textului care se caut, pot fi utilizate diferite caractere funcionale cu
efect special. Aceste caractere snt urmtoarele :

^ $ . * + [ ] \
Un caracter ^ plasat la nceputul unui ir de caractere nseamn c
irul este cutat la nceputul liniei.
Un caracter $ plasat la sfritul unui ir de caractere nseamn c
irul este cutat la sfritul liniei.
Un caracter . semnific faptul c n poziia respectiv este acceptat
orice caracter. De exemplu a.b selecteaz axb, ayb, etc.
Un caracter * plasat dup un caracter nseamn c acel caracter
poate s se repete de un numr arbitrar de ori sau s nu apar niciodat. De
exemplu, ab* va selecta abb, ac, etc.
Un caracter + plasat dup un caracter, nseamn c acel caracter
poate s se repete de un numr arbitrar de ori, dar trebuie s apar cel puin
odat. De exemplu ab+ va selecta abc, abbb, dar nu i ac.
Caracterele plasate ntre parantezele ptrate [ i ] nseamn
acceptarea oricrui caracter specificat n poziia respectiv, dar nu i alt caracter.
De exemplu, a[bcd]e va selecta abe, ace, ade.
Caracterul ^ plasat n faa unui ir de caractere ncadrat de
caracterele [ i ] nseamn negaie : n poziia respectiv este acceptat orice
caracter nespecificat n list. De exemplu, [^abc] selecteaz orice caracter,
exceptnd caracterele a, b, c.
Caracterul din interiorul parantezelor ptrate [ i ] nseamn
limitarea domeniului. De exemplu, [ch] selecteaz orice caracter de la
c pn la g.
Caracterul \ plasat n faa unui caracter funcional comunic faptul
c acel caracter este tratat ca i un caracter obinuit. De exemplu, \^ se refer la
caracterul ^ i nu la selectarea de la nceputul liniei.
20

Vornicescu Silviu

Programarea n Turbo Pascal

Direcia cutrii este specificat de butoanele radio din grupa cu


inscripia Direction. Dac este poziionat pe ( . ) Forward cutarea se face
ctre sfritul fiierului, iar dac este poziionat pe ( . ) Backward cutarea se face
ctre nceputul fiierului.
Domeniul n care se efectueaz cutarea este specificat de butoanele
radio din grupa cu inscripia Scope. Dac este poziionat pe ( . ) Global,
cutarea se face n ntregul fiier, n direcia definit de Direction. Dac este
poziionat pe ( . ) Selected text, cutarea este efectuat doar n blocul marcat.
Originea cutrii adic punctul de unde ncepe cutare, este specificat
cu butoanele radio, din grupa Origin. Dac este poziionat ( . ) From cursor,
cutarea se face de la poziia actual a cursorului, n direcia definit de
Direction i n domeniul definit de Scope. Dac este poziionat ( . ) Entire
scope, cutarea se face n ntregul fiier sau n blocul marcat, indiferent de poziia
actual a cursorului.
Replace permite cutare i nlocuirea diferitelor texte. Se afieaz o
fereastr cu urmtoarea form :
Text to find
New text
Options
[ ] Case sensitive
[ ] Whole words only
[ ] Regular expression
[X] Prompt on replace
Scope
( . ) Global
( ) Selected text
OK

Direction
( . ) Forward
( ) Backward
Origin
( . ) From cursor
( ) Entire scope
Change all

Cancel

Help

n cmpul cu inscripia Text to find se introduce textul care se caut iar


n cmpul cu inscripia New text se introduce textul cu care acesta se cere a fi
nlocuit.
La grupa de opiuni, apare un nou comutator, cu numele de Prompt on
replace. Dac comutatorul este poziionat cu [X], nainte de a efectua nlocuirea
textului cutat cu noul text, se va cere confirmarea efecturii nlocuirii respective
de ctre utilizator (Y = Da, N = Nu). Este prezent un buton nou Change all care
prin apsare, efectueaz nlocuirea automat a tuturor apariiilor textului vechi cu
textul nou.
Search again repet ultima comand Find sau Replace, cu
pstrarea tuturor opiunilor specificate n ferestrele corespunztoare.
Go to line number afieaz o fereastr de dialog de forma :

Enter new line number


21

Vornicescu Silviu
OK

Programarea n Turbo Pascal


Cancel

Help

Aceast fereastr are ca efect deplasarea cursorului ntr-o linie


specificat a programului. n cmpul cu inscripia Enter new line number se
specific numrul liniei surs cutate. Cmpul este prevzut cu o comand pentru
a afia istoricul liniilor cutate. Se amintete c n colul din stnga jos al ferestrei
de editare, apare numrul de linie i de coloan pentru poziia actual a
cursorului.
Show last compiler error afieaz din nou codul i textul mesajului
de eroare, corespunztor ultimei erori de compilare. Cursorul va fi deplasat n
dreptul locaiei erorii. Dac compilarea s-a realizat fr erori sau dac programul
surs nu a fost compilat, comanda nu poate lucra.
Find error permite localizarea unei erori de execuie. Cnd se execut
sub sistemul DOS un fiier executabil, o eroare de execuie apare sub forma :

Runtime error Cod_de_eroare at seg : depl


unde seg i depl reprezint adresa segmentului i a deplasamentului instruciunii
care a declanat eroarea. Dup ce se noteaz aceste valori, se ncarc programul
surs ntr-o fereastr de editare sau se specific numele programului primar, n
comanda Primary file din meniul Compile. n continuare se fixeaz
destinaia compilrii pe disc i se apeleaz comanda Find error. Comanda
afieaz o ferestr de dialog de forma :

Error address
OK

0000 : 0000

Cancel

Help

n cmpul de introducere cu inscripia Error address se nscrie adresa i


deplasamentul erorii respective, de exemplu 00A5 : 000F. Dup ce comanda a
fost executat, cursorul va fi deplasat la nceputul instruciunii surs care a cauzat
eroare respectiv. Linia Error address este prevzut cu comanda pentru
afiarea listei cu istoricul cutrilor. Comanda Find error este activabil numai
atunci cnd este poziionat cu [X] comutatorul Integrated Debugging din
meniul Options, submeniul Debugger.
Find procedure poate fi utilizat numai atunci cnd programul surs a
fost deja compilat. Ea servete la cutarea locaiei unde este definit o procedur
sau funcie. Comanda afieaz o ferestr de dialog de forma urmtoare :

Procedure name
Program principal

OK

Cancel

Help

n cmpul cu inscripia Procedure name se specific numele subprogramului


cutat. Numele astfel cutat va fi cutat n ntregul fiier surs, inclusiv unit-urile i
fiierele surs. Cursorul va fi poziionat pe numele subprogramului cutat. Deci
comanda nu se refer la execuia codului, ci doar la vizualizarea locaiei de
definiie a subprogramului. Comanda Find procedure difer de comanda Find a
22

Vornicescu Silviu

Programarea n Turbo Pascal

meniului Search prin faptul c prima localizeaz definiia subprogramului iar cea
dea doua, locul n care este apelat subprogramul respectiv.
Versiunea n mod protejat a compilatorului, adic programul BP.EXE,
permite afiarea ferestrelor de tip browse, adic un studiu amnunit despre
toate simbolurile utilizate n fiierul surs. Aceste simboluri pot fi obiecte, unit-uri,
variabile, tipuri, constante, etichete globale i locale, subprograme de tip
procedur i funcie. Comenzile de tip browse pot fi aplicate numai programelor
deja compilate. Informaiile afiate n aceste ferestre conin fie informaii de tip
tabel de materii, pentru obiecte, uniti simboluri globale ale programului
surs, fie informaii despre un simbol selectat.

Meniul Run
Comenzile meniului Run permit execuia unui program, reiniializarea
execuiei, execuia programului pn la poziia actual a cursorului, execuia pas
cu pas precum i stabilirea parametrilor din linia de comand.
Run (Ctrl + F9) execut un program. Dac este nevoie, snt folosii
parametrii din linia de comand, specificai n comanda Parameters din meniul
Run. Dac programul surs a fost modificat de la ultima compilare sau dac
programul nu a fost n prealabil compilat, se trece automat prima dat la
compilare, apoi la execuie. Programul este executat pn la sfritul programului
sau pn la un punct de ntrerupere, dac exist un astfel de punct. La terminarea
execuiei programului, controlul este redat mediului de programare.
Step over (F8) lucreaz similar comenzii Trace into, cu urmtoarea
deosebire : dac instruciunea actual este un apel de subprogram, ntregul
subprogram este executat ntr-un singur pas i bara de execuie va fi poziionat
pe instruciunea care urmeaz dup apelul de subprogram.
Trace into (F7) execut instruciunea urmtoare din program, iar la
nceputul execuiei va fi executat prima instruciune executabil a programului.
Dac instruciunea urmtoare este un apel la un subprogram, atunci execuia va
continua cu prima instruciune executabil a subprogramului. Aplicnd repetat
aceast comand, se poate efectua execuia pas cu pas, a programului. Se
menioneaz c instruciunea care urmeaz s fie executat, este evideniat cu o
bar, numit bar de execuie. Comanda poate fi utilizat numai atunci cnd n
momentul compilrii a fost cuplat cheia Debug information din meniul
Options, comanda Compiler, grupa Debugging, respectiv directiva {$D+}.
n caz contrar, se va emite un semnal de eroare, de forma No debug info for
program entry point. Run anyway?, adic nu exist informaii de depanare.
Go to cursor (F4) ncepe sau continu execuia unui program din
poziia curent de execuie, pn la linia n care se gsete cursorul. Dac nu s-a
nceput nc depanarea programului, poziia curent de execuie este linia n care
se gsete prima instruciune executabil. Comanda poate fi utilizat numai atunci
cnd n momentul compilrii a fost cuplat cheia Debug information la fel ca la
comanda de mai sus. Altfel, se emite un mesaj de eroare, de forma No code
generated for this line. Aceast comand , nu creeaz un punct permanent de
ntrerupere.
23

Vornicescu Silviu

Programarea n Turbo Pascal

Program reset (Ctrl + F2) reiniializeaz actuala sesiune de


depanare. Se elibereaz memoria alocat programului i se nchide fiecare fiier
deschis, dar valorile variabilelor rmn nemodificate., adic nu snt reiniializate.
Punctele de ntrerupere nu snt anulate, dar la urmtoarea execuie, programul va
fi reluat de la nceput.
Parameters afieaz o fereastr de dialog de forma :

Parameter
OK

Cancel

Help

n cmpul cu inscripia Parameter se pot introduce parametrii liniei de comand


a programului. Pentru introducere se poate folosi i lista cu istoricul parametrilor
introdui anterior. n interiorul programelor, numrul lor poate fi determinat cu
funcia ParamCount iar valoarea celui de al N-lea parametru, poate fi
determinat cu funcia ParamStr(n). Pentru valoarea N = 0 funcia va returna
numele programului. Dac nu exist nici un parametru, atunci funcia
ParamCount va returna valoarea 0.

Meniul Compile
Comenzile meniului Compile permit compilarea programelor i a uniturilor.

Compile (Alt + F9) permite compilarea fiierului care se gsete n


fereastra actual de editare. Acest fiier poate fi att un program principal, ct i un
unit sau bibliotec de legare dinamic (.DLL). Textul compilat poate s conin i
referiri la fiiere externe de includere (directive de tip $I nume).
Make (F9) compileaz fiierul primar specificat, iar n lipsa unui astfel
de fiier, se compileaz fiierul din fereastra actual de editare. Comanda
determin unit-urile folosite de programul primar. Acele unit-uri care snt prezente
numai n format surs, vor fi compilate automat i vor fi generate fiiere de
extensie .TPU corespunztoare. De exemplu, dac pentru un unit U1 se gsete
fiierul U1.Pas, acest unit este compilat rezultatul este depus n fiierul U1.TPU
Dac pentru un unit snt prezente att fiierul cu extensia .PAS ct i fiierul cu
extensia .TPU, dar data de creare a fiierului cu extensia .PAS este mai recent
dect data de creare a fiierului cu extensia .TPU, adic dac dup generarea
fiierului .TPU a mai fost actualizat fiierul surs .PAS, unit-ul respectiv va fi
recompilat i astfel va fi regenerat i fiierul .TPU.
Build compileaz fiierul primar i toate unit-urile utilizate de acesta.
Recompilarea unit-urilor nu este condiionat de data de creare a acestora.
Aceat comand este similar cu comanda Make cu deosebirea c compilarea
este independent de data de creare. La comanda Make, recompilrile se refer
doar la acele unit-uri, care nu mai snt actuale.
Target permite selectarea platformei de destinaie, adic aplicaie n
mod Real, n mod Protejat sau de tip Windows.

24

Vornicescu Silviu

Programarea n Turbo Pascal

Primary file permite specificarea fiierului primar, adic a fiierului


care va fi compilat cu comanda Make sau Build, indiferent de coninutul ferestrei
actuale de editare.

Clear primary file terge fiierul primar care a fost actual n momentul
actual.

Information afieaz informaii despre fiierul compilat, adic numrul


liniilor compilate, dimensiunea codului generat, dimensiunea segmentului de date
i de stiv, a heap-ului minim i maxim i despre memorie.

Meniul Debug
Comenzile meniului Debug (depanare) permit crearea i tergerea unor
puncte de ntrerupere, evaluarea i modificarea valorilor unor expresii numite
expresii de urmrire.
Breakpoints afieaz o fereastr care permite vizualizarea punctelor
de ntrerupere instalate precum i modul lor de utilizare.
Breakpoints list
PRG3D.PAS
PRG3D.PAS
OK

Line # Condition
25
30
Edit

Delete

View

Pas
0
0
Clear all

Help

Aceast fereastr conine o list cu urmtoarele informaii : pentru fiecare punct


de ntrerupere apare numele programului surs, numrul liniei surs, condiia care
trebuie s fie ndeplinit pentru ca s aibe loc oprirea la punctul respectiv precum
i un contor de trecere. Valorile posibile snt n intervalul : {0 215 1 = 32767 }
Acest contor precizeaz numrul trecerilor care nc nu declaneaz oprirea
programului la instruciunea respectiv. La fiecare trecere este testat un contor
interior care a fost iniializat cu valoarea contorului de trecere. Dac valoarea este
mai mare dect zero, contorul este decrementat cu unu i programul funcioneaz
mai departe. Dac valoarea contorului, este zero, programul se oprete. n
coloana care precizeaz condiia, se introduce o condiie, iar cnd aceasta este
adevrat, programul se oprete. Fereastra de dialog BreakPoints este
prevzut cu cu butoanele standard Ok i Help, dar i cu butoanele de
comenzi Edit, Delete, View i Clear All.
Edit deschide o nou fereastr de dialog cu titlul Edit
Breakpoint ca mai jos.
Condition

Modify

Pass count

New

File name

Cancel
25

Help

Vornicescu Silviu

Programarea n Turbo Pascal

Line number
Aceast fereastr, permite editarea punctelor de ntrerupere
existente. n aceast fereastr se pot modifica :
condiia care cauzeaz declanarea ntreruperii, cu list de istoric
contorul de trecere, ataat ntreruperii
numele fiierului la care se refer ntreruperea
numrul liniei surs a ntreruperii
Modificrile efectuate snt validate prin butonul de comand Modify.
Pentru definirea unui nou punct de ntrerupere, care poate fi n
cadrul aceluiai program se apas butonul New. Celelalte comenzi
ale ferestrei Breakpoints, snt :
Delete care terge punctul actual de ntrerupere, din lista punctelor
de ntrerupere.
View care caut n textul surs, punctul actual de ntrerupere i
poziioneaz cursorul, n dreptul liniei respective.
Clear all care terge toate punctele de ntreruperi din list.
Call stack (Ctrl + F3) afieaz o fereastr care vizualizeaz o stiv
cu istoricul apelurilor subprogramelor. Snt afiate numele subprogramelor i
parametrii actuali corespunztori prin utilizarea crora s-a ajuns la poziia actual
din program. nchiderea ferestrei se poate face cu mouse-ul sau cu comanda
Alt + F3.
Register afieaz o fereastr n colul din dreapta sus al ecranului, ce
nu poate fi redimensionat dar poate fi mutat, cu numele CPU i care prezint
coninutul registrilor microprocesorului. Fereastra se folosete la depanarea
secvenelor de program scrise n limbajul de asamblare.
Watch afieaz fereastra cu titlul Watches, n interiorul creia snt
afiate valorile actuale ale variabilelor i expresiilor supravegheate. Pentru a
vedea valoarea unei variabile, dup ce programul este oprit prin terminare sau
punct de ntrerupere, se apas tasta Insert i apoi se scrie numele variabilei i
se apas Enter.
Output activeaz o fereastr care afieaz textul din linia de comand
DOS i textul generat de programul care se execut. Pot fi vizualizate doar
informaiile n mod text, iar cele n mod grafic nu. Fereastra este utlizat pentru c
pot fi urmrite simultan, att programul surs, ct i rezultatele care se afieaz.
User screen (Alt + F5) afieaz un ecran ntreg cu toate informaiile
trimise de programul actual, indiferent dac informaiile snt n mod text sau n
mod grafic. Fereastra este static i nu poate fi redimensionat sau mutat.
Evaluate/modify (Ctrl + F4) permite evaluarea i vizualizarea valorii
unor variabile i expresii, precum i modificarea valorii unei variabile. n cmpul cu
inscripia Expression se poate introduce orice variabil sau expresie, pentru
care se dorete evaluarea valorii actuale. n momentul lansrii comenzii, este
introdus automat simbolul de la poziia cursorului.

26

Vornicescu Silviu

Programarea n Turbo Pascal

Dup ce se introduce expresia n cmpul Expression, se acioneaz


butonul de comand Evaluate. n acest moment, valoarea expresiei este
afiat n cmpul cu inscripia Result. Valoarea afiat poate fi modificat la o
alt valoare.
Add watch (Ctrl + F7) permite definirea unei variabile sau expresii a
crei valoare este supravegheat permanent. Se afieaz o fereastr ca mai jos.

Watch expression
OK

Cancel

Help

n cmpul cu inscripia Watch expression se introduce numele


variabilei sau expresia care se urmrete. Comanda poat fi utiizat doar atunci
cnd n momentul compilrii este cuplat cheia Debug information din meniul
Options, comanda Compiler, grupa Debugging sau directiva {$D+}.
Add breakpoint permite introducerea punctelor de ntrerupere noi i
specificarea condiiilor de oprire. Se menioneaz c un program se poate opri cu
comanda Ctrl + Break, care este o ieire obinuit n cazul unui program care are
un ciclu infinit.

Meniul Tools
Meniul Tools permite lansarea n execuie a diferitelor programe externe
din interiorul mediului de programare 7.0 . Numele programelor care pot fi lansate
n execuie au regim identic cu cel al comenzilor unui meniu. Pentru lansarea lor
se activeaz comanda respectiv.
Messages afieaz o fereastr cu acelai nume, n partea inferioar a
ecranului, care permiteafiarea mesajelor acelor programe care transmit mesajele
ctre mediul de programare prin intermediul unui filtru, de exemplu utilitarul
Grep sau Turbo Assembler.
Grep este un utilitar care permite cutarea diferitelor cuvinte n fiierele
text. De exemplu, dac se dorete cutarea tuturor liniilor surs care conin
cuvntul Write n toate fiierele cu extensia .Pas din catalogul
C:\BP\Examples, atunci se activeaz comanda Grep. Apare o fereastr n
care se introduce cuvntul cutat i calea catalogului n care se caut, separate de
un spaiu.

Enter program arguments


WRITE C:\BP\EXAMPLES\*.PAS
OK

27

OK

Cancel

Help

Vornicescu Silviu

Programarea n Turbo Pascal

Chiar dac nu a fost activat anterior, apare dup apsarea butonului OK apare
fereastra Messages, care afieaz o list a tuturor apariiilor cuvntului cutat,
mpreun cu numrul de linie din program n care a fost gsit.
Go to next (Alt + F8) asigur trecerea la urmtoarea linie a ferestrei
de mesaje. Dac aceast linie repereaz o linie dintr-un fiier text, atunci fiierul
va fi deschis, dac nu a fost deschis n prealabil i cursorul este poziionat la linia
referit a fiierului.
Go to previous (Alt + F7) este analoag comenzii precedente, cu
deosebirea c se trece la linia precedent a ferestrei de mesaje.
n meniul Tools pot fi introduse i alte utilitare sau cele existente pot fi
terse. Ele pot fi realizate cu ajutorul comenzii Tools a meniului Options.

Meniul Options
Comenzile meniului Options permit fixarea diferitelor opiuni
referitoare la compilator, editor de legturi, depanator, etc.
Compiler afieaz o fereastr de dialog n care opt fi precizate
opiunile care guverneaz tipul generrii de cod, tipul tratrii erorilor de execuie,
tipul opiunilor sintactice, tipul gestionrii numerelor reale, cantitatea informaiilor
de depanare precum i definirea simbolurilor condiionate.

Compiler settings for

Real mode target

Code generation
[ ] Force far calls
[ ] Overlays allowed
[X] Word align data
Runtime errors
[ ] Range checking
[X] Stack checking
[X] I/O checking
[ ] Overflow checking
Debugging
[X] Debug information
[X] Local symbols
[X] Symbol information
Conditional defines

[ ] 286 instructions
[ ] Smart callbacks
[ ] Windows stack frames
Syntax options
[X] Strict var-strings
[ ] Complete boolean eval
[X] Extended syntax
[ ] Typed @ operator
[ ] Open parameters
Numeric procesing
[ ] 8087/80287
[X] Emulation

OK

28

Cancel

Help

Vornicescu Silviu

Programarea n Turbo Pascal

Cmpul cu titlul Compiler settings apare numai la compilatorul


BP.EXE. n acest cmp se poate selecta natura aplicaiei pentru care se fac
precizri de opiuni de compilare. Valorile posibile snt :
aplicaie n mod Real (Real mode target)
aplicaie n mod Protejat (Protected mode target)
aplicaie sub
Windows (Windows target)
aplicaii pentru toate cele trei platforme de destinaie (All target)

Grupa Code generation se refer la comutatorii care definesc


modul de generare a codului.

[ ] Force far calls


Dac comutatorul nu este poziionat, pentru salvarea adresei de retur din
subprograme se folosete modelul de apel apropiat (near, 2 octei pentru
deplasament). Cu comutatorul poziionat se folosete modelul de apel ndeprtat
(far, pe 4 octei, 2 octei pentru deplasament i 2 octei pentru adres de
segment). Este echivalent cu directiva de compilare {$F+} sau {$F-}.

[ ] Overlays allowed
Dac comutatorul nu este poziionat, nu se va folosi modul de generare
tip acoperire, adic un unit nu poate fi acoperit de un alt unit. Este echivalent cu
directiva de compilare {$O+} sau {$O-}.

[ ] Word align data


Dac comutatorul este poziionat, se va alege modul de aliniere tip
cuvnt, adic toate variabilele de lungime mai mare de un octet snt aliniate la
adrese de cuvnt (adrese pare). Dac este necesar, ntre variabile snt inserai
octei neutilizai. Acest tip de aliniere majoreaz viteza de acces la variabile, cu
preul pierderii de spaiu de memorie. Cu comutatorul poziionat se alege modul
de aliniere tip octet, adic variabilele snt memorate la prima adres liber,
indiferent de dimensiunea lor. Este echivalent cu directiva de compilare {$A+} sau
{$A-}.

[ ] 286 instructions
Dac comutatorul este poziionat, codul generat conine instruciunile
procesorului 80286, mrind astfel viteza de execuie. Acest cod ns nu se mai
poate executa pe procesoarele 8088 sau 8086. Este echivalent cu directiva de
compilare {$G+} sau {$G-}.
[ ] Smart callbacks xxx
[ ] Windows stack frames xxx

Grupa Runtime errors

se refer la comutatori care guverneaz

tipul tratrii erorilor de execuie.

[ ] Range checking
Dac comutatorul este poziionat, se testeaz, se testeaz apartenena
n domeniul permis de tipul de enumerare sau interval a diferitelor variabile,
valabilitatea indicilor de tablou i de ir de caractere. n caz de eroare se afieaz
29

Vornicescu Silviu

Programarea n Turbo Pascal

un mesaj i programul se oprete. Este echivalent cu directiva de compilare {$R+}


sau {$R-}.

[ ] Stack checking
Dac comutatorul este poziionat, la fiecare apel de subprogram se
testeaz dac n stiv este loc suficient pentru memorarea variabilelor locale.
Dac spaiul este insuficient, programul se oprete. Este echivalent cu directiva
de compilare {$S+} sau {$S-}.

[ ] I / O checking
Dac comutatorul este poziionat, la fiecare operaie de intrare / ieire se
testeaz dac a aprut o eroare. n caz afirmativ, se afieaz un mesaj de eroare
i programul se oprete. Dac comutatorul nu este poziionat, eroarea aprut
poate fi tratat n program cu funcia IOResult. Este echivalent cu directiva de
compilare {$I+} sau {$I-}.

[ ] Overflow checking
Dac comutatorul este poziionat, se va testa depirea rezultatelor
operaiilor +,, * asupra valorilor ntregi, precum i a rezultatelor funciilor
Abs, Sqr, Succ i Pred. Rezultatele funciilor Inc i Dec nu snt verificate.
Este recomandat activarea simultan cu comutatorul Range checking. Este
echivalent cu directiva de compilare {$Q+} sau {$Q-}.

Grupa Syntax options se refer la opiunile sintactice.


[ ] Strict varstrings
Dac comutatorul este poziionat, la transmisia parametrilor variabili de
tip ir de caractere, se compar lungimea parametrului formal. Dac lungimile snt
diferite, se semnaleaz o eroare de execuie i programul se oprete. Este
echivalent cu directiva de compilare {$V+} sau {$V-}.

[ ] Complete boolean eval


Dac comutatorul este poziionat, fiecare termen dintr-o expresie logic
este evaluat. Dac comutatorul nu este poziionat, se fac optimizri n codul
generat. Este echivalent cu directiva de compilare {$B+} sau {$B-}.

[ ] Extended syntax
Dac comutatorul este poziionat se permite ca funciile s fie apelate ca
i cum ar fi proceduri, iar rezultatul returnat de funcie este neglijat. Sintaxa
extins ns nu poate fi aplicat pentru funciile unit-ului System. Utilizarea
funciilor ca i proceduri are sens, de exemplu cu subprogramele unit-ului Strings
sau n context cu funcia Readkey, cnd nu prezint interes codul tastei apsate.
Este echivalent cu directiva de compilare {$X+} sau {$X-}.

[ ] Typed @ operator
Dac comutatorul este poziionat, atunci se verific tipul reperului
generat de operatorul de adresare @. Dac comutatorul nu este poziionat, atunci
tipul operatorului @ va fi un reper fr tip de baz : pointer. Este echivalent cu
directiva de compilare {$T+} sau {$T-}.

[ ] Open parameters
30

Vornicescu Silviu

Programarea n Turbo Pascal

Dac comutatorul este poziionat, atunci la un parametru formal de tip


string poate s lipseasc specificarea exact a lungimii irului de caractere, iar
parametrul actual corespunztor poate s fie de tip string de lungime arbitrar
(parametru tip deschis).Este echivalent cu directiva de compilare {$P+} sau {$P-}.

Grupa Debugging se refer la cantitatea informaiilor de depanare


pstrate.

[ ] Debug information
Dac comutatorul este poziionat, se genereaz o tabel cu numrul
liniilor surs pentru fiecare instruciune din program. n aceast tabel se face
coresponden ntre adresa codului generat i numrul liniei surs corespunztor.
Astfel mediul permite execuia pas cu pas, pn la locaia cursorului precum i
definirea punctelor de ntrerupere. Dac comutatorul nu este poziionat,
necesitile de memorie descresc, dar mijloacele de depanare devin inaccesibile.
Este echivalent cu directiva de compilare {$D+} sau {$D-}.

[ ] Local symbols
Dac comutatorul este poziionat, se genereaz o tabel cu numele i
tipul tuturor variabilelor i constantelor locale dintr-un modul. Astefel mediul va
permite evaluarea i modificarea valorilor variabilelor locale, precum i istoricul
apelurilor de subprograme. Funciile Linker / Map file i Debugger / Standalone
ale meniului Options pot s livreze informaii referitoare la variabilele locale
numai pentru acele subprograme care au fost compilate cu comutatorul Local
symbols poziionat. Este echivalent cu directiva de compilare {$L+} sau {$L-}.

[ ] Symbol information
Comutatorul poate fi utilizat numai la compilatorul BP.EXE. Dac
comutatorul este poziionat, compilatorul introduce n codul generat informaii de
tip browse. n acest caz se permite afiarea diferitelor ferestre de tip browse
referitoare la obiecte, unit-uri, variabile globale i simboluri. Este echivalent cu
directiva de compilare {$Y+} sau {$Y-}. Cnd comutatorul Symbol information
este cuplat, att comutatorul {$D+} ct i comutatorul {$L+} trebuie s fie cuplat.

Grupa Numeric procesing

se refer la comutatori care

guverneaz tipul gestionrii numerelor reale.

[ ] 8087 / 80287
Dac comutatorul este poziionat, atunci se permite utilizarea tuturor
tipurilor reale (real, single, double, extended, comp). Dac comutatorul nu este
poziionat, atunci se permite doar utilizarea tipului real, celelalte tipuri reale snt
interzise. Este echivalent cu directiva de compilare {$N+} sau {$N-}.

[ ] Emulation
Dac comutatorul este poziionat, atunci se utilizeaz o bibliotec care
emuleaz coprocesorul matematic 8087, dac acest coprocesor nu este prezent.
Fiierul executabil poate fi utilizat de orice echipament, indiferent dac 8087 este
sau nu prezent. Este echivalent cu directiva de compilare {$E+} sau {$E-}.
31

Vornicescu Silviu

Programarea n Turbo Pascal

Memory sizes deschide o fereastr de dialog n care pot fi precizate


necesitaile de memorie ale unui program.
Fereastra are forma de mai jos :

------- Real target ------Stack size


16384
Low heap limit 0
High heap limit 655360
------- Protected target ------Stack size
16384
------- Windows target ------Stack size
8192
Local heap size 8192

OK

Cance

Help

Se observ c se poate specifica dimensiunea stivei (Stack size) i


specificarea dimensiunii minime (Low heap limit) i maxime (High heap limit)
pentru zona heap. Este echivalent cu directiva de compilare {$M+} sau {$M-}.
Valorile implicite snt : {$M 16384,0,655360}.
Linker afieaz o fereastr care se refer la precizarea informaiilor
necesare editorului de legturi integrat. Fereastra are forma :

Map file
( . ) Off
( ) Segments
( ) Public
( ) Detailed
OK

Link buffer
( . ) Memory
( ) Disk

Cance

Help

Butoanele radio din grupa cu titlul Map file se refer la fiierul text de
extensie .MAP care este un fiier hart de memorie creat de editorul din mediul
de programare. Acest fiier conine informaii necesare depanrii programului i el
este depus pe disc, n catalogul specificat de cmpul Object directories din
meniul Options comanda Directories.
( . ) Off nu se creeaz fiierul *.MAP

32

Vornicescu Silviu

Programarea n Turbo Pascal

( ) Segments fiierul *.MAP va conine doar informaiile


referitoare la segmente : nume, dimensiune, adresa de nceput i de sfrit, clasa.
( ) Public fiierul *.MAP va conine i tabela care conine
numrul liniilor surs i numele modulelor, precum i adresa n segmentul de cod
a instruciunilor corespunztoare liniilor. La aceste module, la care n momentul
compilrii, comutatorul local Local symbols este cuplat {$L+} (meniul Options,
comanda Compiler), n fiierul *.MAP se vor depune informaii i despre
simbolurile locale. Butoanele radio din grupa cu titlul Link buffer stabilesc locul
tamponului editorului de legturi.
( . ) Memory Tamponul este rezervat n memorie
( ) Disk Tamponul este rezervat pe disk.

Debugger deschide o fereastr de dialog n care pot fi precizate


opiunile referitoare la depanator i modul de utilizare a ecranului.

Symbols
[X] Integrated debugging / browsing
[ ] Standalone debugging
Display swapping
( ) None
( . ) Smart
( ) Always
OK

Cance

Help

[X] Integrated debugging / browsing


Dac este cuplat, n codul generat vor fi incluse informaii, care permit
execuia programului n regim de depanare cu ajutorul depanatorului integrat.

[ ] Standalone debugging
Dac este cuplat, n codul generat vor fi incluse informaii, care permit
depanarea cu ajutorul utilitarului Turbo Debugger.
Butoanele radio din grupa cu titlul Display swapping determin modul
de schimbare i utilizare a ecranului.
( ) None Dac un program este executat din mediul integrat,
programul va suprascrie ecranul mediului, adic nu are loc o schimbare de ecran.
Ecranul mediului poate fi restabilit cu comanda Refresh display a mediului
Window.
( . ) Smart n momentul scrierii pe ecran de ctre programul executat,
ecranul mediului este schimbat pentru o scurt perioad necesar scrierii pe
ecranul utilizatorului, dup care se face revenirea la starea anterioar pornirii
programului.
( ) Always Dup fiecare instruciune are loc o schimbare de ecran.

OK

33

Cance

Help

Vornicescu Silviu

Programarea n Turbo Pascal

Directories afieaz o fereastr de dialog n care pot fi precizate


diferite directoare care conin anumite fiiere necesare mediului de programare.
EXE & TPU directory
Include directories
Unit directoriess
Object directories
Resource directories
EXE & TPU directory este catalogul care conine fiierele .EXE, .TPU,
.MAP. Dac nu se introduce nimic n cmpul aferent, aceste fiiere snt
depuse n catalogul fiierului surs.
Include directories se refer la directoarele care conin fiierele de includere
ale utilizatorului. n programul surs, aceste fiiere snt refereniate cu directiva
{$Inume_fiier}. n cazul directoarelor multiple, acestea snt separate cu ;.
Unit directories se refer la directoarele care conin fiierele unit-urilor
standard sau unit-urilor utilizator.
Object directories se refer la directoarele care conin fiierele obiect
.OBJ ale utilizatorului adic codul obiect al subprogramelor scrise n limbaj
de asamblare cu extensia .ASM. n programul surs, aceste fiiere snt
refereniate cu directiva {$Lnume_fiier}.

Browser poate fi utilizat numai n cazul compilatorului BP.EXE.


Symbols
[X] Labels
[X] Constants
[X] Types
Sub-browsing
( . ) New browser
( ) Replace curent
Display
[X] Qualified symbols

[X] Variables
[X] Procedures
[ ] Inherited
Prefered pane
( . ) Scope
( ) Reference
[ ] Sort always
OK

Cance

Help

Grupa cu titlul Symbols definete natura simbolurilor pentru care se


dorete aplicarea serviciilor browse, adic simbolurile care pot apare n
ferestrele de tip browse. Exist ase categorii de simboluri utilizabile : etichete
(Labels), constante (Constants), tipuri (Types), variabile (Variables), proceduri
(Procedures) i simboluri motenite (Inherited).
Grupa cu titlul Sub-browsing conine urmtoarele butoane radio :

34

Vornicescu Silviu

Programarea n Turbo Pascal

( . ) New browser adic dac din fereastra actual de tip browse se


trece la afiarea informaiilor mai amnunite sau se schimb tipul listei, noile
informaii snt afiate ntr-o nou fereastr de tip browse.
( . ) Replace curent adic noile informaii vor nlocui informaiile din
fereastra actual.
Grupa cu titlul Prefered pane conine urmtoarele butoane radio :
( . ) Scope dac pentru o categorie de simboluri este posibil afiarea
mai multor tipuri de ferestre browse,atunci tipul implicit de fereastr, care se
afieaz prima dat este de tip S (Scope) adic domeniu.
( . ) Reference tipul ferestrei este R adic referin.
Grupa cu titlul Display stabilete modul de afiare a informaiilor.
Exist urmtorii comutatori :
[X] Qualified symbols dac comutatorul este poziionat, se afieaz i
originea simbolului. De exemplu, metoda rotate a obiectului TObject1 va fi
afiat n lista de tip S (Scope) sub forma calificat Tobject1.rotate, dar dac
comutatorul nu este poziionat, se afieaz doar rotate.
[ ] Sort always dac comutatorul este poziionat, elementele listei
browse snt afiate n ordine alfabetic, iar dac nu este poziionat ele snt
afiate n ordinea declaraiilor.

Tools permite introducerea utilitarelor noi n meniul Tools sau


tergerea ori modificarea celor vechi. Meniul poate s conin cel mult zece
programe. Utilitarele actuale snt afiate ntr-o list cu inscripaia Program titles
ntr-o fereastr de dialog cu urmtoarea form :

Grep

OK

Turbo Assembler

Edit

Turbo Debugger

New

Turbo Profiler

Delete
Cance
Help

Parametrii utilitarului actual al listei se modific prin acionarea butonului


de comand Edit. n urma apelrii se afieaz urmtoarea fereastr :
Titles
~G~rep
Program path
GREP
Command line

Hot keys
( ) Unassigned
( . ) Shift + F1
( ) Shift + F2
( ) Shift + F3
( ) Shift + F4
( ) Shift + F5
35

OK

Cance

Help

Vornicescu Silviu
- n + $MEM(64) $NOSWAP

Programarea n Turbo Pascal


(
(
(
(
(

) Shift + F6
) Shift + F7
) Shift + F8
) Shift + F9
) Shift + F10

Dac se dorete includerea unui utilitar nou n lista de comenzi a


meniului Tools atunci se va aciona butonul de comand New, care va afia
fereastra de mai sus. Comanda Delete permite tergerea elementului actual din
lista de utilitare apelabile. Cmpul Title stabilete sau modific titlul comenzii
care este afiat n meniul Tools. Caracterul evideniat al comenzii trebuie
ncadrat ntre dou caractere ~ (Tilda). Cmpul Program path definete
numele fiierului, care poate fi precedat de unitatea de disc i de cale, n
conformitate cu conveniile folosite n sistemul MS-DOS. Cmpul Command line
permite stabilirea parametrilor utilizai n linia de comand, dac este cazul. Grupa
de butoane radio cu titlul Hot keys permite asocierea fiecrui utilitar la cte o
combinaie funcional din domeniul Shift + F2, , Shift + F10.Dac se alege
varianta Unassigned, atunci utilitarului nu I se asociaz nici o combinaie de
taste.
Environment este o comand care afieaz o list de subcomenzi.

Preferences
Editor
Mouse
Startup
Colors
Subcomanda Preferences permite stabilirea diferitelor preferine
legate de utilizarea mediului de programare.

Screen size
( . ) 25 lines
( ) 43/50 lines
Desktop file options
( ) Desktop only
( . ) Desktop and symbols
Auto save
[ ] Editor files
[ ] Environment
[ ] Desktop

Source tracking
( . ) New window
( ) Current window
Desktop file
( ) Current directory
( . ) Config file directory
Options
[ ] Auto track source
[X] Close on go to source
[ ] Change dir on open
OK

36

Cance

Help

Vornicescu Silviu

Programarea n Turbo Pascal

Butoanele radio din grupa Screen sizes stabilesc dimensiunea


ecranului. Se poate alege una din variantele : 25 linii pe ecran sau 43/50 linii pe
ecran (43 la EGA i 50 la VGA).
Butoanele radio din grupa Source tracking stabilesc modul de
deschidere al fiierelor care se editeaz n mediu. Dac se alege varianta
New window, atunci fiierul deschis pentru editare este plasat ntr-o fereastr
nou de editare. Dac se alege varianta Current window, noul fiier este
plasat n fereastra actual de editare.
Butoanele radio din grupa Desktop stabilesc directorul n care este
salvat fiierul desktop TURBO.DSK sau fiierul BP.DSK. Fiierul *.DSK
conine informaii referitoare la zona de lucru a mediului : listele cu istoricul,
locaiile punctelor de ntrerupere, starea zonei de lucru. Dac se alege varianta
Current directory , atunci fiierul .DSK va fi salvat n directorul curent.
Dac se alege varianta Config file directory, atunci fiierul *.DSK va fi
salvat n directorul n care este salvat i fiierul de configurare TURBO.TP sau
BP.TP. Fiierul de configurare *.TP conine opiunile actuale de compilare i
tabela cu comenzile editorului.
Butoanele radio din grupa Desktop file snt utilizabile numai la
compilatorul BP. Ele permit selectarea urmtoarelor opiuni ale fiierului
*.DSK : dac se alege varianta Desktop and symbols, atunci fiierul
desktop va conine i informaiile referitoare la simbolurile utilizate n program, iar
dac se alege varianta Desktop only, informaiile referitoare la simboluri, nu
snt memorate n fiierul desktop.
Grupa cu titlul Auto save conine trei comutatori :

[ ] Editor files
Dac este cuplat, fiierele din ferestrele de editare nc nesalvate, snt
salvate automat n momentul prsirii definitive sau temporare a mediului, la
lansarea n execuie a programului curent sau la declanarea unei aciuni de
depanare.

[ ] Environment
Dac este cuplat, n momentele mai sus menionate, opiunile actuale
ale mediului, adic opiunile de compilare i tabela cu comenzile editorului, snt
salvate automat n fiierul de configurare *.TP.

[ ] Desktop
Dac este cuplat, n momentele menionate la primul comutator, vor fi
salvate automat informaiile referitoare la listele cu istoricul, locaiile punctelor de
ntrerupere i starea zonei de lucru, n fiierul desktop *.DSK. Comutatorul
poate fi cuplat doar atunci, cnd este cuplat i comutatorul Environment.
Grupa cu titlul Options conine trei comutatori :

[ ] Auto track source


n stare cuplat regleaz modul de utilizare al comenzii Track source
prezent n meniurile locale Browse i Messages. Linia refereniat de
elementul actual al ferestrei Browse sau Messages va fi selectat automat,
este afiat cu o culoare distinct, deci nu este necesar acionarea barei de
spaiu.

[X] Close on go to source


37

Vornicescu Silviu

Programarea n Turbo Pascal

n stare cuplat regleaz modul de utilizare al comenzii Goto source


prezent n meniurile locale Browse i Messages. Cnd se trece la linia
surs a fiierului desemnat de elementul actual al ferestrei Browse sau
Messages, fereastra Browse sau Messages va rmne deschis.

[ ] Change dir on open


Dac este cuplat, directorul fiierului deschis cu comanda Open din
meniul Open va fi n continuare directorul actual iar dac comutatorul nu este
cuplat, atunci nu se va schimba directorul actual.
Subcomanda Editor permite parametrizarea editorului ncorporat. Ea
afieaz urmtoarea fereastr de dialog :

Editor options
[X] Create backup files
[X] Insert mode
[X] Auto indent mode
[ ] Use tab characters
[ ] Optimal fill
[X] Backspace unindents
[ ] Cursor through tabs
Tab size 8
Highlight extensions
*.PAS; *.INC

[X] Group Undo


[X] Persistent blocks
[ ] Overwrite blocks
[X] Syntax highlight
[ ] Block insert cursor
[X] Find text at cursor

OK

Cance

Help

[X] Create backup files


n stare cuplat, la comanda Save din meniul File, mediul va salva
automat fiierul surs original, cu extensia .BAK, iar dac nu este cuplat, fiierul
surs original nu este salvat.

[X] Insert mode (Ins, Ctrl + V)


n stare cuplat editorul lucreaz n modul inserare, iar forma cursorului
este o liniu, iar dac nu este cuplat, forma cursorului este un dreptunghi.

[X] Autoindent mode (Ctrl + O, I)


n stare cuplat, prin acionarea tastei Enter, cursorul va fi poziionat
n coloana primului caracter diferit de spaiu din linia precedent i care nu este o
linie numaicu blancuri. Acest lucru contribuie la claritatea programului.

[ ] Use tab characters (Ctrl + O, T)


n stare cuplat editorul insereaz efectiv un caracter Tab (Cod ASCII
9) n momentul n care se tasteaz Tab. n stare decuplat, caracterul Tab
este nlocuit cu spaii. Numrul spaiilor inserate este definit de cmpul Tab size.

[ ] Optimal fill (Ctrl + O, F)

38

Vornicescu Silviu

Programarea n Turbo Pascal

n stare cuplat editorul va ncerca s foloseasc un numr minim de


caractere la nceputul fiecrei linii, cnd Auto indent mode este n stare
cuplat.

[X] Backspace unindents (Ctrl + O, U)


n stare cuplat, dac cursorul este pe o linie cu spaii sau pe primul
caracter diferit de spaiu dintr-o linie, la acionarea tastei Backspace toat linia
se va alinia astfel nct s nceap n aceiai coloan cu cea precedent.

[ ] Cursor through tabs (Ctrl + O, R)


n stare cuplat cursorul se mic uniform cnd se ajunge la un caracter
Tab, adic caracterul Tab este ignorat, altfel cursorul se deplaseaz nainte
cu un numr de coloane care este specificat n cmpul Tab size

[X] Group Undo


n stare cuplat comanda Undo din meniul Edit va anula ultimele 10
aciuni, ntr-un singur pas. Pot fi grupate urmtoarele aciuni : inserare, tergere i
suprascriere de text i aciunile de deplasare a cursorului. Dac este decuplat,
comanda Undo va restabili doar o singur aciune.

[X] Persistent blocks


n stare cuplat marcarea (supraluminarea) de bloc va rmne valabil i
atunci, cnd se prsete domeniul blocului respectiv. n caz contrar, n momentul
prsirii blocului, marcarea blocului se termin.

[ ] Overwrite blocks
n stare cuplat i dac i comutatorul Persistent blocks este activ,
blocul marcat poate fi suprascris. n caz contrar, la prima modificare n interiorul
blocului, marcarea este anulat.

[X] Syntax highlight


n stare cuplat diferitele construcii ale limbajului Turbo Pascal, snt
colorate diferit.

[ ] Block insert cursor


n stare stare decuplat cursorul corespunztor modului de inserare este
o liniu, iar al modului de suprascriere este un dreptunghi. n stare cuplat este
invers.

[X] Fint text at cursor


n stare cuplat, procesul de cutare este pornit de la poziia actual a
cursorului, n caz contrar se pornete de la nceputul fiierului.
Cmpul cu inscripia Tab size permite definirea numrului de spaii
introduse cnd este acionat tasta Tab. Valorile permise snt nre 2 i 16, iar
valoarea implicit este 8.
Cmpul cu inscripia Highlight extension permite selectarea acelor
extensii de fiiere, pentru care vor fi aplicate serviciile de colorare distinct a
diferitelor poriuni din fiierul surs, validate de comutatorul Syntax highlight.
Colorrile distincte vor fi aplicate implicit fiierelor cu extensia .PAS; .INC.
Subcomanda Mouse afieaz o fereastr de dialog care este
destinat gestionrii activitii cu mouse-ul. Ea are forma urmtoare :
Ctrl + Right mouse button

Mouse double click


39

Vornicescu Silviu

Programarea n Turbo Pascal

( ) Nothing
( . ) Topic search
( ) Go to cursor
( ) Breakpoint
( ) Evaluate
( ) Add watch
( ) Browse symbol

Fast

Medium

Slow

[ ] Reverse mouse button

OK

Cance

Help

Grupa butoanelor Ctrl + Right mouse button ataeaz o comand la


acionarea butonului din dreapta al mouse-ului. Pot fi selectate urmtoarele
variante :
( ) Nothing butonul din dreapta este inactiv.
( . ) Topic search comanda Topic search (Ctrl + F1) din meniul
Help.
( ) Go to cursor comanda Go to cursor (F4) din meniul Run
( ) Breakpoint comanda Add breakpoint (Ctrl + F8) din meniul
Debug.
( ) Evaluate comanda Evaluate/Modify (Ctrl + F4) din meniul
Debug
( ) Add watch comanda Add watch (Ctrl + F7) din meniul
Debug.
( ) Browse symbol comanda Symbol din meniul Search, numai
n mod protejat.
Timpul dintre dou apsri consecutive a butonului de mouse, pentru ca
aciunea s fie interpretat ca i cum ar fi o apsare dubl, poate fi stabilit n
cmpul cu titlul Mouse double click. Viteza crete de la dreapta spre stnga.
Comutatorul Reverse mouse buttons se poziioneaz atunci cnd se
dorete schimbarea rolului butonului din dreapta cu cel din stnga.
Subcomanda Startup afieaz o fereastr de dialog n care pot fi
precizai comutatorii care definesc modul de lansare al mediului de programare
integrat.
[ ] Dual monitor support
[ ] Graphics screen save
[ ] EGA / VGA palette save
[X] CGA Snow checking
[ ] LCD color set
[X] Load .TPL file
[X] Preserve symbols
[X] Return to last dir
Swap file size
Swap file directory 0
K

OK

Cance

Help

40

Vornicescu Silviu

Programarea n Turbo Pascal

[ ] Dual monitor support


Acest comutator se cupleaz numai dac computerul utilizeaz dou
plci video care pot funciona n paralel. n acest caz, n urma cuplrii opiunii, pe
monitorul central se afieaz mediul de programare, iar pe cellalt se afieaz
datele de ieire ale programului.

[ ] Graphics screen save


n stare cuplat, n modul de depanare, salveaz ntreaga memorie
grafic. Mediul rezerv o memorie tampon de 8Ko, n momoria EMS, dac
aceast categorie de memorie este accesibil, la sistemele pe EGA, VGA sau
MCGA.

[ ] EGA / VGA palette save


n stare cuplat, n caz de depanare, salveaz sau restabilete paleta
EGA / VGA. Dac programul nu modific regitrii de palet, nu este necesar
cuplarea acestui comutator.

[X] CGA snow checking


n stare cuplat determin testarea i anularea fenomenului deranjant de
ninsoare a plcilor CGA.

[ ] LCD color set


n stare poziionat permite utilizarea mediului de programare i pe
ecranele calculatoarelor laptop.

[X] Load .TPL file


n stare cuplat, n momentul ncrcrii mediului, ncarc i fiierul
BP.TPL care conine unit-urile standard (System, Crt, Dos, Overlay, Printer,
Strings).

[X] Preserve symbols


n stare cuplat reamintete informaiile referitoare la simbolurile
utilizate n ferestrele de tip browse. Dac n urma unei compilri s-au gsit
erori, nc pot fi folosite informaiile din ultima compilare reuit.

[X] Return to last dir


Comutatorul determin conservarea directorului curent. Dac opiunea
este cuplat, la repornirea calculatorului, directorul curent va fi automat cel care a
fost folosit n momentul ultimei ieiri din mediul de programare.
Swap file size definete dimensiunea zonei de memorie care este
rezervat pentru memorarea temporar a fiierului n curs de editare sau a zonei
de lucru a editorului.
Swap file directory permite specificarea directorului n care este
memorat fiierul de manevr al editorului. Numele acestui fiier ncepe cu TP i
are extensia $$$. Acest fiier este temporar, iar n momentul ieirii din mediu este
ters automat.
Subcomanda Colors afieaz o fereastr de dialog care permite
modificarea culorii diferitelor componente ale mediului.
41

Vornicescu Silviu
Group
Browser
Call stack
Compiler
Desktop
Dialogs
Editor
Help
Menus
Messages
Output
Register
Syntax
Watches

Programarea n Turbo Pascal


Item
Frame passive
Frame active
Frame icons
Scroll bar page
Scroll bar icons
Normal text
Focused text
Unexpanded mode
Selected text

Foreground

Background

Text
Text

OK

Cance

Text
Text

Text
Text

Help

Fereastra care se recoloreaz se selecteaz din coloana Group.


Componenta de fereastr se alege din coloana Item. Culoarea caracterelor se
alege din grupa culorilor Foreground iar culoarea fondului se alege din grupa
culorilor Background.
Open afieaz o fereastr de dialog prin care se poate preciza
numele unui fiier de configurare, salvat anterior cu comanda Save sau Save
as. Dup precizarea numelui care de obicei este C:\BP\BIN\BP.TP, fiierul de
configurare, n urma apsrii butonuluiOK, este ncrcat.
Save salveaz opiunile actuale de compilare i tabela de comand a
editorului, n fiierul actual de configurare, care de obicei este
C:\BP\BIN\BP.TP. Opiunile referitoare la zona de lucru Desktop liste cu
istoricul,starea zonei de lucru, locaiile punctelor de ntrerupere snt memorate n
fiierul BP.DSK.
Save as afieaz o fereastr de dialog care permite introducerea
numelui de configurare *.TP. n acest fiier, prin acionarea butonului de
comand OK, vor fi salvate opiunile actuale de compilare i tabela de comand
a editorului. Fiierul salvat, poate fi ncrcat ulterior cu comanda Open.

Meniul Window
Comenzile meniului Window permit deschiderea, aranjarea i listarea
diferitelor ferestre.
Tile aeaz diferitele ferestre deschise, una sub alta, astfel c toate
ferestrele snt simultan vizibile. Dac numrul de ferestre deschise simultan este
prea mare se emite semnalul de eroare Tile / Cascade area too small to
complete reguest.
Cascade permite aeazarea ferestrelor deschise sub form de
grmad. Prima fereastr ocup ntreaga zon de lucru, celelalte snt micorate,
fereastra activ este deasupra grmezii.

42

Vornicescu Silviu

Programarea n Turbo Pascal

Close all terge zona de lucru, adic nchide toate ferestrele


deschise la un moment dat. Dac exist ferestre n care fiierul modificat nu a fost
salvat, atunci se emit mesaje de avertisment.
Refresh display restabilete ecranul mediului. Aceast comand se
folosete atunci cnd ecranul mediului este suprascris de un program lansat n
execuie.
Size / Move(Ctrl + F5) permite redimensionarea i deplasarea
ferestrei actuale. Redimensionarea ferestrei se realizeaz prin acionarea
simultan a tastelor Shift i una din tastele cu sgei. Cnd se ajunge la
dimensiunea dorit, se tasteaz Enter. Deplasarea poate fi realizat cu ajutorul
tastelor cu sgei.Dup ce fereastra a ajuns la locul dorit, se tasteaz Enter.
Zoom(F5) permite redimensionarea ferestrei active la dimensiunea
maxim.Dac fereastra are deja aceast dimensiune, comanda restabilete
dimensiunea la cea original, adic comanda funcioneaz ca un comutator.
Next(F6) activeaz urmtoarea fereastr din ferestrele deschise la un
moment dat.
Previous(Shift + F6) activeaz fereastra precedent, din ferestrele
deschise la un moment dat.
Close(Alt + F3) nchide fereastra actual. Dac fiierul din fereastra
actual a suferit modificri i nc nu a fost salvat, atunci mediul emite un mesaj
de avertisment.
List(Alt + 0(zero)) deschide o fereastr de dialog care listeaz toate
ferestrele deschise n momentul respectiv.

Meniul Help
Comenzile meniului Help asigur accesul la diferitele componente ale
documentaiei n limba englez, care nsoete mediul de programare.

Powered by http://www.referat.ro/
cel mai tare site cu referate

43

Vornicescu Silviu

Programarea n Turbo Pascal

44

S-ar putea să vă placă și