Alocare dinamică - liste circulare simplu înlănțuite

Proiect
8/10 (1 vot)
Conține 2 fișiere: doc
Pagini : 19 în total
Cuvinte : 2127
Mărime: 57.16KB (arhivat)
Publicat de: Teodor Ciobotaru
Puncte necesare: 6
Profesor îndrumător / Prezentat Profesorului: Daniel Codres
A fost prezentat in cadrul Liceului DE INFORMATICA STEFAN ODOBLEJA

Cuprins

  1. A. PARTE TEORETICA:
  2. I. ALOCARE DINAMICĂ
  3. 1. IMPORTANŢA ALOCĂRII DINAMICE
  4. 2. NOŢIUNI TEORETICE
  5. 3. STRUCTURI DINAMICE DE DATE
  6. 4. LISTE CIRCULARE SIMPLU INLANTUITE
  7. B. PARTE PRACTICĂ:
  8. II. APLICAŢII
  9. 1.ENUNT PROBLEMA
  10. 2.ANALIZA PROBLEMEI
  11. 3.PROGRAM PASCAL
  12. 4.EXEMPLU DE EXECUTIE

Extras din proiect

. Alocarea dinamică a memoriei

1.Importanţa alocării dinamice

Pentru început, considerăm un exemplu foarte simplu, o variabilă x de tipul « integer ». Declaraţia ei vă este cunoscută :

Var x :integer ;

Ştim că toate variabilele unui program sunt memorate in aşa-numita memorie internă RAM. Aceasta este împarţită în nişte ”casuţe” numite locaţii de memorie sau celule de memorie. Fiecare locaţie reprezintă un octet şi se caracterizează printr-o anumită adresa.Adresele locaţiilor de memorie sunt numere exprimate hexazecimal (baza 16). În urma declarării variabilei x de mai sus, se rezervă penru aceasta doi octeţi în memoria internă RAM, adică doua locaţii succesive.Adresa primeia dintre locaţiile de memorie rezervate variabilei se numeşte pe scurt adresa variabilei x .

Care este scopul alocării memoriei penru varibila x? Ştim că după declarare, variabila a primit o valoare, acea valoare va fi memorata în zona de memorie alocată variabilei.

2.Noţiuni teoretice

Variabila de mai sus, x, se numeşte variabilă statica .O variabilă statică se caracterizeaza prin faptul că în momentul declarării, compilatorul îi aloca un anumit spaţiu de memorie. Acest spaţiu ramâne ocupat pe toată durata execuţiei programului/subprogramului în care a fost declarată variabilă. Procesul se numeşte alocare dinamică a memoriei şi este realizat de către compilatorul Pascal.Mărimea spaţiului rezervat unei variabile depinde de tipul acesteia.De exemplu, pentru o variabilă de tipul integer se aloca doi octeţi ,pentru una de tipul real şase octeţi etc.

În loc să declarăm o variabilă x de tipul integer care ar memora direct un număr întreg (aşa cum am procedat mai sus), vom declara o variabilă x care va conţine adresa de memorie a numărului întreg. Altfel spus, valoarea variabilei x va fi adresa la care se va « depozita » numărul întreg în memoria RAM. Vom spune că « variabila x adresează un număr intreg « sau » variabila x trimite către un număr întreg ».

Variabila x se numeşte « pointer catre un intreg » sau « referinta catre un un intreg », pe scurt vom spune că este un pointer către un întreg.

Apare întrebarea: dacă pointerul x conţine adresa unui număr întreg, atunci unde se va memora efectiv numărul? La declararea pointerului x, compilatorul Pascal creează automat o « variabilă pereche », notată x^, care va memora numărul. «Perechea » notată x^, se numeşte variabilă dinamică.

În concluzie, vom spune că « pointerul x conţine adresa de memorie a variabilei dinamice x^ », sau mai pe scurt « pointerul x adresează variabila dinamică x^ ».

Trebuie să reţinem caracteristicile fundamentale ale unei perechi « pointer-variabilă dinamică » :

- În secţiunea de declaraţii vom defini un pointer care ulterior va conţine adresa unei variabile dinamice.

- Pentru declararea dinamică vom aloca memorie prin program, în momentul folosirii efective a variabilei, iar atunci când variabila nu mai este necesară vom elibera zona de memorie ocupată. Acest proces se numeşte ”alocarea dinamică a memoriei” şi reprezintă de fapt marele avantaj pe care-l oferă variabilele dinamice, şi anume posibilitatea gestionării mult mai eficace a memoriei.

Este de reţinut faptul că între o variabilă statică şi un pointer nu există vreo deosebire de fond. Cu alte cuvinte, un pointer este o variabilă în sens obişnuit, având atributele obişnuite: tip, valoare, adresă. Unica deosebire constă în faptul că valoarea unui pointer este o adresă a unei variabile.

3.Structuri dinamice de date

Tipul de date adresă (referinţă, pointer, reper) desemnează mulţimea de variabile care pot lua ca valori adrese de memorie la care este alocat spaţiu pentru un conţinut de un anume tip numit tip de bază.

Tipul de date adresă oferă posibilitatea de a acţiona în cadrul programului asupra conţinuturilor zonelor de memorie alocate utilizând adrese simbolice pentru referirea lor (fară ca programatorul să cunoască efectiv valorile interne ale acelor adrese).

Preview document

Alocare dinamică - liste circulare simplu înlănțuite - Pagina 1
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 2
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 3
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 4
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 5
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 6
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 7
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 8
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 9
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 10
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 11
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 12
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 13
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 14
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 15
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 16
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 17
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 18
Alocare dinamică - liste circulare simplu înlănțuite - Pagina 19

Conținut arhivă zip

  • ALOCAREA DINAMICA.doc
  • PRIMA PARTE.DOC

Te-ar putea interesa și

Implementarea bazei de date a unui policlinici - listă dublu înlănțuită circulară

1. Introducere 1.1. Istoria bazelor de date Când vine vorba despre stocarea informaţiilor, pentru unii acest termen înseamnă o agenda veche în...

Liste Dinamice

Programul principal este liste.pas , uniturile folosite pentru animatie si pagina cu cuprins sunt realizate cu -uniturile mouse, u_aa si u_buton si...

Informatică portofoliu

I.METODA DIVIDE ET IMPERA 1.Notiuni introductive Asa cum spune si denumirea metodei (imparte si stapaneste), metoda se bazeaza pe impartirea unei...

Alocare dinamică - Turbo Pascal

ALOCAREA DINAMICA A MEMORIEI 1. INTRODUCERE Memoria RAM este împartita în locatii de memorie. Fiecare locatie memoreaza un octet (8 biti) si are...

Structuri de Date și Algoritmi

1. Conceptul de dată În informatică, prin dată, se desemnează un model de reprezentare a informaţiei, model cu care se poate opera pentru a obţine...

Structuri de Date și Alogoritmi

EXTENSII ALE LIMBAJULUI C++ A. Operaţii de intrare-ieşire specifice limbajului C++ I. Noţiuni teoretice Limbajul C++ furnizează o bibliotecă...

Algoritmi și tehnici de programare avansată

Tabloul = structura de date de acelasi tip care ocupa o zona continua de memorie. * in limbajul JAVA acelasi tip poate fi si clasa Object int...

Metodica Predării Informaticii

Curs 1 - METODICA PREDĂRII INFORMATICII BIBLIOGRAFIE: 1. Clara Ionescu. Metodica predării informaticii, Cluj. 2. Cristian Masalagiu, Ioan...

Ai nevoie de altceva?