A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Adriano Castro Guilherme Morisson Maycon Braga Rodrigo Marangon

Apresentações semelhantes


Apresentação em tema: "Adriano Castro Guilherme Morisson Maycon Braga Rodrigo Marangon"— Transcrição da apresentação:

1 Adriano Castro Guilherme Morisson Maycon Braga Rodrigo Marangon
Prolog Adriano Castro Guilherme Morisson Maycon Braga Rodrigo Marangon

2 Problema Faça um programa Prolog para projetar uma unidade comercial de salas, obedecendo à seguinte especificação: A unidade deve ser composta de duas salas retangulares; Cada sala terá uma janela e uma porta interna (levando à outra sala); As salas serão conectadas pela porta interna; Uma das salas também terá uma porta externa (dando para o hall dos elevadores); Uma parede de sala só pode ter uma janela ou porta (não ambas); Nenhuma janela pode estar voltada para o lado norte; Não deverá haver janelas em lados opostos da unidade.

3 Janela Válida /*Si(Norte,Sul,Leste,Oeste).*/ /*janela_valida*/
j_v(X):- X = sul. j_v(X):- X = leste. j_v(X):- X = oeste.

4 Porta Interna Válida p_i_v(Y):- Y = norte. p_i_v(Y):- Y = sul. p_i_v(Y):- Y = leste. p_i_v(Y):- Y = oeste.

5 Porta ExternaVálida p_e_v(Z):- Z = norte. p_e_v(Z):- Z = sul. p_e_v(Z):- Z = leste. p_e_v(Z):- Z = oeste.

6 ...contrário! contrario(norte,sul). contrario(sul,norte). contrario(leste,oeste). contrario(oeste,leste).

7 Validações de Sala /*sala_interna_valida*/ s_i_v(p_e_v(Pei),j_v(Ji)):- p_e_v(Pei), j_v(Ji), Pei \= Ji. /*sala_externa_valida*/ s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)):- p_e_v(Pee),p_i_v(Pie), j_v(Je), (Pee \= Je), (Pee \= Pie), (Pie \=Je).

8 Unidade Válida u_v(s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)),s_i_v(p_e_v(Pei),j_v(Ji))):- s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)), s_i_v(p_e_v(Pei),j_v(Ji)), not contrario(Je,Ji), contrario(Pie,Pei).

9 Código Final /*Si(Norte,Sul,Leste,Oeste).*/ /*janela_valida*/ j_v(X):- X = sul. j_v(X):- X = leste. j_v(X):- X = oeste. /*porta_interna_valida*/ p_i_v(Y):- Y = norte. p_i_v(Y):- Y = sul. p_i_v(Y):- Y = leste. p_i_v(Y):- Y = oeste. /*porta_externa_valida*/ p_e_v(Z):- Z = norte. p_e_v(Z):- Z = sul. p_e_v(Z):- Z = leste. p_e_v(Z):- Z = oeste. contrario(norte,sul). contrario(sul,norte). contrario(leste,oeste). contrario(oeste,leste). /*sala_interna_valida*/ s_i_v(p_e_v(Pei),j_v(Ji)):- p_e_v(Pei), j_v(Ji), Pei \= Ji. /*sala_externa_valida*/ s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)):- p_e_v(Pee),p_i_v(Pie), j_v(Je), (Pee \= Je), (Pee \= Pie), (Pie \=Je). /*unidade_valida*/ u_v(s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)),s_i_v(p_e_v(Pei),j_v(Ji))):- s_e_v(p_e_v(Pee),j_v(Je),p_i_v(Pie)), s_i_v(p_e_v(Pei),j_v(Ji)), not contrario(Je,Ji), contrario(Pie,Pei). /*si(janela,porta).*/ /*unidade_valida(Si,Se).*/


Carregar ppt "Adriano Castro Guilherme Morisson Maycon Braga Rodrigo Marangon"

Apresentações semelhantes


Anúncios Google