SlideShare a Scribd company logo
1 of 32
M a r i a G u t u
Material didactic pentru Informatică
(În corespondență cu curriculum-ul la Informatică)
Clasa a XI-a
M a r i a G u t u
O1 - să cunoască noţiunea de variabilă
dinamică;
O2 - să creeze şi să distrugă variabile dinamice;
O3 - să efectuieze operaţii cu variabile dinamice;
O4 - să poată să utilize tipul de date articol;
O5 - să fie capabil de a elabora programe, în
care să utilizeze tipul de date referinţă.
M a r i a G u t u
Programarea clasică structurată are la bază
celebra ecuație a lui Nikolaus Wirth:
Program = Structuri de date + Algoritmi
M a r i a G u t u
PROGRAM Test;
VAR A, B: Integer;
BEGIN
. . .
A := 12;
B := – 5;
. . .
END.
MEMORIA CALCULATORULUI
12A
–5B
A
B
Declarare
variabile
Atribuire
valori
M a r i a G u t u
 Toate variabilele pentru care în momentul
creării programului se poate evalua cantitatea
de memorie necesartă stocării acestora se
numesc variabile statice;
 Variabilele declararte în program şi notate
printr-un identificator (nume) se numesc
variabile statice;
 Variabilele care există pe toată durata de
execuţie a blocului în care au fost declarate se
numesc variabile statice.
M a r i a G u t u
Variabilele care sunt create şi distruse pe
parcursul execuţiei programului se numesc
variabile dinamice.
M a r i a G u t u
Ţine minte!!!
1. Variabilele dinamice nu se declară într-o secţiune VAR
deci nu se pot identifica prin nume.
2. Nu există pe toată durata de execuţie a programului
sau activării blocului în care s-au creat.
3. Variabilele dinamice se alocă dinamic într-o zonă
specială de memorie, numită memorie HEAP şi se
distrug la cererea programatorului.
4. Accesul la variabilele dinamice se poate face prin
intermediul altor variabile speciale, numite variabile
REPER, REFERINŢĂ, INDICATOR, ADRESĂ, POINTER.
Variabila DINAMICĂVariabila REFERINŢĂ
p p^
M a r i a G u t u
Accesul la variabilele dinamice se face prin
intermediul variabilelor de tip referință, care
se definește printr-o declarație de forma:
Type Tᵣ = ˆ Tᵦ
numele tipul de bază
tipului adresă
referință
POINTER
Identificator_tip_de_baza
^
TYPE Identificator_tip_Referinta = ^ Identificator_tip_de_baza;
VAR Identificator_Variabila : Identificator_tip_Referinta;
VAR Identificator_Variabila : ^ Identificator_tip_Referinta;
sau
TYPE Identificator_tip_Referinta =^Identificator_tip_Utilizator;
Identificator_tip_Utilizator = ... ;
VAR Identificator_Variabila : Identificator_tip_Referinta;
M a r i a G u t u
Variabilele i, r, c sunt variabile referinţă, sau variabile
reper. Pentru ele se alocă la compilare un spaţiu de
memorie de 4 bytes (conţine adresa de memorie a
variabilei dinamice referite).
Type AdresaInteger=ˆinteger;
AdresaChar= ˆchar;
var i: AdresaInteger;
r: ˆreal;
c: AdresaChar;
M a r i a G u t u
TYPE
RefXXX=POINTER;
SubDomeniu=1..25;
RefSub=^SubDomeniu;
DataNast=RECORD
RefData=^DataNast;
RefVec=^Vector;
Vector=Array[1..10] of Real;
RefEnum=^Enumerare;
Enumerare=(Rosu, Galben, Verde);
Zi : 1..31;
Luna : 1..12;
An : 1900..2050;
end;
VAR
p : RefSub;
p1 : RefEnum;
p2 : RefVec;
p3 : RefData;
a : ^Integer;
r : ^Real;
ch : ^Char;
Variabilele p, p1, p2, p3, a, r,
ch sunt variabile referinţă,
sau variabile reper.
M a r i a G u t u
Variabilele referinţă (reper) pot să primească trei tipuri de
valori (să se afle în trei stări):
• să fie neiniţializate, nedefinite,
nedeterminate (n-au nici o valoare);
• să conţină referinţa (adresa) la o
variabilă dinamică;
• să păstreze valoarea NIL (o
constantă predefinită Pascal);
?p
p p^
p sau p NIL
M a r i a G u t u
1. ATRIBUIREA Variabila referinţă poate primi
valoarea unei alte variabile sau
funcţie de acelaşi tip referinţă cu ea,
sau poate fi iniţializată cu constanta
NIL.
TYPE IdTip = ...;
VAR p, q : ^ IdTip;
BEGIN
p := q;
p := NIL;
...
...
...
END.
p
q Locaţie de
memorie
p
M a r i a G u t u
Ri, Rc : ^ Integer;
BEGIN
logic := Ri <> NIL;
If (R=RR) OR (logic) Then ... ;
...
...
...
END.
VAR R, RR : ^ Real;
logic : Boolean;
Variabilele referinţă pot să apară
în expresii relaţionale, singurii
operatori relaţionali admişi fiind
“=“ şi “<>“.
2. COMPARATIA
3. PARAMETRI
Variabilele referinţă pot fi
parametri ai unor proceduri sau
funcţii.
M a r i a G u t u
Variabilele dinamice sunt variabilele de un tip oarecare simplu sau
structurat pentru care se poate aloca memorie numai în faza de execuţie a
programului în funcţie de necesitate.
Type RefTip = ^Real;
Var p: RefTip;
Begin
NEW(p);...
End.
Zonă variabile
statice
Zonă variabile
dinamice (HEAP)
p p^MEMORIA
Program
Adresa lui p^
p p^
M a r i a G u t u
Eliberarea zonelor de memorie, ocupată de variabilele
dinamice, create prin execuţia procedurii NEW, pentru a
nu deveni “gunoi” se realizează prin execuţia procedurii
predefinite DISPOSE.
Type RefTip = ^Real;
Var p: RefTip;
Begin
DISPOSE(p);
...
End.
p
p:=NIL;
p
?
M a r i a G u t u
VAR A, B: ^Integer;
NEW (A);
1. Declarare
2. Creare
NEW (B);
A A^
B B^
3. Atribuire de valori
A^ := 8;
B^ := – 6;
A
B
?
?
A A^
B B^
8
-6
M a r i a G u t u
A^ := B^;
4. Copiere valori
5. Atribuire NIL
B := NIL;
6. Atribuire de valori
A^ := Round(3.14)+2;
A A^5
A A^
B B^
-6
-6
B
A A^
-6
B
M a r i a G u t u
B := A;
7. Schimb adrese
8. Schimb valori
Var aux:Real;
{2} A^:=B^;
A
A A^
A^5
B
B B^
aux
A,B:^Real;
Begin
NEW(A); NEW(B); ...
{1} aux:=A^;
{3} B^:=aux; ...
End.
1
2
3
M a r i a G u t u
9. Creare variabile dinamice structurate
Var A:^Vector;
Begin
NEW(A);
End.
TYPE Vector=Array[1..4] of Integer;
...
...
A A^[1]
A^[2]
A^[3]
A^[4]
Acces la o componentă în caz general: A^[i]
M a r i a G u t u
10. Creare variabile dinamice structurate
Re, Im : Real;
TYPE Complex=RECORD
Begin
NEW(C);
End.
...
...
C C^.Re
C^.Im
Acces la o componentă în caz general:
Id_var^.câmp
end;
VAR C : ^Complex;
M a r i a G u t u
NODURI INACCESIBILE – Structuri dinamice cu referinţe la
ele pierdute (lădiţa încuiată cu cheia pierdută) – apar după utili-zarea
procedurii NEW sau instrucţiunii de atribuire.
A A^7
A^
7A
A A^
B B^
7
4
A 7
A^B
B^
4
PÂNĂ DUPĂ
NEW(A);
A := B;
M a r i a G u t u
REFERINŢE SUSPENDATE – Indicatori ce conţin
referinţe la locaţii de memorie eliberate cu DISPOSE.
PÂNĂ DUPĂ
DISPOSE(A);
A^B
B^
4
A ?
B ?
A
M a r i a G u t u
M a r i a G u t u
Program Exemplu;
{Operatii cu variabile dinamice}
Type AdresaInteger=ˆinteger;
Var i,j,k:AdresaInteger;
r, s, t: ˆreal;
Begin
{crearea variabilelor dinamice de tip integer}
new(i); new(j); new(k);
{Operatii cu variabilele create}
i ˆ:=1; j ˆ:=2; k ˆ:=i ˆ+j ˆ;
Writeln(k ˆ);
{Crearea variabilelor dinamice de tip real}
new(r); new(s); new(t);
{Operarii cu variabilele create}
r ˆ:=1.0; s ˆ:=2.0; t ˆ:=r ˆ/s ˆ;
Writeln(t ˆ);
M a r i a G u t u
{Distrugerea variabilelor
dinamice}
dispose(i);
dispose(j);
dispose(k);
dispose(r);
dispose(s);
dispose(t);
readln;
end.
M a r i a G u t u
M a r i a G u t u
M a r i a G u t u
M a r i a G u t u
Alocarea dinamică a memoriei necesită o
atenție sporită din partea programatorului care
este obligat să asigure crearea, distrugerea și
referirea corectă a variabilelor dinamice.
M a r i a G u t u
1. 2.1. de studiat și conspectat.
2. De analizat PPT din GitHub.
3. Ex. 7 - 10 (pag. 33).

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Variabile dinamice

  • 1. M a r i a G u t u Material didactic pentru Informatică (În corespondență cu curriculum-ul la Informatică) Clasa a XI-a
  • 2. M a r i a G u t u O1 - să cunoască noţiunea de variabilă dinamică; O2 - să creeze şi să distrugă variabile dinamice; O3 - să efectuieze operaţii cu variabile dinamice; O4 - să poată să utilize tipul de date articol; O5 - să fie capabil de a elabora programe, în care să utilizeze tipul de date referinţă.
  • 3. M a r i a G u t u Programarea clasică structurată are la bază celebra ecuație a lui Nikolaus Wirth: Program = Structuri de date + Algoritmi
  • 4. M a r i a G u t u PROGRAM Test; VAR A, B: Integer; BEGIN . . . A := 12; B := – 5; . . . END. MEMORIA CALCULATORULUI 12A –5B A B Declarare variabile Atribuire valori
  • 5. M a r i a G u t u  Toate variabilele pentru care în momentul creării programului se poate evalua cantitatea de memorie necesartă stocării acestora se numesc variabile statice;  Variabilele declararte în program şi notate printr-un identificator (nume) se numesc variabile statice;  Variabilele care există pe toată durata de execuţie a blocului în care au fost declarate se numesc variabile statice.
  • 6. M a r i a G u t u Variabilele care sunt create şi distruse pe parcursul execuţiei programului se numesc variabile dinamice.
  • 7. M a r i a G u t u Ţine minte!!! 1. Variabilele dinamice nu se declară într-o secţiune VAR deci nu se pot identifica prin nume. 2. Nu există pe toată durata de execuţie a programului sau activării blocului în care s-au creat. 3. Variabilele dinamice se alocă dinamic într-o zonă specială de memorie, numită memorie HEAP şi se distrug la cererea programatorului. 4. Accesul la variabilele dinamice se poate face prin intermediul altor variabile speciale, numite variabile REPER, REFERINŢĂ, INDICATOR, ADRESĂ, POINTER.
  • 9. M a r i a G u t u Accesul la variabilele dinamice se face prin intermediul variabilelor de tip referință, care se definește printr-o declarație de forma: Type Tᵣ = ˆ Tᵦ numele tipul de bază tipului adresă referință
  • 10. POINTER Identificator_tip_de_baza ^ TYPE Identificator_tip_Referinta = ^ Identificator_tip_de_baza; VAR Identificator_Variabila : Identificator_tip_Referinta; VAR Identificator_Variabila : ^ Identificator_tip_Referinta; sau TYPE Identificator_tip_Referinta =^Identificator_tip_Utilizator; Identificator_tip_Utilizator = ... ; VAR Identificator_Variabila : Identificator_tip_Referinta;
  • 11. M a r i a G u t u Variabilele i, r, c sunt variabile referinţă, sau variabile reper. Pentru ele se alocă la compilare un spaţiu de memorie de 4 bytes (conţine adresa de memorie a variabilei dinamice referite). Type AdresaInteger=ˆinteger; AdresaChar= ˆchar; var i: AdresaInteger; r: ˆreal; c: AdresaChar;
  • 12. M a r i a G u t u TYPE RefXXX=POINTER; SubDomeniu=1..25; RefSub=^SubDomeniu; DataNast=RECORD RefData=^DataNast; RefVec=^Vector; Vector=Array[1..10] of Real; RefEnum=^Enumerare; Enumerare=(Rosu, Galben, Verde); Zi : 1..31; Luna : 1..12; An : 1900..2050; end; VAR p : RefSub; p1 : RefEnum; p2 : RefVec; p3 : RefData; a : ^Integer; r : ^Real; ch : ^Char; Variabilele p, p1, p2, p3, a, r, ch sunt variabile referinţă, sau variabile reper.
  • 13. M a r i a G u t u Variabilele referinţă (reper) pot să primească trei tipuri de valori (să se afle în trei stări): • să fie neiniţializate, nedefinite, nedeterminate (n-au nici o valoare); • să conţină referinţa (adresa) la o variabilă dinamică; • să păstreze valoarea NIL (o constantă predefinită Pascal); ?p p p^ p sau p NIL
  • 14. M a r i a G u t u 1. ATRIBUIREA Variabila referinţă poate primi valoarea unei alte variabile sau funcţie de acelaşi tip referinţă cu ea, sau poate fi iniţializată cu constanta NIL. TYPE IdTip = ...; VAR p, q : ^ IdTip; BEGIN p := q; p := NIL; ... ... ... END. p q Locaţie de memorie p
  • 15. M a r i a G u t u Ri, Rc : ^ Integer; BEGIN logic := Ri <> NIL; If (R=RR) OR (logic) Then ... ; ... ... ... END. VAR R, RR : ^ Real; logic : Boolean; Variabilele referinţă pot să apară în expresii relaţionale, singurii operatori relaţionali admişi fiind “=“ şi “<>“. 2. COMPARATIA 3. PARAMETRI Variabilele referinţă pot fi parametri ai unor proceduri sau funcţii.
  • 16. M a r i a G u t u Variabilele dinamice sunt variabilele de un tip oarecare simplu sau structurat pentru care se poate aloca memorie numai în faza de execuţie a programului în funcţie de necesitate. Type RefTip = ^Real; Var p: RefTip; Begin NEW(p);... End. Zonă variabile statice Zonă variabile dinamice (HEAP) p p^MEMORIA Program Adresa lui p^ p p^
  • 17. M a r i a G u t u Eliberarea zonelor de memorie, ocupată de variabilele dinamice, create prin execuţia procedurii NEW, pentru a nu deveni “gunoi” se realizează prin execuţia procedurii predefinite DISPOSE. Type RefTip = ^Real; Var p: RefTip; Begin DISPOSE(p); ... End. p p:=NIL; p ?
  • 18. M a r i a G u t u VAR A, B: ^Integer; NEW (A); 1. Declarare 2. Creare NEW (B); A A^ B B^ 3. Atribuire de valori A^ := 8; B^ := – 6; A B ? ? A A^ B B^ 8 -6
  • 19. M a r i a G u t u A^ := B^; 4. Copiere valori 5. Atribuire NIL B := NIL; 6. Atribuire de valori A^ := Round(3.14)+2; A A^5 A A^ B B^ -6 -6 B A A^ -6 B
  • 20. M a r i a G u t u B := A; 7. Schimb adrese 8. Schimb valori Var aux:Real; {2} A^:=B^; A A A^ A^5 B B B^ aux A,B:^Real; Begin NEW(A); NEW(B); ... {1} aux:=A^; {3} B^:=aux; ... End. 1 2 3
  • 21. M a r i a G u t u 9. Creare variabile dinamice structurate Var A:^Vector; Begin NEW(A); End. TYPE Vector=Array[1..4] of Integer; ... ... A A^[1] A^[2] A^[3] A^[4] Acces la o componentă în caz general: A^[i]
  • 22. M a r i a G u t u 10. Creare variabile dinamice structurate Re, Im : Real; TYPE Complex=RECORD Begin NEW(C); End. ... ... C C^.Re C^.Im Acces la o componentă în caz general: Id_var^.câmp end; VAR C : ^Complex;
  • 23. M a r i a G u t u NODURI INACCESIBILE – Structuri dinamice cu referinţe la ele pierdute (lădiţa încuiată cu cheia pierdută) – apar după utili-zarea procedurii NEW sau instrucţiunii de atribuire. A A^7 A^ 7A A A^ B B^ 7 4 A 7 A^B B^ 4 PÂNĂ DUPĂ NEW(A); A := B;
  • 24. M a r i a G u t u REFERINŢE SUSPENDATE – Indicatori ce conţin referinţe la locaţii de memorie eliberate cu DISPOSE. PÂNĂ DUPĂ DISPOSE(A); A^B B^ 4 A ? B ? A
  • 25. M a r i a G u t u
  • 26. M a r i a G u t u
  • 27. Program Exemplu; {Operatii cu variabile dinamice} Type AdresaInteger=ˆinteger; Var i,j,k:AdresaInteger; r, s, t: ˆreal; Begin {crearea variabilelor dinamice de tip integer} new(i); new(j); new(k); {Operatii cu variabilele create} i ˆ:=1; j ˆ:=2; k ˆ:=i ˆ+j ˆ; Writeln(k ˆ); {Crearea variabilelor dinamice de tip real} new(r); new(s); new(t); {Operarii cu variabilele create} r ˆ:=1.0; s ˆ:=2.0; t ˆ:=r ˆ/s ˆ; Writeln(t ˆ); M a r i a G u t u {Distrugerea variabilelor dinamice} dispose(i); dispose(j); dispose(k); dispose(r); dispose(s); dispose(t); readln; end.
  • 28. M a r i a G u t u
  • 29. M a r i a G u t u
  • 30. M a r i a G u t u
  • 31. M a r i a G u t u Alocarea dinamică a memoriei necesită o atenție sporită din partea programatorului care este obligat să asigure crearea, distrugerea și referirea corectă a variabilelor dinamice.
  • 32. M a r i a G u t u 1. 2.1. de studiat și conspectat. 2. De analizat PPT din GitHub. 3. Ex. 7 - 10 (pag. 33).