Advertisement
Guest User

ex1

a guest
Jun 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. ; Função altera-para-inativo
  2.  
  3. ; 1) Contrato:
  4. ; altera-para-inativo: Lista-de-empresas-inativas abp --> abp
  5. ; 2) Objetivo:
  6. ; Dada uma lista de empresas desabilitadas (testadas se pertencentes na função verifica-empresa) e todos os voos do sistema, mudar todos os voos ativos para inativos.
  7. ; Caso não tenha um voo ativo, retornar normalmente a lista de voos/empresas.
  8. ; 3) Exemplos:
  9. ; (altera-para-inativo EI1 empty) produz empty
  10. ; (altera-para-inativo EI2 V1) produz (make-voo 0 1 'poa 'sp 0 'direto #false (make-voo 1 1 'poa 'sp 10 'direto #false '() '()) '())
  11. ; (altera-para-inativo (list E1 E2 E3) V3) produz (make-voo 3 3 'poa 'uru 8 'direto #false '() '())
  12. ; 4) Função:
  13.  
  14. (define (altera-para-inativo lde abp)
  15. (cond
  16. [(empty? abp) empty]
  17. [(verifica-empresa lde (voo-identificação abp))(make-voo (voo-numero abp)
  18. (voo-identificação abp)
  19. (voo-origem abp)
  20. (voo-destino abp)
  21. (voo-horário abp)
  22. (voo-tipo abp)
  23. #false
  24. (altera-para-inativo lde (voo-esq abp))
  25. (altera-para-inativo lde (voo-dir abp)))]
  26. [else (make-voo (voo-numero abp)
  27. (voo-identificação abp)
  28. (voo-origem abp)
  29. (voo-destino abp)
  30. (voo-horário abp)
  31. (voo-tipo abp)
  32. (voo-ativo abp)
  33. (altera-para-inativo lde (voo-esq abp))
  34. (altera-para-inativo lde (voo-dir abp)))]))
  35.  
  36.  
  37.  
  38. ; Função verifica-empresa
  39.  
  40. ; 1) Contrato:
  41. ; altera-para-inativo: Lista-de-empresas identificação --> booleano
  42. ; 2) Objetivo:
  43. ; Dada uma empresa verificar se ela pertence ao conjunto de empresas desabilitadas. Se pertence retorna #true caso contrário retorna #false
  44. ; 3) Exemplos:
  45. ; (verifica-empresa EI1 empty) produz #false
  46. ; (verifica-empresa EI2 1) produz #true
  47. ; (verifica-empresa (list E1 E2 E3) 2) produz #true
  48. ; 4) Função:
  49.  
  50. (define (verifica-empresa lde id)
  51. (cond
  52. [(empty? lde) #false]
  53. [(= id (empresa-identificação (first lde)))#true]
  54. [else (verifica-empresa (rest lde) id)]))
  55.  
  56. ; 5) Testes:
  57. (check-expect(verifica-empresa (list E1 E2 E3) 2) #true)
  58. (check-expect(verifica-empresa EI1 1) #false)
  59. (check-expect(verifica-empresa empty 2) #false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement