I need to generate a substring in the prolog language

1

I have a program that takes out suffixes and prefixes, but now I want to generate a sub-string and I still do not understand the prolog language.

I only have this:

principio:-
    write("Queremos saber cual es la cadena "),
    read(Cad),
    string_chars(Cad,Lista),
    write(Lista),
    length(Lista,Tam),
    write("&"),nl,
    prefijos(Lista,0,Tam),
    reverse(Lista,Listainv),nl,
    length(Lista,Nte),
    espacios(Nte),
    write("&"),nl,
    sufijos(Listainv,0,Tam).

imprimir([]).
imprimir([Ca|Co]):-
    write(Ca),
    imprimir(Co).

espacios(0).
espacios(Ne):-
    write("  "),
    Nef is Ne-1,
    espacios(Nef).

obtener(_,0,Ls,Tam):-
    length(Ls,Tax),
    Ce is Tam-Tax,
    espacios(Ce),
    imprimir(Ls),
    nl.

obtener(Lista,Nsuf,Ls,Tam):-
    Lista=[Ca|Cola],
    Lsa=[Ca|Ls],
    Nsufa is Nsuf-1,
    obtener(Cola,Nsufa,Lsa,Tam).

sufijos(_,Nsuf,Tam):-
      Nsuf>Tam.

sufijos(Lista,Nsuf,Tam):-

        obtener(Lista,Nsuf,[],Tam),
    Nsufa is Nsuf+1,
    sufijos(Lista,Nsufa,Tam).


reducir(_,0):-
    nl,!.

reducir(Vector,Nupre):-
    Vector=[Cab|Cola],
    write(Cab),
    Nuprea is Nupre-1,
    reducir(Cola,Nuprea).

prefijos(Vector,Nupre,Cont):-
    Nupre=<Cont,
    reducir(Vector,Nupre),
    Nuprea is Nupre+1,
    prefijos(Vector,Nuprea,Cont).

prefijos(_,_,Cont):-
    tab(5),
    write("El total de prefijos fue "),
    write(Cont).
    
asked by Juanita Chavez 22.02.2018 в 23:57
source

1 answer

0
iniciar:-
    write("Ingrese la cadena "),
    read(C),nl,
    string_chars(C,Cad),
    length(Cad,Len),
    subCadena(Cad,Len).

% This logic is similar to an iterative block nested in structured programming, for example a DO While within a DO While.

subCadena(_,0):-
    write("FINAL").
subCadena([H|T],Len):-
    subC([H|T],Len),
    Lenn is Len - 1,
    subCadena(T,Lenn).

subC(_,0):-nl.
subC(Cad, Len):-
    string_codes(String,Cad),
    write(String),write(".."),
    Lenn is Len - 1,
    reverse(Cad,[_|T]),
    reverse(T,L),
    subC(L,Lenn).

Greetings.

    
answered by 09.07.2018 в 22:30