Код IT Загрузка примера кода…

Plain text main.swift
protocol Drawable {
    func draw()
    var area: Double { get }
}

class Circle: Drawable {
    var radius: Double
    
    init(radius: Double) {
        self.radius = radius
    }
    
    func draw() {
        print("Рисование круга радиусом \(radius)")
    }
    
    var area: Double {
        return Double.pi * radius * radius
    }
}

class Square: Drawable {
    var side: Double
    
    init(side: Double) {
        self.side = side
    }
    
    func draw() {
        print("Рисование квадрата со стороной \(side)")
    }
    
    var area: Double {
        return side * side
    }
}

class Triangle: Drawable {
    var base: Double
    var height: Double
    
    init(base: Double, height: Double) {
        self.base = base
        self.height = height
    }
    
    func draw() {
        print("Рисование треугольника")
    }
    
    var area: Double {
        return 0.5 * base * height
    }
}

func renderShapes(_ shapes: [Drawable]) {
    for shape in shapes {
        shape.draw()
        print("Площадь: \(shape.area)")
        print()
    }
}

let shapes: [Drawable] = [
    Circle(radius: 5.0),
    Square(side: 4.0),
    Triangle(base: 6.0, height: 8.0)
]

renderShapes(shapes)
protocol Drawable {
    func draw()
    var area: Double { get }
}

class Circle: Drawable {
    var radius: Double
    
    init(radius: Double) {
        self.radius = radius
    }
    
    func draw() {
        print("Рисование круга радиусом \(radius)")
    }
    
    var area: Double {
        return Double.pi * radius * radius
    }
}

class Square: Drawable {
    var side: Double
    
    init(side: Double) {
        self.side = side
    }
    
    func draw() {
        print("Рисование квадрата со стороной \(side)")
    }
    
    var area: Double {
        return side * side
    }
}

class Triangle: Drawable {
    var base: Double
    var height: Double
    
    init(base: Double, height: Double) {
        self.base = base
        self.height = height
    }
    
    func draw() {
        print("Рисование треугольника")
    }
    
    var area: Double {
        return 0.5 * base * height
    }
}

func renderShapes(_ shapes: [Drawable]) {
    for shape in shapes {
        shape.draw()
        print("Площадь: \(shape.area)")
        print()
    }
}

let shapes: [Drawable] = [
    Circle(radius: 5.0),
    Square(side: 4.0),
    Triangle(base: 6.0, height: 8.0)
]

renderShapes(shapes)