Compress tömb - az élethosszig prog
Példa. 3.2. Írja programot, amely „összenyomja” egész tömb 10 elemek, hogy arról eltávolítja az elemek kisebb, mint egy előre meghatározott érték. Megszabadulva végén a tömb elemeinek töltse nullákkal.
6 -8 15 9 -1 3 5 -10 12 2
Tegyük fel, hogy azt szeretnénk, hogy távolítsa el az összes elemet, amelynek értéke kisebb, mint 5. Az eredmény az űrlap
6 15 9 5 12 0 0 0 0 0
A kezdeti adatok vannak megadva, és egy sor számok, az eredmény - a transzformált tömb.
Ábra. 3.2. Kompresszió alkalmazásával további tömb
típusú mas = array [1. n] integer;
writeln ( 'Enter a tömb elemeinek');
i: = 1-től n do olvasni (a [i]);
Ha egy [i]> = x akkor kezdődik
i: = 1-től n do write (a [i]: 4);
Visszaállítása a „farok” a tömb a természetben, mert a globális változók visszaállnak a Pascal.
Azonban a nagyméretű tömbök dual memória kiosztás lehet túl pazarló. Ezért a következőkben egy változata a program, amelyben a tömb átalakítást „a helyszínen”.
Az algoritmus a program a következő:
1. Miközben a tömböt, hogy meghatározzák a szám az első az elemeket el kell hagyni.
2. Ha van egy, mozogni egymást követő elem a tömb az első „szabad” helyzetben, alaphelyzetbe a maradék tömb.
Illusztráció az algoritmus ábrán látható. 3.3.
Ábra. 3.3. Compress tömb „helyben”
A következő program változó j ugyanúgy, mint az előző, arra használható, hogy a pozíció, amelybe a következő eleme a tömb. Miután egy másik változó elem növekszik, hogy a következő megfelelő tömbelem helyeztük az egyik szomszédos helyen:
típusú mas = array [1. n] integer;