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