rendered paste body(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.")))