http://es.scribd.com/doc/27500195/INTRODUCCION-ARO!O"#scribd $.1 Aritm&tic' e( RO!O" )( RO!O" La aritmética se realiza con ciertos predicados predefnidos que toman como argumento una expresión aritmética (trabajando sobre enteros y reales) y la evalúa. )*presio(es 'ritm&tic's na expresión expresión aritmética es un término construido con números! variables y "untore "untores s que repre representa sentan n "unciones "unciones aritméticas. aritméticas. #ólo se permite permiten n ciertos ciertos "untores en estas expresiones. $lgunos de ellos son los siguientes%
U(' e*presi+( 'ritm&tic' s+,o pede ser e','d' si (o co(tie(e 'ri'b,es ,ibres. )( otro c'so 'p'rece ( error de e','ci+( redic'dos 'ritm&ticos e','b,es Las Las expr expresi esione ones s aritm aritméti éticas cas sólo sólo son son evalua evaluadas das cuando cuando se pasan pasan como como argumentos a predicados aritméticos evaluables% is ) &valúa & y unifca el resultado resultado con '.
otas% . . is 1 1 da *+$,$#- si ' est instanciada en la llamada y &++-+ aritmético si ' est libre. /. &l orden de los literales es relevante en el uso de predi predicad cados os evalua evaluable bles. s. &n el cuarto cuarto ejemplo ejemplo se tiene tiene &++-+ &++-+ porque ' est libre. Comp'r'ci+( 'ritm&tic' Los siguientes predicados evalúan sus dos argumentos como expresiones aritméticas y comparan los resultados. )1 op )2 )2 #e evalúan las expresiones & y &/ y se comparan según los operadores siguientes%
Ope r a ci one sa r i t mé t i c as Lapr ógi ca no t i ene como obj et oabordarpr obl emas de o gr a ma c i ó nl c ál c ul o numér i c o,per oav e c ess on ne c es ar i asc i er t a s ope r ac i ones el ement al es,como cont arelnúmer o de el ement os de una l i st a, mul t i pl i c arporunac ons t ant e,et c . En p r i n c i p i o ,l a s o pe r a c i o ne s a r i t mé t i c a s p ue de n e x pr e s ar s e medi ant er el ac i ones .As í ,s e puededefi ni rl ar el ac i ón« suma»,q ue t i enet r esar gument osnumér i c os ,yques er áv er dader as ielt er c er oes l a suma de l os dos pr i mer os,de maner a que « suma(2,3,5) » e s v e r dader oy« suma(2,3,4) »e sf al s o.Sudefi ni c i ónex t ens i onal s er í a: suma(0,0,0). suma(0,1,1). suma(0,2,2). ...
Es f áci lcompr enderque est a maner a de pr ocedercar ece de ut i l i dad pr ác t i c a,c omo en elc as o de l asr el ac i onesde or den ent r e númer os. Oper ador es
Par a hac erv i abl es l asoper ac i ones ar i t mét i c as ,Pr ol og i nc or por a( o s ea,elpr oc es adorr ec onoc e)oper ador esar i t mé t i c osque,par amej or l egi bi l i dad,s ees c r i benc onnot ac i óni nfi j a:« +»,« -»,« *»y« /». Un t ér mi no en Pr ol og es, por ej empl o, « 6+7» ( equi v al ent e a+(6,7) ) .Per o,c omodec í amosalhabl ardel a sf un ci ones ,Pr ol og i nt er pr et a« 6+7» s i mpl ement e como una est r uct ur a,di f er ent e de
«13».Port ant ol ac ons ul t a« ?- 13=6+7. »o bt i enec omor es ul t ado «NO»,y«?- X=6+7. »da«X=6+7 ». Par ades enc adenarl aev al uac i ónar i t mét i c a ell enguaj ei nc or por a unpr edi c adoes pec i al i nfi j o:« is».
Ev a l ua ci óndee x pr e si one sa r i t mé t i c as
Elpr edi c ado « is» ,e s c r i t oc o nu na v a r i a bl eou na c o ns t a nt eas u i z qui er dayunae xpr es i ónar i t mé t i c aas uder ec ha,esv er dader os iel r e s ul t a do d ee v a l u arl ae x pr e s i ó ne si g ua la l ac o ns t a nt e ,o e s v e r dader o pa r a elv a l orde l av a r i ab l ei guala es er es ul t ado.Por ej empl o: ?- 13 is 6+7. YES ?- 13 is 6*7. NO ?- X is 6*7. X=42
En l ae x pr es i ón ar i t mé t i c a pu eden fi g ur arv a r i abl ess i empr e que es t asv ar i abl est enganunv al ordet er mi nadoale v al uarl ae xpr es i ón. Porej empl o,c onl ar egl a: meia(X,Y,!) "- ! is (X+Y)/2.
podemoshacerconsul t asc omo:
?- meia(10,16,X). X=13
per ol a «máqui na Pr ol og» ( el pr ocesador ej ecut ándose en un or denador )dar áuner r ors ipr egunt amos : ?- meia(X,16,13).
Un ej empl ot í pi codeluso de « is» e sl a defi ni c i ón r ec ur s i v adel f ac t or i aldeunnúmer onat ur al : #a$%(0,1). #a$%(N,&) "- N'0, Nmes1 is N-1, #a$%(Nmes1,&1), & is N*&1. ?- #a$%(5,X). X=120 ?- #a$%(-1,X). NO ?- #a$%(X,120). (mesae e e)
Un p ard ec l á us u l a s mu yú t i l e ss o nl a sq ue p er mi t e no bt e ne rl a l ongi t ud( númer odeel ement os )deunal i s t a: i%u(,0). i%u(,)"-i%u(,1), is 1+1.
?- i%u(a,,$,,X).
X=4
Añadi endoes t adefi ni c i óndel ongi t ud,porej empl o,al ases c r i t as má sa r r i b ap ar al ag en er a c i ó nd el i s t a sq ue r e pr e s en t a na l g un as f r as esenes pañol ,pod emospr egunt arporf r a s esc onunde t er mi nado númer odepal abr as: ?- se%e$ia(X),i%u(X,4). X=Esaa,es,u,es%a X=u,es%a,es,Esaa ?- se%e$ia(X),i%u(X,),3 NO