matrice dinamice

matrice dinamice

PascalABC.NET - este o nouă generație de limbaj de programare Pascal, inclusiv clasic Pascal, cele mai multe caracteristici de limbaj Delphi, precum și un număr de propriile extensii. Acesta este implementat pe platforma Microsoft.NET și conține tot limba modernă înseamnă: clase, Reacoperirea, interfețe, de manipulare excepție, clase generice și rutine, de colectare a gunoiului, expresii lambda, instrumente de programare paralele.







PascalABC.NET este limba multiparadigm: este posibil să se programeze în stil structurat, orientat pe obiect și funcțional.

PascalABC.NET - este, de asemenea, un mediu simplu și puternic de dezvoltare integrat, care suportă tehnologia IntelliSense care conține instrumente de auto-formatare, depanator integrat și o formă de designer integrat.

Carte: Limba Descriere PascalABC.NET

matrice dinamice

Secțiunile de pe această pagină:

Descriere Array dinamic

o matrice de tip dinamic este construit după cum urmează:

Elementele arrayoftip (o matrice dimensional)

O variabilă de matrice dinamică tip este o referință. Prin urmare, o gamă dinamică necesită initializare (elemente de alocare de memorie).

Alocarea de memorie pentru o gamă dinamică

Pentru a aloca o gamă dinamică utilizate două moduri. Prima metodă utilizează o nouă operațiune în stilul apelului constructorului clasei:

a: = nou număr întreg [5];

Această metodă este bună, deoarece vă permite să combinați o descriere a matrice și alocarea de memorie pentru ea:

a: matrice de număr întreg: = new întreg [5];

Descriere tip pot fi omise - Auto tip de ieșire:

a: = nou număr întreg [5];

A doua modalitate de a aloca memorie pentru o gamă dinamică utilizând procedura standard setlength:

Elementele de matrice sunt umplute cu valori implicite.

Procedura de setlength are avantajul că, atunci când acesta se repetă apelul conținutul vechi matrice este stocat.

Inițializarea matrice dinamică

Puteți inițializa o matrice dinamică cu operațiunea de memorie alocată nouă:

a: = nou număr întreg [3] (1,2,3);

inițializare matrice dinamică când opeisaniya poate fi realizată într-o formă prescurtată:







Astfel, există o alocare de memorie sub numărul corect de mai sus de elemente.

Inițializarea unui tablou unidimensional este cel mai ușor de funcții standard Seq. care produc dimensiunea dorită și matricea de memorie este umplut cu înțelesul specificat în continuare:

var a: = Arr (1,3,5,7,8); // matrice de număr întreg

var s: = Arr ( 'Ivanov' 'Petrov' 'Sidorov'); // matrice de coarde

var b: = ArrFill (777,5); // b = [777.777.777.777.777]

var r: = ArrRandom (10); // umple 10 întreg aleator variind de 0-99

În același stil, puteți inițializa matrice de matrice:

var a: = Arr (Arr (1,3,5), Arr (7,8), Arr (5,6)); // array de matrice de număr întreg

Dinamic Array Lungime

array dinamic amintește lungimea sa (array n-dimensional amintește lungimea dinamică a fiecărei dimensiuni). Lungimea șirului (numărul de elemente din acesta) returnează un standard sau funcție Lungime Lungime proprietate:

Pentru matrice multi-dimensionale în fiecare dimensiune returnează un standard funcție lungime lungime cu doi parametri sau metoda GetLength (i):

Introduceți o gamă dinamică

După introducerea alocării matrice dinamică poate fi efectuată în mod convențional într-un ciclu:

pentru var i: = 0 până la a.Length-1 do

Introduceți o matrice dinamică poate fi realizată prin ReadSeqInteger funcția standard:

var a: = ReadSeqInteger (10);

În acest caz, o gamă dinamică este alocat dimensiunea memoriei.

Concluzie dinamică Array

Procedura de scriere are o matrice dinamică anexându elementele din paranteze pătrate și separate prin virgulă:

var a: = Arr (1,3,5,7,9);

matrice dinamică n-dimensional este afișat, astfel încât fiecare dimensiune este închisă între paranteze drepte:.

var m: = new întreg [3,3] ((1,2,3), (4,5,6), (7,8,9));

O matrice dinamică poate fi de ieșire ca o metodă de extindere sau Print println:

Elementele sunt separate prin spații în mod implicit, dar puteți schimba acest lucru prin setarea parametrului de imprimare, este elementele de separare. De exemplu:

ieșiri fiecare element pe o linie separată.

matrice de matrice

În cazul în care a anunțat o serie de matrice

inițializarea poate fi efectuată numai cu ajutorul setlength:

Pentru a inițializa această matrice, folosind noul tip, introduceți un nume pentru matrice de număr întreg:

c: = new IntArray [5];

c [i]: = new întreg [3];

Inițializeze o matrice de matrice pot fi, de asemenea, efectuate într-o formă prescurtată:

Atribuirea de matrice dinamice

tablouri dinamice de același tip pot fi atribuite reciproc, cu ambele variabile link-uri va indica o memorie:

Rețineți că echivalența structurală matrice dinamice au fost acceptate de tipuri pot fi atribuite între ele și transmise ca parametrii subrutine matrice dinamice, coincid în structura.

Transfer de matrice dinamică în subrutina

array dinamic este transmis în mod obișnuit într-o subrutină semnificativ deoarece variabila in sine este deja o referință:

Squares procedură (a: matrice de număr întreg);

pentru var i: = 0 până la a.Length-1 do

var a: = Arr (1,3,5,7,9);

matrice dinamică a trecut prin referire la un singur caz: în cazul în care este creat sau recreat în interiorul subrutina. În special, trebuie să se facă în cazul în care o serie de dinamică în subrutina este numit setlength:

Procedura Adăugați (var a: matrice de număr întreg; x: integer);

var a: = Arr (1,3,5,7,9);