From 1977b1e43d4a666753dc02e1d660f08c795867de Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Tue, 1 Dec 2020 18:34:00 +0100 Subject: [PATCH] more angle and side options --- .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/6.6.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes src/main/kotlin/main.kt | 26 +++++++++++++----- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.gradle/6.6.1/executionHistory/executionHistory.lock b/.gradle/6.6.1/executionHistory/executionHistory.lock index 8d8847d5c9f7c5500371e8837b3d33c4746cf833..543864c7f27ee53f53fa5bc8b75ff2d909853be5 100644 GIT binary patch literal 17 UcmZR69({hYg68h?3=rT3066dj!2kdN literal 17 TcmZR69({hYg68h?3{U_7II0AD diff --git a/.gradle/6.6.1/fileHashes/fileHashes.lock b/.gradle/6.6.1/fileHashes/fileHashes.lock index 9de646197e193f3edc101becf437c26ae028e5f0..f3116571195193783f55cc443a9c95b30b72cf71 100644 GIT binary patch literal 17 UcmZR6FQ@-N71J`}p6uJt00G7T9mN8u literal 17 TcmZQ>71J`}p6uJt00E2u9g_lf diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt index b1e7898..8a7cacd 100644 --- a/src/main/kotlin/main.kt +++ b/src/main/kotlin/main.kt @@ -1,9 +1,11 @@ import java.lang.IllegalArgumentException -import kotlin.contracts.contract import kotlin.math.* fun main() { - val triangle = Triangle(7.7, 4.3, 8.7) + val triangle = Triangle(4.0, 3.0, 5.0) + println("a: ${Triangle("alpha", 54.13, "a", 4.0)}") + println("b: ${Triangle("alpha", 54.13, "b", 3.0)}") + println("c: ${Triangle("alpha", 54.13, "c", 5.0)}") println(triangle) } @@ -21,18 +23,25 @@ class Triangle() { } - constructor(angleName: String, angle: Double, sideName: String, side: Double) : this() { + constructor(angleName: String, angleD: Double, sideName: String, side: Double) : this() { + val angle = angleD.toRadians() //thanks kotlin if (angleName == "alpha") { + alpha = Angle(angleD, "alpha") when(sideName){ "a" -> { - c = Side(side / sin(angle), "c") + a = Side(side, "a"); + c = Side(a / sin(angle), "c") b = Side(c * cos(angle), "b") } "b" -> { - //c = Side + b = Side(side, "b") + c = Side(side / cos(angle), "c") + a = Side(c * cos(angle), "c") + TODO("fix error on side c (also wrong name") } "c" -> { - //cos + c = Side(side, "c") + a = Side(c * sin(angle), "a") } } } else if (angleName == "beta") { @@ -67,6 +76,8 @@ class Triangle() { } private fun Double.toDegree() = this * 180 / PI + private fun Double.toRadians() = this * PI / 180 + override fun toString(): String { return "Seiten: $a, $b, $c Winkel: $alpha $beta $gamma" @@ -79,9 +90,10 @@ class Side(length: Double, name: String) { val name = name operator fun times(other: Double) = this.length * other + operator fun div(other: Double) = this.length / other override fun toString(): String { - return "$name = $length" + return "$name = ${"%.2f".format(length)}" } }