You are on page 1of 15

EJERCICIOS

1. CALCULAR EL PROMEDIO
/*************************************************************************
****

Copyright (c) My Company

Project: ASASA
FileName: ASASA .PRO
Purpose: No description
Written by: Visual Prolog
Comments:
**************************************************************************
****/

include "asasa .inc"

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

Ingresar la talla de n estudiantes (en centímetros), calcular el promedio de los estudiantes.


Luego si el promedio en mayor 170cm mostrar “Estudiantes altos”, si en menor o igual a
170cm mostrar “Estudiantes normales” y si es menor a 150cm mostrar “Estudiantes
pequeños”.

/*****************************************************************************

Copyright (c) My Company

Project: ASASA

FileName: ASASA .PRO

Purpose: No description

Written by: Visual Prolog

Comments:

******************************************************************************/

include "asasa .inc"

Domains

nro = real

Predicates

nondeterm sumasu(nro, nro)

nondeterm ingresar(nro)

nondeterm leer(nro)

nondeterm mostrar(nro)

nondeterm promedio(nro,nro)

nondeterm comparar(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: "), readreal(Num).

ingresar(Nume):-write("Ingrese la cantidad de numeros que desee sumar: "),readreal(Nume).

mostrar(Num):-write("El resultado es: ", Num).

promedio(Num,Num1):-NewNum= Num/Num1, write("El promedio es: ", NewNum).

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.

main:-write("SUMAS SUCESIVAS: "), nl,ingresar(X) ,sumasu(X,


Suma),mostrar(Suma),nl,promedio(Suma,X),comparar(X) ,nl, fail.

GOAL

main.
3. FACTORIZACIÓN

/*************************************************************************
****

Copyright (c) My Company

Project: ASASA

FileName: ASASA .PRO

Purpose: No description

Written by: Visual Prolog

Comments:

******************************************************************************/

include "asasa .inc"

Domains

nro = integer

Predicates

nondeterm factorial(nro,nro)

leer(nro)

mostrar(nro)

main.

Clauses

factorial(1,1). %simbolo de Parada

factorial(Num,Fact):-Num>1, NewNum=Num-1,

factorial(NewNum,NewFact), Fact=Num*NewFact.

leer(X):-write("ingrese Nro: "), readint(X).


mostrar(S):-write("El Factorial es: ", S), nl.

main:-write("FACTORIAL DE UN NÚMERO: "), nl, leer(Num),

factorial(Num,Fact), mostrar(Fact), fail.

main:-write("DESEA CONTINUAR S/N: "),readint(_).

goal

main.
4. A continuación se muestra un programa que suma los números pares de un número
ingresado.

/*************************************************************************
****

Copyright (c) My Company

Project: ASASA
FileName: ASASA .PRO
Purpose: No description
Written by: Visual Prolog
Comments:
**************************************************************************
****/

include "asasa .inc"

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.

/*****************************************************************************

Copyright (c) My Company

Project: SASAS

FileName: SASAS.PRO

Purpose: No description

Written by: Visual Prolog

Comments:

******************************************************************************/

include "sasas.inc"

domains

i,j=integer

predicates

mayor(i,j)

main

clauses

mayor(X,Y):-X>Y,write(X,":es mayor que: ",Y),nl,!.

mayor(X,Y):-X<Y,write(X,":es menor que: ",Y),nl,!.

main:- write("Ingrese numero1:"), readint(X),

write("Ingrese numero2:"), readint(Y),

mayor(X,Y).

goal

main.
6. EJERCICIO

UTILIZANDO OPERADOR LOGICO OR.

En el siguiente ejercicio se lista todo lo que compran cuando se elige jugo o lo que no se compra.

/*****************************************************************************

Copyright (c) My Company

Project: E

FileName: E.PRO

Purpose: No description

Written by: Visual Prolog

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

siemprecompra(X,Y) :- compra(X,Y) or compra(Y,X).

siemprenocompra(X,Y) :- nocompra(X,Y) or nocompra(Y,X).

nocompratotal(X,Y) :- siemprenocompra(X,Y) or

siemprecompra(X,Z) and siemprenocompra(Z,Y).

compratotal(X,Y) :- siemprecompra(X,Y).

goal

compratotal(jugo,Compra)or nocompratotal(jugo,Nocompra).

You might also like