Advertisement
cardel

FDP codigo 05 de Sep

Sep 5th, 2020
4,536
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 2.28 KB | None | 0 0
  1. ;;Autor: Carlos A Delgado
  2. ;;Fecha: 05 de Septiembre de 2020
  3. ;;Contrato: calcular-distancia: posn,posn, (posn,posn->numero) -> numero
  4. ;;(calcular-distancia (make-posn 0 0) (make-posn 3 3) geometrica) -> (sqrt 18)
  5. ;;(calcular-distancia (make-posn 0 0) (make-pons 3 3) manhathan) -> 6
  6. (define (calcular-distancia p0 p1 f)
  7.   (f p0 p1))
  8.  
  9. (check-within (calcular-distancia (make-posn 0 0) (make-posn 3 3) distancia-geometrica) 4.2426 0.0001)
  10. (check-expect (calcular-distancia (make-posn 0 0) (make-posn 3 3) distancia-manhathan) 6)
  11.  
  12. ;;contrato: distancia-geometrica: posn, posn -> numero
  13. (define (distancia-geometrica p0 p1)
  14.   (sqrt (+ (sqr (- (posn-x p0) (posn-x p1)))
  15.            (sqr (- (posn-y p0) (posn-y p1))))))
  16.  
  17. ;contrato: distancia-manhathan: posn, posn -> numero
  18. (define (distancia-manhathan p0 p1)
  19.   (+ (abs (- (posn-x p0) (posn-x p1)))
  20.      (abs (- (posn-y p0) (posn-y p1)))))
  21.  
  22. ;Autor: Carlos A Delgado
  23. ;Contrato: filtro-pares: lista de numeros -> lista de numeros
  24. ;Propósito: De una lista vamos a sacar los elementos que son pares
  25. ;(filtro-pares (list 1 2 3 4 5) (list 2 4)
  26. ;(filtro-pares (list 1 3 5 7) empty
  27. (define (filtro-pares lst)
  28.   (cond
  29.     [(empty? lst) empty]
  30.     [(even? (first lst)) (cons (first lst) (filtro-pares (rest lst)))]
  31.     [else (filtro-pares (rest lst))]
  32.     ))
  33.  
  34. (check-expect (filtro-pares (list 1 2 3 4 5)) (list 2 4))
  35. (check-expect (filtro-pares (list 1 3 5 7)) empty)
  36.  
  37. ;Autor: Carlos A Delgado
  38. ;Contrato: filtro-impares: lista de numeros -> lista de numeros
  39. ;Propósito: De una lista vamos a sacar los elementos que son impares
  40. ;(filtro-impares (list 1 2 3 4 5)) (list 1 3 5)
  41. ;(filtro-impares (list 1 3 5 7)) (list 1 3 5 7)
  42. (define (filtro-impares lst)
  43.   (cond
  44.     [(empty? lst) empty]
  45.     [(odd? (first lst)) (cons (first lst) (filtro-impares (rest lst)))]
  46.     [else (filtro-impares (rest lst))]
  47.     ))
  48.  
  49. (check-expect (filtro-impares (list 1 2 3 4 5)) (list 1 3 5))
  50. (check-expect (filtro-impares (list 1 3 5 7)) (list 1 3 5 7))
  51.  
  52. ;Contrato: filtro-menor-2: lista de numeros -> lista de numeros
  53. (define (filtro-menor-2 lst)
  54.   (cond
  55.     [(empty? lst) empty]
  56.     [(< (first lst) 2) (cons (first lst) (filtro-menor-2 (rest lst)))]
  57.     [else (filtro-menor-2 (rest lst))]
  58.     ))
  59.  
  60. (check-expect (filtro-menor-2 (list 1 2 3 4 5)) (list 1))
  61.  
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement