Загрузка данных


import kotlin.math.PI
import kotlin.math.sqrt

// 1. Площадь прямоугольника (по умолчанию — квадрат)
fun rectangleArea(width: Double, height: Double = width): Double {
    return width * height
}

// 2. Площадь круга (с параметром pi по умолчанию)
fun circleArea(radius: Double, pi: Double = PI): Double {
    return pi * radius * radius
}

// 3. Площадь треугольника по формуле Герона
fun triangleArea(a: Double, b: Double, c: Double): Double {
    val p = (a + b + c) / 2
    return sqrt(p * (p - a) * (p - b) * (p - c))
}

// 4. Периметр многоугольника (сумма всех сторон)
fun totalPerimeter(vararg sides: Double): Double {
    return sides.sum()
}

fun main() {
    println("=== Прямоугольник ===")
    // Без именованных аргументов
    println("Площадь прямоугольника 4x5: ${rectangleArea(4.0, 5.0)}")
    // С именованными аргументами
    println("Площадь квадрата 3x3: ${rectangleArea(width = 3.0)}")
    println("Площадь квадрата 4x4: ${rectangleArea(width = 4.0, height = 4.0)}")

    println("\n=== Круг ===")
    // Без именованных аргументов
    println("Площадь круга радиусом 3 (π=3.14159): ${circleArea(3.0)}")
    // С именованными аргументами
    println("Площадь круга радиусом 2 (π≈3.14): ${circleArea(radius = 2.0, pi = 3.14)}")
    println("Площадь круга радиусом 5 (точное значение): ${circleArea(radius = 5.0)}")

    println("\n=== Треугольник ===")
    // Без именованных аргументов
    println("Площадь треугольника со сторонами 3,4,5: ${triangleArea(3.0, 4.0, 5.0)}")
    // С именованными аргументами
    println("Площадь треугольника со сторонами 6,8,10: ${triangleArea(a = 6.0, b = 8.0, c = 10.0)}")
    println("Площадь треугольника со сторонами 5,5,6: ${triangleArea(a = 5.0, b = 5.0, c = 6.0)}")

    println("\n=== Периметр многоугольника ===")
    // Без именованных аргументов
    println("Периметр треугольника 3+4+5 = ${totalPerimeter(3.0, 4.0, 5.0)}")
    // С именованными аргументами (vararg нельзя именовать, передаём значения)
    println("Периметр четырёхугольника 2+3+4+5 = ${totalPerimeter(2.0, 3.0, 4.0, 5.0)}")
    println("Периметр пятиугольника 1+2+3+4+5 = ${totalPerimeter(1.0, 2.0, 3.0, 4.0, 5.0)}")
}