Muestra en pantalla el uso de todas las funciones matemáticas de prolog
Enviado por karoljose • 20 de Mayo de 2012 • Tarea • 1.758 Palabras (8 Páginas) • 911 Visitas
PROBLEMA 1
Muestra en pantalla el uso de todas las funciones matemáticas de prolog.
SOLUCION
goal
Y1 = sin(90*3.141516/180), % Seno 90 = 0.9999999993
writef("Seno 90 = %f",Y1),
Y2 = cos(90*3.141516/180),nl,
writef("Cos 90 = %f",Y2),nl, % Cos 90 = 0.0000383268
Y3 = arctan(1)*180/3.141516,
writef("ArcoTangente de 1 = %f",Y3),nl, % ArcoTangente de 1 = 45.0010980086
Y4 = ln(2.718281),/*logaritmo natural de e en base e*/
writef("Ln 2.718281 = %f",Y4),/*1*/nl,
Y5 = log(10),/*logaritmo en base 10 de 10*/
writef("log 10 = %f",Y5),/*1*/nl,
Y6 = exp(1),/*e elevado a 1*/
writef("Exp 1 = %f",Y6),/*1*/nl,
Y7 = sqrt(2),
writef("Raiz cuadrado de 2 = %f",Y7),/*1.414213*/nl,
Y8 = round(16.5),
writef("Redondear al entero 16.5 = %f",Y8),/*17*/nl,
Y9 = trunc(16.5),
writef("Truncar 16.5 a la parte entera = %f",Y9),/*16*/nl,
Y10 = abs(-15),
writef("Valor absoluto de -15 = %d",Y10),/*15*/nl,
readln(_).
PROBLEMA 2
Convertir una coordenada cartesiana a coordenada polar.
SOLUCION
domains
r=real
predicates
convertir(r,r)
clauses
convertir(X,Y):- W=Y/X, A=arctan(W),
Z=X*X+Y*Y, R=sqrt(Z),
write(R),nl, write(A).
goal
write("ingrese X="),
readreal(X),
write("Ingrese Y="),
readreal(Y),
convertir(X,Y),
readln(_).
domains
r = real
predicates
regla(r,r)
clauses
regla(X,Y):- X <> 0,
D = X * X + Y * Y,
R = round(sqrt(D)),
A = round(arctan(Y/X) * 180 / 3.141516),
write("RADIO = ",R),nl,
write("ANGULO = ",A),!.
regla(_,_):- write("X TIENE QUE SER DIFERENTE CERO"),!.
goal
write("INGRESE X = "), readreal(X),
write("INGRESE Y = "), readreal(Y),
regla(X,Y),
readln(_).
PROBLEMA 3
Hallar la potencia Y = X N donde X = 2, N = 5.
SOLUCION
goal
X = 2,
N = 5,
A = N * ln(X),
Y = exp(A),
write("Potencia = ",Y),
readln(_).
domains
r = real
predicates
regla(r,r)
clauses
regla(B,N):- B >= 0,
Y = exp(N * ln(B)),
write("Y = ",Y),!.
regla(_,_):- write("LA BASE TIENE QUE SER POSITIVOS MAYORES QUE CERO"),!.
goal
write("INGRESE BASE = "), readreal(B),
write("INGRESE EXPONENTE = "), readreal(N),
regla(B,N),
readln(_).
PROBLEMA 4
N
Hallar la potencia Y = X donde X = 2 , N = 0.5.
SOLUCION
goal
X = 2,
N = 0.5,
A = N * ln(X),
Y = exp(A),
write("Potencia = ",Y),
readln(_).
PROBLEMA 5
Hacer una regla que halle la potencia de un numero real cualquiera elevado a un exponente también real cualquiera. La regla tendrá 3 argumentos en 2 de ellos recibe la base y el exponente y en el tercer argumento regresa la potencia.
SOLUCION
domains
r = real
predicates
potencia(r,r,r)
clauses
potencia(P,X,N):- Z = N * ln(X),
P = exp(Z).
goal
write("Ingrese X = "),readreal(X),
write("Ingrese N = "),readreal(N),
potencia(P,X,N),
write("Potencia = ",P),
readln(_).
PROBLEMA 6
Hacer la deducción de la formula para obtener la potencia de cualquier numero.
SOLUCION
Y = X N
LN(Y) = LN(X N )
LN(Y) = N * LN(X)
Y = E N * LN(X)
ENTONCES Y = EXP(N*LN(X))
PROBLEMA 7
Hacer un programa que dado un X. Hallar
|X| + log(10)
Y = ---------------
3 ___
\/ X
SOLUCION
domains
r = real
predicates
funcion(r)
calculo(r,r)
potencia(r,r,r)
clauses
funcion(X):- X<>0,X>0, % La intersección es X>0
calculo(X,Y),
write("Y
...