Foros del Web » Programación para mayores de 30 ;) » Programación General »

Código variables iguales en una lista!!!!

Estas en el tema de Código variables iguales en una lista!!!! en el foro de Programación General en Foros del Web. Chicos miren, implementé este código, lo que quiero que haga es que verifique si en una lista hay al menos dos elementos que son iguales, ...
  #1 (permalink)  
Antiguo 24/07/2009, 13:01
Avatar de marliesmartinez  
Fecha de Ingreso: marzo-2008
Mensajes: 38
Antigüedad: 16 años, 1 mes
Puntos: 0
Código variables iguales en una lista!!!!

Chicos miren, implementé este código, lo que quiero que haga es que verifique si en una lista hay al menos dos elementos que

son iguales, a la vez que encuentre al menos dos iguales quiero que salga y deje a la variable C igual a 1.

Pero me está dando error cuando le doy compilar,alquien me podría orientar en qué tengo mal en el código. Aquí se los dejo

comentariado para que vean que pretendo en cada línea. El predicado Verifica_iguales le paso una lista y una variable C en la

que debe devolver 1 si encuentra o 0 sino encuentra. Ayúdenme soy nueva en prolog!!!
Gracias de antemano.







Verifica_iguales([],0). % Si recorrió la lista completa y no hay iguales entonces C=0

Verifica_iguales(L,1):-!. % Si C = 1, encontró algo, entonces sale.

Verifica_iguales([X/L],C):-

pertenece(X,L,C), %Verif igual, Dev C=1 encontró, C=0 no encontró.
Busca_iguales(L,C). %LLama recurs a la función hasta que C=1 o L=[].



pertenece(X,[],0). %Si recorrió toda la lista y no encontró, C=0.

pertenece(X,[X|_],1):-!. %comp a X con c/a elemt de la lista, si encuen C=1 y sale.

pertenece(X,[_|L1],C) :- pertenece(X,L1,C). %Sino, C sigue sin valor, y llamo a la

%función recursivamente con el resto de los elementos de la lista.



El error que me da al compilar es:

! ----------------------------------------
! Error 23 : Type Error
! Goal : def([],2,_30748)

Aborted
| ?-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.