All pastes #823922 Raw Edit

VIVEKZINHO TO MY LOVE!

public text v1 · immutable
·published 2007-12-19 17:54 UTC
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.")))