BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak |
Nappali tagozat
2001/2002. 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.02s
paranccsal 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 elindulaskor 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.
tortertek/2
Prolog-eljárást, amely eleget tesz az
alábbi specifikációnak:
+
, -
,
*
, /
kétoperandusú operátorokból, valamint a
-
egyoperandusú (prefix) operátorból épül fel.
Számláló #
Nevező
alakban adja vissza! (Azaz Számláló
és
Nevező
legnagyobb közös osztója 1 legyen.)
A segédeljárásokat feltétlenül lássa el fejkommenttel! Törekedjék arra, hogy a megoldás hatékony legyen! Vigyázzon arra is, hogy a megoldás ne sikerüljön többszörösen!
% :- kif == integer \/ % { - kif } \/ % { kif + kif } \/ % { kif - kif } \/ % { kif * kif } \/ % { kif / kif }. % :- tort == { szamlalo # nevezo }. % :- szamlalo == integer. % :- nevezo == integer. % % tortertek(+Kif, -Ertek): a Kif aritmetikai kifejezés értéke % tovább nem egyszerűsíthető tört alakban Ertek. % :- pred tortertek(kif::in, tort::out).
| ?- tortertek(12, E). E = 12#1 ? ; no | ?- tortertek(4/(-6), E). E = -2#3 ? ; no | ?- tortertek(3/2 - 1/3, E). E = 7#6 ? ; no | ?- tortertek(- (4/5) + 1/4 * 6 - 3, E). E = -23#10 ? ; no | ?- tortertek(1 / (3 - 6/2), E). no
Két szám legnagyobb közös osztójának kiszámításához használja a beépített
gcd(X,Y)
aritmetikai függvényt! Például
| ?- X is gcd(4,6). X = 2 ? ; no
Ez az első Prolog kis házi feladat, ezért khf-pl1.pl
néven kell beküldeni a megoldást.
A beadási határidő 2002. március 13. szerda, 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.