% PROGRAMAS VARIOS %_________________________________ mitad([ H | _ ], 0, H). mitad([ _ | R ], N, Mitad):- N1 is N -1, mitad(R, N1, Mitad). obten_medio([ ], -1). obten_medio(Lista, Medio):- cuenta(Lista, 0, Total), Mitad is Total // 2, mitad(Lista, Mitad, Medio). cuenta([ ] , R, R). cuenta([ _ | R ], Cont, Total):- Contnew is Cont + 1, cuenta(R, Contnew, Total). ultimo([ ], -1). ultimo([ H | Resto ], Resp):- vacio(Resto, H, Resp). ultimo([ _ | Resto ], Resp):- ultimo(Resto, Resp). vacio([ ], H,H).