Demo entry 4809265

ejercicio

   

Submitted by anonymous on May 19, 2016 at 04:46
Language: Prolog. Code size: 2.2 kB.

lugar(p1(X1,Y1),1):-X1>0,Y1>0,!.
lugar(p1(X1,Y1),2):-X1<0,Y1>0,!.
lugar(p1(X1,Y1),3):-X1<0,Y1<0,!.
lugar(p1(X1,Y1),4):-X1>0,Y1<0,!.

lugar(p2(X1,Y1),1):-X1>0,Y1>0,!.
lugar(p2(X1,Y1),2):-X1<0,Y1>0,!.
lugar(p2(X1,Y1),3):-X1<0,Y1<0,!.
lugar(p2(X1,Y1),4):-X1>0,Y1<0,!.


mismoCuadrante(P1,P2):-lugar(P1,L1),lugar(P2,L1).
%%verificamos el lugar de P1, en L1, luego verificamos el lugar de P2, con L1.

estaDentro(punto(X,Y),R):-X<R,Y<R,!.
%%Entendemos que solo admitiremos numeros enteros, el punto esta dentro siempre y cuando
%%tanto la cordenada X y Y, sean menores que el radio R.

enEjeX(punto(_,0)).
enEjeY(punto(0,_)).
sobreEjesDiferentes(P1,P2):-enEjeX(P1),enEjeY(P2);enEjeX(P2),enEjeY(P1).
%%estan en ejes diferentes cuando los puntos estan en Y, o en X.

lugaresDif(P1,P2,P3):-not(mismoCuadrante(P1,P2);mismoCuadrante(P1,P3);mismoCuadrante(P2,P3)).
%%comparamos los pares posibles, si estan en el mismo cuadrante, si algun par
%%esta en el mismo lugar, dara true, entonces Negamos.

distancia(p1(X1,Y1),p2(X2,Y2),Dist):-sqrt(((X2-X1)**2)+((Y2-Y1)**2),Dist).
%%Calculamos la distancia usando el teorema de pitagoras y la funcion sqrt(Y,Z).

puntoMedio(p1(X1,Y1),p2(X2,Y2),pm(XM,YM)):-XM is ((X2-X1)/2)+X1, YM is ((Y2-Y1)/2)+Y1.
%%resta de las cordenadas, esto dividido entre 2 y sumandole la primera cordenada.

%%RECTAS

vertical(r(p1(X1,_),p2(X2,_))):-X1=:=X2.
%%una recta es vertical si sus cordenadas X son iguales.

horizontal(p1(_,Y1),p2(_,Y2)):-Y1=:=Y2.
%%una recta es horizontal si sus cordenadas Y son iguales.

pendiente(r(p1(X1,Y1),p2(X2,Y2)),Pend):-Pend is (Y2-Y1)/(X2-X1).
%%calculamos la pendiente usando el concepto de pendiente, se entiende que se inserta
%una recta no vertical.
%% "r" es para que la regla solo tenga dos parametros, para poder usarla con paralelas.

paralelas(R1,R2):-not(vertical(R1)),!,not(vertical(R2)),!,pendiente(R1,Pend1),pendiente(R2,Pend1).

%%2 rectas son paralelas si sus pendientes son iguales.

perpendiculares(R1,R2):-pendiente(R1,Pend1),pendiente(R2,Pend2),(Pend1*Pend2)=:=(-1).
%%2 rectas son perpendiculares si el producto de sus pendientes es -1.

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).