@@ -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