Advertisement
tomasfdel

Racket Práctica 4.2

May 24th, 2016
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 4.86 KB | None | 0 0
  1. EJERCICIO 1)
  2.  
  3. (check-expect (cuadrados empty) '())
  4. (check-expect (cuadrados (list -1 -2 -3 -4)) (list 1 4 9 16))
  5. (define (cuadrados lista) (cond
  6.                             [(empty? lista) '()]
  7.                             [else (cons (expt (first lista) 2) (cuadrados (rest lista)) )]))
  8.  
  9. EJERCICIOS 2)
  10.  
  11. (check-expect (eliminar empty 1) empty)
  12. (check-expect (eliminar (list 1 2 3) 1) (list 2 3))
  13. (check-expect (eliminar (list 1 2 3 4 1) 1) (list 2 3 4))
  14.  
  15. (define (eliminar lista numero) (cond
  16.                                   [(empty? lista) '()]
  17.                                   [(= (first lista) numero) (eliminar (rest lista) numero)]
  18.                                   [else (cons (first lista) (eliminar (rest lista) numero) )]))
  19.  
  20. EJERCICIO 3)
  21.  
  22. (check-expect (longitudes empty) empty)
  23. (check-expect (longitudes(cons "hola" (cons "cómo" (cons "estás?" '())))) (cons 4 (cons 4 (cons 6 '()))))
  24.  
  25. (define (longitudes lista) (cond
  26.                              [(empty? lista) empty]
  27.                              [else (cons (string-length (first lista)) (longitudes (rest lista)) )]))
  28.  
  29. EJERCICIO 4)
  30.  
  31. (define (convertidor temperatura) (* 5/9 (- temperatura 32)))
  32.  
  33. (check-expect (convertidorFC empty) empty)
  34. (check-expect (convertidorFC (list 32 -40 212)) (list 0 -40 100))
  35.  
  36. (define (convertidorFC lista) (cond
  37.                                 [(empty? lista) empty]
  38.                                 [else (cons (convertidor (first lista)) (convertidorFC (rest lista)) )]))
  39.  
  40. EJERCICIO 5)
  41.  
  42. (define-struct contacto [nombre mail telefono direccion])
  43.  
  44. (check-expect (agregar-contacto (make-contacto "a" 1 1 1) empty) (list (make-contacto "a" 1 1 1)))
  45. (check-expect (agregar-contacto (make-contacto "a" 1 1 1) (list (make-contacto "b" 2 3 4))) (list (make-contacto "b" 2 3 4) (make-contacto "a" 1 1 1) ))
  46. (check-expect (agregar-contacto (make-contacto "a" 2 2 2) (list (make-contacto "b" 2 3 4) (make-contacto "a" 1 1 1))) (list (make-contacto "b" 2 3 4) (make-contacto "a" 1 1 1) ))
  47. (define (agregar-contacto contacto_nuevo lista) (cond
  48.                                                   [(empty? lista) (cons contacto_nuevo '())]
  49.                                                   [(string=? (contacto-nombre contacto_nuevo) (contacto-nombre (first lista))) lista]
  50.                                                   [else (cons (first lista) (agregar-contacto contacto_nuevo (rest lista)))]
  51.                                                   ))
  52.  
  53.  
  54. ;SOLO ELIMINA UNA OCURRENCIA
  55. (check-expect (eliminar-contacto (make-contacto "a" 1 1 1) empty) empty)
  56. (check-expect (eliminar-contacto (make-contacto "a" 1 1 1) (list (make-contacto "a" 1 1 1))) empty)
  57. (check-expect (eliminar-contacto (make-contacto "a" 2 2 2) (list (make-contacto "b" 2 3 4) (make-contacto "a" 1 1 1))) (list (make-contacto "b" 2 3 4)))
  58. (check-expect (eliminar-contacto (make-contacto "a" 2 2 2) (list (make-contacto "b" 2 3 4) (make-contacto "c" 1 1 1))) (list (make-contacto "b" 2 3 4) (make-contacto "c" 1 1 1)))
  59.  
  60. (define (eliminar-contacto contacto_v lista) (cond
  61.                                                   [(empty? lista) empty]
  62.                                                   [(string=? (contacto-nombre contacto_v) (contacto-nombre (first lista))) (rest lista)]
  63.                                                   [else (cons (first lista) (eliminar-contacto contacto_v (rest lista)))]
  64.                                                   ))
  65.  
  66. (define (buscar-nombre nombre lista) (cond
  67.                                        [(empty? lista) "No existe el contacto"]
  68.                                        [(string=? nombre (contacto-nombre (first lista))) (first lista)]
  69.                                        [else (buscar-nombre nombre (rest lista))]))
  70.  
  71. (define (buscar-telefono telefono lista) (cond
  72.                                        [(empty? lista) "No existe el contacto"]
  73.                                        [(= telefono (contacto-telefono (first lista))) (first lista)]
  74.                                        [else (buscar-telefono telefono (rest lista))]))
  75.  
  76. EJERCICIO 6)
  77.  
  78. (define ANCHO 400)
  79. (define ALTO 600)
  80. (define FONDO (empty-scene ANCHO ALTO))
  81. (define IMAGEN (circle 10 "solid" "red"))
  82. (define GRAVEDAD 3)
  83. (define ESTADO-INICIAL '() )
  84.  
  85.  
  86. (define (pantalla n) (cond
  87.                        [(empty? n) FONDO]
  88.                        [else (place-image IMAGEN (posn-x (first n)) (posn-y (first n)) (pantalla (rest n)) )] ) )
  89.  
  90. (define (descender n) (cond
  91.                         [(empty? n) '()]
  92.                         [else (cons (make-posn (posn-x (first n)) (+ (posn-y (first n)) GRAVEDAD) )  (descender (rest n)) )] ) )
  93.  
  94. (define (click n x y event) (cond
  95.                         [(string=? event "button-down") (cons (make-posn x y) n)]
  96.                         [else n]) )
  97.  
  98.  
  99.  
  100. (big-bang ESTADO-INICIAL
  101.           [to-draw pantalla]
  102.           [on-tick descender]
  103.           [on-mouse click] )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement