-
-
Save geykel/ae9ddf32bba70f2caee7b1e22b68c5ee to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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