SlideShare a Scribd company logo
1 of 9
Mulţimea de valori ale tipului predefinit de date
pointer (indicator) constă din adrese şi
valoarea specială nil.
Operaţiile care se pot face cu valori de tipul de
date pointer sînt = şi <>. Valorile de acest tip
nu pot fi citite de la tastatură şi afişate pe
ecran.
O variabilă de tip pointer se introduce printr-o
declaraţie forma:
var p : pointer;
Program PI 34; { Tipul de date pointer }
var p : pointer;
i, j : ^integer;
x, y : ^ real;
r, s : ^ string;
begin
{ p va identifica o variabilă dinamică de tipul integer }
new(i); i^:=1;
P^ = i ;
new(i); i ^ :=2;
j :=p;
writeln('j^=', j^);
{ p va identifica o variabilă de tip real }
new (x); x^: =1 ;
p:=x;
new (x); x^:=2;
y:=p;
Writeln(y^=' y^); {se afişează 1.OOOOOOOOOOE+00 }
{ p va identifica o variabilă dinamică de tipul string }
new (r); r^: = 'AAA';
p:=r;
new (r); r^:=‘BBB';
s:=p;
writeln ('s^=', s^); { se afişează AAA }
end.
Domeniul principal de utilizare a variabilelor de
tip pointer este gestionarea memoriei interne
a calculatorului.
Alocarea variabilelor dinamice se execută întro zonă specială a memoriei interne numită
heap (grămadă). Adresa de început a heapuluii este depusă în variabila predefinită de
tip pointer HeapOrg. Variabila de tip pointer
HeapPtr conţine adresa
primei locaţii libere, numită vîrful heap-ului.
Apelul procedurii mark are forma:
mark(p)
unde p este o variabilă de tip pointer. Procedura
memorează adresa vîrfului din HeapPtr în
variabila p.
Apelul procedurii release are forma:
release(p)
Această procedură reface adresa vîrfului în
starea înregistrată anterior cu procedura mark:
valoarea conţinută în variabila de tip pointer p
este depusă în indicatorul HeapPtr.
1) se memorează adresa vîrfului cu procedura
mark;
2) se creează variabilele dinamice cu procedura
new;
3) se utilizează variabilele dinamice create;
4) cînd variabilele dinamice nu mai sînt necesare,
spaţiul ocupat din heap este eliberat cu
procedura release.
1. Care este mulţimea de valori ale tipului de date pointer?
Ce operaţii pot fi
efectuate cu aceste valori?
2. Comentaţi următorul program:
Program PI36;
{ Eroare }
var i : ^integer;
j, k : integer;
p : pointer;
begin
new (i); i^:=1;
p:=i;
new (i) ; i^ :=2;
j:=i^; k:=p^;
writeln('j+k=', j+k);
end.
Program P137;
var i, j, k, m, n : ^integer;
p : pointer;
begin
{ crearea variabilelor i^, j^, k^ }
new(i); new(j); new(k);
i^:=1; j^:=2; k^:=3;
p:=j; { p reþine adresa din j }
{ distrugerea variabilei j^ ºi crearea
variabilei m^ }
dispose(j); new(m); m^:=4;
j:=p; { refacerea adresei din j }
writeln('i^=', i^, ' j^=', j^, ' k^=', k^);
{ distrugerea variabilei m^ si crearea
variabilei n^ }
dispose(m); new(n); n^:=5;
writeln('i^=', i^, ' j^=', j^, ' k^=', k^);
readln;
end.

Program P138;
var i, j, k, m : ^integer;
begin
{ crearea variabilelor i^, j^ }
new(i); new(j);
i^:=1; j^:=2;
{ eliberarea memoriei heap-ului }
release(HeapOrg);
{ crearea variabilelor k^ øi m^ }
new(k); new(m);
k^:=1; m^:=2;
writeln('k^=', k^, ' m^=', m^);
i^:=3; j^:=4;
writeln('k^=', k^, ' m^=', m^);
readln;
end.
Program P138;
var i, j, k, m : ^integer;
begin
{ crearea variabilelor i^, j^ }
new(i); new(j);
i^:=1; j^:=2;
{ eliberarea memoriei heap-ului }
release(HeapOrg);
{ crearea variabilelor k^ øi m^ }
new(k); new(m);
k^:=1; m^:=2;
writeln('k^=', k^, ' m^=', m^);
i^:=3; j^:=4;
writeln('k^=', k^, ' m^=', m^);
readln;
end.

More Related Content

Viewers also liked

Manualul profesorului
Manualul profesoruluiManualul profesorului
Manualul profesoruluinatashcka
 
Baza de date relatioala
Baza de date relatioalaBaza de date relatioala
Baza de date relatioalarojcov
 
документ Microsoft office_word
документ Microsoft office_wordдокумент Microsoft office_word
документ Microsoft office_wordrojcov
 
Structuri De Date Alocate Dinamic
Structuri De Date Alocate DinamicStructuri De Date Alocate Dinamic
Structuri De Date Alocate DinamicCarmen Negrea
 
презентация Microsoft office_power_point_(3)[1]
презентация Microsoft office_power_point_(3)[1]презентация Microsoft office_power_point_(3)[1]
презентация Microsoft office_power_point_(3)[1]rojcov
 

Viewers also liked (8)

Manualul profesorului
Manualul profesoruluiManualul profesorului
Manualul profesorului
 
Тип данных Pointer
Тип данных PointerТип данных Pointer
Тип данных Pointer
 
Baza de date relatioala
Baza de date relatioalaBaza de date relatioala
Baza de date relatioala
 
документ Microsoft office_word
документ Microsoft office_wordдокумент Microsoft office_word
документ Microsoft office_word
 
Structuri De Date Alocate Dinamic
Structuri De Date Alocate DinamicStructuri De Date Alocate Dinamic
Structuri De Date Alocate Dinamic
 
презентация Microsoft office_power_point_(3)[1]
презентация Microsoft office_power_point_(3)[1]презентация Microsoft office_power_point_(3)[1]
презентация Microsoft office_power_point_(3)[1]
 
Sir de caractere in turbo pascal
Sir de caractere in turbo pascalSir de caractere in turbo pascal
Sir de caractere in turbo pascal
 
Analiza algoritmilor. Masurarea volumului
Analiza algoritmilor. Masurarea volumului Analiza algoritmilor. Masurarea volumului
Analiza algoritmilor. Masurarea volumului
 

More from Colegiul de Industrie Usoara

Raport privind vizita de lucru în România 29.06.17
Raport privind vizita de lucru în România 29.06.17Raport privind vizita de lucru în România 29.06.17
Raport privind vizita de lucru în România 29.06.17Colegiul de Industrie Usoara
 
понятия и концепты о данных и о базах данных
понятия и концепты о данных и о базах данныхпонятия и концепты о данных и о базах данных
понятия и концепты о данных и о базах данныхColegiul de Industrie Usoara
 
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”Colegiul de Industrie Usoara
 

More from Colegiul de Industrie Usoara (20)

Analiza chestionarelor absolventilor grupelor M
Analiza chestionarelor absolventilor grupelor MAnaliza chestionarelor absolventilor grupelor M
Analiza chestionarelor absolventilor grupelor M
 
Analiza chestionarelor absolventilor grupelor F
Analiza chestionarelor absolventilor grupelor FAnaliza chestionarelor absolventilor grupelor F
Analiza chestionarelor absolventilor grupelor F
 
Analiza chestionarelor absolventi MT
Analiza chestionarelor absolventi MTAnaliza chestionarelor absolventi MT
Analiza chestionarelor absolventi MT
 
Darea de seama a catedrei Stiinte reale 2017 2018
Darea de seama a catedrei Stiinte reale 2017 2018Darea de seama a catedrei Stiinte reale 2017 2018
Darea de seama a catedrei Stiinte reale 2017 2018
 
Raport privind vizita de lucru în România 29.06.17
Raport privind vizita de lucru în România 29.06.17Raport privind vizita de lucru în România 29.06.17
Raport privind vizita de lucru în România 29.06.17
 
Raport de autoevaluare. Carauș V. 04.07.2017
Raport de autoevaluare. Carauș V. 04.07.2017Raport de autoevaluare. Carauș V. 04.07.2017
Raport de autoevaluare. Carauș V. 04.07.2017
 
Aspecte teoretice evaluarea externa 13.03.17
Aspecte teoretice evaluarea externa 13.03.17Aspecte teoretice evaluarea externa 13.03.17
Aspecte teoretice evaluarea externa 13.03.17
 
Diseminarea bunelor practice 22.05.17
Diseminarea bunelor practice  22.05.17Diseminarea bunelor practice  22.05.17
Diseminarea bunelor practice 22.05.17
 
Orar profesori 1.09.2017
Orar profesori 1.09.2017Orar profesori 1.09.2017
Orar profesori 1.09.2017
 
понятия и концепты о данных и о базах данных
понятия и концепты о данных и о базах данныхпонятия и концепты о данных и о базах данных
понятия и концепты о данных и о базах данных
 
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”
72330 ,,Modelarea, proiectarea şi tehnologia confecţiilor din ţesături”
 
Modelarea și tehnologia tricotajelor
Modelarea și tehnologia tricotajelor Modelarea și tehnologia tricotajelor
Modelarea și tehnologia tricotajelor
 
Masini si aparate
Masini si aparateMasini si aparate
Masini si aparate
 
Frizerie și cosmetică
Frizerie și cosmeticăFrizerie și cosmetică
Frizerie și cosmetică
 
Securitatea
Securitatea Securitatea
Securitatea
 
Filatura si tesatorie
Filatura si tesatorieFilatura si tesatorie
Filatura si tesatorie
 
формы и отчеты
формы и отчетыформы и отчеты
формы и отчеты
 
метод хорд
метод хордметод хорд
метод хорд
 
Metoda coardelor
Metoda coardelorMetoda coardelor
Metoda coardelor
 
Переменный ток
Переменный токПеременный ток
Переменный ток
 

Tipul de date pointer

  • 1.
  • 2. Mulţimea de valori ale tipului predefinit de date pointer (indicator) constă din adrese şi valoarea specială nil. Operaţiile care se pot face cu valori de tipul de date pointer sînt = şi <>. Valorile de acest tip nu pot fi citite de la tastatură şi afişate pe ecran. O variabilă de tip pointer se introduce printr-o declaraţie forma: var p : pointer;
  • 3. Program PI 34; { Tipul de date pointer } var p : pointer; i, j : ^integer; x, y : ^ real; r, s : ^ string; begin { p va identifica o variabilă dinamică de tipul integer } new(i); i^:=1; P^ = i ; new(i); i ^ :=2; j :=p; writeln('j^=', j^); { p va identifica o variabilă de tip real } new (x); x^: =1 ; p:=x; new (x); x^:=2; y:=p; Writeln(y^=' y^); {se afişează 1.OOOOOOOOOOE+00 } { p va identifica o variabilă dinamică de tipul string } new (r); r^: = 'AAA'; p:=r; new (r); r^:=‘BBB'; s:=p; writeln ('s^=', s^); { se afişează AAA } end.
  • 4. Domeniul principal de utilizare a variabilelor de tip pointer este gestionarea memoriei interne a calculatorului. Alocarea variabilelor dinamice se execută întro zonă specială a memoriei interne numită heap (grămadă). Adresa de început a heapuluii este depusă în variabila predefinită de tip pointer HeapOrg. Variabila de tip pointer HeapPtr conţine adresa primei locaţii libere, numită vîrful heap-ului.
  • 5. Apelul procedurii mark are forma: mark(p) unde p este o variabilă de tip pointer. Procedura memorează adresa vîrfului din HeapPtr în variabila p. Apelul procedurii release are forma: release(p) Această procedură reface adresa vîrfului în starea înregistrată anterior cu procedura mark: valoarea conţinută în variabila de tip pointer p este depusă în indicatorul HeapPtr.
  • 6. 1) se memorează adresa vîrfului cu procedura mark; 2) se creează variabilele dinamice cu procedura new; 3) se utilizează variabilele dinamice create; 4) cînd variabilele dinamice nu mai sînt necesare, spaţiul ocupat din heap este eliberat cu procedura release.
  • 7. 1. Care este mulţimea de valori ale tipului de date pointer? Ce operaţii pot fi efectuate cu aceste valori? 2. Comentaţi următorul program: Program PI36; { Eroare } var i : ^integer; j, k : integer; p : pointer; begin new (i); i^:=1; p:=i; new (i) ; i^ :=2; j:=i^; k:=p^; writeln('j+k=', j+k); end.
  • 8. Program P137; var i, j, k, m, n : ^integer; p : pointer; begin { crearea variabilelor i^, j^, k^ } new(i); new(j); new(k); i^:=1; j^:=2; k^:=3; p:=j; { p reþine adresa din j } { distrugerea variabilei j^ ºi crearea variabilei m^ } dispose(j); new(m); m^:=4; j:=p; { refacerea adresei din j } writeln('i^=', i^, ' j^=', j^, ' k^=', k^); { distrugerea variabilei m^ si crearea variabilei n^ } dispose(m); new(n); n^:=5; writeln('i^=', i^, ' j^=', j^, ' k^=', k^); readln; end. Program P138; var i, j, k, m : ^integer; begin { crearea variabilelor i^, j^ } new(i); new(j); i^:=1; j^:=2; { eliberarea memoriei heap-ului } release(HeapOrg); { crearea variabilelor k^ øi m^ } new(k); new(m); k^:=1; m^:=2; writeln('k^=', k^, ' m^=', m^); i^:=3; j^:=4; writeln('k^=', k^, ' m^=', m^); readln; end.
  • 9. Program P138; var i, j, k, m : ^integer; begin { crearea variabilelor i^, j^ } new(i); new(j); i^:=1; j^:=2; { eliberarea memoriei heap-ului } release(HeapOrg); { crearea variabilelor k^ øi m^ } new(k); new(m); k^:=1; m^:=2; writeln('k^=', k^, ' m^=', m^); i^:=3; j^:=4; writeln('k^=', k^, ' m^=', m^); readln; end.