Lucrul cu matrice

Obiectiv: Citiți structura matricelor. Înțelegeți cum să declarați o matrice unidimensională și să accesați elementele individuale ale unei matrice.

O matrice este un tip de date care este folosit pentru a reprezenta o secvență de valori uniforme. O matrice este un grup de elemente de același tip. Matricea este declarată după cum urmează:







Parantezele ([]) se referă la faptul că temp este numele matricei, iar numărul cuprins în paranteze indică numărul elementelor din matrice. Numerotarea elementelor matrice pornește de la zero, deci temp [0] este primul, iar temp [19] este ultimul element al matricei. Un element particular al matricei este determinat de numărul sau de indexul său. Elementele matricei sunt plasate în memorie consecutiv, unul câte unul. Numele matricei este un pointer la primul element al matricei.

float mas [10]; // array mas conține 10 elemente de tip float

int mas1 [20]; // array mas1 conține 20 de elemente de tip int

int mm [n]; // eroare, variabila nu poate seta dimensiunea matricei

Numărul elementelor din acoladele curbate nu trebuie să depășească dimensiunea matricei. Nu puteți inițializa toate elementele, ci orice număr din primele elemente:

Toate celelalte patru elemente vor fi inițializate cu zerouri.

Puteți inițializa un matrice după cum urmează:

int mas [] =; // o serie de cinci elemente

În acest caz, numărul elementelor din matrice este determinat de lista de inițializare.

Exemplu: Introduceți o serie de numere și calculați suma valorilor pozitive

int mas [N]; // serie de numere

int summa = 0; // suma valorilor pozitive

int n; // numărul de numere

printf ("\ nInput numărul de numere nu mai mult de% 3d", N-1);

printf ("\ nEnter% 3d elemente de array", n);

pentru (i = 0; i

scanf (".", mas [i]); // introduceți elementul i al matricei

dacă (mas [i]> 0) // dacă elementul i al matricei este pozitiv

summa + = mas [i]; // suma elementelor pozitive

printf ("\ n suma valorilor pozitive este egală cu% 3d", summa);

Ordinea de executare a muncii

1. Să studieze informații teoretice scurte.

2. Elaborați o diagramă a algoritmului.

3. Sub diagrama bloc a algoritmului, scrieți un program.

4. Debugați și executați programul.

1. Având în vedere un număr natural n (n> = 2). Găsiți toate numerele prime mai mici, folosind sita Eratosthenes. Sita Eratosthenes este numită următoarea metodă. Vom scrie toate numerele întregi de la 2 la n. Primul număr prime este 2. Noi subliniem acest lucru, iar toate numerele mari care sunt divizibile prin 2 sunt împărțite. Primul dintre numerele rămase este 3. Noi subliniem că este simplu, iar toate numerele mari, care sunt multiplii de 3, sunt depășite. Primul număr al celor rămase este acum 5, din moment ce 4 este deja depășit. Noi subliniem acest lucru ca fiind simplu, și toate numerele mari, multiplii de 5, traversați etc.







2. Fie matricea a1, ..., un dat. Este necesar să rearanjăm a1, ..., o astfel încât la început să existe un grup de elemente în matrice mai mare decât elementul care a fost plasat mai întâi în matricea sursă, atunci acest element în sine, apoi un grup de elemente mai mici sau egale cu acesta.

3. Permiteți transmiterea unui mesaj cu forma unei secvențe de zerouri și a unui mesaj printr-un anumit canal de comunicare. Din cauza interferențelor, unele semnale pot fi confundate: zero poate fi percepută ca o unitate și invers. Este posibil să se transmită fiecare semnal de trei ori, înlocuind, de exemplu, secvența 1,0,1 cu secvența 1,1,1, 0,0,0, 1,1,1. Trei cifre consecutive în decodare se înlocuiesc cu cifra care apare între ei cel puțin de două ori. O astfel de triplare a semnalelor crește semnificativ probabilitatea de a primi corect mesajul. Scrieți un program de decriptare.

4. Se dă o serie de numere pozitive a1, ..., an. Pentru fiecare dintre elementele matricei care urmează în ordinea unui [i] și mai mare decât [i], vom selecta elementul cu cel mai mic număr j și vom înlocui valoarea unui [i] cu un [j]. Dacă nu există un astfel de element a [j], atunci vom înlocui un [i] cu zero. Imprimați matricea rezultată.

Explicație. De exemplu, o matrice de 2,9,8,5,9,3,4,5,2 după înlocuire devine

5. Având o matrice a1, ..., an. Eliminați cele cinci elemente minime din ea mutând elementele rămase la marginea din stânga.

6. Sunt date două rețele întregi a1, ..., an și b1, ..., bn. Imprimați toate perechile de indici pentru care [i] * b [i]> 10. Numără numărul de perechi și suma acestor produse.

7. Având o matrice unidimensională a1, ..., an. Găsiți și imprimați numărul elementului al cărui produs este cu cel precedent.

8. Sortați matricea unidimensională în ordinea ascendentă (descendentă) a elementelor (metoda Shell).

9. Sortați o matrice unidimensională în ordine ascendentă (descendentă) a elementelor (metoda bubble).

10. În matricea unidimensională a1, ..., a, înlocuiți elementele negative cu zerouri, numărați numărul de substituții m, calculați m !.

Lucrarea de laborator №5

Lucrul cu matrice. Dispozitive bidimensionale

Obiectiv: să înțelegem modul în care sunt declarate matricele bidimensionale, cum se află repertoriile bidimensionale în memoria calculatorului, cum să acceseze elementele matrice

O matrice bidimensională este o matrice de matrice, adică O matrice ale cărei elemente sunt matrice.

O matrice bidimensională este declarată după cum urmează:

Numărul din primele paranteze pătrate indică numărul de rânduri din matrice, iar numărul din parantezele pătrate a doua indică numărul de coloane din matrice. Pentru a accesa un element dintr-o matrice bidimensională, trebuie să specificați toți indici:

rez = mas [1] [2]; // variabila rez este atribuită valoarea celui de-al treilea element al celui de-al doilea rând.

Elemente ale rețelelor multidimensionale sunt aranjate în linia de memorie a calculatorului prin linie. Arterele multidimensionale pot fi inițializate. De exemplu:

Dacă nu doriți să inițializați toate elementele rând, puteți utiliza paranteze curbate în lista de inițializare care acoperă valorile pentru acea linie. De exemplu:

Exemplu de program: sortați diagonala principală a unei matrice bidimensionale în ordine ascendentă

int mas [N] [N]; // matrice bidimensională

printf ("\ nIntroduceți elementele de matrice \ n");

pentru (i = 0; i

pentru (j = 0;

scanf (".", mas [i] [j]); // introduceți elementul matricei







Articole similare

Trimiteți-le prietenilor: