Matricele - structurate tip de date
În lecțiile anterioare, am considerat problema cu tine, care a folosit o cantitate mică de date. Pentru fiecare, am creat o locație de memorie separată cu un nume unic. Dar, de multe ori trebuie să lucreze cu un număr mare de date similare. Ei celule individuale de memorie sunt necesare - o clar și natural (doi litri de apa nu se va potrivi într-un pahar).
Dar pentru a specifica un nume diferit pentru fiecare celulă - incomod. Ce să fac?
Una dintre metodele de rezolvare a acestei: selectați pentru zona de date de locații de memorie succesive și apel întreaga zonă a denumirii comune. Și pentru fiecare celulă ar putea transforma pentru a enumera ordinea celulei. Astfel, pentru tratamentul unei anumite celule trebuie să specificați numele întregii structuri și numărul de celule în ea.
Păstrând același tip de date într-un tabel
Array - o colecție de date similare, care sunt stocate în celulele de memorie succesive și având un nume comun. Celulele sunt numite elemente de matrice. Toate elementele sunt numerotate în ordine, iar acest număr se numește indicele elementului de matrice.
Toate elementele de matrice sunt de același tip. Matricea în același timp, are un nume - unul pentru toate elementele. Pentru a avea acces la un anumit element de matrice trebuie să specifice numele de matrice, și (în paranteze) index.
Cea mai simplă formă de matrice - matrice tridimensională (Figura 8.1.).
Fig. 8.1. matrice convențională image-dimensional într-un rând
A - numele de matrice, numerele din celulele de tabel - elementele de matrice.
Luați în considerare de intrare A [3] = -8.
În această înregistrare:
A - numele de matrice,
3 - numărul element de matrice (index)
A [3] - indicarea treilea element matrice,
-8 - valoarea treilea element matrice.
Pașii de bază pentru lucrul cu matrice
Trebuie să învețe cum să efectueze unele dintre cele mai frecvente operații cu matrice:
descriere;
umple o matrice cu numere aleatoare;
umple matrice cu tastatura;
afișare;
Elementul de căutare maxim;
calcularea sumei tuturor elementelor de matrice;
calcularea unui număr de elemente pozitive.
Descriere matrice Pascal
<Имя массивам array [<тип индекса>] de
aici <тип компонентов> - acesta este tipul de date care are fiecare element de matrice, și <тип индекса> - limitele indicelui.
De exemplu:
var A: array [1..10] din întreg;
Aici, tipul de index - intervalul variază în intervalul de la 1 la 10, tipul de date (array) - a.
Completarea o serie de numere aleatorii și afișează pe ecran matrice
Luați în considerare problema, care necesită utilizarea unui generator de numere aleatorii pentru a crea o matrice unidimensională și afișa. Schema logică prezentată în Fig. 8.2.
Fig. 8.2. Schema logică de umplere matrice dimensionala de numere aleatorii și de ieșire de matrice de pe ecran
Exemplul 8.1.
Pașii de bază pentru lucrul cu matrice
În acest exemplu, am umplut o serie de numere aleatoare între 0 și 99. Acesta ne-a oferit cu funcția aleatoare (100).
Și dacă avem nevoie pentru a obține un număr aleatoriu în intervalul de altul - de exemplu, nu de la zero? Calculul pentru a face acest lucru: funcția aleatoare (N) va da N diferite numere întregi de la 0 la N - 1. Dacă vrem cel puțin intervalul numărul acestora a fost K, atunci trebuie să-l adăugați la un aleatoriu (N). Cel mai mare număr care va furniza, în acest caz, formula aleatoare (N) + K, va fi cea mai mare gama de numere.
Să presupunem, de exemplu, avem nevoie de un număr aleator în intervalul de la -100. 100. Presupunem mai multe numere diferite în intervalul: 100 pozitive, 100 negative și zero. Total 201.
Formula de aici este simplu: scade din mai mari și mai mici se adauga 1.
Prin urmare, N = 201 și K = -100.
Asta este, vom obține formula aleatoare (201) -100.
Din păcate, în această formă, formula nu va funcționa - atunci când începe programul „acoperi“ cu un mesaj de eroare. Acest lucru este de la „minte nejustificate“, care se manifestă aici Pascal miercuri. Faptul că Pascal consideră că acest tip de exprimare a funcțiilor aleatoare. Și are
tip cuvânt. Cu alte cuvinte, fără semn. Când încercarea de a scădea 100 din numărul mai mic de 100, obținem un rezultat negativ, că Pascal nu este mulțumit. Cel mai simplu mod de a evita acest atac - pamenyat locuri Descăzut (aleatoriu) și se scade, și anume scrie: -100 + aleatoare (201). Atunci Pascal va lua acest tip de expresie ca un întreg al primului număr (-100) și oishbki nu apar.
Sarcina 8.1.
Aplica pentru acest program, astfel încât atribuirea de matrice și a afișa elementele sale pe ecran într-un singur ciclu. Veți avea nevoie de un operator integrantă pentru a începe bucla. end.
Sarcina 8.2.
Adăugați un program de locuri de muncă 8.1 nou ciclu de ieșire a elementelor de matrice în ordine inversă (începând cu ultima). Încercați să efectuați aceeași sarcină, fără introducerea unui nou ciclu.
Array - o multitudine de celule de memorie. Prin urmare, orice acțiune cu o matrice este că, pentru a sorta toate aceste celule, sau cel puțin unele dintre ele. Aceasta înseamnă că orice acțiune cu matrice trebuie să conțină o buclă care sunt elemente ale șirului în mișcare. Dacă scrie un program cu o matrice și a scrie o buclă (pentru, în timp ce, sau repetare) - atunci te înșeli.