//Desafio 1
protocol Area {
var area: Double {get}
}
struct Quadrado: Area {
var lado: Double
var area: Double {
return lado * lado
}
}
struct Triangulo: Area {
var base: Double
var altura: Double
var area: Double {
return (base * altura) / 2
}
}
let quadrado = Quadrado(lado: 4.0)
let triangulo = Triangulo(base: 2.0, altura: 6.0)
print("Área do quadrado: \(quadrado.area)")
print("Área do triângulo: \(triangulo.area)")
//Desafio 2
enum Moeda: Int {
case UmCentavo = 1
case CincoCentavos = 5
case DezCentavos = 10
case VinteCincoCentavos = 25
case CinquentaCentavos = 50
}
let moedas: [Moeda] = [.CincoCentavos, .UmCentavo, .CincoCentavos, .VinteCincoCentavos, .CincoCentavos, .DezCentavos]
func calculaTotal(moedas: [Moeda]) -> Int {
return moedas.reduce(0) { total, moeda in
return total + moeda.rawValue}
}
let total = calculaTotal(moedas: moedas)
print("O valor total das moedas é R$ \(Double(total) / 100.0)")