Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6.71 KB | None | 0 0
  1. %Presentes de Natal
  2. /*
  3. Substituindo os nomes:
  4.  _________________________
  5. |   Atual   |   Original  |
  6. |-----------|-------------|
  7. |--willian--|---cristian--|
  8. |--marcos---|---mario-----|
  9. |--vitor----|---pedro-----|
  10. |- vinicius-|---eduardo---|
  11. |--paul-----|---alex------|
  12. +-------------------------+  
  13. */
  14.  
  15. go :- casas([A,B,C,D,E]),
  16.  
  17.             writeln("Casa 1:":A),
  18.             writeln("Casa 2:":B),
  19.             writeln("Casa 3:":C),
  20.             writeln("Casa 4:":D),
  21.             writeln("Casa 5:":E).
  22.                  
  23. %N: nome, I: idade, S: suco, P: profissao, PR: presente, CR: cor.
  24. casas( [(N1, I1, S1, P1, PR1, CR1),
  25.         (N2, I2, S2, P2, PR2, CR2),
  26.         (N3, I3, S3, P3, PR3, CR3),
  27.         (N4, I4, S4, P4, PR4, CR4),
  28.         (N5, I5, S5, P5, PR5, CR5)]):-
  29.        
  30.    
  31.     /* INFO CONHECIDA SOBRE NOMES */
  32.     nome(N1), nome(N2), nome(N3), nome(N4), nome(N5),
  33.     alldifferent([N1, N2, N3, N4, N5]),
  34.    
  35.     %18. Pedro mora na terceira casa.
  36.     N3 == vitor,
  37.    
  38.     %19. Eduardo mora exatamente à direita de Pedro. Eduardo == vinicius , Pedro == vitor.
  39.     (
  40.         (N1 == vitor, N2 == vinicius);
  41.         (N2 == vitor, N3 == vinicius);
  42.         (N3 == vitor, N4 == vinicius);
  43.         (N4 == vitor, N5 == vinicius)
  44.     ),
  45.    
  46.     /* INFO CONHECIDA SOBRE IDADES */
  47.     idade(I1), idade(I2), idade(I3), idade(I4), idade(I5),
  48.     alldifferent([I1, I2, I3, I4, I5]),
  49.    
  50.     %15. O menino mais novo mora na quinta casa.
  51.     I5 == 6,
  52.    
  53.     %16. O garoto de 10 anos está em algum lugar entre o de 7 e o de 9 anos, nessa ordem.
  54.     (
  55.         (I2 == 10, (I1 == 7, I3 == 9));
  56.         (I3 == 10, (I2 == 7, I4 == 9));
  57.         (I4 == 10, (I3 == 7, I5 == 9))
  58.     ),
  59.    
  60.     /* INFO CONHECIDA SOBRE SUCOS */
  61.     suco(S1), suco(S2), suco(S3), suco(S4), suco(S5),
  62.     alldifferent([S1, S2, S3, S4, S5]),
  63.    
  64.     %6. O menino que gosta de suco de laranja esta em uma das pontas
  65.     (S1 == laranja;S5 == laranja),
  66.    
  67.     %7.O garoto que gosta de limonada está exatamente à esquerda do que gosta de suco de Morango.
  68.     (
  69.         (S1 == limao, S2 == morango);
  70.         (S2 == limao, S3 == morango);
  71.         (S3 == limao, S4 == morango);
  72.         (S4 == limao, S5 == morango)
  73.     ),
  74.    
  75.     %9.Cristian gosta de suco de Limão.
  76.     (
  77.         (N1 == willian, S1 == limao);
  78.         (N2 == willian, S2 == limao);
  79.         (N3 == willian, S3 == limao);
  80.         (N4 == willian, S4 == limao);
  81.         (N5 == willian, S5 == limao)
  82.      ),
  83.    
  84.     /* INFO CONHECIDA SOBRE PROFISSOES */
  85.     profissao(P1), profissao(P2), profissao(P3), profissao(P4), profissao(P5),
  86.     alldifferent([P1, P2, P3, P4, P5]),
  87.    
  88.    
  89.     %1.O garoto que quer ser Bombeiro mora em alguma das casas das pontas.
  90.     (P1 == bombeiro ; P5 == bombeiro),
  91.    
  92.     %2.Quem gosta de Maracujá quer ser Médico.
  93.     (
  94.         (S1 == maracuja, P1 == medico);
  95.         (S2 == maracuja, P2 == medico);
  96.         (S3 == maracuja, P3 == medico);
  97.         (S4 == maracuja, P4 == medico);
  98.         (S5 == maracuja, P5 == medico)
  99.     ),
  100.      
  101.      %3. Na terceira casa está o garoto que quer ser Professor.
  102.     P3 == professor,
  103.    
  104.     %4. Em uma das pontas mora o menino que quer ser Policial.
  105.     (P1 == policial;P5 == policial),
  106.    
  107.     %5. Na quinta casa está o garoto que deseja ser Bombeiro quando crescer.
  108.     P5 == bombeiro,
  109.    
  110.     %8.Quem quer ser Médico está exatamente à direita de quem gosta de suco de Abacaxi.
  111.     (
  112.         (S1 == abacaxi, P2 == medico);
  113.         (S2 == abacaxi, P3 == medico);
  114.         (S3 == abacaxi, P4 == medico);
  115.         (S4 == abacaxi, P5 == medico)
  116.     ),
  117.    
  118.     %17. O garoto de 9 anos quer ser Professor quando crescer.
  119.     (
  120.         (I1 == 9, P1 == professor);
  121.         (I2 == 9, P2 == professor);
  122.         (I3 == 9, P3 == professor);
  123.         (I4 == 9, P4 == professor);
  124.         (I5 == 9, P5 == professor)
  125.     ),
  126.    
  127.     /* INFO CONHECIDA SOBRE PRESENTES */
  128.     presente(PR1), presente(PR2), presente(PR3), presente(PR4), presente(PR5),
  129.     alldifferent([PR1, PR2, PR3, PR4, PR5]),
  130.    
  131.     %10. O menino de 8 anos mora ao lado do que quer um Computador de presente.
  132.     (
  133.         (I1 == 8, PR2 == computador);
  134.         (I2 == 8, (PR1 == computador ; PR3 == computador));
  135.         (I3 == 8, (PR2 == computador ; PR4 == computador));
  136.         (I4 == 8, (PR3 == computador ; PR5 == computador));
  137.         (I5 == 8, PR4 == computador)
  138.     ),
  139.    
  140.     %11. O garoto que quer um Skate está exatamente à esquerda da casa do Alex.
  141.     (
  142.         (PR1 == skate, N2 == paul);
  143.         (PR2 == skate, N3 == paul);
  144.         (PR3 == skate, N4 == paul);
  145.         (PR4 == skate, N5 == paul)
  146.     ),
  147.    
  148.     %13. Na primeira casa mora o garoto que quer uma Bola de presente de natal.
  149.    
  150.     PR1 == bola,
  151.    
  152.     %14. Quem quer uma Bicicleta mora ao lado de quem deseja um Vídeo Game de presente.
  153.     (
  154.         (PR1 == bicicleta, PR2 == videogame);
  155.         (PR2 == bicicleta, (PR1 == videogame ; PR3 == videogame));
  156.         (PR3 == bicicleta, (PR2 == videogame ; PR4 == videogame));
  157.         (PR4 == bicicleta, (PR3 == videogame ; PR5 == videogame));
  158.         (PR5 == bicicleta, PR4 == bicicleta)
  159.     ),
  160.    
  161.     /* INFO CONHECIDA SOBRE CORES */
  162.     cor(CR1), cor(CR2), cor(CR3), cor(CR4), cor(CR5),
  163.     alldifferent([CR1, CR2, CR3, CR4, CR5]),
  164.    
  165.     %12. Na casa de cor Branca mora o menino que deseja um Vídeo Game de natal.
  166.     (
  167.         (PR1 == videogame, CR1 == branca);
  168.         (PR2 == videogame, CR2 == branca);
  169.         (PR3 == videogame, CR3 == branca);
  170.         (PR4 == videogame, CR4 == branca);
  171.         (PR5 == videogame, CR5 == branca)
  172.     ),
  173.    
  174.     %20. Eduardo mora na casa de cor Verde.
  175.     (
  176.         (N1 == vinicius, CR1 == verde);
  177.         (N2 == vinicius, CR2 == verde);
  178.         (N3 == vinicius, CR3 == verde);
  179.         (N4 == vinicius, CR4 == verde);
  180.         (N5 == vinicius, CR5 == verde)
  181.     ),
  182.    
  183.     %21. A casa de cor Branca está exatamente à esquerda da casa do menino que gosta de suco de Maracujá.
  184.     (
  185.         (CR1 == branca, S2 == maracuja);
  186.         (CR2 == branca, S3 == maracuja);
  187.         (CR3 == branca, S4 == maracuja);
  188.         (CR4 == branca, S5 == maracuja)
  189.     ),
  190.    
  191.     %22. A casa de cor Azul está exatamente à esquerda da casa do garoto que quer um Vídeo Game.
  192.     (
  193.         (CR1 == azul, PR2 == videogame);
  194.         (CR2 == azul, PR3 == videogame);
  195.         (CR3 == azul, PR4 == videogame);
  196.         (CR4 == azul, PR5 == videogame)
  197.     ),
  198.    
  199.     %23. A primeira casa é Amarela.
  200.     CR1 == amarela.
  201.  
  202. %-----FATOS-----
  203.  
  204.  
  205. cor(amarela).
  206. cor(azul).
  207. cor(branca).
  208. cor(verde).
  209. cor(vermelha).
  210.  
  211. %Nomes
  212.  
  213. /*
  214.  _________________________
  215. |   Atual   |   Original  |
  216. |-----------|-------------|
  217. |--willian--|---cristian--|
  218. |--marcos---|---mario-----|
  219. |--vitor----|---pedro-----|
  220. |- vinicius-|---eduardo---|
  221. |--paul-----|---alex------|
  222. +-------------------------+  
  223. */
  224.  
  225. nome(willian).
  226. nome(marcos).
  227. nome(vitor).
  228. nome(vinicius).
  229. nome(paul).
  230.  
  231.  
  232. idade(6).
  233. idade(7).
  234. idade(8).
  235. idade(9).
  236. idade(10).
  237.  
  238. presente(bola).
  239. presente(bicicleta).
  240. presente(videogame).
  241. presente(skate).
  242. presente(computador).
  243.  
  244. suco(limao).
  245. suco(maracuja).
  246. suco(morango).
  247. suco(abacaxi).
  248. suco(laranja).
  249.  
  250. profissao(policial).
  251. profissao(astronauta).
  252. profissao(professor).
  253. profissao(medico).
  254. profissao(bombeiro).
  255. %-------------------
  256. alldifferent([]).
  257. alldifferent([H|T]):- not(member(H,T)),
  258.                       alldifferent(T).
  259. %Fim
  260. %                       ☆*:.. o(≧▽≦)o ..:*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement