Professional Documents
Culture Documents
1. CALCULAR EL PROMEDIO
/*************************************************************************
****
Project: ASASA
FileName: ASASA .PRO
Purpose: No description
Written by: Visual Prolog
Comments:
**************************************************************************
****/
Domains
nro = integer
Predicates
nondeterm sumasu(nro, nro)
ingresar(nro)
leer(nro)
mostrar(nro)
promedio(nro,nro)
main
Clauses
sumasu(Veces,Suma):-Veces>0, NewVeces=Veces-1, leer(Num),
sumasu(NewVeces,NewSuma), Suma=NewSuma+Num.
sumasu(0,0).
leer(Num):-write("Ingrese Número: "), readint(Num).
ingresar(Nume):-write("Ingrese la cantidad de numeros que desee sumar:
"),readint(Nume).
mostrar(Num):-write("El resultado es: ", Num).
promedio(Num,Num1):-NewNum= Num/Num1, write("El promedio es: ", NewNum).
main:-write("SUMAS SUCESIVAS: "), nl,ingresar(X) ,sumasu(X,
Suma),mostrar(Suma),nl,promedio(Suma,X),nl, fail.
GOAL
main.
OTRO EJERCICIO DE PROMEDIO
/*****************************************************************************
Project: ASASA
Purpose: No description
Comments:
******************************************************************************/
Domains
nro = real
Predicates
nondeterm ingresar(nro)
nondeterm leer(nro)
nondeterm mostrar(nro)
nondeterm promedio(nro,nro)
nondeterm comparar(nro)
main
Clauses
sumasu(NewVeces,NewSuma), Suma=NewSuma+Num.
sumasu(0,0).
comparar(A):-A>1.70,write("Estiduantes altos"),nl.
comparar(A):-A<=1.70,A>=1.50,write("Estudiantes normales"),nl.
comparar(A):-A<1.50,write("Estudiantes pequeños"),nl.
GOAL
main.
3. FACTORIZACIÓN
/*************************************************************************
****
Project: ASASA
Purpose: No description
Comments:
******************************************************************************/
Domains
nro = integer
Predicates
nondeterm factorial(nro,nro)
leer(nro)
mostrar(nro)
main.
Clauses
factorial(Num,Fact):-Num>1, NewNum=Num-1,
factorial(NewNum,NewFact), Fact=Num*NewFact.
goal
main.
4. A continuación se muestra un programa que suma los números pares de un número
ingresado.
/*************************************************************************
****
Project: ASASA
FileName: ASASA .PRO
Purpose: No description
Written by: Visual Prolog
Comments:
**************************************************************************
****/
Domains
nro = integer
Predicates
nondeterm sumapar(nro,nro).
Clauses
sumapar(0,0). %predicado de parada
sumapar(Num,Suma):- Num>0, Num mod 2 = 0, NewNum=Num-1,
sumapar(NewNum,NewSuma), Suma=NewSuma+Num.
sumapar(Num,Suma):- Num>0, Num mod 2 = 1, NewNum=Num-1,
sumapar(NewNum,Suma).
GOAL sumapar(7, X).
5. Ingresar 2 números y calcular el mayor y menor número.
/*****************************************************************************
Project: SASAS
FileName: SASAS.PRO
Purpose: No description
Comments:
******************************************************************************/
include "sasas.inc"
domains
i,j=integer
predicates
mayor(i,j)
main
clauses
mayor(X,Y).
goal
main.
6. EJERCICIO
En el siguiente ejercicio se lista todo lo que compran cuando se elige jugo o lo que no se compra.
/*****************************************************************************
Project: E
FileName: E.PRO
Purpose: No description
Comments:
******************************************************************************/
include "e.inc"
predicates
nondeterm compra(symbol,symbol).
nondeterm nocompra(symbol,symbol).
nondeterm siemprecompra(symbol,symbol).
nondeterm siemprenocompra(symbol,symbol).
nondeterm nocompratotal(symbol,symbol).
nondeterm compratotal(symbol,symbol).
clauses
compra(azucar,yerba).
compra(jugo,pan).
compra(jugo,mani).
compra(jugo,papitas).
nocompra(yerba,te).
nocompra(vino,jugo).
nocompra(azucar,edulcorante).
nocompra(edulcorante,lecheentera).
nocompra(azucar,lechedescremada).
nocompra(mani,lechedescremada).
nocompratotal(X,Y) :- siemprenocompra(X,Y) or
compratotal(X,Y) :- siemprecompra(X,Y).
goal
compratotal(jugo,Compra)or nocompratotal(jugo,Nocompra).