BME Villamosm�rn�ki �s Informatikai Kar
M�szaki informatika szak
Nappali tagozat
2001/2002. tan�v, tavaszi f�l�v

Deklarat�v programoz�s

1. Prolog kis h�zi feladat

2002. m�rcius 1.

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.

A feladat

�rjon egy olyan tortertek/2 Prolog-elj�r�st, amely eleget tesz az al�bbi specifik�ci�nak:

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

P�ld�k

| ?- 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

Egy�b k�vetelm�nyek �s tudnival�k

Nem sz�ks�ges k�l�n dokument�ci�t beadnia, de a programj�t l�ssa el a m�k�d�st ismertet� kommentekkel.

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.