| 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).