BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak |
Nappali tagozat
2000/2001. tanév, tavaszi félév
|
A kis házi feladat beadása nem kötelező.
A programot tömörítve, elektronikus levélben kell beküldeni. A
beküldéshez egy bash
szkriptet kell használni. A szkriptet futtatni
a
bash dpkhfbe.01sparanccsal lehet (feltéve, hogy ezen a néven mentettük el).
Figyelem! Az ural2
szerveren a /usr/local/bin
könyvtárban található a bash
program.
A szkript elinduláskor elmagyarázza a teendőket (mi legyen az adott könyvtárban, milyen néven stb.). Mielőtt valaki hibára panaszkodna, győződjön meg róla, hogy a hiba az ural2.hszk.bme.hu szerveren is reprodukálható.
A programok készülhetnek MS DOS vagy MS Windows alatt is, de Unix (linux) operációs rendszer alatt is működniük kell.
{szin = string, szam = int}
alakú
rekordok, ahol a szin
mező "piros"
, "feher"
vagy
"zold"
értéket vehet fel. A szam
mező különbözteti meg egymástól
azokat a rekordokat, amelyek szin
mezője azonos értékű.
A feladat a lista rendezése úgy, hogy az elején legyenek azok a rekordok,
amelyek szin
mezője "piros"
, utánuk azok, amelyek
szin
mezője "feher"
, végül pedig azok, amelyek
szin
mezője "zold"
értékű. Az egyes
színcsoportokon belül az elemek sorrendje ne változzék.
Írjon zaszlo
néven olyan SML-függvényt, amely megvalósítja a leírt rendezést.
Felteheti, hogy a tesztadatok hibátlanok, azaz a szin
mezőben
mindig "piros"
, "feher"
vagy "zold"
van, a szam
mező értéke pedig mindig egész szám.
A segédfüggvényeket feltétlenül lássa el fejkommenttel! Törekedjék arra, hogy a megoldás hatékony legyen!
(* zaszlo ls = az ls elemeinek fent leírt rendezésével előállított lista zaszlo : {szam : int, szin : string} list -> {szam : int, szin : string} list *)
- zaszlo []; > val it = [] : {szam : int, szin : string} list - zaszlo [{szam=1, szin="feher"}, {szam=2, szin="zold"}, {szam=3, szin="piros"}]; > val it = [{szam = 3, szin = "piros"}, {szam = 1, szin = "feher"}, {szam = 2, szin = "zold"}] : {szam : int, szin : string} list - zaszlo [{szam=1, szin="feher"}, {szam=2, szin="piros"}, {szam=3, szin="zold"}, {szam=4, szin="piros"}]; > val it = [{szam = 2, szin = "piros"}, {szam = 4, szin = "piros"}, {szam = 1, szin = "feher"}, {szam = 3, szin = "zold"}] : {szam : int, szin : string} list - zaszlo [{szam=1, szin="feher"}, {szam=2, szin="piros"}]; > val it = [{szam = 2, szin = "piros"}, {szam = 1, szin = "feher"}] : {szam : int, szin : string} list
khf-ml1.sml
néven kell
beküldeni a megoldást.
A beadási határidő 2001. április 2. 24:00.
A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a max. 100 ponton felül).