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.