következtetést készlet
Amikor dolgozik készlet fontos kérdés a kijelző elemek a készlet. Megjegyzendő, hogy a legtöbb nyelvi változatok write utasítással nem nevezhető egy változó típusú tömb. Például, lehet következtetni a beállított az alábbiak szerint:
VAR A. SET OF 1..9;
Nincs semmi meglepő, hiszen még ha egy olyan tömb, ez is nem lehet kinyomtatni egyszerre egyetlen szolgáltatóval WRITE (A). Jelenítse meg a tömb elemeit szervezett ciklus.
Megjelenítheti a beállított elemek is kell, hogy hurok (egyszeres), bele van illesztve egy változó kezdve az összes lehetséges értékei a beállított, és mielőtt a write utasítás belül a BA szerkezetét megvizsgáljuk, hogy ez az elem benne van a különösen sor:
ha K HALMAZ1 majd írjuk (K).
Általános szabály, hogy az alkalmazásában a elemhalmaz nyomtatványok szervezett az eljárásban. Tegyük fel, hogy van dolgunk az egész számok határain belül NIZ és VERH. Mi határozza meg több típusú TS ezeket a határokat:
INT típus = NIZ..VERH; TS = beállított ° F INT.
Akkor írj egy rutin, amely paraméterként egy csomó:
eljárás PrintSET (OS TS.);
| Az M: = NIZ a VERH csinálni
| Ha M OS majd writeln (M);
Most már hozzáférhet ehhez nyomtatási eljárást készletek, hacsak nem elemekből állnak, amelyek nem jönnek ki NIZ intervallum ... VERH. Hagyja, hogy a konstansok szakaszban leírt:
const NIZ = 0; VERH = 10.
Akkor képes megjeleníteni a halmaz elemeit, utalva az eljárást:
a) PrintSET ([5, 6, 7]);
Eljárás igénybevételét lehet megszervezni formájában:
var SET1, SET2. TS;
PrintSET (SET1); PrintSET (SET1 + SET2); stb
Példa Példa. Összefoglalva, vegyünk egy példát az egész, amely megmutatja az összes olyan tevékenységek, amelyek meghatározott meghatározza.
írja KOST = 1..6; BROSOK = szett KOST;
var A, B, C BROSOK;
eljárás SRAWNENIE (D. BROSOK);
| A K: = 1-6 csinálni
| Ha K D majd írjuk (K: 4); writeln;
| A: = [1, 3, 4]; B: = [2, 4, 6];
| Write ( '[1, 3, 4] + [2, 4, 6] ='); SRAWNENIE (C);
| Write ( '[1, 3, 4] - [2, 4, 6] ='); SRAWNENIE (C);
| Write ( '[1, 3, 4] * [2, 4, 6] ='); SRAWNENIE (C);
Megjegyzés. A program által meghatározott több A, B, BROSOK C típusú, elemei, melyek egész számok a tartományban [1..6], és az eljárás kijelző elemek ilyen készletek.
Ezután állítsa az A és B sorozat, amelyek több különböző értékei a C, és megmutatja annak elemei.
Megjegyzés: 1. Ha a készülék be van állítva egy felsorolt típus, annak elemei nem lehet nyomtatni. A nyomtatási elemek származhatnak csak ordinális típusú integer, KAR, BOOLEAN, intervallum.
2. megjegyzés: Az ugyanazt az adathalmazt lehet elhelyezni egy lineáris array tömb, mint egy több készlet, és egy sor STRING típusú. Az alábbiak közül melyik formája előnyös? Ha a fenti tételek (számokat) termel, annál jobb tömb. Ha a feladat a kapcsolatot az elemeit is megadja, vagy kérdése van, hogy néhány tárgyat a készülék, annál jobb a SET.
Például ellenőrizheti, hogy egy bizonyos levelet előfordul egy adott szöveg, két módja van:
var TX. sor 'a' .. 'Z';
1. En jo b a 2., hogy n C. b
k: = 1-20 tenni, ha BW TX majd writeln ( „igen”).
ha BW = TX [k], majd OTWET: = 'igen';
A fenti program töredékek azt mutatja, hogy 2. módszer Ebben az esetben előnyös, hiszen itt, hogy meghatározzák az esemény a betűk a szövegben elég egyszer használatos IF utasítás, míg az első esetben használják ezt a többszörös felhasználása ugyanazon IF utasítás a FOR ciklus nyilatkozatot.
1. Az értékek bármilyen adattípust lehet kombinálni a különböző?
2. Mi a különbség az unió a tömb elemeit egy?
4. Milyen művelet lehetséges a készlet?
5. Hogyan kell meghatározni a személyazonosságát elemek sokaságát?
6. Hogyan adjunk új elem, hogy a forgatáson?
7. A sokaságát eltávolítani szereplő elemek a másik meg a B?
8. Milyen műveletet, és amely üzemeltető megjelenítésére halmaz elemeit?