1 00:00:00,000 --> 00:00:39,920 Vale, vamos a nuestro ejemplito, pues por ejemplo, lo que hemos hecho antes, vale, tengo mi variable n1, vale, entonces ahora ya que estamos aquí, que se ve más claro, igual que hemos dicho que se puede dar valor a una variable a la vez que la declaras, asignar un primer valor o inicializar, 2 00:00:39,920 --> 00:00:41,899 también hay una cosa que podemos hacer 3 00:00:41,899 --> 00:00:43,619 por comodidad, que es 4 00:00:43,619 --> 00:00:45,899 cuando estamos declarando varias 5 00:00:45,899 --> 00:00:47,219 variables del mismo tipo 6 00:00:47,219 --> 00:00:50,060 no hace falta que hagamos una línea por cada una 7 00:00:50,060 --> 00:00:51,820 porque sería un rollo, si yo estoy 8 00:00:51,820 --> 00:00:53,780 declarando n1 y n2 9 00:00:53,780 --> 00:00:55,439 las dos enteras 10 00:00:55,439 --> 00:00:57,920 pues no hace falta 11 00:00:57,920 --> 00:01:00,020 que haga esto, una por 12 00:01:00,020 --> 00:01:01,479 línea, se haría muy pesado 13 00:01:01,479 --> 00:01:04,000 podemos declararlas todas en la misma 14 00:01:04,000 --> 00:01:05,959 línea, separadas 15 00:01:05,959 --> 00:01:07,480 por comas, ¿vale? 16 00:01:10,450 --> 00:01:11,010 entonces 17 00:01:11,010 --> 00:01:14,530 En esta línea separadas por coma 18 00:01:14,530 --> 00:01:16,930 Puedo poner las variables que me dé la gana 19 00:01:16,930 --> 00:01:20,569 Y estoy declarando todas esas variables de tipo entero 20 00:01:20,569 --> 00:01:24,129 Que además quiero inicializar alguna de ellas 21 00:01:24,129 --> 00:01:24,930 Claro que puedo 22 00:01:24,930 --> 00:01:28,090 Si quiero además a n1 darle 9 23 00:01:28,090 --> 00:01:31,569 Estaría haciendo la inicialización de n1 24 00:01:31,569 --> 00:01:34,930 Que quiero a n2 además darle otro valor 25 00:01:34,930 --> 00:01:36,370 Se lo doy 26 00:01:36,370 --> 00:01:40,969 Luego en la misma línea puedo declarar variables del mismo tipo 27 00:01:40,969 --> 00:01:42,230 Del mismo tipo 28 00:01:42,230 --> 00:01:43,650 ¿Vale? 29 00:01:44,689 --> 00:01:47,250 Y además inicializarla si quiero 30 00:01:47,250 --> 00:01:50,569 Tantas variables como quiera 31 00:01:50,569 --> 00:01:52,989 Aquí podría seguir poniendo variables todas las que quiera 32 00:01:52,989 --> 00:01:55,170 Y así ahorro líneas de código 33 00:01:55,170 --> 00:01:56,989 Simplemente, solo para ahorrar líneas de código 34 00:01:56,989 --> 00:01:58,609 Vale, pues entonces 35 00:01:58,609 --> 00:02:01,750 En nuestro caso, que teníamos este ejemplito de aquí 36 00:02:01,750 --> 00:02:03,030 Ahora 37 00:02:03,030 --> 00:02:04,370 Podemos 38 00:02:04,370 --> 00:02:07,750 Poner una expresión 39 00:02:07,750 --> 00:02:09,590 Que sea, pues venga 40 00:02:09,590 --> 00:02:10,389 N1 41 00:02:10,389 --> 00:02:12,889 Menos 4 42 00:02:12,889 --> 00:02:15,849 Multiplicado por 43 00:02:15,849 --> 00:02:17,229 N2 44 00:02:17,229 --> 00:02:22,139 No, N1 no, N2, perdón 45 00:02:22,139 --> 00:02:24,710 ¿Eh? 46 00:02:25,550 --> 00:02:28,030 No, a N1 no le he dado valor, le he dado N2 solo 47 00:02:28,030 --> 00:02:31,009 Entre N3 48 00:02:31,009 --> 00:02:33,150 Vale, entonces 49 00:02:33,150 --> 00:02:34,509 Esto 50 00:02:34,509 --> 00:02:36,789 En cuanto a expresión 51 00:02:36,789 --> 00:02:38,870 Es válida 52 00:02:38,870 --> 00:02:41,610 Esta operación es correcta 53 00:02:41,610 --> 00:02:43,830 Esto es correcto, esto es correcto 54 00:02:43,830 --> 00:03:06,770 N2 y N3 tienen valores asignados, N2 tiene 12 y N3 tiene 15, que son las únicas dos variables que están aquí, pero me sigue saliendo error de compilación, ¿cuál? Pues el que os he dicho, si ponéis ahí la manita, nos dice, oye, perdona, pero de long hind no puedo, claro, ¿por qué? 55 00:03:06,770 --> 00:03:09,330 por la promoción automática que ya hemos visto 56 00:03:09,330 --> 00:03:11,949 n2 menos 4 es un entero 57 00:03:11,949 --> 00:03:13,250 porque n2 es entero 58 00:03:13,250 --> 00:03:15,750 vale, vamos a quitar esto ya para que no moleste 59 00:03:15,750 --> 00:03:17,409 n2 es entero 60 00:03:17,409 --> 00:03:19,909 luego n2 menos 4 es entero 61 00:03:19,909 --> 00:03:21,969 lo multiplico por n2 otra vez 62 00:03:21,969 --> 00:03:23,909 otra vez por 12, sigue siendo entero 63 00:03:23,909 --> 00:03:25,449 y ahora ya me queda 64 00:03:25,449 --> 00:03:28,509 un entero que divide a un long 65 00:03:28,509 --> 00:03:31,270 una operación 66 00:03:31,270 --> 00:03:33,990 de estas aritméticas que involucra 67 00:03:33,990 --> 00:03:35,830 long e int 68 00:03:35,830 --> 00:03:38,889 el int se promociona long añadiendo ceros 69 00:03:38,889 --> 00:03:40,750 vale, se queda en long 70 00:03:40,750 --> 00:03:42,810 va a n1 71 00:03:42,810 --> 00:03:43,889 n1 es int 72 00:03:43,889 --> 00:03:45,550 pues me dice el compilador 73 00:03:45,550 --> 00:03:46,789 no, no puedo 74 00:03:46,789 --> 00:03:49,750 tendríamos que arreglarlo 75 00:03:49,750 --> 00:03:52,009 declarando n1 como long 76 00:03:52,009 --> 00:03:54,289 si no este error de compilación no se quita 77 00:03:54,289 --> 00:03:56,550 entonces en ese caso 78 00:03:56,550 --> 00:03:58,069 ya no podría en la misma línea 79 00:03:58,069 --> 00:04:00,710 hacer n1 y n2 80 00:04:00,710 --> 00:04:01,370 ya no podría 81 00:04:01,370 --> 00:04:04,509 dejaría n2 aquí y me declaro 82 00:04:04,509 --> 00:04:05,650 n1 aquí por ejemplo 83 00:04:05,650 --> 00:04:09,229 entonces ahora ya se me ha quitado 84 00:04:09,229 --> 00:04:10,750 el error de compilación porque tengo 85 00:04:10,750 --> 00:04:11,770 n1 como long 86 00:04:11,770 --> 00:04:14,469 n3 como long como estaba 87 00:04:14,469 --> 00:04:19,720 ¿vale? y ahora ya 88 00:04:19,720 --> 00:04:21,759 si mostramos lo que tiene 89 00:04:21,759 --> 00:04:25,639 será el último numerito que muestre 90 00:04:25,639 --> 00:04:27,399 porque aquí arriba habrá cosas 91 00:04:27,399 --> 00:04:33,269 pues este es 92 00:04:33,269 --> 00:04:34,730 el resto de 93 00:04:34,730 --> 00:04:37,069 el resultado de esta división 94 00:04:37,069 --> 00:04:39,470 que es el cociente 95 00:04:39,470 --> 00:04:41,370 el cociente 96 00:04:41,370 --> 00:04:43,810 porque está involucrando 97 00:04:43,810 --> 00:04:45,670 números enteros a los dos lados 98 00:04:45,670 --> 00:04:48,029 números enteros, luego es operador 99 00:04:48,029 --> 00:04:48,750 es cociente 100 00:04:48,750 --> 00:04:50,529 ¿vale? 6 101 00:04:50,529 --> 00:04:54,449 para 102 00:04:54,449 --> 00:04:58,209 poder hacer algunas cosas 103 00:04:58,209 --> 00:05:00,230 cuando pongamos ejemplos 104 00:05:00,230 --> 00:05:02,209 y que no sea tan pesado al principio 105 00:05:02,209 --> 00:05:04,410 vamos a meter 106 00:05:04,410 --> 00:05:06,329 desde ya como le puedo dar yo 107 00:05:06,329 --> 00:05:08,370 valores por teclado, porque con lo que 108 00:05:08,370 --> 00:05:10,550 sabemos ahora, todos nuestros 109 00:05:10,550 --> 00:05:11,329 programas 110 00:05:11,329 --> 00:05:14,569 necesita que yo desde el propio código 111 00:05:14,569 --> 00:05:16,350 le ponga el valor a la variable 112 00:05:16,350 --> 00:05:18,769 esa no es la forma habitual de trabajar 113 00:05:18,769 --> 00:05:20,490 por ejemplo 114 00:05:20,490 --> 00:05:22,350 vamos a 115 00:05:22,350 --> 00:05:25,029 hacer un programa 116 00:05:25,029 --> 00:05:28,860 me voy a hacer aquí otra clase 117 00:05:28,860 --> 00:05:31,759 vamos a hacer un programa 118 00:05:31,759 --> 00:05:34,339 para que 119 00:05:34,339 --> 00:05:38,500 haga el doble de un número 120 00:05:38,500 --> 00:05:41,079 vale 121 00:05:41,079 --> 00:05:47,089 la llamo doble a la clase, 122 00:05:51,259 --> 00:05:53,060 vale, pues venga, un programita, 123 00:05:54,459 --> 00:05:56,339 ¿qué quiero yo que haga este programita? 124 00:06:04,350 --> 00:06:08,670 Programa que calcule el doble de un número. 125 00:06:11,629 --> 00:06:16,689 Vale, que calcule y muestre. 126 00:06:19,509 --> 00:06:23,480 Bueno, pues entonces, 127 00:06:23,480 --> 00:06:26,399 este programa va a operar 128 00:06:26,399 --> 00:06:27,199 con un dato 129 00:06:27,199 --> 00:06:29,819 entonces aunque es un programa muy sencillo 130 00:06:29,819 --> 00:06:31,939 nos permite usarlo como base 131 00:06:31,939 --> 00:06:34,480 para secuenciar un poquito 132 00:06:34,480 --> 00:06:35,100 las 133 00:06:35,100 --> 00:06:37,759 las siguientes etapas 134 00:06:37,759 --> 00:06:39,939 las diferentes etapas que seguimos nosotros 135 00:06:39,939 --> 00:06:41,399 cuando hacemos un ejercicio 136 00:06:41,399 --> 00:06:43,740 o un programa o una aplicación 137 00:06:43,740 --> 00:06:45,680 entonces primero 138 00:06:45,680 --> 00:06:48,220 veo el enunciado y entiendo 139 00:06:48,220 --> 00:06:49,519 exactamente lo que hay que hacer 140 00:06:49,519 --> 00:06:50,439 si hay alguna duda 141 00:06:50,439 --> 00:06:52,560 lo pregunto 142 00:06:52,560 --> 00:06:55,399 Por ejemplo, lo que yo había escrito antes 143 00:06:55,399 --> 00:06:58,019 Estaba muy mal escrito 144 00:06:58,019 --> 00:06:59,399 Muy ambiguo 145 00:06:59,399 --> 00:07:00,800 Entonces un programador 146 00:07:00,800 --> 00:07:03,160 Se entrevista con un cliente 147 00:07:03,160 --> 00:07:04,040 El cliente le dice 148 00:07:04,040 --> 00:07:06,560 Oye, quiero un programa que calcula el doble de un número 149 00:07:06,560 --> 00:07:09,519 Pues si es un buen analista 150 00:07:09,519 --> 00:07:11,839 Porque el que se entrevista con el cliente 151 00:07:11,839 --> 00:07:12,500 Es el analista 152 00:07:12,500 --> 00:07:14,579 Pues si es un buen analista 153 00:07:14,579 --> 00:07:15,720 El analista dirá 154 00:07:15,720 --> 00:07:17,420 A ver, espérate, vamos por partes 155 00:07:17,420 --> 00:07:20,100 Porque esto que tú me has dicho es absolutamente ambiguo 156 00:07:20,100 --> 00:07:21,819 Primero 157 00:07:21,819 --> 00:07:23,620 ese número 158 00:07:23,620 --> 00:07:26,360 ¿qué tipo quieres que sea? 159 00:07:26,480 --> 00:07:27,959 entero, decimal 160 00:07:27,959 --> 00:07:30,019 para empezar especificame 161 00:07:30,019 --> 00:07:31,779 con qué números quieres trabajar 162 00:07:31,779 --> 00:07:34,240 entonces diría, ah no, lo quiero solo para enteros 163 00:07:34,240 --> 00:07:36,639 vale, pues tú ya vas arreglando 164 00:07:36,639 --> 00:07:37,879 el planteamiento de tu 165 00:07:37,879 --> 00:07:39,920 programa para que luego ya 166 00:07:39,920 --> 00:07:42,399 los programadores lo puedan hacer 167 00:07:42,399 --> 00:07:44,600 pero tú estás haciendo la parte más difícil 168 00:07:44,600 --> 00:07:46,259 como analista, que es espérate 169 00:07:46,259 --> 00:07:47,860 espérate, vamos a dejarlo claro 170 00:07:47,860 --> 00:07:49,899 entero, vale, siguiente 171 00:07:49,899 --> 00:07:50,939 ¿qué es esto de que calcule? 172 00:07:51,819 --> 00:08:15,439 Los programas devuelven datos, eso de calcular es una operación, una sentencia, pero un programa coge datos y devuelve datos, entonces, ¿qué significa calcular? Con el doble de ese número, ¿qué quieres hacer? Llevarlo a un fichero, mostrármelo a mí por consola, no hacer nada, tirar la basura, o sea, los programas devuelven datos. 173 00:08:15,439 --> 00:08:18,699 entonces, lo primero que tiene que preguntar 174 00:08:18,699 --> 00:08:20,560 el que está tratando de entender el enunciado 175 00:08:20,560 --> 00:08:21,800 es 176 00:08:21,800 --> 00:08:23,019 con ese dato 177 00:08:23,019 --> 00:08:26,040 que devuelve el programa, ¿qué quieres hacer? 178 00:08:26,100 --> 00:08:27,279 porque aquí lo han especificado 179 00:08:27,279 --> 00:08:30,579 ah, no, lo que quiero es que lo calcules 180 00:08:30,579 --> 00:08:32,799 y ese dato resultante 181 00:08:32,799 --> 00:08:33,899 lo muestres 182 00:08:33,899 --> 00:08:35,879 por la consola para que yo lo vea 183 00:08:35,879 --> 00:08:37,600 porque yo voy a estar ahí sentado todo el rato 184 00:08:37,600 --> 00:08:40,240 cada vez que ejecute el programa voy a estar sentado 185 00:08:40,240 --> 00:08:41,679 todo el rato viendo el resultado 186 00:08:41,679 --> 00:08:42,299 ah, vale 187 00:08:42,299 --> 00:08:44,980 pues entonces 188 00:08:44,980 --> 00:08:47,620 calcule y 189 00:08:47,620 --> 00:08:50,360 muestre 190 00:08:50,360 --> 00:08:52,659 por consola 191 00:08:52,659 --> 00:08:57,480 vale, esto ya parece, es un anunciado 192 00:08:57,480 --> 00:08:59,639 un poquito menos ambiguo 193 00:08:59,639 --> 00:09:01,440 y ahora ya 194 00:09:01,440 --> 00:09:02,600 el analista se tiene que 195 00:09:02,600 --> 00:09:05,139 pensar si ya tiene toda la información 196 00:09:05,139 --> 00:09:07,419 que necesita o todavía tiene que 197 00:09:07,419 --> 00:09:09,419 preguntarle más cosas al cliente 198 00:09:09,419 --> 00:09:11,080 bueno, yo creo que con esto más o menos está claro 199 00:09:11,080 --> 00:09:11,960 que tiene que hacer el programa 200 00:09:11,960 --> 00:09:14,000 vale 201 00:09:14,000 --> 00:09:16,659 a ver, no está claro 202 00:09:16,659 --> 00:09:18,139 porque precisamente lo voy a usar para meterlo 203 00:09:18,139 --> 00:09:20,399 en los datos de entrada 204 00:09:20,399 --> 00:09:22,740 no estaría claro porque 205 00:09:22,740 --> 00:09:24,820 la siguiente pregunta que tendría 206 00:09:24,820 --> 00:09:25,440 que hacer es 207 00:09:25,440 --> 00:09:28,559 ¿este número entero con el que va a trabajar 208 00:09:28,559 --> 00:09:29,679 ¿de dónde lo sacas? 209 00:09:31,519 --> 00:09:32,799 ¿el doble o un número entero? 210 00:09:33,320 --> 00:09:34,419 ¿de qué número entero? 211 00:09:34,700 --> 00:09:36,019 ¿del que a mí me dé la gana? 212 00:09:37,720 --> 00:09:39,240 ¿de uno que tú me des? 213 00:09:40,139 --> 00:09:41,059 ¿vamos a hacer la versión? 214 00:09:41,240 --> 00:09:42,399 no, no, del que a ti te dé la gana 215 00:09:42,399 --> 00:09:44,159 vale 216 00:09:44,159 --> 00:09:46,940 pues vamos a añadir eso 217 00:09:46,940 --> 00:09:49,139 el que al programador le dé la gana 218 00:09:49,139 --> 00:09:55,980 bueno, puede no tener sentido 219 00:09:55,980 --> 00:09:58,480 pero al menos se ha anunciado, ya no es ambiguo 220 00:09:58,480 --> 00:10:00,240 el número que al programador 221 00:10:00,240 --> 00:10:01,080 le dé la gana 222 00:10:01,080 --> 00:10:03,559 calculará el doble 223 00:10:03,559 --> 00:10:05,240 y lo mostrará por consola 224 00:10:05,240 --> 00:10:07,220 ahora ya sí que está claro lo que hay que hacer 225 00:10:07,220 --> 00:10:08,200 necesitamos más datos 226 00:10:08,200 --> 00:10:09,779 pues ahora ya 227 00:10:09,779 --> 00:10:13,360 resulta esto 228 00:10:13,360 --> 00:10:15,200 pues al equipo, a los diseñadores 229 00:10:15,200 --> 00:10:16,740 a HGPT, a quien te dé la gana 230 00:10:16,740 --> 00:10:19,600 y ya lo puedes hacer 231 00:10:19,600 --> 00:10:21,059 porque tienes toda la información previa. 232 00:10:21,940 --> 00:10:24,600 Pero la parte de análisis es la complicada, ¿vale? 233 00:10:24,600 --> 00:10:26,340 Es la que no te va a hacer echar GPT 234 00:10:26,340 --> 00:10:28,899 en condiciones normales. 235 00:10:29,899 --> 00:10:32,519 Cuando ya esté toda la parte de robótica 236 00:10:32,519 --> 00:10:33,960 para que te puedas entrevistar con el cliente, sí. 237 00:10:34,279 --> 00:10:35,179 Pero antes, pues no. 238 00:10:36,379 --> 00:10:38,720 Bueno, pues vamos a hacer este programa. 239 00:10:38,960 --> 00:10:42,159 Vale, ya tenemos esa parte, el análisis. 240 00:10:43,039 --> 00:10:46,320 Ahora, ya vamos a programar. 241 00:10:46,740 --> 00:10:51,519 Y lo primero que tenemos que pensar es, ¿con qué datos va a trabajar mi aplicación? 242 00:10:52,580 --> 00:10:58,120 Vuelvo a el enunciado, que ya no estará ambiguo, porque para eso lo hemos pensado bien, que ya no estará ambiguo. 243 00:10:59,279 --> 00:11:08,299 Y digo, ¿va a trabajar con un número entero? 244 00:11:08,779 --> 00:11:14,659 Pues automáticamente, en cuanto pienso en datos, tengo que pensar en las variables donde van a caer esos datos. 245 00:11:14,659 --> 00:11:18,399 pensar en datos es pensar en las variables 246 00:11:18,399 --> 00:11:20,620 que voy a necesitar para esos datos 247 00:11:20,620 --> 00:11:23,980 ¿vale? pues mi dato va a ser un número entero 248 00:11:23,980 --> 00:11:26,700 pues automáticamente pienso en una variable entera 249 00:11:26,700 --> 00:11:29,360 que tengo que poner en mi programa para que caiga ese dato 250 00:11:29,360 --> 00:11:32,720 venga, pues ya está una variable entera 251 00:11:32,720 --> 00:11:35,019 aquí va a ir mi dato, mi número 252 00:11:35,019 --> 00:11:36,799 ¿vale? 253 00:11:38,279 --> 00:11:42,039 y ahora, ¿qué tiene que hacer el programa con ese número? 254 00:11:42,039 --> 00:11:45,039 calcular el doble 255 00:11:45,039 --> 00:11:47,299 vale, pues entonces vamos a hacerlo 256 00:11:47,299 --> 00:11:49,299 aunque sea una tontería 257 00:11:49,299 --> 00:11:50,519 vamos a hacerlo paso por paso 258 00:11:50,519 --> 00:11:53,100 para calcular el doble 259 00:11:53,100 --> 00:11:54,860 yo tendré que hacer una expresión 260 00:11:54,860 --> 00:12:00,179 espera, espera, espérame 261 00:12:00,179 --> 00:12:02,019 el que, el que por favor le dé la gana 262 00:12:02,019 --> 00:12:04,000 entonces vamos a seguir, ahora volvemos ahí 263 00:12:04,000 --> 00:12:05,480 de donde sale este número, vale 264 00:12:05,480 --> 00:12:07,500 vamos por partes, un segundo 265 00:12:07,500 --> 00:12:10,419 vale, entonces, el dato va a estar ahí 266 00:12:10,419 --> 00:12:12,139 ahora veremos 267 00:12:12,139 --> 00:12:13,940 cómo recibe el valor 268 00:12:13,940 --> 00:12:16,899 como recibe, pero el dato va a estar ahí, el que sea 269 00:12:16,899 --> 00:12:21,120 vale, sea cual sea lo que tenga esa variable 270 00:12:21,120 --> 00:12:25,480 sea lo que sea, para calcular el doble 271 00:12:25,480 --> 00:12:29,740 necesito una expresión, mi expresión cuál va a ser 272 00:12:29,740 --> 00:12:33,340 pues esta, dato por 2, esa es mi expresión 273 00:12:33,340 --> 00:12:37,799 este va a ser el resultado, entonces claro 274 00:12:37,799 --> 00:12:41,659 el resultado en condiciones normales tendría que guardarlo en algún sitio, los resultados 275 00:12:41,659 --> 00:12:42,840 se guarda en algún lado 276 00:12:42,840 --> 00:12:46,080 pues venga, me voy a declarar una variable entera 277 00:12:46,080 --> 00:12:47,980 para el resultado 278 00:12:47,980 --> 00:12:49,820 para que se vea 279 00:12:49,820 --> 00:12:51,940 lo voy a poner en líneas separadas, aunque sea 280 00:12:51,940 --> 00:12:54,259 vale, pues venga 281 00:12:54,259 --> 00:12:56,200 el resultado 282 00:12:56,200 --> 00:12:58,279 luego 283 00:12:58,279 --> 00:13:02,740 ahora continuamos con ese rojo 284 00:13:02,740 --> 00:13:03,320 entonces 285 00:13:03,320 --> 00:13:06,019 aunque sea con este ejemplo sencillo 286 00:13:06,019 --> 00:13:08,179 los pasos mentales 287 00:13:08,179 --> 00:13:08,940 siempre son los mismos 288 00:13:08,940 --> 00:13:11,620 una vez que tengo claro lo que hay que hacer 289 00:13:11,620 --> 00:13:13,460 mis datos de entrada, ¿cuáles son? 290 00:13:13,580 --> 00:13:15,620 Estos, variables para esos datos. 291 00:13:17,139 --> 00:13:18,980 ¿Mi resultado cuál va a ser? 292 00:13:19,139 --> 00:13:21,059 En este caso va a ser un número entero, 293 00:13:21,919 --> 00:13:24,019 pues una variable para ese resultado. 294 00:13:25,519 --> 00:13:27,240 Podrían ser muchos los resultados, 295 00:13:27,399 --> 00:13:28,240 pues muchas variables. 296 00:13:28,919 --> 00:13:30,299 Entonces, tanto los datos de entrada 297 00:13:30,299 --> 00:13:32,440 como los resultados del programa 298 00:13:32,440 --> 00:13:34,299 eran variables para estar guardados. 299 00:13:35,179 --> 00:13:36,019 Pues en este caso, 300 00:13:36,879 --> 00:13:38,659 aquí va a ir mi dato de entrada. 301 00:13:39,659 --> 00:13:41,559 Aquí voy a guardar el resultado 302 00:13:41,559 --> 00:13:42,399 del programa 303 00:13:42,399 --> 00:13:44,820 ¿el resultado del programa cuál es? 304 00:13:44,860 --> 00:13:46,360 en este caso hacer una operación 305 00:13:46,360 --> 00:13:49,240 el número que haya aquí por 2 306 00:13:49,240 --> 00:13:51,039 esto va a mi resultado 307 00:13:51,039 --> 00:13:52,779 ¿y qué tiene que hacer? 308 00:13:52,980 --> 00:13:55,159 oye, mostrarlo, hemos dicho que mostrarlo 309 00:13:55,159 --> 00:13:57,379 mostrar por consola sea hacerlo 310 00:13:57,379 --> 00:13:59,200 entonces 311 00:13:59,200 --> 00:14:01,519 pues ya está, venga 312 00:14:01,519 --> 00:14:02,919 resultado 313 00:14:02,919 --> 00:14:04,279 vale, ahora 314 00:14:04,279 --> 00:14:08,919 vamos a esto al que el programador le dé la gana 315 00:14:08,919 --> 00:14:10,059 ahora claro, este programa 316 00:14:10,059 --> 00:14:12,000 queda por refinar 317 00:14:12,000 --> 00:14:14,740 no perdáis nunca de vista 318 00:14:14,740 --> 00:14:16,820 que no se programa así 319 00:14:16,820 --> 00:14:18,620 tirando una línea de código tras otra 320 00:14:18,620 --> 00:14:20,159 jamás 321 00:14:20,159 --> 00:14:22,960 se va programando 322 00:14:22,960 --> 00:14:25,399 que lo iremos viendo 323 00:14:25,399 --> 00:14:27,220 o sea, se irá poniendo más en 324 00:14:27,220 --> 00:14:28,879 se irá poniendo 325 00:14:28,879 --> 00:14:31,419 se irá haciendo más visible según vayamos programando 326 00:14:31,419 --> 00:14:33,139 uno programa siempre 327 00:14:33,139 --> 00:14:34,759 por lo que podríamos llamar 328 00:14:34,759 --> 00:14:36,019 iteraciones sucesivas 329 00:14:36,019 --> 00:14:39,159 o sea, va haciendo un esqueleto con cajitas negras 330 00:14:39,159 --> 00:14:41,240 y va a editar esto y esto y esto 331 00:14:41,240 --> 00:14:43,679 Ahora relleno mi cajita negra 332 00:14:43,679 --> 00:14:45,240 Ah, esta parte ya sé hacerla, vale 333 00:14:45,240 --> 00:14:47,320 Luego tendré que hacer esto que todavía no sé 334 00:14:47,320 --> 00:14:48,600 Pero aquí debajo irá esto 335 00:14:48,600 --> 00:14:50,480 Voy rellenando mis cajas negras 336 00:14:50,480 --> 00:14:53,559 Un programador jamás programa tirando dinero una tras otra 337 00:14:53,559 --> 00:14:55,419 Porque no se piensa así 338 00:14:55,419 --> 00:14:57,620 No pensamos secuencialmente 339 00:14:57,620 --> 00:14:59,860 En realidad 340 00:14:59,860 --> 00:15:01,840 Vemos las cosas en su conjunto 341 00:15:01,840 --> 00:15:03,340 Vamos resolviendo problemas 342 00:15:03,340 --> 00:15:04,500 Y luego vamos componiendo 343 00:15:04,500 --> 00:15:07,340 Las diferentes soluciones parciales 344 00:15:07,340 --> 00:15:09,539 ¿Vale? Y para componer un problema 345 00:15:09,539 --> 00:15:12,559 tenemos a que a veces haber resuelto otro 346 00:15:12,559 --> 00:15:14,559 que se va a presentar después, etc. 347 00:15:15,659 --> 00:15:16,759 Bueno, pues entonces, 348 00:15:17,580 --> 00:15:19,620 yo he hecho mi primer esqueleto del programa. 349 00:15:20,659 --> 00:15:21,980 Ahora voy a lo siguiente, 350 00:15:22,159 --> 00:15:22,960 que es, vamos a ver, 351 00:15:23,919 --> 00:15:25,379 lógicamente, como era de prever, 352 00:15:25,899 --> 00:15:27,379 aquí me sale el error de compilación, 353 00:15:27,519 --> 00:15:30,299 que es, uy, estás usando una variable, 354 00:15:30,399 --> 00:15:31,639 una expresión que no tiene nada. 355 00:15:32,279 --> 00:15:33,759 Eso ya hemos dicho, que es un error 356 00:15:33,759 --> 00:15:35,059 que lógicamente va a salir 357 00:15:35,059 --> 00:15:37,720 si en una expresión uso una variable 358 00:15:37,720 --> 00:15:39,460 que no tiene nada, que es lo que me dice aquí. 359 00:15:39,539 --> 00:15:42,539 la variable dato no está inicializada 360 00:15:42,539 --> 00:15:45,179 es lo que me está diciendo 361 00:15:45,179 --> 00:15:45,919 vale 362 00:15:45,919 --> 00:15:48,360 claro, es que esto liga con 363 00:15:48,360 --> 00:15:50,159 es que este es mi dato de entrada 364 00:15:50,159 --> 00:15:52,759 y yo te he preguntado a ti, cliente 365 00:15:52,759 --> 00:15:54,659 ¿cuál quieres que sea el dato de entrada 366 00:15:54,659 --> 00:15:55,279 para hacer el doble? 367 00:15:55,340 --> 00:15:56,960 tú me has dicho el que me dé la gana 368 00:15:56,960 --> 00:15:59,639 pues como tú me has dicho el que me dé la gana 369 00:15:59,639 --> 00:16:03,100 me da la gana el 9 370 00:16:03,100 --> 00:16:04,919 y lo planto ahí 371 00:16:04,919 --> 00:16:07,919 y sí, este código tan estúpido 372 00:16:07,919 --> 00:16:09,679 resuelve el problema que me han planteado 373 00:16:09,679 --> 00:16:11,879 el número que a mí me dé la gana 374 00:16:11,879 --> 00:16:13,679 calcula el doble 375 00:16:13,679 --> 00:16:15,019 y muéstralo por consola 376 00:16:15,019 --> 00:16:17,159 y si ejecutamos este código 377 00:16:17,159 --> 00:16:19,759 pues me va a mostrar 378 00:16:19,759 --> 00:16:21,440 18, lógicamente 379 00:16:21,440 --> 00:16:22,259 vale 380 00:16:22,259 --> 00:16:26,059 pero claro, este programa 381 00:16:26,059 --> 00:16:27,759 yo lo puedo ejecutar 382 00:16:27,759 --> 00:16:30,120 27.000 veces y las 27.000 383 00:16:30,120 --> 00:16:31,279 me va a dar 18 384 00:16:31,279 --> 00:16:34,000 porque solo trabaja para el 9 385 00:16:34,000 --> 00:16:35,700 porque es el que he puesto aquí 386 00:16:35,700 --> 00:16:37,080 eso no tiene ningún sentido 387 00:16:37,080 --> 00:16:39,159 y si yo quiero que este programa 388 00:16:39,159 --> 00:16:41,000 me calcule el doble de cualquier número 389 00:16:41,000 --> 00:16:42,940 pues el proceso es muy complicado 390 00:16:42,940 --> 00:16:45,100 porque tiene que coger el programador 391 00:16:45,100 --> 00:16:47,220 o sea, yo como cliente 392 00:16:47,220 --> 00:16:48,320 que me han dado este programa 393 00:16:48,320 --> 00:16:51,340 digo, perdona, es que ahora quiero el doble de 15 394 00:16:51,340 --> 00:16:52,840 pues 395 00:16:52,840 --> 00:16:55,139 tengo que ir al programador y decirle 396 00:16:55,139 --> 00:16:56,879 oye, cambia el programa y pon 15 397 00:16:56,879 --> 00:16:58,779 porfa, venga 398 00:16:58,779 --> 00:17:00,720 pon 15, que ahora quiero el doble de 15 399 00:17:00,720 --> 00:17:02,240 venga, vale 400 00:17:02,240 --> 00:17:08,190 30, entonces cada vez que 401 00:17:08,190 --> 00:17:10,390 yo como cliente que he recibido 402 00:17:10,390 --> 00:17:12,210 esta aplicación quiera calcular el doble 403 00:17:12,210 --> 00:17:14,210 de otro número, tengo que ir a la 404 00:17:14,210 --> 00:17:16,609 empresa de software y decirle 405 00:17:16,609 --> 00:17:18,329 oye, hacedme otra versión que ahora 406 00:17:18,329 --> 00:17:20,329 lo calcule de 90, hacedme otra versión 407 00:17:20,329 --> 00:17:22,450 que lo calcule de 30. Es estúpido 408 00:17:22,450 --> 00:17:24,369 lógicamente. Entonces 409 00:17:24,369 --> 00:17:25,670 lo habitual 410 00:17:25,670 --> 00:17:28,250 es que los 411 00:17:28,250 --> 00:17:30,089 datos de entrada de una aplicación 412 00:17:30,089 --> 00:17:32,509 los podamos recoger 413 00:17:32,509 --> 00:17:34,029 en tiempo de ejecución 414 00:17:34,029 --> 00:17:36,210 desde la consola, desde 415 00:17:36,210 --> 00:17:38,049 del teclado, entonces 416 00:17:38,049 --> 00:17:39,849 nuestro programa es siempre el mismo 417 00:17:39,849 --> 00:17:42,069 pero cuando se ejecuta 418 00:17:42,069 --> 00:17:44,250 te pide el 419 00:17:44,250 --> 00:17:45,809 dato y te dice, ¿qué dato quieres este? 420 00:17:45,950 --> 00:17:47,829 tú se lo metes y ya está 421 00:17:47,829 --> 00:17:49,509 y la aplicación trabaja con esto 422 00:17:49,509 --> 00:17:52,190 entonces, aquí 423 00:17:52,190 --> 00:17:54,170 lo que nos gustaría es 424 00:17:54,170 --> 00:17:56,230 en lugar de poner un valor 425 00:17:56,230 --> 00:17:58,309 tal cual, poner 426 00:17:58,309 --> 00:18:00,490 un valor que hayamos leído del teclado 427 00:18:00,490 --> 00:18:06,460 de lo que llamamos la consola 428 00:18:06,460 --> 00:18:07,880 ¿vale? es lo que querríamos 429 00:18:07,880 --> 00:18:14,170 ¿vale? pues entonces, para 430 00:18:14,170 --> 00:18:16,349 poder empezar a hacer 431 00:18:16,349 --> 00:18:18,210 programas que tengan sentido y no tengamos que 432 00:18:18,210 --> 00:18:20,369 estar cambiando el dato de entrada todo el rato 433 00:18:20,369 --> 00:18:20,950 ahí dentro 434 00:18:20,950 --> 00:18:24,430 vamos a incorporar como era un valor del teclado 435 00:18:24,430 --> 00:18:24,910 y ya está 436 00:18:24,910 --> 00:18:28,230 es una línea 437 00:18:28,230 --> 00:18:30,390 que es una línea que no vamos 438 00:18:30,390 --> 00:18:32,130 a entender, bueno son dos, pero 439 00:18:32,130 --> 00:18:34,549 tenemos que incorporarla desde ya para poder hacer programas operativos 440 00:18:34,549 --> 00:18:36,269 pues venga 441 00:18:36,269 --> 00:18:37,789 entonces eso implicaría 442 00:18:37,789 --> 00:18:40,329 el doble de un número entero, ahora no 443 00:18:40,329 --> 00:18:42,230 ya el que al programador le dé la gana 444 00:18:42,230 --> 00:18:43,750 sino un número 445 00:18:43,750 --> 00:18:47,690 Introducido por teclado 446 00:18:47,690 --> 00:18:51,529 Por el usuario 447 00:18:51,529 --> 00:18:54,569 Ahora este programa ya tiene sentido 448 00:18:54,569 --> 00:18:57,630 Un número introducido por el usuario 449 00:18:57,630 --> 00:18:59,730 Te calcula el doble y te lo muestra 450 00:18:59,730 --> 00:19:01,150 Vale 451 00:19:01,150 --> 00:19:03,089 Pues entonces 452 00:19:03,089 --> 00:19:05,769 Para leer por teclado 453 00:19:09,769 --> 00:19:11,809 Introducido por el usuario del programa 454 00:19:11,809 --> 00:19:17,390 Vale, pues para leer por teclado 455 00:19:17,390 --> 00:19:19,490 Necesitamos 456 00:19:19,490 --> 00:19:25,170 Algo que sea capaz 457 00:19:25,170 --> 00:19:26,930 De engancharse al teclado y leer 458 00:19:26,930 --> 00:19:28,430 Que es lo que llamamos 459 00:19:28,430 --> 00:19:29,930 Un objeto lector 460 00:19:29,930 --> 00:19:35,609 Yo ahora lo explico 461 00:19:35,609 --> 00:19:37,250 Así para que no suene a que pongo 462 00:19:37,250 --> 00:19:38,650 La línea y punto pelota 463 00:19:38,650 --> 00:19:41,230 Pero eso no significa que podamos entender 464 00:19:41,230 --> 00:19:42,670 Que es un objeto y nada de eso 465 00:19:42,670 --> 00:19:45,009 Aunque bueno, desde ya 466 00:19:45,009 --> 00:19:45,930 Podemos decir 467 00:19:45,930 --> 00:19:48,549 que en Java 468 00:19:48,549 --> 00:19:50,910 hay variables, está claro 469 00:19:50,910 --> 00:19:53,049 y luego sentencias que operan con las variables 470 00:19:53,049 --> 00:19:54,910 esas variables son 471 00:19:54,910 --> 00:19:56,789 de los tipos que hemos dicho, aunque nos falta 472 00:19:56,789 --> 00:19:58,690 por ver cómo funcionan algunos 473 00:19:58,690 --> 00:20:00,789 esas variables son de los tipos 474 00:20:00,789 --> 00:20:02,690 que hemos dicho, o también 475 00:20:02,690 --> 00:20:04,970 pueden ser objetos, que serían variables 476 00:20:04,970 --> 00:20:05,990 un poco más complejas 477 00:20:05,990 --> 00:20:08,769 ¿vale? que ya las veremos 478 00:20:08,769 --> 00:20:10,710 con relación a todos los objetos, pues esas variables 479 00:20:10,710 --> 00:20:12,789 que pueden ser objetos, además 480 00:20:12,789 --> 00:20:14,970 de tener datos dentro, como el int, el double 481 00:20:14,970 --> 00:20:16,690 que tiene su dato dentro, además de eso 482 00:20:16,690 --> 00:20:18,829 resulta que puede hacer cosas 483 00:20:18,829 --> 00:20:21,490 las variables 484 00:20:21,490 --> 00:20:23,569 como indabel, estas que hemos visto 485 00:20:23,569 --> 00:20:25,690 que son las que se llaman primitivas 486 00:20:25,690 --> 00:20:27,750 estos ocho tipos son los que se llaman 487 00:20:27,750 --> 00:20:28,750 primitivos 488 00:20:28,750 --> 00:20:31,210 pues las variables de esos ocho tipos 489 00:20:31,210 --> 00:20:33,309 sirven para guardar un dato 490 00:20:33,309 --> 00:20:34,549 y para nada más 491 00:20:34,549 --> 00:20:36,630 y para luego entregarlo en una expresión 492 00:20:36,630 --> 00:20:38,890 si le pones una expresión, lo entrega, claro 493 00:20:38,890 --> 00:20:40,430 pero no vale para nada más 494 00:20:40,430 --> 00:20:42,589 las variables que son objeto 495 00:20:42,589 --> 00:20:44,730 que son raras y distintas 496 00:20:44,730 --> 00:20:46,549 a estas, además de 497 00:20:46,549 --> 00:20:48,250 para tener un dato dentro guardado 498 00:20:48,250 --> 00:20:50,170 además de para eso, que también valen 499 00:20:50,170 --> 00:20:52,710 valen para hacer cosas muy chulas 500 00:20:52,710 --> 00:20:54,289 bueno, pues 501 00:20:54,289 --> 00:20:56,630 yo si consigo hacer aparecer 502 00:20:56,630 --> 00:20:58,369 aquí un objeto 503 00:20:58,369 --> 00:21:00,789 lector, una variable objeto lector 504 00:21:00,789 --> 00:21:02,730 que sepa leer del teclado 505 00:21:02,730 --> 00:21:04,390 pues ya está, le mando que lea 506 00:21:04,390 --> 00:21:05,630 y se acabó, lo tengo todo hecho 507 00:21:05,630 --> 00:21:08,470 vale, pues 508 00:21:08,470 --> 00:21:10,490 ¿cómo creamos ese objeto lector? 509 00:21:11,049 --> 00:21:12,250 lo creamos así 510 00:21:12,250 --> 00:21:24,859 Y esto sí que ahora mismo nos lo vamos a tener que creer, ¿vale? 511 00:21:25,460 --> 00:21:30,400 Ahora mismo vamos a tener que creer que este es un objeto lector que se llama scan, 512 00:21:31,519 --> 00:21:36,519 que lo he creado, un objeto lector, y ahora está creado ya ese objeto. 513 00:21:37,700 --> 00:21:41,319 Ahora lo único que tengo que hacer es darle órdenes para que lea cuando a mí me interese. 514 00:21:41,319 --> 00:21:59,359 Lo que pasa es que para que Java me reconozca, para que el compilador me reconozca este término de aquí, para que me lo reconozca, tengo que escribir una línea aquí arriba, pero que la escribe automáticamente el compilador. 515 00:21:59,359 --> 00:22:08,779 Si le dais aquí en la cosita esta roja, si pulsáis con el izquierdo, os ofrece arriba Import Scanner. 516 00:22:10,990 --> 00:22:14,569 Pues le dais doble clic y os hace aparecer esta línea. 517 00:22:15,690 --> 00:22:17,490 La podéis escribir a mano, no pasa nada. 518 00:22:18,309 --> 00:22:18,509 ¿Vale? 519 00:22:19,089 --> 00:22:20,170 La podéis escribir a mano. 520 00:22:20,789 --> 00:22:24,089 Y si no, cuando escribáis Scanner, os pondré en rojo, le introducís y ya está. 521 00:22:24,089 --> 00:22:36,619 Entonces, esta línea tiene que estar en el código para poder crear el objeto lector que es este, ¿vale? 522 00:22:38,000 --> 00:22:40,480 Vale, ya tenemos creado el objeto lector. 523 00:22:41,720 --> 00:22:47,579 Ahora este objeto lector me vale para hacer una lectura 2, 20, 30 y 7, las que yo quiera. 524 00:22:48,759 --> 00:22:50,059 Bueno, vale, ya lo tengo creado. 525 00:22:50,140 --> 00:22:52,279 ¿Cómo lo uso ahora para leer del teclado? 526 00:22:52,279 --> 00:22:55,740 ¿en qué momento queríamos leer 527 00:22:55,740 --> 00:22:57,299 del teclado nosotros? aquí 528 00:22:57,299 --> 00:22:59,720 aquí no quiero darle yo 529 00:22:59,720 --> 00:23:01,299 15, 30, 20, no 530 00:23:01,299 --> 00:23:03,839 aquí quiero dar la orden 531 00:23:03,839 --> 00:23:05,940 al lector para que lea 532 00:23:05,940 --> 00:23:07,660 y el valor que ha leído 533 00:23:07,660 --> 00:23:08,660 que vaya a dar 534 00:23:08,660 --> 00:23:11,759 ahí en ese punto es en el que yo quiero 535 00:23:11,759 --> 00:23:13,740 engancharme al teclado 536 00:23:13,740 --> 00:23:15,579 leer y guardarlo en dato 537 00:23:15,579 --> 00:23:17,779 ¿cómo fuerzo 538 00:23:17,779 --> 00:23:18,599 esa lectura? 539 00:23:19,859 --> 00:23:21,500 pues esto es simplemente 540 00:23:21,500 --> 00:23:28,839 Llama al objeto scan, punto y ya está. 541 00:23:34,930 --> 00:23:40,609 Es decir, esto significa, tú scan, que eres el objeto de este lector, 542 00:23:42,250 --> 00:23:46,150 engánchate al teclado, quédate ahí esperando 543 00:23:46,150 --> 00:23:52,730 y cuando alguien meta un entero, cógelo y ese entero que vaya a dato. 544 00:23:52,730 --> 00:23:55,609 Todo eso significa 545 00:23:55,609 --> 00:24:03,400 Ahora mismo lo único que tenemos que hacer es 546 00:24:03,400 --> 00:24:06,000 Aprendernos de memoria entre comillas 547 00:24:06,000 --> 00:24:08,019 Que para leer un entero del teclado 548 00:24:08,019 --> 00:24:08,940 Esta es la sentencia 549 00:24:08,940 --> 00:24:10,900 Y luego lo más importante 550 00:24:10,900 --> 00:24:13,380 Entender lo que está pasando cuando se ejecuta 551 00:24:13,380 --> 00:24:15,039 Eso sí que es importante 552 00:24:15,039 --> 00:24:18,559 Vale, pues nuestro programa es este 553 00:24:18,559 --> 00:24:22,740 ¿Qué va a pasar cuando esto se ejecute? 554 00:24:24,960 --> 00:24:26,559 Vale, pues cuando esto se ejecute 555 00:24:26,559 --> 00:24:32,640 No pasa nada 556 00:24:32,640 --> 00:24:35,119 Es un aviso, es un guarde 557 00:24:35,119 --> 00:24:37,140 No pasa nada porque no lo cierres, da igual 558 00:24:37,140 --> 00:24:46,559 Porque habrás importado otra cosa 559 00:24:46,559 --> 00:24:49,319 ¿Dónde está el circulito? 560 00:24:53,829 --> 00:24:55,430 ¿He perdido el circulito? 561 00:24:59,690 --> 00:25:01,789 no sé 562 00:25:01,789 --> 00:25:03,809 porque esto no escribe 563 00:25:03,809 --> 00:25:05,430 bueno, da igual 564 00:25:05,430 --> 00:25:08,549 vale, pues entonces, ahora lo importante es entender 565 00:25:08,549 --> 00:25:10,549 qué va a pasar 566 00:25:10,549 --> 00:25:11,849 cuando este programa se ejecute 567 00:25:11,849 --> 00:25:14,089 eso sí que es lo importante, ¿vale? 568 00:25:16,089 --> 00:25:16,970 vale, pues a ver 569 00:25:16,970 --> 00:25:18,430 ahora ya este programa 570 00:25:18,430 --> 00:25:20,109 como no tiene ningún error de compilación 571 00:25:20,109 --> 00:25:20,950 que no tiene ninguno 572 00:25:20,950 --> 00:25:23,549 se puede ejecutar, ¿vale? 573 00:25:23,589 --> 00:25:25,609 como no tiene ningún error se puede ejecutar 574 00:25:25,609 --> 00:25:28,410 vale, ¿alguien ve el circulito ese 575 00:25:28,410 --> 00:25:30,349 que hay que dar para que se congele 576 00:25:30,349 --> 00:25:32,509 para que se convierta en pantalla 577 00:25:32,509 --> 00:25:36,549 ¿le ha desaparecido o qué ha pasado? 578 00:25:37,829 --> 00:25:38,329 ¿pero qué es? 579 00:25:39,170 --> 00:25:40,849 no, pero yo quiero ese circulito 580 00:25:40,849 --> 00:25:42,089 que yo le doy 581 00:25:42,089 --> 00:25:44,430 creo que 582 00:25:44,430 --> 00:25:46,170 vale, pero 583 00:25:46,170 --> 00:25:48,789 es más rápido desde ahí, bueno, no sé, da igual 584 00:25:48,789 --> 00:25:50,869 vale, bueno, pues entonces 585 00:25:50,869 --> 00:25:52,869 ahora esto se va a ejecutar 586 00:25:52,869 --> 00:25:53,869 vale 587 00:25:53,869 --> 00:25:57,170 la máquina virtual va paso por paso 588 00:25:57,170 --> 00:25:58,809 primero 589 00:25:58,809 --> 00:26:02,210 crea ese objeto 590 00:26:02,210 --> 00:26:04,690 lo crea, nosotros ahí no vemos nada 591 00:26:04,690 --> 00:26:05,930 lo crea, aparece 592 00:26:05,930 --> 00:26:08,430 aparece ese objeto, vale 593 00:26:08,430 --> 00:26:09,089 ahora 594 00:26:09,089 --> 00:26:11,750 declara esa variable 595 00:26:11,750 --> 00:26:14,670 muy bien, en memoria RAM 596 00:26:14,670 --> 00:26:16,470 aparecerá 597 00:26:16,470 --> 00:26:18,869 un espacio 598 00:26:18,869 --> 00:26:20,109 en memoria, dato 599 00:26:20,109 --> 00:26:22,009 para 32 bits 600 00:26:22,009 --> 00:26:26,130 y ahora 601 00:26:26,130 --> 00:26:28,430 a la vez que lo declara 602 00:26:28,430 --> 00:26:30,529 a la vez que lo declara 603 00:26:30,529 --> 00:26:34,430 le va a hacer una asignación. 604 00:26:35,250 --> 00:26:37,009 Eso es algo que siempre podemos hacer, ya sabemos. 605 00:26:37,670 --> 00:26:39,329 A la vez que declaro una variable, 606 00:26:40,029 --> 00:26:41,490 le puedo asignar un valor. 607 00:26:42,250 --> 00:26:44,849 Pero en este caso, el valor que yo le asigno 608 00:26:44,849 --> 00:26:48,190 no va a ser un numerito que yo le dé o una expresión, no. 609 00:26:48,930 --> 00:26:52,069 En este caso, el valor que yo le asigno 610 00:26:52,069 --> 00:26:58,170 va a ser el resultado de esta sentencia. 611 00:26:58,170 --> 00:27:00,789 ¿vale? pues ¿cómo funciona esta sentencia? 612 00:27:01,170 --> 00:27:01,849 ¿cómo funciona? 613 00:27:02,970 --> 00:27:04,450 la máquina virtual 614 00:27:04,450 --> 00:27:06,829 ve que hay un next int y ¿qué hace? 615 00:27:07,569 --> 00:27:08,750 detiene automáticamente 616 00:27:08,750 --> 00:27:10,730 el programa, el programa se 617 00:27:10,730 --> 00:27:11,609 queda aquí parado 618 00:27:11,609 --> 00:27:13,589 ahí parado esperando 619 00:27:13,589 --> 00:27:15,450 ¿esperando a qué? 620 00:27:16,910 --> 00:27:18,849 justo a que alguien por el teclado 621 00:27:18,849 --> 00:27:19,809 meta un numerito 622 00:27:19,809 --> 00:27:22,769 y mientras nadie meta nada 623 00:27:22,769 --> 00:27:23,630 por el teclado 624 00:27:23,630 --> 00:27:26,490 el programa está ahí esperando hasta el infinito 625 00:27:26,490 --> 00:27:44,049 Nunca jamás va a avanzar a la siguiente sentencia. Jamás. Ahí se va a quedar. Cuando alguien ya escriba algo en el teclado, recogerá ese algo y ya lo guardará en esta variable de datos. Será una asignación. 626 00:27:44,049 --> 00:27:46,609 lo que pasa es que esa asignación 627 00:27:46,609 --> 00:27:49,349 no viene de un numerito 628 00:27:49,349 --> 00:27:51,230 directamente o de una expresión 629 00:27:51,230 --> 00:27:53,210 sino viene de lo que 630 00:27:53,210 --> 00:27:54,650 alguien ha metido en el teclado 631 00:27:54,650 --> 00:27:56,910 ¿vale? entonces es importante entender 632 00:27:56,910 --> 00:27:58,329 que mientras 633 00:27:58,329 --> 00:28:00,809 no haya alguien ahí metiendo algo 634 00:28:00,809 --> 00:28:03,069 esto va a estar aquí parado 635 00:28:03,069 --> 00:28:05,509 en el next in hasta el infinito 636 00:28:05,509 --> 00:28:07,009 ahí va a estar parado, de ahí no va a salir 637 00:28:07,009 --> 00:28:09,289 hasta que alguien no escriba algo 638 00:28:09,289 --> 00:28:11,269 vale, alguien 639 00:28:11,269 --> 00:28:13,390 escribe algo, pues ya está, la asignación está hecha 640 00:28:13,390 --> 00:28:31,390 A ver, se supone que van a escribir un entero, 37. Si alguien escribiera una cosa que no es un número, como hola, cuando la máquina virtual tratara de asignar un hola, ahí daría un error de ejecución y el programa pararía. 641 00:28:31,390 --> 00:28:33,529 pero bueno, vamos a usarlo así, vamos a usarlo 642 00:28:33,529 --> 00:28:35,369 introduciendo, lo que supone que tiene que introducir 643 00:28:35,369 --> 00:28:37,789 pues ya está, ahora ya 644 00:28:37,789 --> 00:28:38,329 sí que 645 00:28:38,329 --> 00:28:43,589 este programa 646 00:28:43,589 --> 00:28:45,490 nuestro, ya sí que 647 00:28:45,490 --> 00:28:47,470 es más general, entonces 648 00:28:47,470 --> 00:28:49,289 para que sea más amigable 649 00:28:49,289 --> 00:28:51,329 vamos a poner un mensajito delante 650 00:28:51,329 --> 00:28:52,970 porque si no el tío no sabe que 651 00:28:52,970 --> 00:28:55,869 vale, porque si yo no pongo este System.out.println 652 00:28:55,869 --> 00:28:57,470 voy a 653 00:28:57,470 --> 00:28:59,130 ejecutar mi programa así tal cual 654 00:28:59,130 --> 00:29:03,789 lo ejecuto, aquí 655 00:29:03,789 --> 00:29:05,130 está la consola como tonta 656 00:29:05,130 --> 00:29:07,549 esperando hasta el infinito 657 00:29:07,549 --> 00:29:09,750 y yo estoy sentada adelante diciendo 658 00:29:09,750 --> 00:29:10,670 ¿y tú qué esperas? 659 00:29:11,410 --> 00:29:13,609 ¿qué hago? no sé, ¿qué tengo que hacer? 660 00:29:14,069 --> 00:29:15,630 y ahí está parada hasta el infinito 661 00:29:15,630 --> 00:29:17,549 entonces, como yo no sé qué tengo que hacer 662 00:29:17,549 --> 00:29:20,349 pues yo qué sé, puedo escribir cualquier cosa 663 00:29:20,349 --> 00:29:23,569 aquí el programa 664 00:29:23,569 --> 00:29:24,869 me fallaría, porque 665 00:29:24,869 --> 00:29:27,450 está esperando un entero 666 00:29:27,450 --> 00:29:28,930 este es el cubito que quería yo 667 00:29:28,930 --> 00:29:30,750 está esperando un entero 668 00:29:30,750 --> 00:29:33,670 entonces, si yo como le he puesto 669 00:29:33,670 --> 00:29:35,349 esto, que no es ni un entero ni nada 670 00:29:35,349 --> 00:29:37,690 el programa se rompe, pero bueno 671 00:29:37,690 --> 00:29:39,710 ahora mismo esto no nos importa, vamos a hacer el uso 672 00:29:39,710 --> 00:29:41,750 correcto, pero también entendemos muy bien que es esto 673 00:29:41,750 --> 00:29:43,430 de exception, etcétera 674 00:29:43,430 --> 00:29:43,809 ¿vale? 675 00:29:45,410 --> 00:29:47,990 entonces, para que el programa 676 00:29:47,990 --> 00:29:48,950 sea intuitivo 677 00:29:48,950 --> 00:29:52,130 vamos a poner un mensajito 678 00:29:52,130 --> 00:30:01,150 siso 679 00:30:01,150 --> 00:30:02,089 control espacio 680 00:30:02,089 --> 00:30:18,700 vale, el programa ahora es un pelín más amigable 681 00:30:18,700 --> 00:30:21,579 Ahora ya ejecutamos esto 682 00:30:21,579 --> 00:30:24,819 Me muestra el mensaje 683 00:30:24,819 --> 00:30:27,579 Y ahí está esperando 684 00:30:27,579 --> 00:30:29,579 Ahí está esperando 685 00:30:29,579 --> 00:30:31,420 Pero yo ya sé que tengo que meter un entero 686 00:30:31,420 --> 00:30:33,440 Meto un entero 687 00:30:33,440 --> 00:30:35,180 Y me calcula el doble 688 00:30:35,180 --> 00:30:37,279 Entonces ahora ya 689 00:30:37,279 --> 00:30:39,640 Puedo calcular el doble de cualquier 690 00:30:39,640 --> 00:30:41,839 Número con este mismo programa 691 00:30:41,839 --> 00:30:43,519 No tengo que ir al 692 00:30:43,519 --> 00:30:45,359 Programador a oye cámbiame el número 693 00:30:45,359 --> 00:30:47,440 Cámbiame el número, no porque se lo estoy dando yo 694 00:30:47,440 --> 00:30:48,579 En tiempo de ejecución 695 00:30:48,579 --> 00:30:51,819 ¿Vale? Como se lo estoy dando yo en tiempo de ejecución 696 00:30:51,819 --> 00:30:53,960 Ya la empresa de software 697 00:30:53,960 --> 00:30:55,720 Ya no la necesito para nada 698 00:30:55,720 --> 00:30:57,619 Tengo yo a mi programa, el que me ha vendido 699 00:30:57,619 --> 00:31:00,220 Y lo ejecuto siempre que me dé la gana 700 00:31:00,220 --> 00:31:01,119 Para hacer lo que yo quiera 701 00:31:01,119 --> 00:31:02,940 ¿Qué ahora quiero el doble de este? Pues este 702 00:31:02,940 --> 00:31:06,220 ¿Qué ahora quiero el doble de este otro? Pues este otro 703 00:31:06,220 --> 00:31:07,380 ¿Vale? 704 00:31:09,769 --> 00:31:11,470 Entonces los programas, lógicamente 705 00:31:11,470 --> 00:31:12,670 Trabajan con datos 706 00:31:12,670 --> 00:31:15,630 Y la idea es que esos datos se entreguen 707 00:31:15,630 --> 00:31:16,789 En tiempo de ejecución 708 00:31:16,789 --> 00:31:19,150 No los pongamos por código 709 00:31:19,150 --> 00:31:21,430 porque entonces tendríamos que ir a la empresa 710 00:31:21,430 --> 00:31:23,569 de software, cámbiame a la variable 711 00:31:23,569 --> 00:31:25,150 y vale 7, cámbiame, es absurdo 712 00:31:25,150 --> 00:31:28,960 ¿vale? bueno pues 713 00:31:28,960 --> 00:31:31,559 en los ejemplos que veamos 714 00:31:31,559 --> 00:31:32,579 desde ya y eso 715 00:31:32,579 --> 00:31:35,039 daremos los datos por teclado 716 00:31:35,039 --> 00:31:37,200 para que el programa 717 00:31:37,200 --> 00:31:38,420 tenga un poco más de sentido 718 00:31:38,420 --> 00:31:40,880 con lo cual ya podemos 719 00:31:40,880 --> 00:31:43,519 usemos esto ya siempre 720 00:31:43,519 --> 00:31:45,380 sin tener que pararnos 721 00:31:45,380 --> 00:31:47,700 esa línea para crear el objeto 722 00:31:47,700 --> 00:31:49,859 lo cual implicará 723 00:31:49,859 --> 00:31:51,559 que haya que poner 724 00:31:51,559 --> 00:31:53,779 el import 725 00:31:53,779 --> 00:31:54,380 arriba 726 00:31:54,380 --> 00:31:57,940 ¿vale? el import ese que está arriba 727 00:31:57,940 --> 00:31:59,940 y luego cuando 728 00:31:59,940 --> 00:32:01,759 yo quiero leer, en el caso de que sea un número 729 00:32:01,759 --> 00:32:04,059 entero, cuando sea otra cosa ya lo incorporaremos 730 00:32:04,059 --> 00:32:05,460 esto 731 00:32:05,460 --> 00:32:06,819 y con esto lo entero 732 00:32:06,819 --> 00:32:09,460 ahora mismo asegurémonos 733 00:32:09,460 --> 00:32:11,819 cuando lo ejecutemos de meter realmente 734 00:32:11,819 --> 00:32:13,259 un entero, pues el programa se va a parar 735 00:32:13,259 --> 00:32:15,539 y no sabemos todavía cómo capturar eso 736 00:32:15,539 --> 00:32:17,220 cómo manejarlo, etcétera, entonces 737 00:32:17,220 --> 00:32:19,819 usemos el programa metiendo lo que me está 738 00:32:19,819 --> 00:32:21,660 pidiendo, si me pide un entero, pues un entero 739 00:32:21,660 --> 00:32:23,259 yo tengo una pregunta 740 00:32:23,259 --> 00:32:25,579 el system out después del 741 00:32:25,579 --> 00:32:27,640 escáner, o sea, automáticamente como se 742 00:32:27,640 --> 00:32:29,880 el 743 00:32:29,880 --> 00:32:31,539 como después del escáner, ah, este 744 00:32:31,539 --> 00:32:33,259 simplemente es para que me 745 00:32:33,259 --> 00:32:34,680 me 746 00:32:34,680 --> 00:32:37,559 ya, pero tú no has puesto ni escáner ni nada 747 00:32:37,559 --> 00:32:39,740 como que no he puesto ni escáner ni nada 748 00:32:39,740 --> 00:32:41,720 o sea, después del escáner has puesto 749 00:32:41,720 --> 00:32:43,740 system, claro, esto es 750 00:32:43,740 --> 00:32:45,660 para que me muestre un 751 00:32:45,660 --> 00:32:47,140 mensaje, sin más 752 00:32:47,140 --> 00:32:49,799 o sea, entonces al mostrarme 753 00:32:49,799 --> 00:32:51,339 Me muestra el mensaje 754 00:32:51,339 --> 00:32:52,880 Me muestra la información 755 00:32:52,880 --> 00:32:55,839 Que es, voy a esperar que metas 756 00:32:55,839 --> 00:32:57,559 Y luego ya sí que sí 757 00:32:57,559 --> 00:32:58,839 Se queda aquí esperando 758 00:32:58,839 --> 00:33:00,380 Esto es solamente para mostrar un mensajito 759 00:33:00,380 --> 00:33:02,319 Para que la interfase sea más amigable 760 00:33:02,319 --> 00:33:03,140 Claro, porque si no 761 00:33:03,140 --> 00:33:05,160 ¿Vale? 762 00:33:10,279 --> 00:33:13,259 Bueno, pues todo esto en cuanto a 763 00:33:13,259 --> 00:33:18,859 Venía en cuanto al rollo de expresiones 764 00:33:18,859 --> 00:33:20,000 ¿Vale? 765 00:33:20,000 --> 00:33:20,900 Que a una variable 766 00:33:20,900 --> 00:33:28,240 Le podemos asignar una expresión correctamente escrita, etc. 767 00:33:38,759 --> 00:33:39,980 Bueno, ¿alguna pregunta? 768 00:33:41,839 --> 00:33:42,500 Ninguna, ¿no? 769 00:33:42,500 --> 00:33:46,319 Es que todavía, con lo que sabemos, podemos hacer nada, nada más que cosas como esta. 770 00:33:46,839 --> 00:33:52,819 Así que tenemos que incorporar alguna cosita más para poder hacer programas un poquito más así. 771 00:33:54,480 --> 00:33:59,420 Vale, en lugar de parar ahora que toca, vamos a parar ahora porque quiero descansar un rato. 772 00:33:59,700 --> 00:34:02,299 La voz, ¿vale?