Array - un complex (compozit structurat) tipul de date, care se caracterizează după cum urmează:
· Elementele de matrice sunt de același tip, spre deosebire de structurile, astfel încât fiecare element de matrice ocupă aceeași cantitate de memorie;
· Array localizat în memoria RAM, în loc de dispozitivul extern, sub formă de fișiere (2-a sesiune);
· Elemente de matrice ocupă celulele învecinate, în contrast, de exemplu, din liste (sesiunea a 2).
Accesul la elementele unei matrice în C ++ se face în două moduri.
În primul rând, prin utilizarea numărul de serie al elementului de matrice, care se numește indicele. tipic pentru mai multe limbaje de programare și este considerat primul semestru. Este mai simplu și familiar celor care au studiat limbajul Pascal. B, incluzând o variabilă constantă sau poate fi utilizată sau exprimarea unui tip compatibil cu ele ca index. Indicele nu poate fi folosit ca o expresie de tip reale.
Matricele pot avea una sau mai multe dimensiuni. În această secțiune considerăm matrice unidimensională, care este uneori numit un vector, adică un vector în spațiu n-dimensional. Lucrul cu matrici bidimensionale (matrici) este considerată în cap. 5. Trei sau mai multe dimensiuni, în practică, sunt rareori folosite, deoarece astfel de matrice ocupa o cantitate mare de memorie RAM.
În cele ce urmează, cuvântul „matrice“, ne referim la matrice unidimensională.
În ceea ce privește timpul (fază) când memoria este alocată pentru matrice, există două tipuri de ele. Memorie pentru o gamă dinamică este alocată în timpul rulării, iar în cazul în care nu este nevoie de matrice, memoria poate fi eliberată la el. Astfel de matrice sunt luate în considerare în semestrul al doilea.
Un tablou unidimensional cu o dimensiune fixă (o numesc statică) este declarată într-o formă generală, după cum urmează:
Aici, tipul - tipul de elemente din matrice. Inițial, vom lua în considerare tipurile simple (int, float, char), dar puteți utiliza complex, cum ar fi structura. Numele scris pe regulile de identificatori. Fiecare element al matrice are același nume, singurul cod de schimbare sau element numărul. N - dimensiunea (sau mărime) a matrice ca un întreg constant sau o expresie constantă. Această valoare determină numărul de celule de memorie RAM rezervate pentru matrice. De exemplu:
float A [10]; sau const n = 10; float A [n];
Spre deosebire de matrice dinamică pentru memorie statică în timpul compilării este rezervat pentru a găzdui spus N numere de tip (10) numere reale. Pentru o serie de memorie necesară volum k * N bytes (4 * 10), unde k - numărul de octeți necesari pentru a găzdui un element de acest tip (unul tip float). Această memorie se păstrează pe durata programului, sau mai degrabă, o funcție sau bloc, care descrie matrice. Software-ul capacitate de memorie necesară este determinată folosind operația sizeof, după cum urmează:
M = sizeof (tip) * N; sau M = sizeof (nume); sau M = nume sizeof;
unde M - variabila număr întreg, care determină mărimea șirului în octeți. Tip neapărat scrise între paranteze, iar numele poate fi fără paranteze. Următorul program afișează de două ori numărul de 40.
float A [10]; int M1, M2;
M1 = sizeof (float) * 10; // dar M1 = plutească sizeof * 10 - Eroare!
M2 = sizeof (A); // sau M2 = sizeof A;
În multe sisteme moderne de programare, inclusiv C ++, numerotarea elementelor din matrice începe cu 0. Apoi, o [n-1] - ultimul element al matrice. Acest lucru implică utilizarea indicii atunci când se ocupă cu matrice (vezi. Al 2-lea sesiune). Prin urmare, în acest exemplu, indicele variază de la 0 la 9, inclusiv, adică, indicele ultimului element de matrice este una mai mică decât dimensiunea sa. Anunțat 10 elemente de matrice sunt identificate după cum urmează: A [0], A [1], A [2], ..., A [9]. In C ++, nu există nici o limită verificare matrice. Este posibil să se meargă dincolo de frontierele sale, și scrie valoarea într-o variabilă, sau chiar și în codul de program. Un astfel de control ar trebui să aibă grijă de programator.
Dacă utilizați matrice statice au probleme în cazul în care dimensiunea matrice în avans, noi nu știm. În acest caz, vom declara o serie de dimensiuni maxime, care este în general cunoscută. Dimensiunea reală și de a introduce utilizarea în continuare, de exemplu, în cicluri, precum și pentru alte scopuri:
nmax const = 100; float X [nmax];
int n; cout<<”Input the size of array ”; cin>> N;
/ * D alshoy de lucru cu n (mai degrabă decât de la nmax) ale elementelor de matrice, de exemplu, să le introducă. * /
pentru (int i = 0; i // Această linie poate fi coborâtă împreună cu bretele. O astfel de metodă este mai ușor, dar este ineficient punctul de alocare de memorie de vedere, ca „cărți“ mai multă memorie decât utilizarea reală. În astfel de cazuri, utilizate profesional matricele dinamice mai eficiente (a se vedea. Al 2-lea sesiune). 6.2. Metode de determinare a matricele · Introduceți elementele de matrice de pe ecran (a se vedea. Mai sus) sau cu un fișier pregătit (semestrul 2-a). unde bretelele sunt înregistrate constante de tip corespunzătoare, separate prin virgulă. De exemplu: Aici, în cazul în care lista este mai mică decât valorile N, elementele lipsă din matrice va fi zero. Pe de altă parte, dacă specificați mai mult decât valorile N „compilatorul nu va place.“ O serie de caractere (string) fără utilizarea explicită a indicii pot fi declarate și inițializat în moduri diferite. Puteți specifica o dimensiune suficientă pentru a se adapta textul și linia se termină caracterul ( „\ 0“). Acest simbol trebuie să fie scrise în mod clar în sfârșitul listei, de exemplu: A doua metodă este mai simplă și mai convenabilă: char T [11] = „matematica“; În acest caz, se adaugă caracterul nul la sfârșitul liniei automat. Mai mult, ca și pentru matricele numerice și caractere pentru a specifica opțional dimensiune. Acesta va fi determinat în funcție de numărul de articole înregistrate sau a lungimii rândului. De exemplu, int V [] =; declară și inițializează o matrice întreg de cinci elemente, și Această metodă de determinare a matrice este potrivit pentru scopuri de depanare, pentru că nu trebuie să-și petreacă timpul pe intrarea multiplă a elementelor sale. Atunci când testarea este suficient pentru a schimba câteva elemente ale șirului. · Pentru unii, dar nu toate, sarcinile matrice pot fi determinate de un generator de numere aleatoare: const n = 5; int Y [n]; randomizarea (); Funcția randomize () se recomandă utilizarea ca matrice a fost „mai casual“. În caz contrar, matrice poate fi la fel cum a fost în executarea anterioară a programului. aleatoare Parametru (100 în exemplul nostru) înseamnă că numerele de matrice sunt numere întregi în intervalul 0-99 inclusiv. Dacă este necesar să existe nu numai numărul pozitiv, pot fi înregistrate, de exemplu, ca: Y [j] = aleator (100) -20; Apoi, numerele vor fi în intervalul 20-79, adică, numere pozitive vor fi pe teoria probabilitatii mai mult. Dacă este necesar să se obțină numere reale pot fi scrise într-un ciclu, cum ar fi: A [i] = aleator (5) /10.-0.25; În acest caz, matricea A este declarată ca un float, și o constantă de 10 să fie scrise întotdeauna cu simbolul „“, adică, ca un număr real. In caz contrar, toate același număr se obțin (-0.25), ca fisiune orice număr întreg mai mic de 5, un număr întreg de 10 va avea ca rezultat o parte întreagă, adică zero. · O matrice poate fi construit dintr-o regulă. de exemplu: pentru (int j = 0; j Exercitarea. Cum funcționează această bucată de software?
shar S [] = "MMF"; - un șir de patru caractere ca newline adăugate.articole similare