Accesarea elementelor matrice

Pentru a se referi la orice element dintr-o matrice, se utilizează numele matricei și numărul de serie al elementului, indicând poziția sa relativă între elementele rămase. Acest număr este numit un index; indicele este scris în paranteze pătrate. Indexarea elementelor matrice în limba C începe de la zero. și anume Indicele se schimbă de la 0 la N-1, unde N este numărul elementelor din matrice.






Astfel, dacă matricea este declarată:

elementele sale individuale sunt notate:

Adică, orice element al matricei poate fi accesat prin specificarea numelui și a indexului elementului în paranteze pătrate. De exemplu:

Astfel de elemente individuale ale matricei din program pot fi folosite ca variabile obișnuite.
Ca denumire de index, puteți utiliza și orice variabilă întreg, după ce ați definit valoarea sa. Deasupra acestor indici variabili este posibil să se efectueze operații aritmetice:

Din moment ce matricea este un ansamblu întreg de date, este imposibil să o introduceți ca o variabilă simplă. Elementele matricei sunt introduse unul câte unul.
Dacă matricea este foarte mică, de exemplu, care conține doar patru elemente:

poate fi introdus folosind patru funcții scanf:

scanf ("% f", s [0]);
scanf ("% f", s [1]);
scanf ("% f", s [2]);
scanf ("% f", s [3]);

sau prin utilizarea unei astfel de funcții:

Cu toate acestea, în probleme reale, de regulă, matricele sunt mult mai mari, astfel încât acestea sunt introduse folosind operatorul buclă. Anterior, trebuie să determinați numărul real de elemente din matrice, cu care va funcționa programul.
Să avem următoarea descriere a matricei:

Numărul de elemente 100 este indicat cu o marjă; Programul poate funcționa cu o matrice formată din două, opt, cincizeci și în general orice număr de elemente mai mici sau egale cu 100. De aceea, mai întâi trebuie să descrieți o variabilă de tip întreg, de exemplu, n este numărul real de elemente și introduceți această valoare. De asemenea, descriem variabila i - parametrul ciclului:

int n, i;
printf ("\ nIntroduceți numărul elementelor din matrice <=100\n");
scanf (".", n);

Acum puteți organiza o buclă pentru a intra în matrice. Cu o matrice, este mai convenabil să folosiți un operator cu un parametru (cum credeți, de ce?):

pentru (i = 0; i printf ("\ nIntroduceți elementul \ n");
scanf (".", A [i]); // Introduceți un element
>

Acum, să ne uităm la modul de introducere a numerelor pentru a introduce un matrice. Ne amintim că delimitatorul când introduceți valori de la tastatură este un spațiu. În principiu, toate valorile pot fi introduse "în linie" printr-un spațiu:

9 8 7 6 5 4 3 2

Programul le va lua unul câte unul din fluxul de intrare de fiecare dată când întâlnește funcția scanf. Dar o astfel de intrare pare urâtă (încercați, vedeți-vă!). Este mai convenabil atunci când introduceți elementul următor, afișați mai întâi textul solicitării cu o sugestie pentru a intra în element și apoi introduceți elementele unul câte unul, de fiecare dată apăsând tasta Enter.






Afișați un matrice pe ecran, de asemenea, aveți nevoie de un element, adică utilizând instrucțiunea buclă:

pentru (i = 0; i printf (". \ n", A [i]); // Ieșiți elementul
>

Să le punem acum împreună. Următorul program mic cere mai întâi numărul de elemente din matrice, apoi le introduce unul câte unul și afișează:

Protocolul programului:

Întrebări pentru auto-examinare

1. Cum se descrie matricea în program?
2. Cum să aflăm câte octeți de memorie vor fi alocați de compilator sub matrice?
3. Ce este indexul utilizat pentru a accesa elementele de matrice?
4. Din ce valoare începe numerotarea elementelor de matrice?
5. Ce operațiuni pot fi efectuate cu indicii?
6. De ce am nevoie de un operator buclă atunci când lucrați cu matrice?

2. Sarcini de lucru independent pentru lecție 13

3. În toate misiunile, trebuie pregătit un program în C.

4. Introduceți elementul A [0]
12
Introduceți elementul A [1]
44
Introduceți elementul A [2]
65
. și așa mai departe.

5. 2. Descrieți matricea A. Introduceți matricea. Ieșiți elementele matricei în ordine inversă (instrucțiune: utilizați un ciclu cu valoarea parametrului descrescător).

7. 4. Scrieți un program care calculează suprafața triunghiului conform formulei lui Heron. Lungimea laturilor este introdusă în matrice.

Lecția 14. Acțiuni cu matrice

10. La definirea matricelor, este posibilă inițializarea lor. adică atribuirea unor valori inițiale elementelor lor. Valorile inițiale sunt scrise în paranteze curbate după ce descrierea matricei și următorul semn egal sunt scrise.
Exemple de moduri diferite de a inițializa matricele:

12. Pentru matricea a, numărul de celule este specificat explicit (în paranteze pătrate). În matricea b, nu există nimic în paranteze pătrate, dar compilatorul C admite o astfel de descriere. Lungimea matricei în al doilea caz este calculată de compilator în funcție de numărul de valori inițiale listate la inițializare. După această definiție, elementul
b [0] este 3,
b [1] este egal cu 6, etc. la b [4]. care este 7.
Astfel, pentru cea de-a doua matrice, vor fi alocate 5 locații de memorie, numerele acestora schimbându-se de la 0 la 4 inclusiv.
Inițializarea este foarte convenabilă în faza de depanare a programului, pentru a nu reintroduce de fiecare dată toate elementele matricei. Desigur, conținutul matricelor se poate modifica în timpul programului.

Array Acțiuni

14. Există mai mulți algoritmi pentru a lucra cu matrice. Unele dintre ele sunt similare cu cele pe care le-am discutat în probleme legate de secvențe (tema 8, lecția 11).
Principala diferență dintre o secvență și o matrice este aceea că elementele secvenței sunt introduse în aceeași celulă, iar după introducerea următorului număr, cel precedent este "suprascris". În matrice, toate valorile sunt stocate și le puteți accesa de mai multe ori. Aceasta deschide oportunități largi pentru programarea mai multor sarcini.
Mulți algoritmi pentru procesarea matricelor se bazează pe algoritmi simple de bază.
Algoritmii de bază pentru lucrul cu matrice unidimensionale includ următoarele:
1. Suma elementelor matrice.
2. Găsirea elementului maxim (minim) al matricei.
3. Găsirea numărului elementului maxim.
4. Numărarea numărului de elemente care satisfac o anumită condiție.

15. # include
#include
int main ()
flotați o [30]; // a este o serie de numere reale
int count; // count - numărul efectiv de elemente, variabila intreg
int i; // Variabila de lucru
float S; // S este suma elementelor matrice
printf ("Introduceți numărul elementelor din matrice <=30\n");
scanf (".", conta); // Introduceți numărul real de elemente din matrice
pentru (i = 0; i printf ("Introduceți elementul \ n");
scanf ("% f", a [i]);
>
// Aici începe calcularea sumei
S = 0; // Valoare zero a celulei S
pentru (i = 0; i S = S + a [i]; // suma acumulatoare
S = S / număr; // Găsiți media aritmetică, rezultatul fiind în celula S
printf ("Media aritmetică =% f \ n", S); // Efectuați rezultatul pentru imprimare
retur 0;
>

Cum să îmbunătățiți acest cod

Formă de început Sfârșitul formularului







Articole similare

Trimiteți-le prietenilor: