Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EJERCICIO 5)
- ; cuadrados: ListaN -> ListaN
- ; Genera una lista con los cuadrados de cada elemento de una lista de números
- (check-expect (cuadrados empty) empty)
- (check-expect (cuadrados (list 1 2 3 4)) (list 1 4 9 16))
- (define (cuadrados l) (map sqr l))
- ;sumcuad: ListaN -> Number
- ; Calcula la suma de los cuadrados de una lista de números.
- (check-expect (sumcuad empty) 0)
- (check-expect (sumcuad (list 1)) 1)
- (check-expect (sumcuad (list 1 2 3)) 14)
- (define (sumcuad l) (foldr + 0 (cuadrados l)) )
- EJERCICIO 6)
- ; distancia: Posn -> Number
- ; Calcula la distancia al origen de coordenadas de un punto.
- (check-expect (distancia (make-posn 0 0)) 0)
- (check-expect (distancia (make-posn -3 4)) 5)
- (define (distancia punto) (sqrt (+ (sqr (posn-x punto)) (sqr (posn-y punto)) )) )
- ;sumdist: ListPosn -> Number
- ; Suma las distancias al origen de una lista de coordenadas.
- (check-expect (sumdist empty) 0)
- (check-expect (sumdist (list (make-posn 0 0) (make-posn -3 4))) 5)
- (define (sumdist lista) (foldr + 0 (map distancia lista)) )
- EJERCICIO 7)
- ;multPos: ListN -> Number
- ; Multiplica los números positivos de una lista de números, devolviendo 1 en caso que esté vacía o ninguno cumpla esa condición.
- (check-expect (multPos empty) 1)
- (check-expect (multPos (list -3 -4 -5 0)) 1)
- (check-expect (multPos (list 3 -2 4 0 1 -5)) 12)
- (define (multPos lista) (foldr * 1 (filter positive? lista)) )
- EJERCICIO 8)
- ;sumAbs: ListN -> Number
- ; Calcula la suma de los valores absolutos de una lista de números.
- (check-expect (sumAbs empty) 0)
- (check-expect (sumAbs (list 0 -1 1)) 2)
- (check-expect (sumAbs (list 3 -2 4 0 1 -5)) 15)
- (define (sumAbs lista) (foldr + 0 (map abs lista)) )
- EJERCICIO 9)
- ; no-negativo?: Number -> Bool
- ; Determina si un número es no negativo.
- (check-expect (no-negativo? 0) #t)
- (check-expect (no-negativo? 5) #t)
- (check-expect (no-negativo? -1) #f)
- (define (no-negativo? n) (not (negative? n) ) )
- ; raices: ListN -> ListN
- ; Forma una lista con las raíces cuadradas de los números no negativos de una lista.
- (check-expect (raices empty) empty)
- (check-expect (raices (list -1 -2)) empty)
- (check-expect (raices (list 16 -4 9 0)) (list 4 3 0))
- (define (raices lista) (map sqrt (filter no-negativo? lista) ) )
- EJERCICIO 10)
- ; area: Image -> Number
- ; Calcula el área de una imagen
- (check-expect (area (circle 10 "solid" "blue")) 400)
- (define (area imagen) (* (image-height imagen) (image-width imagen) ) )
- ;gorda?: Image -> Bool
- ; Determina si una imagen es gorda.
- (check-expect (gorda? (circle 10 "solid" "blue")) #f)
- (check-expect (gorda? (rectangle 20 10 "solid" "blue")) #t)
- (define (gorda? imagen) (> (image-width imagen) (image-height imagen)) )
- ;sag: ListImage -> Number
- ; Calcula la suma de las áreas de las imágenes gordas de una lista.
- (check-expect (sag empty) 0)
- (check-expect (sag (list (circle 10 "solid" "blue"))) 0)
- (check-expect (sag (list (circle 20 "solid" "red")
- (rectangle 40 20 "solid" "blue")
- (rectangle 10 20 "solid" "yellow")
- (rectangle 30 20 "solid" "green"))) 1400)
- (define (sag lista) (foldr + 0 (map area (filter gorda? lista))) )
Add Comment
Please, Sign In to add comment