Skip to content

Instantly share code, notes, and snippets.

@geykel
Last active May 13, 2016 22:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save geykel/ae9ddf32bba70f2caee7b1e22b68c5ee to your computer and use it in GitHub Desktop.
Save geykel/ae9ddf32bba70f2caee7b1e22b68c5ee to your computer and use it in GitHub Desktop.
import Foundation
class Figura {
}
class Rectangulo: Figura {
var alto: Double
var largo: Double
init(alto: Double, largo: Double) {
self.alto = alto
self.largo = largo
}
}
class Circulo: Figura {
var radio: Double
init(radio: Double) {
self.radio = radio
}
}
class CalculadorDeAreas {
var figuras: [Figura]
init(figuras: [Figura]) {
self.figuras = figuras
}
private func calcularAreaRectangulo(rectangulo : Rectangulo) -> Double {
return rectangulo.alto * rectangulo.largo
}
private func calcularAreaCirculo(circulo : Circulo) -> Double {
let pi = 3.14159
return pi * pow(circulo.radio, 2)
}
func calcular() -> Double {
var area = 0.0
for figura in self.figuras {
if (figura is Rectangulo) {
area += calcularAreaRectangulo(figura as! Rectangulo)
} else {
area += calcularAreaCirculo(figura as! Circulo)
}
}
return area
}
}
let figuras = [Rectangulo(alto: 3, largo: 4), Circulo(radio: 5)]
let calculadorDeAreas = CalculadorDeAreas(figuras: figuras)
print("El área es \(calculadorDeAreas.calcular())")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment