Se introduce elemente în matrice, programmirovanie-DLA-sshool

Lecția din seria: „Programarea în Pascal“
Extindem familiarizați cu algoritmi de procesare tablouri dimensionale. Astăzi, considerăm algoritmi pentru a insera elemente într-o matrice. Ca și în algoritmii cu eliminarea elementelor, distingem două cazuri: introducerea unui element și lipiți mai multe elemente. Algoritmii sunt obtinute sunt diferite.

Inserarea unui element

elementul de inserție poate fi înainte sau după elementul, numărul de element poate fi introdus de la tastatura sau uita-te în anumite condiții.
Luați în considerare elementul de inserție după elementul cu numărul, numărul acestui element va fi introdus de la tastatura.

Luați în considerare o sarcină simplă.

Exemplul 1. Într-o matrice formată din n elemente, se introduce numărul b după elementul k.

Să considerăm un exemplu specific. Să presupunem că avem matrice dimensional următoarele din 10 (n = 10) a elementelor:
3, -12, 5, 14, 27, -6, 1, -34, 10, -15.

Se introduce 100 după elementul numărul 5 (b = 100, k = 5)

Algoritmul element de inserție în matrice:

  1. Primele 5 elemente de matrice rămân neschimbate.
  2. Mutați toate elementele din a șasea, unul din spate. Dar pentru a nu pierde o valoare vecină, o schimbare va începe cu ultimul element - a muta primii zece la unul la dreapta, apoi a noua, a opta și așa mai departe până la a șasea (m [i + 1]: = m [i], i = n ... .k).
  3. Pe locul al șaselea valoarea de înregistrare element 100, adică după elementul de matrice al 5-lea (m [k + 1]: = b;).

Obținem următoarea matrice:

3, -12, 5, 14, 27, 100, -6, 1, -34, 10, -15.

Astfel, într-o matrice de 11 elemente era, adică, matrice trebuie să fie determinată pe N + 1 elemente:

Type myArray = Array [1..n + 1] Din Integer.

Noi acum formează o nouă procedură de Insert1 (k1, x1, m), care sunt transmise: k 1 - numărul elementului, după care ar trebui să utilizați, x1 - al căror număr este introdus, m - matrice, ceea ce face conversia.

Form programul principal folosind noua procedura Insert1 (k1, x1, m).

Am examinat algoritmul introduce un singur element în matrice. Luați în considerare următorul caz.

Introducerea elementelor multiple

Să presupunem că este necesar să introduceți mai mult de un element din matrice, un element după ce toate elementele cu o anumită proprietate. Luați în considerare următoarea problemă.

Exemplul 2. Se introduce numărul după toate elementele multiplilor matrice de 3.

Primul lucru pe care ar trebui să acorde o atenție - aceasta este descrierea matrice: matrice poate fi crescut cu cât de multe elemente?

Numărul maxim de elemente, după care poate fi introdus un element nou, coincide cu numărul de elemente de matrice. Din moment ce se poate întâmpla ca toate elementele de matrice corespund unei anumite proprietăți. Deci, matrice poate fi crescut de două ori (aceasta este cea mai mare dimensiune lui), și astfel descrierea corespunzătoare este după cum urmează:
Type myArray = Array [1..2 * n] Din Integer;

Iar ultimul lucru de remarcat este faptul că numărul ultimului element după fiecare inserție va varia. Acesta trebuie să fie redefinit. Pentru a face acest lucru, contoriza numărul de elemente introduse în acest moment.

Pentru a introduce mai multe elemente într-o matrice forma noua procedură Insert2 (k1, x1, m), care se va număra numărul de elemente inserate și numărul ultimului element ajustat.
Numărul ultimul element necesar pentru a ști cât de multe elemente trebuie să fie mutat în timpul eliberării spațiului pentru noul element, deoarece numărul de elemente din această parte a crește matrice.
Mai jos este textul procedurii ținând cont de modificările. Parametrii în cadrul procedurii rămân aceleași.

articole similare