1. Naprogramujte assemblerovú funkciu:

type SetOfChar = set of Char;
function Zacinaju(const s:string; oddel:SetOfChar):SetOfChar;

Jej vstupom je reťazec a množina znakov tvoriace oddelovače. Jej výstupom je množina znakov, ktore sa nachádzajú na začiatkoch slov vo vstupnom reťazci. Začiatkom slova je znak, ktorý nasleduje po oddeľovači alebo po začiatku reťazca a nie je to oddeľovač.

Príklad:
Zacinaju('abc def,ghi=jkl,,m',[' ',',','=','.',';']) = ['a','d','g','j','m]



2. Naprogramujte assemblerovú funkciu:

 tPole = array [0..1000] of word;
function rozdel(const vstup:tPole; n:word; var deli,nedeli:tPole):Boolean;

Jej vstupom je pole čísiel rôznych od $FFFF. Za posledným číslom v poli je koncová značka $FFFF (teda sa nespoliehajte, že v poli je 10 hodnôt) a číslo n.
Výstupom práce procedúry sú polia deli a nedeli. Pole deli obsahuje všetky čísla z poľa vstup, ktoré sú bezo zvyšku deliteľné číslom n. Pole nedeli obsahuje všetky čísla z poľa vstup, ktoré nie sú bezo zvyšku deliteľné číslom n. Čísla v oboch výstupných poliach sú usporiadané v tom poradí, v akom boli v poli vstup. Za posledným číslom je v oboch výstupných poliach koncová značka $FFFF.
Výsledok funkcie je true práve vtedy ak v poli vstup bolo aspoň jedno číslo deliteľné číslom n.

Príklad:
var deli, nedeli:tPole;
const p1:tPole = (10, 20, 65525, 12, 18, 11, 7, 5, $ffff, 0, 0);
rozdel(p1,5,deli,nedeli) = true
a
deli = (10, 20, 65525, 5, $ffff, ?, ?, ?, ?, ?)
nedeli = (12, 18, 11, 7, $ffff, ?, ?, ?, ?, ?)
{ ? označuje prvok poľa, ktorého hodnota nie je známa - je nezaujímavá z hľadiska výsledku }



3. Naprogramujte assemblerovú funkciu:

type SetOfChar = set of Char;
function Prave1(const s:string):SetOfChar;

Výsledkom je množina znakov, ktoré sa nachádzajú vo vstupnom reťazci práve raz.