• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kumppler

Prolog, ajuda

1 mensagem neste tópico

Bom, estou com um problema em prolog

o objetivo é fazer um 'teste vocacional'

para isso  o programa imprime perguntas na tela, e de acordo com elas faz as profissoes

inicialmente eu estou guardando essas respostas em uma lista.

o problema é que a condiçao if else , aparentemente nao funciona em uma parte do programa, e na outra funciona

enesimo busca a resposta numero X na lista

em italico é a parte q esta funiconando, em negrito nao funciona

gostaria de saber o porque, ou alguma outra alternativa

obrigado

profissao([],_).

profissao([H|T],X):-

profissao(T,X),

H=='biologia'->

biologia(X);

H=='matematica'->

matematica(X);

H=='historia'->

historia(X);

H=='nenhuma'->

write('moda').

historia(L):-

enesimo(3,X,L),

X=='sim'->

write('politica ou filosofia');

enesimo(2,Y,L),

X=='sim'->

write('jornalismo');

write('professor').

biologia([]).

biologia([H|_]):-

H=='nao'->

write('medico');

write('veterinario').

matematica(L):-

enesimo(6,X,L),

X=='sim'->

write('engenheiro');

write('matematico').

enesimo(1,A,[A|_]).

enesimo(N,A,[_|Y]):-

enesimo(M,A,Y),

N is M+1.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora