Beszúrása a tömb elemeinek, programmirovanie-DLA-sshool

Lecke a sorozatból: „Programozás Pascal”
Mi kiterjeszteni ismerte feldolgozó algoritmusok dimenziós tömbök. Ma úgy algoritmusok beszúrni egy tömbbé. Ahogy az algoritmusok az eltávolítása elemet különböztetünk meg két esetben: a beiktatása egy elem, és illessze több elemet. Algoritmusok kapunk különböző.







Beillesztése egyik eleme

Insert elem lehet előtt vagy után az elem, az elem számát is be a billentyűzetről, vagy nézd bizonyos feltételek mellett.
Tekintsük a behelyezhető elem után az elem a szám, annál több ez az elem kerül be a billentyűzetről.

Tekintsünk egy egyszerű feladat.

1. példa egy tömb, ami n elem, illessze b szám után k-dik eleme.

Vegyünk egy konkrét példát. Tegyük föl, hogy megkapja a következő dimenziós tömb 10 (n = 10) az elemek:
3, -12, 5, 14, 27, -6, 1, -34, 10, -15.

100 betétet a szám után 5 elem (b = 100, K = 5)

Algoritmus inszerciós elem a tömbben:

  1. Az első 5 tömbelemek változatlanok maradnak.
  2. Mozgassa az összes elem a hatodik, egy vissza. De ahhoz, hogy ne veszítse el a szomszédos érték eltolódás kezdődik az utolsó elem - mozog az első 0:50 jobbra, majd a kilencedik, nyolcadik és így tovább, amíg a hatodik (m [i + 1]: = m [i], i = n ... .k).
  3. Helyett a hatodik elem rekord értéke 100, azaz miután az 5. tömb elem (m [K + 1]: = b;).






Kapjuk a következő tömböt:

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

Így, egy sor 11 elemek volt, azaz, a tömb kell meghatározni az N + 1 elemek:

Írja myArray = Array [1..n + 1] Egész.

Most egy új Insert1 eljárás (k1, x1, m), amelyet továbbítanak: k 1 - elemszám, ami után érdemes használni, x1 - amelyek száma be van helyezve, m - tömb, ami az átalakítás.

Forma a fő program az új eljárás alkalmazásával Insert1 (k1, x1, m).

Áttekintettük az algoritmus szúr egyetlen elem a tömbben. Tekintsük a következő eset.

Behelyezése több elemet

Tegyük fel, hogy szükség van, hogy helyezze be egynél több elem a tömbben, az egyik elem elvégre az elemeket, az adott tulajdonság. Tekintsük a következő problémát.

2. példa illessze be, miután az összes elemet a tömb többszörösei 3.

Az első dolog, amit meg kell figyelni - ez a leírás a tömb: a tömb növelhető, hogy hány elem?

A maximális elemek száma, ami után új elem lehet beilleszteni, egybeesik a tömb elemeinek számát. Mivel előfordulhat, hogy a tömb elemei megfelelnek az adott ingatlan. Ezért a tömb növelhető két alkalommal (ez az ő legnagyobb dimenzió), és így a megfelelő leírás a következő:
Típus myArray = Array [1..2 * n] egész szám;

És az utolsó dolog megjegyezni, hogy a szám az utolsó elem után mindegyik betét változik. Meg kell újra. Ehhez számít az elemek száma ki abban a pillanatban.

Ahhoz, hogy be több tömb elemeinek képezik az új eljárás Insert2 (k1, x1, m), amely számolja az elemek száma egészül ki, és beállítható száma az utolsó elem.
Száma az utolsó elem szükséges ahhoz, hogy tudjuk, hogy hány elem kell mozgatni közben a felszabadulás tér az új elem, hiszen az elemek száma ezen a részén a tömb növekszik.
Az alábbiakban a szöveg az eljárás figyelembe véve a változásokat. Paraméterek az eljárás ugyanaz marad.




Kapcsolódó cikkek