Skip to content

Commit 2113c46

Browse files
author
frubio
committed
Solución Reto mouredev#41 Kotlin
1 parent 0fff430 commit 2113c46

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

app/src/main/java/com/mouredev/weeklychallenge2022/Challenge41.kt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,44 @@ package com.mouredev.weeklychallenge2022
1919
*
2020
*/
2121

22+
fun main() {
23+
leyOhm(mapOf(Pair(Ohm.VOLTAGE, 5f)))
24+
leyOhm(mapOf(Pair(Ohm.VOLTAGE, 12f), Pair(Ohm.RESISTANCE, 150f)))
25+
leyOhm(mapOf(Pair(Ohm.RESISTANCE, 50f), Pair(Ohm.INTENSITY, 0.5f)))
26+
leyOhm(mapOf(Pair(Ohm.VOLTAGE, 50f), Pair(Ohm.INTENSITY, 2.5f)))
27+
leyOhm(mapOf(Pair(Ohm.VOLTAGE, 530f), Pair(Ohm.RESISTANCE, 51f), Pair(Ohm.INTENSITY, 43f)))
28+
}
29+
30+
private fun leyOhm(params: Map<Ohm, Float>) {
31+
32+
var v: Float? = null
33+
var r: Float? = null
34+
var i: Float? = null
35+
if (params.size != 2) {
36+
println("Invalid values")
37+
return
38+
}
39+
40+
for (param in params) {
41+
when (param.key) {
42+
Ohm.VOLTAGE -> v = param.value
43+
Ohm.RESISTANCE -> r = param.value
44+
Ohm.INTENSITY -> i = param.value
45+
}
46+
}
47+
48+
if (v == null && r != null && i != null) {
49+
println("V = ${r * i} V")
50+
} else if (r == null && v != null && i != null) {
51+
println("R = ${v / i} Ohm")
52+
} else if (i == null && v != null && r != null) {
53+
println("I = ${v / r} Amp")
54+
}
55+
56+
}
57+
58+
enum class Ohm {
59+
VOLTAGE, RESISTANCE, INTENSITY
60+
}
61+
2262

0 commit comments

Comments
 (0)