Examen Parcial - 75.23. Inteligencia Artificial - 29/11/2008

Cátedra: Cabrera
Fecha: 1ra Oportunidad - (2do Cuatrimestre) 2008
Día: 29/11/2008

Enunciado

Definir un predicado que ordene una lista.

Resolución

domains
	lint = integer*.
predicates
	nondeterm minimo (lint,integer).
	nondeterm menor (integer,integer,integer).
	nondeterm remover (lint,integer,lint).
	nondeterm ordenar (lint,lint).
clauses
	menor(X,Y,Z):-X<Y,Z=X,!.
	menor(_,Y,Y).
	minimo([Ca|[Ca1|Co]],X):-Ca1<Ca,minimo([Ca|Co],Y),menor(Ca1,Y,X).
	minimo([Ca|[Ca1|Co]],X):-Ca<=Ca1,minimo([Ca1|Co],Y),menor(Ca,Y,X).
	minimo([Ca],Ca).
	remover([Ca],Ca,[]).
	remover([Ca|Co],Ca,Co).
	remover([Ca|Co],X,[Ca|L1]):-Ca<>X,remover(Co,X,L1).
	ordenar([Ca],[Ca]):-!.
	ordenar([Ca|Co],[X|L2]):-minimo([Ca|Co],X),remover([Ca|Co],X,L1),ordenar(L1,L2).
goal
	ordenar([2,1,5,3,7],L).

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.
materias/75/23/parcial_0_20081129_1.txt · Última modificación: 2011/11/07 23:55 por loonatic
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki