Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Função altera-para-inativo
- ; 1) Contrato:
- ; altera-para-inativo: Lista-de-empresas-inativas abp --> abp
- ; 2) Objetivo:
- ; 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.
- ; Caso não tenha um voo ativo, retornar normalmente a lista de voos/empresas.
- ; 3) Exemplos:
- ; (altera-para-inativo EI1 empty) produz empty
- ; (altera-para-inativo EI2 V1) produz (make-voo 0 1 'poa 'sp 0 'direto #false (make-voo 1 1 'poa 'sp 10 'direto #false '() '()) '())
- ; (altera-para-inativo (list E1 E2 E3) V3) produz (make-voo 3 3 'poa 'uru 8 'direto #false '() '())
- ; 4) Função:
- (define (altera-para-inativo lde abp)
- (cond
- [(empty? abp) empty]
- [(verifica-empresa lde (voo-identificação abp))(make-voo (voo-numero abp)
- (voo-identificação abp)
- (voo-origem abp)
- (voo-destino abp)
- (voo-horário abp)
- (voo-tipo abp)
- #false
- (altera-para-inativo lde (voo-esq abp))
- (altera-para-inativo lde (voo-dir abp)))]
- [else (make-voo (voo-numero abp)
- (voo-identificação abp)
- (voo-origem abp)
- (voo-destino abp)
- (voo-horário abp)
- (voo-tipo abp)
- (voo-ativo abp)
- (altera-para-inativo lde (voo-esq abp))
- (altera-para-inativo lde (voo-dir abp)))]))
- ; Função verifica-empresa
- ; 1) Contrato:
- ; altera-para-inativo: Lista-de-empresas identificação --> booleano
- ; 2) Objetivo:
- ; Dada uma empresa verificar se ela pertence ao conjunto de empresas desabilitadas. Se pertence retorna #true caso contrário retorna #false
- ; 3) Exemplos:
- ; (verifica-empresa EI1 empty) produz #false
- ; (verifica-empresa EI2 1) produz #true
- ; (verifica-empresa (list E1 E2 E3) 2) produz #true
- ; 4) Função:
- (define (verifica-empresa lde id)
- (cond
- [(empty? lde) #false]
- [(= id (empresa-identificação (first lde)))#true]
- [else (verifica-empresa (rest lde) id)]))
- ; 5) Testes:
- (check-expect(verifica-empresa (list E1 E2 E3) 2) #true)
- (check-expect(verifica-empresa EI1 1) #false)
- (check-expect(verifica-empresa empty 2) #false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement