1 00:00:00,000 --> 00:00:03,500 y los demás se han subido al carro 2 00:00:03,500 --> 00:00:04,620 así porque les da la gana 3 00:00:04,620 --> 00:00:07,320 I have sex daily 4 00:00:07,320 --> 00:00:08,419 quiero decir mis lex 5 00:00:08,419 --> 00:00:09,259 eso 6 00:00:09,259 --> 00:00:12,599 bueno, ahora está de moda 7 00:00:12,599 --> 00:00:14,640 todo está de moda 8 00:00:14,640 --> 00:00:16,199 venga 9 00:00:16,199 --> 00:00:20,960 venga, a ver 10 00:00:20,960 --> 00:00:21,719 15 11 00:00:21,719 --> 00:00:24,920 15 12 00:00:24,920 --> 00:00:26,699 vale, aquí ya 13 00:00:26,699 --> 00:00:28,839 hacemos otra cosa nueva 14 00:00:28,839 --> 00:00:31,280 sumar y contar 15 00:00:31,280 --> 00:00:32,799 ya nos lo sabemos todo de memoria 16 00:00:32,799 --> 00:00:34,920 aquí nos dicen 17 00:00:34,920 --> 00:00:37,060 calcular máximo y mínimo 18 00:00:37,060 --> 00:00:39,380 eso no es ni sumar ni contar 19 00:00:39,380 --> 00:00:40,600 eso no lo hemos hecho hasta ahora 20 00:00:40,600 --> 00:00:42,159 la media sí 21 00:00:42,159 --> 00:00:45,380 la media será lo mismo que he dicho anterior 22 00:00:45,380 --> 00:00:47,200 una lista de números 23 00:00:47,200 --> 00:00:48,679 o sea, ir pidiendo números 24 00:00:48,679 --> 00:00:51,039 entonces para hacer la media lo mismo que hemos hecho 25 00:00:51,039 --> 00:00:53,060 un bucle, pide número 26 00:00:53,060 --> 00:00:54,460 hace la suma 27 00:00:54,460 --> 00:00:57,700 y cuenta el número 28 00:00:57,700 --> 00:01:00,780 pide número, lo suma y lo cuenta 29 00:01:00,780 --> 00:01:02,439 y luego cuando hayamos acabado el bucle 30 00:01:02,439 --> 00:01:04,540 la suma entre la cuenta, la media 31 00:01:04,540 --> 00:01:05,659 lo que hemos hecho antes 32 00:01:05,659 --> 00:01:07,359 vale, aquí un for no 33 00:01:07,359 --> 00:01:10,980 porque aquí me dicen, no vas a pedir 10 números 34 00:01:10,980 --> 00:01:11,459 o 20 35 00:01:11,459 --> 00:01:14,819 aquí vas a estar pidiendo números mientras metas un 0 36 00:01:14,819 --> 00:01:16,319 luego aquí 37 00:01:16,319 --> 00:01:18,840 yo no sé exactamente cuántas veces 38 00:01:18,840 --> 00:01:19,500 se va a hacer el bucle 39 00:01:19,500 --> 00:01:23,000 es más que infinito 40 00:01:23,000 --> 00:01:23,579 es infinito indefinido 41 00:01:23,579 --> 00:01:26,260 yo no sé cuántas veces se va a ejecutar 42 00:01:26,260 --> 00:01:28,459 si la primera vez el tío mete el 0 43 00:01:28,459 --> 00:01:30,280 la segunda vez, pues se va a hacer dos veces 44 00:01:30,280 --> 00:01:32,680 pero si en la siguiente ejecución mete el 0 45 00:01:32,680 --> 00:01:34,400 la vez 15, se va a ejecutar 15 veces 46 00:01:34,400 --> 00:01:36,700 entonces no sé cuántas veces se va a ejecutar 47 00:01:36,700 --> 00:01:38,439 de partida, luego aquí el for no pega 48 00:01:38,439 --> 00:01:40,420 aquí pegará un while 49 00:01:40,420 --> 00:01:42,200 porque la condición es 50 00:01:42,200 --> 00:01:43,579 mientras el número sea 51 00:01:43,579 --> 00:01:45,260 mayor o igual que 0 52 00:01:45,260 --> 00:01:48,159 porque va a terminar cuando sea negativo 53 00:01:48,159 --> 00:01:50,359 entonces aquí será un while 54 00:01:50,359 --> 00:01:52,340 porque aquí no es la cantidad 55 00:01:52,340 --> 00:01:53,359 de veces que se va a hacer 56 00:01:53,359 --> 00:01:55,599 sino hasta cuándo se va a hacer 57 00:01:55,599 --> 00:01:58,319 se va a hacer mientras sea positivo 58 00:01:58,319 --> 00:01:59,239 luego aquí va a ser un while 59 00:01:59,239 --> 00:02:01,400 vale, pues un while y hacer la media 60 00:02:01,400 --> 00:02:02,560 eso ya lo sabemos hacer 61 00:02:02,560 --> 00:02:04,099 pero aparte nos piden 62 00:02:04,099 --> 00:02:06,439 un máximo y un mínimo 63 00:02:06,439 --> 00:02:08,439 entonces el máximo y el mínimo 64 00:02:08,439 --> 00:02:11,259 eso no lo hemos programado, no sabemos hacerlo 65 00:02:11,259 --> 00:02:13,539 se nos tiene que ocurrir, tenemos que pensarlo 66 00:02:13,539 --> 00:02:15,060 ¿cómo lo haríamos? 67 00:02:15,379 --> 00:02:18,240 en el mundo real para ahora programarlo 68 00:02:18,240 --> 00:02:19,379 ¿vale? 69 00:02:20,219 --> 00:02:22,360 bueno, pues cuando uno tiene un máximo 70 00:02:22,360 --> 00:02:25,319 Tiene que hacer el máximo 71 00:02:25,319 --> 00:02:26,580 De un conjunto de cosas 72 00:02:26,580 --> 00:02:28,780 El máximo siempre es el máximo de un conjunto de cosas 73 00:02:28,780 --> 00:02:30,439 Claro, el máximo de un conjunto 74 00:02:30,439 --> 00:02:39,469 Pues a ver 75 00:02:39,469 --> 00:02:42,090 ¿Cómo hago yo para ponerle? 76 00:02:42,169 --> 00:02:43,310 Es que como me han quitado el boli 77 00:02:43,310 --> 00:02:44,729 ¿Cómo hago yo para ponerle un...? 78 00:02:44,729 --> 00:02:48,289 ¿Quién tenía eso? 79 00:02:51,949 --> 00:02:53,710 No, pero serían suyos 80 00:02:53,710 --> 00:02:55,750 Serían suyos, se los habría comprado él 81 00:02:55,750 --> 00:03:01,389 Oye, ¿y no podéis cogerle uno así sin que se entere? 82 00:03:02,110 --> 00:03:05,069 Ahora también te veo con más rotuladores de ese hombre. 83 00:03:06,689 --> 00:03:08,830 Ah, pues ahora entiendo por qué no desaparecen a los demás. 84 00:03:09,270 --> 00:03:11,229 Es que no os ha dicho es coleccionista. 85 00:03:11,409 --> 00:03:12,250 Se la lleva de por. 86 00:03:13,050 --> 00:03:14,270 Pues igual se lo va llevando. 87 00:03:14,930 --> 00:03:16,870 Vale, a ver, ¿cómo hago para un pincel más gordo? 88 00:03:18,990 --> 00:03:22,520 No, porque así es siempre el mismo. 89 00:03:24,139 --> 00:03:24,740 Bueno, da igual. 90 00:03:25,319 --> 00:03:26,500 Se ve más o menos, ¿no? 91 00:03:27,580 --> 00:03:29,639 vale, entonces 92 00:03:29,639 --> 00:03:31,979 vamos a hacer el máximo de varias cosas 93 00:03:31,979 --> 00:03:33,919 por ejemplo, de un conjunto de cosas 94 00:03:33,919 --> 00:03:35,819 esta, esta 95 00:03:35,819 --> 00:03:37,939 esta, esta y esta 96 00:03:37,939 --> 00:03:39,800 que pueden ser números 97 00:03:39,800 --> 00:03:41,699 puede ser cualquier cosa, entonces 98 00:03:41,699 --> 00:03:43,360 el máximo es el máximo en algo 99 00:03:43,360 --> 00:03:45,860 si es números está claro, el máximo en valor 100 00:03:45,860 --> 00:03:47,939 el máximo en valor, pero podría 101 00:03:47,939 --> 00:03:48,879 ser el máximo 102 00:03:48,879 --> 00:03:51,780 de alumnos, pero el máximo de alumnos 103 00:03:51,780 --> 00:03:53,860 ¿en qué? en edad, vale, pues el que tiene 104 00:03:53,860 --> 00:03:56,180 la edad máxima, o sea, el concepto de máximo 105 00:03:56,180 --> 00:03:58,439 en general, es el máximo 106 00:03:58,439 --> 00:03:59,620 de lo que sea, ¿vale? 107 00:04:00,620 --> 00:04:02,159 Pues, ¿cómo hacemos en realidad 108 00:04:02,159 --> 00:04:04,180 el máximo? Pues 109 00:04:04,180 --> 00:04:05,659 vamos a ver, nosotros 110 00:04:05,659 --> 00:04:08,300 en condiciones normales, miramos 111 00:04:08,300 --> 00:04:10,479 y decimos, este, y lo cogemos 112 00:04:10,479 --> 00:04:12,139 pero al ordenador 113 00:04:12,139 --> 00:04:14,120 no le podemos decir, míralos todos a mogollón 114 00:04:14,120 --> 00:04:16,199 y coge, no le podemos decir eso 115 00:04:16,199 --> 00:04:18,480 al ordenador hay que darle una secuencia 116 00:04:18,480 --> 00:04:20,019 de pasos muy masticada 117 00:04:20,019 --> 00:04:22,220 para que lo haga, lo que nosotros 118 00:04:22,220 --> 00:04:23,839 hacemos de mirar de golpe y coger 119 00:04:23,839 --> 00:04:26,360 nos parece que hemos mirado de golpe 120 00:04:26,360 --> 00:04:28,100 y hemos cogido. Pero en realidad 121 00:04:28,100 --> 00:04:30,180 hemos seguido una secuencia, aunque 122 00:04:30,180 --> 00:04:32,079 no nos dé tiempo a identificarla. 123 00:04:32,800 --> 00:04:34,339 Pues esa secuencia que hemos seguido 124 00:04:34,339 --> 00:04:36,240 se la tenemos que pasar al ordenador, porque 125 00:04:36,240 --> 00:04:37,579 él es siquiera darle pasito por pasito. 126 00:04:38,279 --> 00:04:40,100 Pues esa secuencia que en realidad seguimos, aunque 127 00:04:40,100 --> 00:04:42,360 no nos demos cuenta, para ver cuál es 128 00:04:42,360 --> 00:04:43,819 el mayor de algo, 129 00:04:44,360 --> 00:04:45,959 el mayor de lo que sea, en caso de números, 130 00:04:45,959 --> 00:04:48,100 de valor. En caso de 131 00:04:48,100 --> 00:04:50,120 mesas, de tamaño, la que sea. 132 00:04:50,899 --> 00:04:51,740 Pues ¿cómo lo hacemos? 133 00:04:52,040 --> 00:04:53,399 En realidad vamos uno por uno. 134 00:04:53,839 --> 00:04:55,759 uno no puede mirar todo a la vez 135 00:04:55,759 --> 00:04:57,560 aunque no lo parezca va haciendo un barrido 136 00:04:57,560 --> 00:04:59,860 miramos este 137 00:04:59,860 --> 00:05:02,120 como ahora mismo solo he mirado uno 138 00:05:02,120 --> 00:05:03,740 este es el mayor sí o sí 139 00:05:03,740 --> 00:05:05,180 no tengo nada que decidir 140 00:05:05,180 --> 00:05:07,660 ahora paso a mirar el siguiente 141 00:05:07,660 --> 00:05:09,079 tengo dos opciones 142 00:05:09,079 --> 00:05:11,000 que este supere al anterior 143 00:05:11,000 --> 00:05:12,980 si lo supera 144 00:05:12,980 --> 00:05:14,699 tengo un nuevo mayor 145 00:05:14,699 --> 00:05:16,720 un nuevo máximo, que es este 146 00:05:16,720 --> 00:05:19,660 ahora paso a ver el siguiente 147 00:05:19,660 --> 00:05:21,959 oye, este es mayor que el 148 00:05:21,959 --> 00:05:42,620 Es decir, tenemos mentalmente un espacio aquí, un espacio aquí en el que tenemos en cada momento el que hasta ese instante es el máximo para nosotros, ¿vale? Entonces, yo he mirado el primero, en ese instante el máximo es el primero porque es el único que hay, no me ha dado tiempo a mirar más, luego el máximo es el primero, ¿vale? 149 00:05:42,620 --> 00:05:45,360 inmediatamente después miro el segundo 150 00:05:45,360 --> 00:05:47,680 repito, puede haber ocurrido dos cosas 151 00:05:47,680 --> 00:05:49,639 que este segundo supere a este o no 152 00:05:49,639 --> 00:05:51,139 si no lo supera 153 00:05:51,139 --> 00:05:53,360 mi mente no ha cambiado y aquí sigue 154 00:05:53,360 --> 00:05:54,180 estando el primero 155 00:05:54,180 --> 00:05:56,660 pero si este supera a este 156 00:05:56,660 --> 00:05:59,439 aquí en mi mente, en mi visión de cuál 157 00:05:59,439 --> 00:06:01,079 es el mayor, pasa a estar este 158 00:06:01,079 --> 00:06:03,360 ahora, miro el siguiente 159 00:06:03,360 --> 00:06:05,680 puede de nuevo ocurrir dos cosas 160 00:06:05,680 --> 00:06:07,579 que este siguiente supere 161 00:06:07,579 --> 00:06:09,420 al que en mi mente era el mayor 162 00:06:09,420 --> 00:06:10,759 o que no lo supere 163 00:06:10,759 --> 00:06:13,560 si no lo ha superado, en mi mente el mayor sigue siendo este 164 00:06:13,560 --> 00:06:15,500 pero si lo ha superado, automáticamente 165 00:06:15,500 --> 00:06:16,879 este pasa a ser el que era el mayor 166 00:06:16,879 --> 00:06:19,560 y así hasta que hago todos 167 00:06:19,560 --> 00:06:21,279 entonces, esa es la secuencia 168 00:06:21,279 --> 00:06:23,220 que realmente seguimos cuando queremos ver 169 00:06:23,220 --> 00:06:25,680 de un conjunto de valores, cuál es el mayor 170 00:06:25,680 --> 00:06:26,800 en algo, en lo que sea 171 00:06:26,800 --> 00:06:28,560 en el caso de números, en valor 172 00:06:28,560 --> 00:06:31,399 pero podría ser, pues ya digo, en el caso de 173 00:06:31,399 --> 00:06:33,079 ventanas en tamaño, en lo que fuera 174 00:06:33,079 --> 00:06:35,259 vale, pues estos pasitos 175 00:06:35,259 --> 00:06:37,560 se los tenemos que decir al ordenador 176 00:06:37,560 --> 00:06:39,439 nada más, entonces decirle 177 00:06:39,439 --> 00:06:40,540 esto al ordenador es muy fácil 178 00:06:40,540 --> 00:06:41,579 es 179 00:06:41,579 --> 00:06:43,939 prepárate una cajita, una variable 180 00:06:43,939 --> 00:06:46,160 para guardar el que sea el máximo 181 00:06:46,160 --> 00:06:46,920 en cada instante 182 00:06:46,920 --> 00:06:50,560 y ahora empiezo con un bucle 183 00:06:50,560 --> 00:06:52,620 a recorrerlos 184 00:06:52,620 --> 00:06:53,339 uno tras otro 185 00:06:53,339 --> 00:06:55,360 luego para hacer el máximo 186 00:06:55,360 --> 00:06:57,300 un bucle va a ser imprescindible 187 00:06:57,300 --> 00:06:59,399 un bucle que vaya uno tras otro 188 00:06:59,399 --> 00:07:01,420 inicialmente 189 00:07:01,420 --> 00:07:03,819 en el máximo guardo el primero 190 00:07:03,819 --> 00:07:05,139 el primero 191 00:07:05,139 --> 00:07:07,779 y ahora ya en ese bucle voy uno por uno 192 00:07:07,779 --> 00:07:09,879 este es mayor que este 193 00:07:09,879 --> 00:07:12,120 sustituye. Y ya está. 194 00:07:12,279 --> 00:07:14,600 Voy a este. ¿Este es mayor que este? 195 00:07:14,939 --> 00:07:15,720 Lo sustituye. 196 00:07:16,100 --> 00:07:18,279 Y voy al siguiente. ¿Este es mayor 197 00:07:18,279 --> 00:07:20,000 que este? No, pues no lo sustituye. 198 00:07:20,620 --> 00:07:22,300 Y voy al siguiente. ¿Este es 199 00:07:22,300 --> 00:07:23,779 mayor que este? Pues lo sustituye. 200 00:07:24,699 --> 00:07:26,379 Luego, para hacer el máximo, ya está. 201 00:07:26,860 --> 00:07:28,160 Una variable para 202 00:07:28,160 --> 00:07:30,279 guardar el que sea máximo en cada momento 203 00:07:30,279 --> 00:07:32,240 que inicialmente, cuando 204 00:07:32,240 --> 00:07:33,680 arranque el recorrido, será el primero. 205 00:07:34,420 --> 00:07:36,120 Y luego ya arranca un recorrido 206 00:07:36,120 --> 00:07:38,220 en el cual voy uno por uno. 207 00:07:38,220 --> 00:07:40,759 y con cada uno me hago una pregunta 208 00:07:40,759 --> 00:07:43,279 oye tú, ¿superas al que era el mayor para mí? 209 00:07:43,360 --> 00:07:44,920 no lo superas, no tengo nada que hacer 210 00:07:44,920 --> 00:07:47,220 paso al siguiente, lo superas 211 00:07:47,220 --> 00:07:48,860 te sustituyo y ya está 212 00:07:48,860 --> 00:07:51,379 pues todo eso es lo que tenemos que decirle 213 00:07:51,379 --> 00:07:52,040 que lo haga él 214 00:07:52,040 --> 00:07:53,939 y ya está, sabemos hacerlo 215 00:07:53,939 --> 00:07:56,860 es hacer if, hacer bucles 216 00:07:56,860 --> 00:07:59,420 claro, es hacer un bucle 217 00:07:59,420 --> 00:08:00,939 con un if dentro y una variable 218 00:08:00,939 --> 00:08:02,680 que es la que va recibiendo 219 00:08:02,680 --> 00:08:04,579 el valor si procede 220 00:08:04,579 --> 00:08:07,180 pues ya está, nada más que eso es lo que tenemos que hacer 221 00:08:07,180 --> 00:08:10,600 Y el mínimo será lo mismo, pero en el if será menor en vez de mayor. 222 00:08:10,740 --> 00:08:11,600 Pero bueno, ahora lo hacemos. 223 00:08:12,959 --> 00:08:17,800 Vale, pues entonces, ejercicio 15. 224 00:08:33,120 --> 00:08:34,320 Ejercicio 15, vale. 225 00:08:35,919 --> 00:08:37,740 Consiste en leer valores por teclado. 226 00:08:38,700 --> 00:08:41,379 Pues venga, como vamos a leer valores por teclado, 227 00:08:41,519 --> 00:08:43,240 pues esto va a tener que estar sí o sí. 228 00:08:58,529 --> 00:09:03,129 Vale, una variable para guardar el valor máximo en cada momento 229 00:09:03,129 --> 00:09:05,029 tiene que haber, ¿no? 230 00:09:05,029 --> 00:09:06,769 es esta de aquí 231 00:09:06,769 --> 00:09:08,070 es esta 232 00:09:08,070 --> 00:09:11,409 esta de aquí, la que tiene que ahorrar el valor máximo 233 00:09:11,409 --> 00:09:12,009 en cada momento 234 00:09:12,009 --> 00:09:14,990 y ahora ya empieza mi recorrido de valores 235 00:09:14,990 --> 00:09:17,269 estos valores de donde me llegan 236 00:09:17,269 --> 00:09:18,610 los voy pidiendo por teclado 237 00:09:18,610 --> 00:09:21,029 luego voy a tener que hacer un bucle para 238 00:09:21,029 --> 00:09:23,129 irlos leyendo y así poder pararme en cada uno 239 00:09:23,129 --> 00:09:23,629 de ellos 240 00:09:23,629 --> 00:09:28,720 vale, pues entonces vamos a ir 241 00:09:28,720 --> 00:09:30,759 a ver como nos va quedando 242 00:09:30,759 --> 00:09:32,700 vamos a hacer un bucle 243 00:09:32,700 --> 00:09:34,879 en el cual vamos a ir pidiendo los valores 244 00:09:34,879 --> 00:09:42,600 Luego ya completamos con la condición 245 00:09:42,600 --> 00:09:43,279 Lo que sea 246 00:09:43,279 --> 00:09:47,929 Introduzca el numerito 247 00:09:47,929 --> 00:09:50,370 Y lo leemos 248 00:09:50,370 --> 00:09:52,470 Me falta la variable para el numerito 249 00:09:52,470 --> 00:09:54,649 Pues venga, número 250 00:09:54,649 --> 00:10:03,259 Número igual al número que he leído 251 00:10:03,259 --> 00:10:07,940 Vale, entonces lo que yo he dicho tal cual 252 00:10:07,940 --> 00:10:09,860 Que nos faltarán cosas ahora por completar 253 00:10:09,860 --> 00:10:11,960 Claro es, vale, si ese número 254 00:10:11,960 --> 00:10:13,700 Es mayor 255 00:10:13,700 --> 00:10:16,480 Que el que es el máximo hasta ese momento 256 00:10:16,480 --> 00:10:18,360 Lo tiene que sustituir 257 00:10:18,360 --> 00:10:21,179 luego lo que yo he dicho trasladado 258 00:10:21,179 --> 00:10:22,299 es así 259 00:10:22,299 --> 00:10:25,059 si este número 260 00:10:25,059 --> 00:10:27,379 es mayor 261 00:10:27,379 --> 00:10:29,340 que el que es el máximo 262 00:10:29,340 --> 00:10:31,559 hasta ese momento, sea el que sea 263 00:10:31,559 --> 00:10:33,259 entonces 264 00:10:33,259 --> 00:10:35,460 tengo nuevo valor máximo 265 00:10:35,460 --> 00:10:42,250 ¿vale? entonces esta es la idea 266 00:10:42,250 --> 00:10:44,450 que he expresado yo antes 267 00:10:44,450 --> 00:10:46,269 vamos haciendo 268 00:10:46,269 --> 00:10:48,009 el recorrido por los números, en este caso 269 00:10:48,009 --> 00:10:49,409 el recorrido implica leerlos 270 00:10:49,409 --> 00:10:52,149 ¿vale? pues voy cogiendo 271 00:10:52,149 --> 00:10:54,070 cada número, que es lo que decía, voy cogiendo cada 272 00:10:54,070 --> 00:10:55,710 número, voy cogiendo cada número 273 00:10:55,710 --> 00:10:58,090 con cada número, ¿es 274 00:10:58,090 --> 00:10:59,750 mayor que el que está aquí colocado? 275 00:11:00,549 --> 00:11:02,070 si es mayor, pues 276 00:11:02,070 --> 00:11:03,870 pisa el que estuviera ahí colocado 277 00:11:03,870 --> 00:11:06,090 que es justo lo que he hecho 278 00:11:06,090 --> 00:11:08,090 aquí, ¿es mayor que el que está 279 00:11:08,090 --> 00:11:09,250 colocado en esa variable? 280 00:11:10,090 --> 00:11:11,929 pues pisa el que está ahí colocado 281 00:11:11,929 --> 00:11:14,269 lo pisa, num se convierte 282 00:11:14,269 --> 00:11:16,049 en el nuevo máximo y paso 283 00:11:16,049 --> 00:11:16,590 al siguiente 284 00:11:16,590 --> 00:11:22,139 y paso al siguiente, vale 285 00:11:22,139 --> 00:11:25,039 entonces, por ahora vamos a dejarlo así 286 00:11:25,039 --> 00:11:27,179 vamos a terminar 287 00:11:27,179 --> 00:11:28,740 con este bucle que me dice aquí, oye 288 00:11:28,740 --> 00:11:30,620 ¿y la condición cuál es? me han dicho 289 00:11:30,620 --> 00:11:32,600 haz esto mientras 290 00:11:32,600 --> 00:11:34,320 no metas un número negativo 291 00:11:34,320 --> 00:11:35,059 ¿no? 292 00:11:38,620 --> 00:11:40,000 la lista finalizará 293 00:11:40,000 --> 00:11:41,320 cuando se introduzca un número negativo 294 00:11:41,320 --> 00:11:43,379 vale, pues entonces 295 00:11:43,379 --> 00:11:46,120 mientras num sea 296 00:11:46,120 --> 00:11:48,019 mayor o igual que cero, haz esto 297 00:11:48,019 --> 00:11:52,419 vale, esto empieza ya a aproximarse 298 00:11:52,419 --> 00:11:53,759 al código, pero claro 299 00:11:53,759 --> 00:11:55,100 hay que irle arreglando cosas 300 00:11:55,100 --> 00:11:57,600 vale, mientras el número que yo leo 301 00:11:57,600 --> 00:11:59,580 aquí dentro sea positivo 302 00:11:59,580 --> 00:12:01,740 compara, a ver si supera 303 00:12:01,740 --> 00:12:03,179 el que es máximo hasta ese momento 304 00:12:03,179 --> 00:12:04,679 y actualizas 305 00:12:04,679 --> 00:12:06,539 vale 306 00:12:06,539 --> 00:12:09,779 primera cosa que me dice el compilador 307 00:12:09,779 --> 00:12:11,720 oye, que num 308 00:12:11,720 --> 00:12:13,659 la primera vez que entras al 309 00:12:13,659 --> 00:12:15,659 while, num no está 310 00:12:15,659 --> 00:12:17,580 inicializado, num no tiene nada, no puedo 311 00:12:17,580 --> 00:12:18,779 evaluar la condición 312 00:12:18,779 --> 00:12:21,639 vale, lo que pasa es que nosotros sabemos que 313 00:12:21,639 --> 00:12:22,620 una primera vez 314 00:12:22,620 --> 00:12:24,580 tenemos que entrar sí o sí 315 00:12:24,580 --> 00:12:26,259 esa primera vez hay que entrar sí o sí 316 00:12:26,259 --> 00:12:28,519 para leer el primero y luego ya las siguientes 317 00:12:28,519 --> 00:12:30,299 depende, por eso ya lo hemos 318 00:12:30,299 --> 00:12:32,559 dicho antes, hombre pues voy a 319 00:12:32,559 --> 00:12:34,460 meter uno cualquiera que 320 00:12:34,460 --> 00:12:35,899 haga que la condición sea cierta 321 00:12:35,899 --> 00:12:37,220 y ya está 322 00:12:37,220 --> 00:12:40,100 vale, esto ya está solucionado 323 00:12:40,100 --> 00:12:42,220 entraremos una primera vez en el while 324 00:12:42,220 --> 00:12:46,159 leemos número 325 00:12:46,159 --> 00:12:48,679 que ese número cumple la condición de superar 326 00:12:48,679 --> 00:12:50,139 el máximo hasta ese momento 327 00:12:50,139 --> 00:12:52,700 se convierte en el nuevo máximo 328 00:12:52,700 --> 00:12:55,240 es decir, pasa a esta cajita 329 00:12:55,240 --> 00:12:56,500 y me voy al siguiente 330 00:12:56,500 --> 00:12:59,220 vale, pero aún así el compilador 331 00:12:59,220 --> 00:13:00,659 se sigue quejando como la de esperar 332 00:13:00,659 --> 00:13:01,740 me dice, oye, cuidado 333 00:13:01,740 --> 00:13:04,980 pero el máximo, ¿con qué lo inicializo? 334 00:13:08,870 --> 00:13:10,250 nosotros hemos dicho antes 335 00:13:10,250 --> 00:13:12,110 a ver, hay una opción que siempre 336 00:13:12,110 --> 00:13:14,149 nos funcionaría, porque la que dices tú 337 00:13:14,149 --> 00:13:16,190 de cero, y si metes 338 00:13:16,190 --> 00:13:18,190 números negativos, imagínate 339 00:13:18,190 --> 00:13:20,049 que todos los números, ah bueno, perdón, en este caso 340 00:13:20,049 --> 00:13:21,769 no, porque lo negativo finaliza, vale, vale 341 00:13:21,769 --> 00:13:25,009 pero vamos a imaginarnos un caso que queremos hacer 342 00:13:25,009 --> 00:13:27,129 el máximo de un montón de números 343 00:13:27,129 --> 00:13:29,230 que pueden ser negativos o positivos 344 00:13:29,230 --> 00:13:31,110 de 20, por ejemplo, que pueden ser negativos 345 00:13:31,110 --> 00:13:33,110 y positivos, entonces el máximo 346 00:13:33,110 --> 00:13:34,429 lo tendríamos que inicializar 347 00:13:34,429 --> 00:13:36,970 al más bajo 348 00:13:36,970 --> 00:13:38,990 posible, y ese es menos 349 00:13:38,990 --> 00:13:40,929 infinito, no existe 350 00:13:40,929 --> 00:13:43,169 no, no, no, no, no se puede inicializar 351 00:13:43,169 --> 00:13:44,570 a nul porque es una variable primitiva 352 00:13:44,570 --> 00:13:46,909 no, entonces, a ver, la idea es que 353 00:13:46,909 --> 00:13:49,149 nuestro objetivo es que se inicialice 354 00:13:49,149 --> 00:13:50,009 con el primero de todos 355 00:13:50,009 --> 00:13:51,789 con el primero de la lista 356 00:13:51,789 --> 00:13:53,809 que se inicialice con el primero 357 00:13:53,809 --> 00:13:54,590 ¿verdad? 358 00:13:55,509 --> 00:13:57,970 es decir, que si estamos en la primera iteración 359 00:13:57,970 --> 00:14:00,070 si estamos en la primera iteración 360 00:14:00,070 --> 00:14:01,549 es que ni hacemos esto 361 00:14:01,549 --> 00:14:03,570 máximo es igual al primero 362 00:14:03,570 --> 00:14:04,970 ¿vale? 363 00:14:05,990 --> 00:14:08,490 es decir, estas iteraciones 364 00:14:08,490 --> 00:14:09,769 de aquí yo con el primero 365 00:14:09,769 --> 00:14:12,330 he dicho el primero directamente a la variable 366 00:14:12,330 --> 00:14:14,250 máximo, el primero directamente a máximo 367 00:14:14,250 --> 00:14:16,389 y ya con los siguientes 368 00:14:16,389 --> 00:14:18,009 es donde hago la comparación ¿verdad? 369 00:14:18,009 --> 00:14:20,509 porque con el primero no tengo nada 370 00:14:20,509 --> 00:14:22,490 con lo que comparar, el primero ya es el primer 371 00:14:22,490 --> 00:14:23,389 máximo de todos 372 00:14:23,389 --> 00:14:26,590 entonces podríamos hacer una primera modificación 373 00:14:26,590 --> 00:14:28,330 una primera versión a ver si nos gusta 374 00:14:28,330 --> 00:14:30,929 y sería 375 00:14:30,929 --> 00:14:32,710 a ver si estamos en la primera 376 00:14:32,710 --> 00:14:34,330 o no, por ejemplo 377 00:14:34,330 --> 00:14:36,509 ¿se podría usar un 378 00:14:36,509 --> 00:14:38,269 for dentro del while? ¿para qué? 379 00:14:40,970 --> 00:14:42,509 en este caso 380 00:14:42,509 --> 00:14:44,450 no lo necesitamos, a un bucle anidado 381 00:14:44,450 --> 00:14:46,309 dentro de otro bucle si es imprescindible 382 00:14:46,309 --> 00:14:48,350 sí, pero para qué queremos 383 00:14:48,350 --> 00:14:50,409 en este caso no nos hace falta, lo único que queremos 384 00:14:50,409 --> 00:14:52,230 aquí es que 385 00:14:52,230 --> 00:14:54,269 si estamos en la primera 386 00:14:54,269 --> 00:14:56,210 de las iteraciones, es decir 387 00:14:56,210 --> 00:14:58,509 estamos leyendo el primero, si estamos en la primera 388 00:14:58,509 --> 00:15:00,289 en ese caso no hacer esto 389 00:15:00,289 --> 00:15:02,470 es decir, si estamos en la 390 00:15:02,470 --> 00:15:09,220 primera, queremos 391 00:15:09,220 --> 00:15:11,379 directamente hacer esto, máximo igual al número 392 00:15:11,379 --> 00:15:13,379 que he leído, si estamos en la 393 00:15:13,379 --> 00:15:14,840 primera, máximo igual al número que he leído 394 00:15:14,840 --> 00:15:16,700 es decir, si estamos aquí 395 00:15:16,700 --> 00:15:19,259 aquí, yo con este 396 00:15:19,259 --> 00:15:21,299 no lo quiero comparar con nada, lo que quiero 397 00:15:21,299 --> 00:15:22,600 es llevarlo a máximo directamente. 398 00:15:23,220 --> 00:15:25,120 Ya está. Porque en ese momento es el 399 00:15:25,120 --> 00:15:26,399 máximo, el único que hay. 400 00:15:27,059 --> 00:15:29,360 Con las siguientes ya sí. Con las siguientes 401 00:15:29,360 --> 00:15:31,259 tengo que... Compara con 402 00:15:31,259 --> 00:15:33,039 el que es máximo. Lo supera, 403 00:15:33,399 --> 00:15:35,139 sustituye. No lo supera, no haces 404 00:15:35,139 --> 00:15:37,320 nada. Entonces, ¿qué es lo que puedo 405 00:15:37,320 --> 00:15:38,179 hacer en este código? 406 00:15:39,299 --> 00:15:41,299 Vale, pues detectar si estamos en la primera. 407 00:15:41,460 --> 00:15:43,200 Porque si estamos en la primera, máximo es 408 00:15:43,200 --> 00:15:45,220 igual a null. Y si no estamos en 409 00:15:45,220 --> 00:15:47,220 la primera, entonces 410 00:15:47,220 --> 00:15:48,279 hago esto. 411 00:15:49,259 --> 00:15:50,799 Luego esto es un if else, ¿verdad? 412 00:15:51,299 --> 00:15:52,740 ¿Estoy en la primera? 413 00:15:54,440 --> 00:15:56,019 Pues entonces 414 00:15:56,019 --> 00:15:57,720 máximo igual a none. 415 00:15:58,360 --> 00:15:59,659 ¿No estás en la primera? 416 00:16:01,019 --> 00:16:02,419 Pues entonces 417 00:16:02,419 --> 00:16:04,480 ya haces esto. 418 00:16:05,580 --> 00:16:06,580 Entonces me falta aquí 419 00:16:06,580 --> 00:16:08,779 meter algo para detectar si estoy en la primera o no. 420 00:16:09,340 --> 00:16:10,259 Hombre, pues lo tengo muy fácil. 421 00:16:10,399 --> 00:16:12,179 Me pongo un contador cualquiera por aquí 422 00:16:12,179 --> 00:16:13,200 que empieza haciendo cero 423 00:16:13,200 --> 00:16:15,139 y lo incremento aquí. 424 00:16:16,200 --> 00:16:16,399 ¿Vale? 425 00:16:19,299 --> 00:16:20,620 Claro, pero lo puede incrementar 426 00:16:20,620 --> 00:16:21,220 dentro de leaf. 427 00:16:21,299 --> 00:16:23,340 para que se los incremente la primera vez 428 00:16:23,340 --> 00:16:26,200 vale, entonces esta sería una 429 00:16:26,200 --> 00:16:28,019 primera versión 430 00:16:28,019 --> 00:16:29,500 que lo que me importa es que la entendáis 431 00:16:29,500 --> 00:16:32,360 ahora vemos si podemos a lo mejor usar otro truco 432 00:16:32,360 --> 00:16:37,200 vale, entonces ahora aquí 433 00:16:37,200 --> 00:16:38,779 si estoy en la primera vez 434 00:16:38,779 --> 00:16:47,539 vale, entonces 435 00:16:47,539 --> 00:16:50,179 con esto que yo he hecho aquí 436 00:16:50,179 --> 00:16:57,440 vale 437 00:16:57,440 --> 00:16:59,899 entonces, aquí 438 00:16:59,899 --> 00:17:02,019 ya, si estamos 439 00:17:02,019 --> 00:17:04,319 en la primera iteración 440 00:17:04,319 --> 00:17:05,420 si estamos en la primera 441 00:17:05,420 --> 00:17:08,440 ya sabemos, o sea, la primera vez 442 00:17:08,440 --> 00:17:10,400 que entra, que va a entrar seguro 443 00:17:10,400 --> 00:17:12,420 máximo se va a inicializar con 444 00:17:12,420 --> 00:17:14,619 num, estupendo, y cont se va a quedar incrementado 445 00:17:14,619 --> 00:17:16,440 para que ya la siguiente vez 446 00:17:16,440 --> 00:17:18,400 no entre en el if, ya más nunca, ya no va a entrar en el if 447 00:17:18,400 --> 00:17:20,319 más nunca, entonces ya las siguientes veces 448 00:17:20,319 --> 00:17:22,400 un segundo, las siguientes veces 449 00:17:22,400 --> 00:17:24,339 ya va a entrar por aquí siempre, ya va a entrar 450 00:17:24,339 --> 00:17:26,599 por aquí, ¿verdad? siempre, que es justo lo que queremos 451 00:17:26,599 --> 00:17:27,420 ¿vale? 452 00:17:29,240 --> 00:17:30,460 sí, un cont 453 00:17:30,460 --> 00:17:31,299 que empieza valiendo cero 454 00:17:31,299 --> 00:17:33,579 ¿vale? entonces si estamos en la primera 455 00:17:33,579 --> 00:17:34,720 ya está 456 00:17:34,720 --> 00:17:37,380 y si no estamos en la primera 457 00:17:37,380 --> 00:17:38,839 ya me toca hacer todo esto 458 00:17:38,839 --> 00:17:39,480 ¿vale? 459 00:17:40,819 --> 00:17:43,299 en la primera porque máximo 460 00:17:43,299 --> 00:17:44,579 es igual a 5 461 00:17:44,579 --> 00:17:45,799 porque es el único que tienes 462 00:17:45,799 --> 00:17:49,480 claro, en la primera vez que entras tienes el primer número 463 00:17:49,480 --> 00:17:51,599 ahí no tienes nada con lo que comparar 464 00:17:51,599 --> 00:17:52,119 de antes 465 00:17:52,119 --> 00:17:55,160 ahí sabes, ese es el máximo 466 00:17:55,160 --> 00:17:56,680 sí o sí, porque es el único que tengo 467 00:17:56,680 --> 00:17:58,660 ese es el máximo, sí o sí 468 00:17:58,660 --> 00:18:01,440 vale, aun así el compilador 469 00:18:01,440 --> 00:18:03,160 se nos pone tonto 470 00:18:03,160 --> 00:18:06,319 pero porque el compilador no entiende lo que está pasando 471 00:18:06,319 --> 00:18:07,859 entonces nosotros sabemos 472 00:18:07,859 --> 00:18:09,660 que aquí va a entrar 473 00:18:09,660 --> 00:18:11,539 seguro 474 00:18:11,539 --> 00:18:14,039 porque count empieza valiendo 0 475 00:18:14,039 --> 00:18:15,980 y este while es 476 00:18:15,980 --> 00:18:18,259 mientras num sea mayor o igual que 0 y num es 0 477 00:18:18,259 --> 00:18:20,019 entonces nosotros sabemos que va a entrar 478 00:18:20,019 --> 00:18:20,799 una primera vez 479 00:18:20,799 --> 00:18:24,099 y que esa primera vez va a ser 0 480 00:18:24,099 --> 00:18:25,940 con lo cual sabemos que máximo se va a 481 00:18:25,940 --> 00:18:27,799 inicializar seguro con el primero 482 00:18:27,799 --> 00:18:29,980 lo sabemos seguro por la combinación 483 00:18:29,980 --> 00:18:30,920 de valores que hemos dado 484 00:18:30,920 --> 00:18:34,039 pero el compilador no mira 485 00:18:34,039 --> 00:18:35,740 los valores, mira la estructura 486 00:18:35,740 --> 00:18:37,980 y él mira, estoy en un while 487 00:18:37,980 --> 00:18:39,460 que puede entrar o no 488 00:18:39,460 --> 00:18:42,079 y aquí estás en un if que puedes entrar o no 489 00:18:42,079 --> 00:18:43,799 con lo cual no tengo la seguridad 490 00:18:43,799 --> 00:18:45,079 de que máximo tenga algo 491 00:18:45,079 --> 00:18:48,220 no tengo la seguridad porque si no entras nunca en ese if 492 00:18:48,220 --> 00:18:49,859 nosotros sabemos que va a entrar 493 00:18:49,859 --> 00:18:51,119 que va a entrar la primera, lo sabemos 494 00:18:51,119 --> 00:18:53,640 pero el compilador solo mira estructuras 495 00:18:53,640 --> 00:18:55,619 dice esto es un if, un if puede que sí 496 00:18:55,619 --> 00:18:57,859 puede que no, con lo cual puede 497 00:18:57,859 --> 00:18:59,380 que llegues aquí y máximo no tenga nada 498 00:18:59,380 --> 00:19:01,980 entonces se te queja, pero esto ya sí que lo arreglamos 499 00:19:01,980 --> 00:19:03,700 y decimos, bueno, te doy aquí cualquier cosa 500 00:19:03,700 --> 00:19:04,759 la que me dé la gana 501 00:19:04,759 --> 00:19:07,400 inicializa lo que quieras, a cero, me da igual 502 00:19:07,400 --> 00:19:09,619 entonces el compilador ya se calla 503 00:19:09,619 --> 00:19:12,039 pero este valor que te hayas puesto aquí no vale para nada 504 00:19:12,039 --> 00:19:13,900 ese valor que hayas puesto ahí no vale para nada 505 00:19:13,900 --> 00:19:15,319 porque tú sabes 506 00:19:15,319 --> 00:19:17,319 que se va a inicializar 507 00:19:17,319 --> 00:19:19,940 máximo la primera vez con el primer 508 00:19:19,940 --> 00:19:21,759 número, pisando el que tú hayas puesto 509 00:19:21,759 --> 00:19:23,480 arriba, pisando el que hayas puesto arriba 510 00:19:23,480 --> 00:19:24,720 te da igual el que hayas puesto arriba 511 00:19:24,720 --> 00:19:30,119 vale, pues este programa vamos a comprobar que nos hace 512 00:19:30,119 --> 00:19:32,380 el máximo y sobre el máximo de unos números metidos 513 00:19:32,380 --> 00:19:36,059 y luego buscamos 514 00:19:36,059 --> 00:19:36,759 alguna traversión 515 00:19:36,759 --> 00:19:40,200 con un contador que empieza 516 00:19:40,200 --> 00:19:40,960 valiendo 0 517 00:19:40,960 --> 00:19:43,940 si es 0 y ya lo dejas incrementado 518 00:19:43,940 --> 00:19:44,380 para que la siguiente 519 00:19:44,380 --> 00:19:47,619 ah, inicializando num a 0 520 00:19:47,619 --> 00:19:49,500 porque como num es mayor o igual que 0 521 00:19:49,500 --> 00:19:59,920 el máximo es 522 00:19:59,920 --> 00:20:01,039 máximo 523 00:20:01,039 --> 00:20:10,380 vale, pues vamos a 524 00:20:10,380 --> 00:20:12,039 ejecutar este a ver si 525 00:20:12,039 --> 00:20:14,640 introduzca número 87 526 00:20:14,640 --> 00:20:16,319 introduzca número 100 527 00:20:16,319 --> 00:20:18,180 introduzca número 34 528 00:20:18,180 --> 00:20:20,279 introduzca número 0 529 00:20:20,279 --> 00:20:21,599 introduzca número 530 00:20:21,599 --> 00:20:23,960 y voy a meter un negativo para que acabe 531 00:20:23,960 --> 00:20:26,759 menos 7 532 00:20:26,759 --> 00:20:28,700 con el menos 7 533 00:20:28,700 --> 00:20:30,460 acaba, el máximo es 100 534 00:20:30,460 --> 00:20:32,839 vale, es una sola 535 00:20:32,839 --> 00:20:34,980 prueba, la que he hecho 536 00:20:34,980 --> 00:20:36,660 pero bueno, está bien 537 00:20:36,660 --> 00:20:38,640 no hace falta que hagamos más, el máximo es 100 538 00:20:38,640 --> 00:20:39,619 vale 539 00:20:39,619 --> 00:20:43,440 Ya, como estamos muy sueltos 540 00:20:43,440 --> 00:20:44,700 Para seguir moviendo la cabeza 541 00:20:44,700 --> 00:20:47,160 Vamos a hacer alguna variante 542 00:20:47,160 --> 00:20:48,980 Que no tenga este if dentro 543 00:20:48,980 --> 00:20:51,000 Que se hace un poco engorroso, todo el rollo 544 00:20:51,000 --> 00:20:52,559 Vamos a ver si nos ocurre alguna variante 545 00:20:52,559 --> 00:20:55,079 Vale, va por lo de 546 00:20:55,079 --> 00:20:57,279 Inicializar al cero, justo que has dicho tú 547 00:20:57,279 --> 00:20:58,799 ¿Vale? Es, a ver 548 00:20:58,799 --> 00:21:00,960 El objetivo de poner 549 00:21:00,960 --> 00:21:03,319 Este contador a cero 550 00:21:03,319 --> 00:21:05,299 Y hacer aquí un if, si es igual a cero 551 00:21:05,299 --> 00:21:06,599 Es simplemente 552 00:21:06,599 --> 00:21:09,359 Para asegurarnos de que la variable 553 00:21:09,359 --> 00:21:11,059 máximo se inicializa con el primero. 554 00:21:12,339 --> 00:21:13,380 ¿Vale? Se inicializa con el 555 00:21:13,380 --> 00:21:15,599 primero. Bueno, pues entonces 556 00:21:15,599 --> 00:21:17,079 si yo pongo 557 00:21:17,079 --> 00:21:19,559 la variable máximo al menor 558 00:21:19,559 --> 00:21:20,680 valor posible 559 00:21:20,680 --> 00:21:22,839 de todos los que se pueden meter, 560 00:21:23,539 --> 00:21:25,299 lo pongo al menor valor posible, 561 00:21:26,799 --> 00:21:27,019 ¿vale? 562 00:21:27,579 --> 00:21:29,119 Sé seguro que el primero 563 00:21:29,119 --> 00:21:31,400 va a ser mayor que ese menor valor 564 00:21:31,400 --> 00:21:33,019 posible. Entonces sé seguro 565 00:21:33,019 --> 00:21:35,559 que el primer valor va a inicializar 566 00:21:35,559 --> 00:21:37,380 máximo. ¿Vale? 567 00:21:37,380 --> 00:21:39,680 y repito, si inicializáramos 568 00:21:39,680 --> 00:21:41,299 esta variable 569 00:21:41,299 --> 00:21:43,200 máximo, con el menor valor 570 00:21:43,200 --> 00:21:45,200 que existe, imaginémonos que es 571 00:21:45,200 --> 00:21:46,200 menos infinito, 572 00:21:46,819 --> 00:21:49,259 cuando llega el 573 00:21:49,259 --> 00:21:51,339 primero, si yo hago el, este número 574 00:21:51,339 --> 00:21:53,000 supera menos infinito, es que 575 00:21:53,000 --> 00:21:54,720 lo va a superar seguro. 576 00:21:55,140 --> 00:21:55,960 Lo va a superar seguro. 577 00:21:56,980 --> 00:21:59,240 Entonces, como lo va a superar seguro, 578 00:21:59,920 --> 00:22:01,059 pues sé que el efecto 579 00:22:01,059 --> 00:22:02,920 que voy a lograr es que este primer número 580 00:22:02,920 --> 00:22:04,400 inicialice máximo la primera vez. 581 00:22:04,400 --> 00:22:06,119 Pero a mí se me va a dar un problema para mí, 582 00:22:06,119 --> 00:22:09,190 que si tú le metes el mínimo 583 00:22:09,190 --> 00:22:10,970 un negativo 584 00:22:10,970 --> 00:22:13,109 te va a poner el negativo como el mínimo 585 00:22:13,109 --> 00:22:14,210 y lo que tienes es para el probante 586 00:22:14,210 --> 00:22:17,230 no, a ver, si yo le pongo un negativo 587 00:22:17,230 --> 00:22:19,170 entonces mi lista ha acabado y me va a decir 588 00:22:19,170 --> 00:22:20,849 el máximo es ese número, porque es el mayor de todos 589 00:22:20,849 --> 00:22:21,789 si mides también los mínimos 590 00:22:21,789 --> 00:22:25,170 estamos ahora con los máximos 591 00:22:25,170 --> 00:22:27,450 para ver como si ese truco 592 00:22:27,450 --> 00:22:29,509 de poner un contador que entra 593 00:22:29,509 --> 00:22:31,549 para detectar la primera vez, no lo podemos ahorrar 594 00:22:31,549 --> 00:22:33,450 bueno, ese truco era 595 00:22:33,450 --> 00:22:35,470 para conseguir que en esta 596 00:22:35,470 --> 00:22:37,250 variable, que esta variable 597 00:22:37,250 --> 00:22:39,670 se inicialice la primera vez 598 00:22:39,670 --> 00:22:40,750 con este valor sí o sí 599 00:22:40,750 --> 00:22:43,589 bueno, pues con el truco de poner 600 00:22:43,589 --> 00:22:45,569 este al menor valor posible del mundo 601 00:22:45,569 --> 00:22:47,089 a menos infinito 602 00:22:47,089 --> 00:22:49,390 la primera vez que entre 603 00:22:49,390 --> 00:22:50,710 cuando yo haga la comparación 604 00:22:50,710 --> 00:22:53,829 ¿este valor es mayor que este? 605 00:22:53,930 --> 00:22:55,450 va a ser que sí, porque lo he inicializado 606 00:22:55,450 --> 00:22:57,269 a menos infinito, con lo cual 607 00:22:57,269 --> 00:22:59,450 lo que vamos a conseguir es que la primera vez 608 00:22:59,450 --> 00:23:01,529 esta variable se inicialice con el primero 609 00:23:01,529 --> 00:23:03,329 que es lo que quería, y luego ya 610 00:23:03,329 --> 00:23:04,789 las siguientes dependen 611 00:23:04,789 --> 00:23:06,890 luego, versión 2 612 00:23:06,890 --> 00:23:07,809 que podríamos hacer 613 00:23:07,809 --> 00:23:10,710 ahora vemos como se inicializa 614 00:23:10,710 --> 00:23:11,470 menos infinito 615 00:23:11,470 --> 00:23:16,640 la versión 2, vamos a poner 616 00:23:16,640 --> 00:23:19,859 una versión 2, aquí 617 00:23:19,859 --> 00:23:31,619 vale, voy a copiar y pegar 618 00:23:31,619 --> 00:23:32,779 y la retoco sobre esta 619 00:23:32,779 --> 00:23:44,210 vale, lo que pasa es que como 620 00:23:44,210 --> 00:23:46,950 el inloquito, porque ya están 621 00:23:46,950 --> 00:23:48,890 declaradas, pero vamos, es el mismo 622 00:23:48,890 --> 00:23:51,150 programa, vale, entonces 623 00:23:51,150 --> 00:23:55,170 Vale 624 00:23:55,170 --> 00:24:01,490 Es que esta llave de aquí 625 00:24:01,490 --> 00:24:03,869 Me sobra y me falta 626 00:24:03,869 --> 00:24:06,410 Vale 627 00:24:06,410 --> 00:24:09,869 Pero es esta, ¿no? 628 00:24:11,869 --> 00:24:12,890 Es esta 629 00:24:12,890 --> 00:24:15,509 Con lo cual esto me dice 630 00:24:15,509 --> 00:24:16,410 Duple 631 00:24:16,410 --> 00:24:21,359 Máximo, sí, pero están sin declarar 632 00:24:21,359 --> 00:24:22,059 Entonces, ¿por qué? 633 00:24:23,099 --> 00:24:25,180 Ah, vale, vale, porque no estoy declarando 634 00:24:25,180 --> 00:24:26,500 Estoy ahora ya inicializando 635 00:24:26,500 --> 00:24:28,720 Entonces, así, vale 636 00:24:28,720 --> 00:24:33,059 Vale, versión 2 637 00:24:33,059 --> 00:24:35,160 Está igual que la de arriba 638 00:24:35,160 --> 00:24:36,859 Vale, pues entonces 639 00:24:36,859 --> 00:24:39,180 Si consiguiéramos inicializar 640 00:24:39,180 --> 00:24:40,660 Esto a menos infinito, repito 641 00:24:40,660 --> 00:24:41,700 Ya veremos cómo 642 00:24:41,700 --> 00:24:44,640 Ahora ya podríamos ahorrarnos todo esto de aquí que hemos hecho 643 00:24:44,640 --> 00:24:47,339 Y dejarlo así 644 00:24:47,339 --> 00:24:49,339 Si num 645 00:24:49,339 --> 00:24:50,839 Es mayor que el máximo 646 00:24:50,839 --> 00:24:51,839 Máximo igual a num 647 00:24:51,839 --> 00:24:54,640 Con lo cual, la primera vez que entramos 648 00:24:54,640 --> 00:24:56,079 la primera de todas 649 00:24:56,079 --> 00:24:58,380 como máximo es menos infinito 650 00:24:58,380 --> 00:25:00,799 la condición se va a cumplir 651 00:25:00,799 --> 00:25:02,640 sí o sí y conseguimos lo que queríamos 652 00:25:02,640 --> 00:25:04,859 que el número sea el primer 653 00:25:04,859 --> 00:25:06,900 máximo de todos, conseguíamos lo que queríamos 654 00:25:06,900 --> 00:25:08,440 con lo cual nos queda 655 00:25:08,440 --> 00:25:10,460 un bucle más pequeñito y más sencillo 656 00:25:10,460 --> 00:25:12,759 pero que nos falta de aquí, inicializar esto 657 00:25:12,759 --> 00:25:13,420 a menos infinito 658 00:25:13,420 --> 00:25:16,440 menos infinito, obviamente 659 00:25:16,440 --> 00:25:18,759 no se puede codificar en una 660 00:25:18,759 --> 00:25:20,099 variable entera de 32 bits 661 00:25:20,099 --> 00:25:23,059 pero la equivalente a menos infinito 662 00:25:23,059 --> 00:25:24,319 una variable entera de 32 bits 663 00:25:24,319 --> 00:25:27,160 es el número negativo más bajo posible 664 00:25:27,160 --> 00:25:28,960 que se puede codificar en 32 bits 665 00:25:28,960 --> 00:25:30,160 que es el que a mí me interesa 666 00:25:30,160 --> 00:25:32,980 yo tengo 32, mi recta real 667 00:25:32,980 --> 00:25:35,000 en programación, mi recta real 668 00:25:35,000 --> 00:25:37,140 no es entre menos infinito y más infinito 669 00:25:37,140 --> 00:25:37,579 no es 670 00:25:37,579 --> 00:25:40,599 si yo estoy trabajando con números enteros de 32 671 00:25:40,599 --> 00:25:42,380 mi recta la he acotado 672 00:25:42,380 --> 00:25:45,039 la he acotado entre lo más bajo 673 00:25:45,039 --> 00:25:46,839 que puedo codificar en 32 bits 674 00:25:46,839 --> 00:25:48,019 menos 2 elevado a 31 675 00:25:48,019 --> 00:25:50,940 y lo más alto que puedo codificar en 32 bits 676 00:25:50,940 --> 00:25:51,759 2 elevado a 31 677 00:25:51,759 --> 00:25:54,299 luego lo tengo acotado, mi menos infinito 678 00:25:54,299 --> 00:25:56,299 en programación es el número 679 00:25:56,299 --> 00:25:58,099 más bajo que puedo codificar 680 00:25:58,099 --> 00:25:59,640 con los 32 bits del entero 681 00:25:59,640 --> 00:26:02,319 ¿y ese cuál es? o se lo pongo 682 00:26:02,319 --> 00:26:04,160 a capón, menos 2 elevado a 31 683 00:26:04,160 --> 00:26:06,400 o ya cuando vimos los dos enteros 684 00:26:06,400 --> 00:26:06,980 dijimos 685 00:26:06,980 --> 00:26:09,720 que había una forma de sacarlo 686 00:26:09,720 --> 00:26:11,420 que era este 687 00:26:11,420 --> 00:26:14,240 ¿os acordáis de esto? 688 00:26:14,420 --> 00:26:14,779 ¿os suena? 689 00:26:14,779 --> 00:26:15,940 sí, sí, lo pusiste 690 00:26:15,940 --> 00:26:18,720 vale, dijimos, por curiosidad 691 00:26:18,720 --> 00:26:20,680 este es el valor más 692 00:26:20,680 --> 00:26:22,920 pequeñito, ¿está 693 00:26:22,920 --> 00:26:25,960 grabado? Sí, sí, sí, cuando hablábamos 694 00:26:25,960 --> 00:26:27,579 de tipos de variables, enteras, double. 695 00:26:28,519 --> 00:26:32,160 Entonces, este es, y lo mostramos por pantalla 696 00:26:32,160 --> 00:26:34,539 a ver cuál era. Entonces, este es 697 00:26:34,539 --> 00:26:38,039 el valor más pequeño que 698 00:26:38,039 --> 00:26:40,359 se puede codificar con una variable int 699 00:26:40,359 --> 00:26:43,940 que se corresponderá a menos 2 elevado a 700 00:26:43,940 --> 00:26:46,940 31, en realidad. Porque con 701 00:26:46,940 --> 00:26:49,779 32 bits, 1 de signo, para el valor absoluto 702 00:26:49,779 --> 00:26:51,599 tengo 31, le he salvado 31 por el menos. 703 00:26:52,119 --> 00:26:53,819 Bueno, pues ese valor es ese. 704 00:26:55,220 --> 00:26:55,619 Entonces, 705 00:26:55,759 --> 00:26:57,640 este es el menos infinito nuestro, 706 00:26:58,140 --> 00:26:59,759 el más pequeño posible, porque es que 707 00:26:59,759 --> 00:27:01,299 por debajo de ese no puedo codificar ninguno. 708 00:27:01,799 --> 00:27:03,240 ¿Y si el cliente quisiera 709 00:27:03,240 --> 00:27:04,200 el infinito actual? 710 00:27:05,619 --> 00:27:08,240 Pues que vaya a pedírselo 711 00:27:08,240 --> 00:27:09,960 a otro universo, 712 00:27:10,519 --> 00:27:12,380 porque en este no se puede 713 00:27:12,380 --> 00:27:14,299 almacenar el menos infinito 714 00:27:14,299 --> 00:27:15,380 en ningún sitio. 715 00:27:16,880 --> 00:27:17,259 ¿De momento? 716 00:27:17,259 --> 00:27:18,900 no sé, y de momento 717 00:27:18,900 --> 00:27:20,440 y del futuro 718 00:27:20,440 --> 00:27:23,220 no existe 719 00:27:23,220 --> 00:27:25,079 tú tienes 720 00:27:25,079 --> 00:27:27,039 una capacidad de almacenamiento limitada 721 00:27:27,039 --> 00:27:29,240 no puedes 722 00:27:29,240 --> 00:27:31,380 para almacenar menos infinito 723 00:27:31,380 --> 00:27:32,700 necesitas infinitos bits 724 00:27:32,700 --> 00:27:34,640 no tienes infinitos bits 725 00:27:34,640 --> 00:27:37,980 ¿vale? entonces 726 00:27:37,980 --> 00:27:43,059 vale, a ver, que trabajamos 727 00:27:43,059 --> 00:27:44,920 con double, yo aquí estoy trabajando con enteros 728 00:27:44,920 --> 00:27:46,200 todo el rato, perdón, con long 729 00:27:46,200 --> 00:27:47,720 Con todo el rato 730 00:27:47,720 --> 00:27:49,140 Que trabajamos con long 731 00:27:49,140 --> 00:27:50,599 En long nos cambia 64 732 00:27:50,599 --> 00:27:53,019 Podemos más bajito todavía 733 00:27:53,019 --> 00:27:54,619 Bueno, pues con long 734 00:27:54,619 --> 00:27:57,680 Uno puede sacar el menor valor posible 735 00:27:57,680 --> 00:27:59,279 En long con esto 736 00:27:59,279 --> 00:28:00,099 ¿Vale? 737 00:28:00,920 --> 00:28:01,799 A ver, me dice 738 00:28:01,799 --> 00:28:05,160 Como esta estaba así 739 00:28:05,160 --> 00:28:08,380 ¿Vale? Es decir, si trabajáramos con variables long 740 00:28:08,380 --> 00:28:10,059 Son 64 bits 741 00:28:10,059 --> 00:28:11,980 El menor valor posible 742 00:28:11,980 --> 00:28:12,759 Los traigo de aquí 743 00:28:12,759 --> 00:28:14,380 Pero bueno, estamos con int 744 00:28:14,380 --> 00:28:16,319 con 32, tampoco va a meter 745 00:28:16,319 --> 00:28:17,279 números tan grandes 746 00:28:17,279 --> 00:28:21,690 vale, pues este programa 747 00:28:21,690 --> 00:28:23,990 esta versión es idéntica 748 00:28:23,990 --> 00:28:25,869 a la de arriba, pero 749 00:28:25,869 --> 00:28:28,009 gracias a ese truco, no tengo 750 00:28:28,009 --> 00:28:29,809 que distinguir cuál es la primera iteración 751 00:28:29,809 --> 00:28:31,990 para en la primera inicializar 752 00:28:31,990 --> 00:28:34,230 máximo a num, y luego ya en la siguiente 753 00:28:34,230 --> 00:28:36,009 es hacer esto, ahora 754 00:28:36,009 --> 00:28:37,950 en todas hago esto, en todas 755 00:28:37,950 --> 00:28:40,029 y ya sé que en la 756 00:28:40,029 --> 00:28:41,990 primera sí o sí voy a entrar aquí 757 00:28:41,990 --> 00:28:43,170 sí o sí 758 00:28:43,170 --> 00:28:46,910 ¿vale? entonces como en la primera 759 00:28:46,910 --> 00:28:48,609 sé que sí o sí voy a entrar aquí porque 760 00:28:48,609 --> 00:28:49,690 num no sé cuál va a ser 761 00:28:49,690 --> 00:28:52,069 num va a ser cuál va a ser, no sé cuál va a ser 762 00:28:52,069 --> 00:28:53,529 pero va a ser 763 00:28:53,529 --> 00:28:55,809 mayor que este fijo 764 00:28:55,809 --> 00:28:58,529 entonces en la primera 765 00:28:58,529 --> 00:29:00,569 iteración ya inicializaré 766 00:29:00,569 --> 00:29:01,190 máximo a num 767 00:29:01,190 --> 00:29:10,180 claro, claro, tú lo inicializas 768 00:29:10,180 --> 00:29:10,900 claro, siempre 769 00:29:10,900 --> 00:29:13,940 lo inicializas al menor valor posible 770 00:29:13,940 --> 00:29:18,990 Sí, lo que importa es 771 00:29:18,990 --> 00:29:21,269 Pues tener los recursos para resolver los problemas 772 00:29:21,269 --> 00:29:22,750 Sea de una manera, sea de otra 773 00:29:22,750 --> 00:29:24,289 Tenerlos, conocerlos y entenderlos 774 00:29:24,289 --> 00:29:25,670 Vale 775 00:29:25,670 --> 00:29:29,170 Bueno, pues la misma idea sería 776 00:29:29,170 --> 00:29:30,569 El mínimo 777 00:29:30,569 --> 00:29:32,849 Pero, claro 778 00:29:32,849 --> 00:29:35,269 Pero lo resolvemos ahora 779 00:29:35,269 --> 00:29:36,390 Vale, paramos un momento 780 00:29:36,390 --> 00:29:39,009 Pero el problema es igual, cambia 781 00:29:39,009 --> 00:29:41,089 El while es el mismo 782 00:29:41,089 --> 00:29:42,250 Todo es el mismo, cambia 783 00:29:42,250 --> 00:29:43,130 Esto 784 00:29:43,130 --> 00:29:46,349 Sí, porque tú metes números 785 00:29:46,349 --> 00:29:47,470 Mientras sean positivos 786 00:29:47,470 --> 00:29:48,410 Para ver cuál es el menor 787 00:29:48,410 --> 00:29:51,089 Cambia este signo y cambia esto 788 00:29:51,089 --> 00:29:53,410 Claro, lo demás es idéntico 789 00:29:53,410 --> 00:29:55,410 Luego en la media hacer la suma 790 00:29:55,410 --> 00:29:56,430 Pero eso ya sí que es lo de