(define (alb_regiao planeta . args) (define somador 0) (define (alb_regiao_aux planeta albedo_planeta vizinhos) (if (null? vizinhos) somador (if (tem_margarida? planeta (first vizinhos)) (begin (set! somador (+ somador (albedo_margarida (obtem_margarida planeta (first vizinhos))))) (alb_regiao_aux planeta albedo_planeta (rest vizinhos))) (begin (set! somador (+ somador albedo_planeta)) (alb_regiao_aux planeta albedo_planeta (rest vizinhos)))))) (if (null? args) (if (planeta? planeta) (/ (alb_regiao_aux planeta (second planeta) (vizinhos_lista (nova_posicao 0 0) (linhas_planeta planeta) (colunas_planeta planeta) (max (colunas_planeta planeta) (linhas_planeta planeta)))) (* (linhas_planeta planeta) (colunas_planeta planeta))) "Erro de input.") (if (and (planeta? planeta) (= (length args) 2) (integer? (first args)) (posicao? (second args))) (if (and (>= (first args) 0) (posicao? (second args)) (posicao_valida? (second args) (linhas_planeta planeta) (colunas_planeta planeta))) (/ (alb_regiao_aux planeta (albedo_planeta planeta) (vizinhos_lista (second args) (linhas_planeta planeta) (colunas_planeta planeta) (first args))) (* (length (vizinhos_lista (second args) (linhas_planeta planeta) (colunas_planeta planeta) (first args))))) "Erro de consistĂȘncia.") "Erro de input.")))