Advertisement
marcoaav

Untitled

May 28th, 2018
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.90 KB | None | 0 0
  1. (define CONT5 (list "Pagina" "sem" "conteudo" ":("))
  2. (define PAG5 (make-pag-web "Pagina 5" CONT5))
  3. (define CONT4 (list "Outro" "Site" PAG5))
  4. (define PAG4 (make-pag-web "Pagina 4" CONT4))
  5. (define CONT3 (list "Imagens" (circle 10 "solid" "black")(circle 10 "solid" "blue")))
  6. (define PAG3 (make-pag-web "Pagina 3" CONT3))
  7. (define CONT2 (list "Links" PAG3 PAG4))
  8. (define PAG2 (make-pag-web "Pagina 2" CONT2))
  9. (define CONT1 (list "Site" "Exemplo" PAG2))
  10. (define PAG1 (make-pag-web "Pagina 1" CONT1))
  11.  
  12. ;; profundidade: pag-web → Número
  13. ;; Dada uma Página web devolve o número máximo de níveis que ela contém
  14. ;; Exemplos:
  15. ;; (profundidade PAG1) = 3
  16. ;; (profundidade PAG2) = 2
  17.  
  18. (define(profundidade p)
  19.   (cond
  20.     [(= 0 (procuraPag (pag-web-conteudo p)))0]
  21.     [else (procuraPag(pag-web-conteudo p)) ]
  22.     )
  23.   )
  24.  
  25. ;;Testes:
  26. (check-expect(profundidade PAG1)3)
  27. (check-expect(profundidade PAG2)2)
  28.  
  29. ;; procuraPag: Lista-conteudo → Número
  30. ;; Dada uma Lista de conteúdo devolve o número máximo de níveis de Páginas web que ela contém
  31. ;; Exemplos:
  32. ;; (procuraPag CONT1) = 3
  33. ;; (procuraPag CONT5) = 0
  34.  
  35.  
  36. (define(procuraPag c)
  37.   (cond
  38.     [(empty? c)0]
  39.     [(pag-web? (first c))(+ 1 (profundidade (first c))(procuraPagJaAchou (rest c)))]
  40.     [else (procuraPag (rest c))]
  41.     )
  42.   )
  43.  
  44. (check-expect(procuraPag CONT1)3)
  45. (check-expect(procuraPag CONT5)0)
  46.  
  47. ;; procuraPagJaAchou: Lista-conteudo → Número
  48. ;; Dada uma Lista de conteúdo devolve o número máximo de níveis de Páginas web que ela contém, deixando
  49. ;; de contar o primeiro nível de páginas
  50. ;; Exemplos:
  51. ;; (procuraPag CONT1) = 2
  52. ;; (procuraPag CONT2) = 1
  53.  
  54.  
  55. (define(procuraPagJaAchou c)
  56.   (cond
  57.     [(empty? c)0]
  58.     [(pag-web? (first c))(+(profundidade (first c))(procuraPagJaAchou (rest c)))]
  59.     [else (procuraPagJaAchou (rest c))]
  60.     )
  61.   )
  62.  
  63. (check-expect(procuraPagJaAchou CONT1)2)
  64. (check-expect(procuraPagJaAchou CONT2)1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement