1
+ // 01 OPERADORES Y ESTRUCTURAS DE CONTROL
2
+ // EJERCICIO:
3
+ /* 01-01 Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
4
+ * Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
5
+ * (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
6
+ */
7
+ // Inicializo unas variables random para trabajar con ellas, para todos los ejercicios
8
+ var myOperator1 = 5
9
+ var myOperator2 = 3
10
+ var myProveOperator = 0
11
+ var i = 0
12
+ var myBooleanTrue = true
13
+ var myBooleanFalse = false
14
+ var rangeAlfabet = ' a' .. ' d'
15
+ var myCahr = ' b'
16
+
17
+ // En kotlin tenemos 5 tipos de operadores aritmeticos [+] [-] [*] [/] [%] a continuacion unos ejemplos variados
18
+ myProveOperator = myOperator1 + myOperator2 ++
19
+ println (myProveOperator)
20
+ myProveOperator = myOperator1 --
21
+ println (myProveOperator)
22
+ println (myOperator1 * 9 )
23
+ println ((myProveOperator * myOperator1) / myOperator2)
24
+ if (myProveOperator % 2 == 0 ) {
25
+ println (" El numero " + myProveOperator + " es par" )
26
+ }
27
+ // En kotlin tenemos cuatro operadores logicos [|] = OR [&] = AND [.xor()] = XOR y Desigualdad [!] y a continuacion unos ejemplos
28
+ println (" ${myBooleanTrue || myBooleanFalse} \n ${myBooleanTrue && myBooleanFalse} \n ${myBooleanFalse.xor(myBooleanTrue)} \n ${! myBooleanTrue} " )
29
+
30
+ // En Kotlin tenemos diferentes comparadores [>] mayor [<] menor y [=] que podemos jugar con ellos y mezclarlos con igualdad [>=]
31
+ if (myOperator1 > 20 ){
32
+ println (" El numero $myOperator1 es mayor que 20" )
33
+ } else if (myOperator1 < 20 ){
34
+ println (" El numero $myOperator1 es menor que 20" )
35
+ } else {
36
+ println (" El numero $myOperator1 es igual a 20" )
37
+ }
38
+
39
+ // No podemos olvidarnos de los comparadores [==] de igualdad o el de [!=] diferencia
40
+ if (myOperator1 == myProveOperator){
41
+ println (" Te va a tocar la loteria" )
42
+ } else if (myOperator1 != myProveOperator){
43
+ println (" No hay suerte colega, asi es la vida" )
44
+ } else {
45
+ println (" Esto no tendria que pasar colega!" )
46
+ }
47
+
48
+ // Ya por ultimo y para mi sorpresa se pueden utilizar comparaciones como [a..d] o [1..4]
49
+ if (myCahr in rangeAlfabet){ // este tipo de comparador [a..d] se debe usar dentro de una variable
50
+ println (" El caracter $myCahr esta dentro del rango entre a y d" )
51
+ } else {
52
+ println (" El caracter $myCahr esta fuera del rango entre a y d" )
53
+ }
54
+
55
+ if (myOperator2 !in 1 .. 4 ){
56
+ println (" El numero $myOperator2 esta dentro del rango entre 1 y 4" )
57
+ } else {
58
+ println (" El numero $myOperator2 esta fuera de rango entre el 1 y el 4" )
59
+ }
60
+
61
+ /* 01-02 Utilizando las operaciones con operadores que tú quieras, crea ejemplos
62
+ * que representen todos los tipos de estructuras de control que existan
63
+ * en tu lenguaje: Condicionales, iterativas, excepciones...
64
+ */
65
+ // Me cae tanta gracia que dejadme repetir este ejemplo condicional de 'if, else if y else' ;)
66
+ if (myOperator1 == myProveOperator){
67
+ println (" Te va a tocar la loteria" )
68
+ } else if (myOperator1 != myProveOperator){
69
+ println (" No hay suerte colega, asi es la vida" )
70
+ } else {
71
+ println (" Esto no tendria que pasar colega!" )
72
+ }
73
+
74
+ // No es el unico condicional tambien tenemos 'when' es en apariencia identico a un swithc
75
+ when (myProveOperator){
76
+ myOperator1 -> println (" Los espiritus estan de tu lado hoy" )
77
+ myOperator2 -> println (" Ten cuidado al salir dedida, ponte crema solar o arderas como un misto" )
78
+ else -> {
79
+ println (" Ten cuidado esta noche al salir con la luna llena" )
80
+ }
81
+ }
82
+
83
+ // Comencemos con los bucles en este caso con el 'while' quiero aclarar un concepto la condicion de cierre del
84
+ // bucle es hacer mientras la condicion se cumpla! en el ejemplo mientras myProbeOperator sea menor que 10
85
+ while (myProveOperator < 10 ){
86
+ println (" El valor del operador de prueba es $myProveOperator " )
87
+ myProveOperator ++
88
+ }
89
+
90
+ // Sigamos con el bucle 'do-while que en este caso si o si almenos una vez debe ejecutarse el do manejar con cuidado!
91
+ do {
92
+ println (" Numero de veces que declare mi amor y me rompieron el corazon en mil trocitos $myProveOperator " )
93
+ myProveOperator ++
94
+ } while (myProveOperator < myOperator2)
95
+
96
+ // Ya para finalizar el marabilloso y explendido bucle 'for' aclarar que la diferencia esque la condicion de
97
+ // cierre de este bucle es hacer asta que se cumpla la condicion!
98
+ for (myProveOperator in 5 downTo 1 ){
99
+ println (" Doy vuelta y vueltas sin parar, que mareo! Ya ne se cuanto tiempo llevo aqui!" )
100
+ }
101
+
102
+ // Ahora que tenemos la variable myProbeOperator en 0 y viendo lo extraño que es declarar 'for' en kotlin
103
+ // quiero imprimir una tabla de multiplicar del 5 ;) sin operaciones dentro del 'for' directamente en su condicion
104
+ // debo aclarar que no he podido crear las tipicas variables dentro del bucle como [i, j o k] sino fuera del bucle :(
105
+ for (myProveOperator in 0 .. 50 step 5 ){
106
+ println (" $i x 5 = $myProveOperator " )
107
+ i ++
108
+ }
109
+ // 01-03 Debes hacer print por consola del resultado de todos los ejemplos.
110
+ // Todos los ejemplos/resultados anteriores ya han sido impresos por consola anteriormente!!
111
+
112
+ /* 01-04 DIFICULTAD EXTRA (opcional):
113
+ * Crea un programa que imprima por consola todos los números comprendidos
114
+ * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
115
+ */
116
+ i = 10
117
+ for (i in 10 .. 55 ) {
118
+ if (i % 2 == 0 && i != 16 && i % 3 != 0 ){
119
+ println (i)
120
+ }
121
+ }
0 commit comments