1 00:00:00,000 --> 00:00:02,000 Tendría que ser algo así un poco más vegetariano 2 00:00:02,000 --> 00:00:04,259 ¿Es vegetariano? 3 00:00:04,740 --> 00:00:06,099 No, pero no como mucha carne 4 00:00:06,099 --> 00:00:06,519 Más bien poca 5 00:00:06,519 --> 00:00:08,960 Me estoy quitando 6 00:00:08,960 --> 00:00:10,439 De la carnaza 7 00:00:10,439 --> 00:00:13,259 Haces bien, ahí te me estás quitando 8 00:00:13,259 --> 00:00:16,179 No, no, no, tampoco me vuelve loca 9 00:00:16,179 --> 00:00:19,559 Venga, ejercicio 12 10 00:00:19,559 --> 00:00:30,800 Oye, que la carne es muy sana 11 00:00:30,800 --> 00:00:39,820 ¿Cuánta más variedad, mejor? 12 00:00:51,710 --> 00:00:53,450 Es más agradecido la carne 13 00:00:53,450 --> 00:00:54,929 Vale, pues venga, el 12 14 00:00:54,929 --> 00:00:56,310 Primero 15 00:00:56,310 --> 00:00:58,609 Tratamos de entender 16 00:00:58,609 --> 00:01:02,009 Solicitar 10 números 17 00:01:02,009 --> 00:01:02,929 vale, eso está claro 18 00:01:02,929 --> 00:01:05,349 venga, vamos a conectar 19 00:01:05,349 --> 00:01:08,310 ahora, una vez que los 10 números 20 00:01:08,310 --> 00:01:09,010 se han pedido 21 00:01:09,010 --> 00:01:11,950 hay que mostrar la media 22 00:01:11,950 --> 00:01:13,349 3 valores 23 00:01:13,349 --> 00:01:16,530 o sea, media de los que han sido positivos 24 00:01:16,530 --> 00:01:18,609 media de los que han sido negativos 25 00:01:18,609 --> 00:01:20,310 y número de ceros 26 00:01:20,310 --> 00:01:20,989 que se han metido 27 00:01:20,989 --> 00:01:23,989 vale, entonces vamos a interpretar esos resultados 28 00:01:23,989 --> 00:01:26,310 que son, la media de un conjunto de números 29 00:01:26,310 --> 00:01:28,310 ¿cuál es? la suma de un conjunto 30 00:01:28,310 --> 00:01:28,870 de números 31 00:01:28,870 --> 00:01:31,609 vale, claro, pues entonces 32 00:01:31,609 --> 00:01:33,969 aquí ya sabemos que va a haber una suma 33 00:01:33,969 --> 00:01:34,969 una suma de valores 34 00:01:34,969 --> 00:01:37,650 eso ya lo sabemos, dentro del bucle una suma de valores 35 00:01:37,650 --> 00:01:39,750 ya viniremos a ver que valores sumamos 36 00:01:39,750 --> 00:01:40,810 y ya está 37 00:01:40,810 --> 00:01:43,890 y la cantidad hay que contar 38 00:01:43,890 --> 00:01:45,730 entonces aquí sabemos que habrá que 39 00:01:45,730 --> 00:01:47,450 meter un contador para que cuente 40 00:01:47,450 --> 00:01:49,370 dentro del bucle cuantas veces pasa algo 41 00:01:49,370 --> 00:01:51,730 entonces ya más o menos ya sabemos que este programa 42 00:01:51,730 --> 00:01:53,250 va a ser un bucle 43 00:01:53,250 --> 00:01:55,870 donde dentro se van a hacer en paralelo tres cosas 44 00:01:55,870 --> 00:01:58,109 dos sumas, porque son dos medias 45 00:01:58,109 --> 00:01:59,750 entonces 46 00:01:59,750 --> 00:02:01,790 en paralelo dentro de ese bucle 47 00:02:01,790 --> 00:02:04,290 habrá que hacer dos sumas 48 00:02:04,290 --> 00:02:06,549 esta suma 49 00:02:06,549 --> 00:02:08,830 esta suma y luego una cuenta 50 00:02:08,830 --> 00:02:10,849 luego dentro del bucle 51 00:02:10,849 --> 00:02:12,789 haremos tres cosas, independientes 52 00:02:12,789 --> 00:02:14,430 en principio, ¿vale? 53 00:02:14,490 --> 00:02:16,729 pues ya podemos plantear eso, entonces 54 00:02:16,729 --> 00:02:19,110 como vamos a leer 55 00:02:19,110 --> 00:02:20,810 por teclado, pues tendremos que poner 56 00:02:20,810 --> 00:02:22,129 el escáner y todo 57 00:02:22,129 --> 00:02:26,879 que no lo voy a sacar fuera 58 00:02:26,879 --> 00:02:28,159 no, yo ya lo he quitado 59 00:02:28,159 --> 00:02:30,680 di que sí, hombre 60 00:02:30,680 --> 00:02:33,439 Si ya habrá tiempo para sacar las cosas fuera 61 00:02:33,439 --> 00:02:39,900 No pasa nada 62 00:02:39,900 --> 00:02:40,979 Ya te llegará el momento 63 00:02:40,979 --> 00:02:44,599 Ya te llegará el momento de meterla y sacarla 64 00:02:44,599 --> 00:02:45,979 Ahora mismo dentro todos 65 00:02:45,979 --> 00:02:48,879 A ver 66 00:02:48,879 --> 00:02:51,979 Que hay gente que me saca esto fuera 67 00:02:51,979 --> 00:02:55,659 Entonces, esto dentro 68 00:02:55,659 --> 00:02:57,199 La quiero bien dentro 69 00:02:57,199 --> 00:02:59,599 Venga, vamos 70 00:02:59,599 --> 00:03:07,620 Ostras, pues ya está grabando 71 00:03:07,620 --> 00:03:11,479 Bueno, da igual, si no lo ve nadie 72 00:03:11,479 --> 00:03:12,180 da lo mismo 73 00:03:12,180 --> 00:03:15,819 Nadie puede denunciar 74 00:03:15,819 --> 00:03:17,139 Nadie lo ve 75 00:03:17,139 --> 00:03:21,500 Sí, verdad, estaba colgada 76 00:03:21,500 --> 00:03:25,319 Ah, bueno, es que Duca Madrid a veces 77 00:03:25,319 --> 00:03:26,639 hace parones de mantenimiento 78 00:03:26,639 --> 00:03:29,199 Vale, pues entonces 79 00:03:29,199 --> 00:03:31,439 hoy justo, sí 80 00:03:31,439 --> 00:03:34,300 bueno, pero yo no he dicho nada 81 00:03:34,300 --> 00:03:35,639 no he dicho nada ilegal 82 00:03:35,639 --> 00:03:38,340 no he dicho nada que 83 00:03:38,340 --> 00:03:44,620 no he hecho evangelización 84 00:03:44,620 --> 00:03:46,300 no he hecho nada de eso 85 00:03:46,300 --> 00:03:47,520 que se está prohibido para los profes 86 00:03:47,520 --> 00:03:49,340 no os he dicho a quién tenéis que votar 87 00:03:49,340 --> 00:03:50,960 lo grave sería que os dijera a quién tenéis que votar 88 00:03:50,960 --> 00:03:52,419 eso sería muy grave 89 00:03:52,419 --> 00:03:53,580 pero no os he dicho nada 90 00:03:53,580 --> 00:03:55,060 os lo puedo dejar caer 91 00:03:55,060 --> 00:03:56,639 pero no os lo digo 92 00:03:56,639 --> 00:03:58,620 venga, a ver 93 00:03:58,620 --> 00:04:05,379 Mira 94 00:04:05,379 --> 00:04:08,259 Ya no tengo nada que perder 95 00:04:08,259 --> 00:04:08,599 Ya 96 00:04:08,599 --> 00:04:11,500 Venga, a ver 97 00:04:11,500 --> 00:04:15,680 Sí, claro, entonces 98 00:04:15,680 --> 00:04:16,939 Van a ser 99 00:04:16,939 --> 00:04:19,459 Tres, hemos dicho que tres sumas 100 00:04:19,459 --> 00:04:20,620 Dos sumas y una cuenta 101 00:04:20,620 --> 00:04:22,899 Vale, pues vamos a suponer que 102 00:04:22,899 --> 00:04:24,839 Nosotros ya, insisto 103 00:04:24,839 --> 00:04:26,560 Lo estoy haciendo todo robótico 104 00:04:26,560 --> 00:04:27,139 Luego ya 105 00:04:27,139 --> 00:04:29,680 suma pares, ¿vale? 106 00:04:29,720 --> 00:04:31,420 Porque una suma va a ser la suma de los pares. 107 00:04:31,519 --> 00:04:33,240 Luego veré cómo convierto esta suma en media. 108 00:04:33,379 --> 00:04:35,259 Ya podemos adivinar qué será una división. 109 00:04:36,560 --> 00:04:37,560 Vale, suma pares. 110 00:04:38,699 --> 00:04:39,939 Porque el ejercicio me pide 111 00:04:39,939 --> 00:04:42,240 media de los números que han sido pares. 112 00:04:42,800 --> 00:04:44,560 Media de los números que han sido impares. 113 00:04:44,560 --> 00:04:46,019 Si pones positivo y negativo. 114 00:04:46,800 --> 00:04:48,199 Si pones positivo y negativo. 115 00:04:48,779 --> 00:04:49,920 No pones pares y pares. 116 00:04:49,980 --> 00:04:52,139 Vale, pues suma positivos. 117 00:04:52,839 --> 00:04:53,620 Perdón, perdón. 118 00:04:54,040 --> 00:04:56,740 Mira que para tenerte de H te pillan las cosas. 119 00:04:57,139 --> 00:04:59,660 es una broma, es una broma 120 00:04:59,660 --> 00:05:05,399 es una broma 121 00:05:05,399 --> 00:05:06,439 yo además, eso 122 00:05:06,439 --> 00:05:08,540 no tengo ninguna constancia 123 00:05:08,540 --> 00:05:09,399 ¿qué? 124 00:05:10,120 --> 00:05:12,259 es una suma negra, es una suma negra, Dios mío 125 00:05:12,259 --> 00:05:18,240 vale, pues entonces 126 00:05:18,240 --> 00:05:20,759 una variable para la suma de los positivos 127 00:05:20,759 --> 00:05:22,180 luego veremos cómo la convertiremos en media 128 00:05:22,180 --> 00:05:24,620 una variable para la suma de los negativos 129 00:05:24,620 --> 00:05:25,079 y lo pongo 130 00:05:25,079 --> 00:05:28,060 lo pongo abajo 131 00:05:28,060 --> 00:05:29,899 para que no se 132 00:05:29,899 --> 00:05:31,339 deje de ver 133 00:05:31,339 --> 00:05:33,980 y una variable para contar los ceros 134 00:05:33,980 --> 00:05:35,839 entonces eso es lo primero que ya nos hemos 135 00:05:35,839 --> 00:05:37,100 dado cuenta de que tiene que haber 136 00:05:37,100 --> 00:05:39,100 un contador y dos variables para sumas 137 00:05:39,100 --> 00:05:41,000 ahora, ¿cómo hacemos las sumas? 138 00:05:41,240 --> 00:05:42,920 pues siempre hacemos un bucle 139 00:05:42,920 --> 00:05:45,740 ya veremos como lo perfilamos 140 00:05:45,740 --> 00:05:46,879 y la suma pares 141 00:05:46,879 --> 00:05:49,100 habrá que sumarle 142 00:05:49,100 --> 00:05:50,819 algo, un numerito 143 00:05:50,819 --> 00:05:54,220 por ahora pongo x solamente para tener la estructura 144 00:05:54,220 --> 00:05:55,819 A la suma impares 145 00:05:55,819 --> 00:06:04,139 Positivos 146 00:06:04,139 --> 00:06:07,379 Negativos 147 00:06:07,379 --> 00:06:08,319 Así 148 00:06:08,319 --> 00:06:10,980 Y luego el contador 149 00:06:10,980 --> 00:06:13,699 Una cosa que se va incrementando 150 00:06:13,699 --> 00:06:15,519 Vale, entonces 151 00:06:15,519 --> 00:06:18,000 Más o menos algo así tendremos que hacer 152 00:06:24,220 --> 00:06:26,939 Estoy hoy sembrada. 153 00:06:27,319 --> 00:06:27,560 Vale. 154 00:06:28,300 --> 00:06:31,680 Vale, entonces ahora ya que más o menos sabemos que los tiros van por aquí, 155 00:06:32,279 --> 00:06:34,180 ahora ya vamos a ver cómo perfilamos esto. 156 00:06:34,779 --> 00:06:36,860 Vale, pues ¿qué tenemos que repetir varias veces? 157 00:06:36,959 --> 00:06:38,500 ¿Qué es lo que tenemos que hacer dentro del bucle? 158 00:06:38,600 --> 00:06:42,519 Me han dicho que en cada iteración tengo que leer el número. 159 00:06:42,519 --> 00:06:48,980 Con lo cual, este sumando de aquí, este sumando, va a venir del número que yo leo. 160 00:06:49,240 --> 00:06:52,779 La primera pregunta que nos hacemos es, ¿este sumando que yo voy metiendo en la suma, 161 00:06:53,259 --> 00:06:54,139 de dónde me viene? 162 00:06:54,220 --> 00:06:56,779 me viene de los numeritos que yo leo. 163 00:06:58,000 --> 00:06:58,439 ¿No? 164 00:06:59,040 --> 00:07:00,500 Entonces, dentro del bucle 165 00:07:00,500 --> 00:07:01,639 tendré que leer el número. 166 00:07:01,920 --> 00:07:03,079 Dentro del bucle tendré que leerlo. 167 00:07:03,399 --> 00:07:04,540 Y luego ya ese número 168 00:07:04,540 --> 00:07:06,860 se incorporará si procede aquí, 169 00:07:07,040 --> 00:07:08,339 se incorporará si procede aquí, 170 00:07:08,459 --> 00:07:09,060 y lo contaré. 171 00:07:09,279 --> 00:07:10,860 Pero dentro del bucle tendré que leerlo. 172 00:07:12,000 --> 00:07:14,100 ¿No sería entonces x y y en vez de x y y? 173 00:07:16,500 --> 00:07:18,540 Sí, a ver, yo he puesto en general la idea 174 00:07:18,540 --> 00:07:19,660 de que la suma, 175 00:07:19,740 --> 00:07:21,420 a la suma tendré que ir sumando valores. 176 00:07:21,899 --> 00:07:22,279 Valores. 177 00:07:22,379 --> 00:07:23,800 Estos valores, ¿cómo los generaré? 178 00:07:23,800 --> 00:07:25,759 No lo sé, de hecho, ni siquiera he declarado la X 179 00:07:25,759 --> 00:07:27,939 porque solamente he querido plasmar la idea 180 00:07:27,939 --> 00:07:29,680 de que a esta suma tendré que irle sumando valores. 181 00:07:29,740 --> 00:07:30,399 ¿De dónde lo saco? 182 00:07:31,040 --> 00:07:32,800 Bueno, pues en respuesta a esa pregunta decimos, 183 00:07:32,920 --> 00:07:34,980 a ver, lo sacaré del número que estoy leyendo 184 00:07:34,980 --> 00:07:37,519 porque me han dicho que tengo que leer 10 números. 185 00:07:38,199 --> 00:07:42,319 Vale, entonces, además, me están diciendo 186 00:07:42,319 --> 00:07:44,740 que eso lo tengo que hacer exactamente 10 veces. 187 00:07:45,480 --> 00:07:48,579 Entonces, como ese bucle se va a ejecutar exactamente 10 veces, 188 00:07:48,680 --> 00:07:51,779 puedo decir, ah, pues en lugar de complicarme la vida 189 00:07:51,779 --> 00:07:53,399 buscando una condición aquí 190 00:07:53,399 --> 00:07:54,980 pues un bucle for 191 00:07:54,980 --> 00:07:57,740 que la estructura del bucle for viene perfectamente 192 00:07:57,740 --> 00:07:59,339 cuando yo quiero que algo se ejecute 193 00:07:59,339 --> 00:08:00,939 un número exactamente de veces 194 00:08:00,939 --> 00:08:03,339 y la estructura de bucle for 195 00:08:03,339 --> 00:08:04,759 para que algo se ejecute 196 00:08:04,759 --> 00:08:07,220 exactamente 10 veces 197 00:08:07,220 --> 00:08:08,579 vendría a ser esta 198 00:08:08,579 --> 00:08:16,300 vale, esto es lo que 199 00:08:16,300 --> 00:08:19,860 claro, esto es lo que 200 00:08:19,860 --> 00:08:20,480 dijimos ayer 201 00:08:20,480 --> 00:08:23,000 que el bucle for 202 00:08:23,000 --> 00:08:25,259 que tenía tres partes aquí dentro 203 00:08:25,259 --> 00:08:26,779 la primera era 204 00:08:26,779 --> 00:08:28,959 la sentencia que a ti te diera la gana poner 205 00:08:28,959 --> 00:08:30,879 o las sentencias, la segunda 206 00:08:30,879 --> 00:08:32,879 la condición que te dice que si se cumple 207 00:08:32,879 --> 00:08:35,220 vuelves a entrar y la tercera 208 00:08:35,220 --> 00:08:37,120 una sentencia que se 209 00:08:37,120 --> 00:08:38,120 hace en cada iteración 210 00:08:38,120 --> 00:08:40,879 con lo cual si hacemos este uso 211 00:08:40,879 --> 00:08:42,960 tenemos la garantía de que 212 00:08:42,960 --> 00:08:45,299 este bucle es un bucle que se va a ejecutar 213 00:08:45,299 --> 00:08:46,659 exactamente 10 veces 214 00:08:46,659 --> 00:08:48,960 porque tenemos una variable i que la hemos llamado 215 00:08:48,960 --> 00:08:51,019 i porque es el nombre que se le suele 216 00:08:51,019 --> 00:08:52,500 dar por lo de índice 217 00:08:52,500 --> 00:08:57,179 esta variable empieza haciendo 0 218 00:08:57,179 --> 00:08:59,220 en cada iteración 219 00:08:59,220 --> 00:09:00,580 funciona como contador 220 00:09:00,580 --> 00:09:01,879 porque se incrementa una vez 221 00:09:01,879 --> 00:09:03,899 luego en cada iteración funciona como contador 222 00:09:03,899 --> 00:09:06,720 y mientras sea menor que 10 223 00:09:06,720 --> 00:09:08,759 es decir, para 0, 1, 2, 3 224 00:09:08,759 --> 00:09:11,220 hasta 9, o sea un total de 10 veces 225 00:09:11,220 --> 00:09:12,720 de 0 hasta 9 se va a ejecutar 226 00:09:12,720 --> 00:09:15,340 luego esta estructura 227 00:09:15,340 --> 00:09:16,440 de aquí, esta sintaxis 228 00:09:16,440 --> 00:09:18,600 es una forma cómoda de hacer un bucle 229 00:09:18,600 --> 00:09:20,960 que se va a ejecutar exactamente 10 veces 230 00:09:20,960 --> 00:09:25,620 y nos olvidamos de buscar condiciones del while 231 00:09:25,620 --> 00:09:39,100 y de todo, vale, repito 232 00:09:39,100 --> 00:09:41,059 el bucle for, uno lo usa como 233 00:09:41,059 --> 00:09:41,460 quiera 234 00:09:41,460 --> 00:09:45,320 por ejemplo, si yo quito esto 235 00:09:45,320 --> 00:09:46,740 como ya le dijimos ayer 236 00:09:46,740 --> 00:09:48,799 estaría teniendo un while 237 00:09:48,799 --> 00:09:50,179 esto es un while 238 00:09:50,179 --> 00:09:53,000 porque este bucle se va a ejecutar 239 00:09:53,000 --> 00:09:55,259 mientras esta condición se acierta, luego es un while 240 00:09:55,259 --> 00:09:57,299 no se hace nada al principio 241 00:09:57,299 --> 00:09:59,200 de entrar, ni se hace 242 00:09:59,200 --> 00:10:01,240 nada al finalizar cada una 243 00:10:01,240 --> 00:10:03,440 de las iteraciones, con lo cual es exactamente igual que el while 244 00:10:03,440 --> 00:10:25,139 Claro, pero aquí me obligaría a declarar el int antes y decir, vale, pero es que la i la quiero como contador. Entonces, me obligaría a ponerla aquí y ahora a incrementarla aquí para que me funcionara como contador. Entonces, ahora ya sí que tendría de nuevo un bucle que se ejecuta exactamente 10 veces, porque la i empieza haciendo 0. Mientras i sea menor que 10, entras y te incrementas. 245 00:10:25,139 --> 00:10:28,100 bueno, pues, ¿para qué voy a hacer un for 246 00:10:28,100 --> 00:10:29,860 con todo esto fuera 247 00:10:29,860 --> 00:10:31,840 si puedo esta sentencia 248 00:10:31,840 --> 00:10:33,399 que se va a hacer una vez al principio 249 00:10:33,399 --> 00:10:35,000 ponerla aquí 250 00:10:35,000 --> 00:10:37,759 y esta que se va a hacer 251 00:10:37,759 --> 00:10:40,080 al final de cada iteración 252 00:10:40,080 --> 00:10:41,759 de todas y cada una de ellas 253 00:10:41,759 --> 00:10:43,320 la puedo poner aquí 254 00:10:43,320 --> 00:10:45,519 pues así queda más bonito y estoy haciendo lo mismo 255 00:10:45,519 --> 00:10:50,960 ahí, ¿vale? 256 00:10:51,600 --> 00:10:53,440 vale, pues este bucle se va a hacer 10 veces 257 00:10:53,440 --> 00:10:55,580 vale, ahora ya sigo completando el ejercicio 258 00:10:55,580 --> 00:10:57,120 ¿qué tengo que hacer 10 veces? 259 00:10:57,120 --> 00:10:59,879 leer un número, lo que me han dicho 260 00:10:59,879 --> 00:11:08,909 vale 261 00:11:08,909 --> 00:11:13,330 el numerito que leemos es este 262 00:11:13,330 --> 00:11:19,330 por ejemplo, este 263 00:11:19,330 --> 00:11:21,269 vale, y ahora ya 264 00:11:21,269 --> 00:11:23,470 este número va a ser el sumando 265 00:11:23,470 --> 00:11:25,230 de las sumas, tanto de 266 00:11:25,230 --> 00:11:27,049 pero va a ser el sumando de todas ellas 267 00:11:27,049 --> 00:11:29,409 depende, va a ser 268 00:11:29,409 --> 00:11:31,509 sumando de suma positivo si es positivo 269 00:11:31,509 --> 00:11:33,470 pero si es negativo 270 00:11:33,470 --> 00:11:34,649 va a ser sumando de esta a otra 271 00:11:34,649 --> 00:11:37,309 y se va a contar siempre, pues depende 272 00:11:37,309 --> 00:11:39,590 Se va a contar si es cero, si no, no 273 00:11:39,590 --> 00:11:42,549 Luego ahora ya estas tres sentencias van en un if 274 00:11:42,549 --> 00:11:48,149 ¿Cuándo incrementaré yo la suma de positivo? 275 00:11:48,710 --> 00:11:52,570 La incrementaré si n es mayor que cero 276 00:11:52,570 --> 00:11:57,269 Entonces solo en ese caso incrementaré la suma de esta manera 277 00:11:57,269 --> 00:12:02,389 ¿Pero cuándo incrementaré la suma de negativos? 278 00:12:03,289 --> 00:12:05,250 Pues si n es menor que cero 279 00:12:05,250 --> 00:12:08,149 Entonces incrementaré la suma 280 00:12:08,149 --> 00:12:08,970 De los negativos 281 00:12:08,970 --> 00:12:14,480 ¿Y cuándo lo contaré? 282 00:12:14,539 --> 00:12:15,960 Son tres tareas independientes 283 00:12:15,960 --> 00:12:17,240 ¿Y cuándo lo contaré? 284 00:12:17,700 --> 00:12:20,740 Lo contaré si n es igual a 0 285 00:12:20,740 --> 00:12:24,600 En ese caso lo contaré 286 00:12:24,600 --> 00:12:26,039 Y cont lo tengo 287 00:12:26,039 --> 00:12:27,659 Se llama con ceros 288 00:12:27,659 --> 00:12:34,789 Vale, pues entonces 289 00:12:34,789 --> 00:12:36,789 Ya he llegado 290 00:12:36,789 --> 00:12:38,769 A una versión casi muy cerca de la final 291 00:12:38,769 --> 00:12:40,690 Yo he partido de que era un bucle 292 00:12:40,690 --> 00:12:42,690 en el que tenía que hacer tres cosas en paralelo 293 00:12:42,690 --> 00:12:44,769 sumar sumandos 294 00:12:44,769 --> 00:12:46,169 que habrá que ver de dónde vienen 295 00:12:46,169 --> 00:12:48,029 y contar 296 00:12:48,029 --> 00:12:50,049 cosas que habrá que ver de dónde 297 00:12:50,049 --> 00:12:52,549 pues los sumandos de la suma de positivos 298 00:12:52,549 --> 00:12:54,710 vendrán del que me he leído si es positivo 299 00:12:54,710 --> 00:12:56,710 la suma de negativos 300 00:12:56,710 --> 00:12:58,090 de dónde vendrán los sumandos 301 00:12:58,090 --> 00:13:00,669 vendrán del que he leído solo si es negativo 302 00:13:00,669 --> 00:13:02,710 y cuando contaré 303 00:13:02,710 --> 00:13:04,009 cuando incremento el contador 304 00:13:04,009 --> 00:13:06,190 el contador lo incrementaré solo si es cero 305 00:13:06,190 --> 00:13:12,059 aquí lo único es que me diréis 306 00:13:12,059 --> 00:13:13,580 que forma más fea de escribirlo 307 00:13:13,580 --> 00:13:15,279 o sea, estas condiciones son excluyentes 308 00:13:15,279 --> 00:13:17,159 mete en un if, else, if 309 00:13:17,159 --> 00:13:19,899 y else, porque son excluyentes 310 00:13:19,899 --> 00:13:21,639 entonces, si esta es true 311 00:13:21,639 --> 00:13:23,399 estas van a ser falsas 312 00:13:23,399 --> 00:13:25,399 porque son excluyentes, si no fueran 313 00:13:25,399 --> 00:13:27,519 excluyentes, tendrían que ir 314 00:13:27,519 --> 00:13:28,940 en tres if separados, claro 315 00:13:28,940 --> 00:13:31,500 porque si yo lo pongo en if, else, if 316 00:13:31,500 --> 00:13:33,259 y la primera es cierta, las otras ni se miran 317 00:13:33,259 --> 00:13:35,539 pero en estas, las tres son completamente 318 00:13:35,539 --> 00:13:37,360 excluyentes, y si se cumple una 319 00:13:37,360 --> 00:13:39,240 las demás es que no quiero mirarlas, ¿para qué? 320 00:13:39,299 --> 00:13:41,320 porque van a ser falsas, entonces, hombre 321 00:13:41,320 --> 00:13:43,480 vamos a dejarlo un poco más bonito 322 00:13:43,480 --> 00:13:44,659 así 323 00:13:44,659 --> 00:13:49,259 y estoy haciendo exactamente lo mismo 324 00:13:49,259 --> 00:13:51,139 que con el código de antes, lo mismo 325 00:13:51,139 --> 00:13:51,980 estoy haciendo lo mismo 326 00:13:51,980 --> 00:13:55,399 pero estoy haciendo lo mismo porque n mayor que 0 327 00:13:55,399 --> 00:13:57,580 n menor que 0 y n igual a 0 328 00:13:57,580 --> 00:13:59,620 lo pongo aquí en comentario 329 00:13:59,620 --> 00:14:06,139 son excluyentes 330 00:14:06,139 --> 00:14:08,419 entonces o se cumple una o se cumple 331 00:14:08,419 --> 00:14:09,519 la otra o se cumple la otra 332 00:14:09,519 --> 00:14:14,350 vale, pues mi for, esta primera 333 00:14:14,350 --> 00:14:16,649 versión todavía no hace lo que me han pedido 334 00:14:16,649 --> 00:14:18,610 pero ya 335 00:14:18,610 --> 00:14:20,110 hace algo 336 00:14:20,110 --> 00:14:23,370 y ya he avanzado bastante 337 00:14:23,370 --> 00:14:25,629 entonces este ejercicio 338 00:14:25,629 --> 00:14:27,389 si yo ahora mostrara 339 00:14:27,389 --> 00:14:29,129 los resultados 340 00:14:29,129 --> 00:14:31,450 pues ahora mismo me muestra solamente 341 00:14:31,450 --> 00:14:33,690 la cantidad de positivos 342 00:14:33,690 --> 00:14:35,570 la cantidad de negativos y los ceros 343 00:14:35,570 --> 00:14:38,029 no, perdón, la suma de los positivos 344 00:14:38,029 --> 00:14:39,690 la suma de los negativos 345 00:14:39,690 --> 00:14:41,389 y los ceros, es decir, este ejercicio 346 00:14:41,389 --> 00:14:42,070 esta versión 347 00:14:42,070 --> 00:14:44,009 me hace esto solo 348 00:14:44,009 --> 00:15:02,960 suma positivos 349 00:15:02,960 --> 00:15:06,820 suma negativos 350 00:15:06,820 --> 00:15:10,259 y cantidad de ceros 351 00:15:10,259 --> 00:15:27,460 vale, lo que pasa es que este no es exactamente 352 00:15:27,460 --> 00:15:29,179 el ejercicio que me han pedido, no me han pedido 353 00:15:29,179 --> 00:15:31,519 la suma de los positivos y la suma de los negativos 354 00:15:31,519 --> 00:15:33,700 sino la media, el valor medio 355 00:15:33,700 --> 00:15:35,440 vale, entonces es una pequeña 356 00:15:35,440 --> 00:15:37,500 modificación, aun así 357 00:15:37,500 --> 00:15:38,700 vamos a probar esta versión 358 00:15:38,700 --> 00:15:41,500 porque si partimos de una versión 359 00:15:41,500 --> 00:15:43,259 que funciona 360 00:15:43,259 --> 00:15:45,299 pues mejor 361 00:15:45,299 --> 00:15:47,440 para modificarla, por ejemplo 362 00:15:47,440 --> 00:15:49,580 vamos a meter este positivo 363 00:15:49,580 --> 00:15:51,700 ah, que me obliga a 10 en cualquier caso 364 00:15:51,700 --> 00:15:54,980 3 menos 2 365 00:15:54,980 --> 00:15:56,100 o menos 1 366 00:15:56,100 --> 00:15:57,139 menos 2 367 00:15:57,139 --> 00:16:00,000 0, voy a meter ceros ya hasta el final 368 00:16:00,000 --> 00:16:05,679 vale, entonces efectivamente 369 00:16:05,679 --> 00:16:07,320 el bucle se ha ejecutado 10 veces 370 00:16:07,320 --> 00:16:09,519 los positivos sumaban 9, 6 más 3 371 00:16:09,519 --> 00:16:11,399 los negativos menos 3 372 00:16:11,399 --> 00:16:12,539 menos 1, menos 2 373 00:16:12,539 --> 00:16:14,799 y cuantos ceros he metido, pues 6 374 00:16:14,799 --> 00:16:16,299 vale 375 00:16:16,299 --> 00:16:19,500 si, entonces esta versión 376 00:16:19,500 --> 00:16:21,779 esta versión 377 00:16:21,779 --> 00:16:23,500 funciona 378 00:16:23,500 --> 00:16:25,899 pero no para hacer lo que me pide el ejercicio 379 00:16:25,899 --> 00:16:26,700 ¿qué parte del código? 380 00:16:29,320 --> 00:16:29,799 bueno 381 00:16:29,799 --> 00:16:31,720 lo de arriba es solo declarar las variables 382 00:16:31,720 --> 00:16:33,559 inicializarlas a cero 383 00:16:33,559 --> 00:16:34,820 y luego ya es el bucle 384 00:16:34,820 --> 00:16:40,049 ¿puse dentro del bucle el qué? 385 00:16:40,750 --> 00:16:41,669 el n 386 00:16:41,669 --> 00:16:43,850 claro, porque la n 387 00:16:43,850 --> 00:16:45,129 la leo 10 veces 388 00:16:45,129 --> 00:16:47,690 claro, es que leo 389 00:16:47,690 --> 00:16:49,750 10 veces, luego tiene que estar dentro 390 00:16:49,750 --> 00:16:51,610 la lectura, vale, entonces 391 00:16:51,610 --> 00:16:53,730 aquí digo, bueno, esta versión casi 392 00:16:53,730 --> 00:16:56,529 pero no, perdona, tiene que ser 393 00:16:56,529 --> 00:16:57,889 el valor medio 394 00:16:57,889 --> 00:17:00,330 entonces el valor medio de un conjunto de números 395 00:17:00,330 --> 00:17:01,690 ya sabéis que es la suma 396 00:17:01,690 --> 00:17:03,110 dividida por el total 397 00:17:03,110 --> 00:17:06,150 vale, pues entonces 398 00:17:06,150 --> 00:17:07,289 para hacer la media 399 00:17:07,289 --> 00:17:10,349 yo he metido un con suma y un con negativo 400 00:17:10,349 --> 00:17:11,970 o sea, un con positivo y un con negativo 401 00:17:11,970 --> 00:17:14,250 y luego lo divido entre con suma y con negativo 402 00:17:14,250 --> 00:17:16,210 claro, entonces nos falta un dato 403 00:17:16,210 --> 00:17:18,150 que no tenemos, que es la cantidad de números 404 00:17:18,150 --> 00:17:19,329 positivos que se han metido 405 00:17:19,329 --> 00:17:22,269 y la cantidad de números negativos que se han metido 406 00:17:22,269 --> 00:17:24,309 Necesitamos ese dato, ¿verdad? Para hacer la media, ¿no? 407 00:17:24,970 --> 00:17:26,329 Y ese dato no lo tenemos. 408 00:17:26,549 --> 00:17:28,509 Tenemos la cantidad de números que se han metido, que son 10. 409 00:17:29,250 --> 00:17:33,990 Pero de esos 10 no sabemos cuáles han sido positivos, cuáles negativos y cuáles cero. 410 00:17:34,069 --> 00:17:35,789 No lo sabemos. De esos 10 no sabemos. 411 00:17:36,650 --> 00:17:41,289 Pues tenemos que contar cuántos positivos y contar cuántos negativos. 412 00:17:42,029 --> 00:17:44,109 Luego tenemos que incorporar una cuenta más. 413 00:17:44,690 --> 00:17:45,769 Bueno, dos cuentas más. 414 00:17:45,769 --> 00:17:47,390 Pues hala 415 00:17:47,390 --> 00:17:49,450 Vamos a contar 416 00:17:49,450 --> 00:17:52,529 Los positivos 417 00:17:52,529 --> 00:17:55,029 Y en realidad 418 00:17:55,029 --> 00:17:58,130 La cuenta de los negativos me la puedo ahorrar 419 00:17:58,130 --> 00:18:00,150 Porque será, como tengo la de ceros 420 00:18:00,150 --> 00:18:02,369 Tengo 10 menos los positivos 421 00:18:02,369 --> 00:18:03,089 Menos los ceros 422 00:18:03,089 --> 00:18:05,950 Entonces con contar los positivos ya tengo 423 00:18:05,950 --> 00:18:07,730 Cuantos negativos también 424 00:18:07,730 --> 00:18:08,789 Porque hago la resta 425 00:18:08,789 --> 00:18:11,869 Claro, se ve más claro si los contamos en paralelo 426 00:18:11,869 --> 00:18:14,710 Pero como ya estáis muy avanzados 427 00:18:14,710 --> 00:18:17,970 Vamos a decir, bueno, con contar los positivos 428 00:18:17,970 --> 00:18:18,990 Solo tengo suficiente 429 00:18:18,990 --> 00:18:20,930 Pero ese dato sí, eso hay que contarlo 430 00:18:20,930 --> 00:18:23,730 Tengo que contarlos para poder 431 00:18:23,730 --> 00:18:25,410 Saber cuántos para hacer la media 432 00:18:25,410 --> 00:18:27,950 Vale, pues ¿cuándo contaré los positivos? 433 00:18:28,210 --> 00:18:29,769 Lo contaré aquí 434 00:18:29,769 --> 00:18:31,569 Cuando ha llegado un positivo 435 00:18:31,569 --> 00:18:32,650 Cuando no es mayor que cero 436 00:18:32,650 --> 00:18:35,470 Luego aquí no me olvido de poner mis llaves 437 00:18:35,470 --> 00:18:37,750 Porque ahora ya me aparece otra sentencia más 438 00:18:37,750 --> 00:18:43,940 Vale 439 00:18:43,940 --> 00:18:46,099 Jolines 440 00:18:46,099 --> 00:18:51,720 Vale, pues he tenido que incorporar 441 00:18:51,720 --> 00:18:52,799 Un contador adicional 442 00:18:52,799 --> 00:18:54,420 Un contador adicional 443 00:18:54,420 --> 00:18:56,700 Con la cuenta de los positivos 444 00:18:56,700 --> 00:18:59,900 Bueno, pues ya tengo todos los datos 445 00:18:59,900 --> 00:19:01,220 Que me faltan para hacer la media 446 00:19:01,220 --> 00:19:03,960 Tengo todos los que me faltan para hacer la media 447 00:19:03,960 --> 00:19:08,269 Media de los positivos 448 00:19:08,269 --> 00:19:11,210 La media de los positivos 449 00:19:11,210 --> 00:19:12,869 Será la suma de los positivos 450 00:19:12,869 --> 00:19:15,369 Pero dividida entre el total 451 00:19:15,369 --> 00:19:17,329 Porque eso es un valor medio 452 00:19:17,329 --> 00:19:18,829 La suma entre el total 453 00:19:18,829 --> 00:19:20,470 Y el total lo acabo de contar 454 00:19:20,470 --> 00:19:22,130 Positivos 455 00:19:22,130 --> 00:19:24,849 La suma de los 456 00:19:24,849 --> 00:19:26,549 La media de los negativos 457 00:19:26,549 --> 00:19:28,630 ¿Cuál será? 458 00:19:30,490 --> 00:19:32,490 La media de los negativos será 459 00:19:32,490 --> 00:19:35,029 La suma de los negativos 460 00:19:35,029 --> 00:19:37,349 Entre el total de los números negativos 461 00:19:37,349 --> 00:19:38,049 Que se han metido 462 00:19:38,049 --> 00:19:40,049 Estos no los he contado 463 00:19:40,049 --> 00:19:42,710 Podía haber metido un contador y contarlos también 464 00:19:42,710 --> 00:19:44,150 Igual que los he contado aquí 465 00:19:44,150 --> 00:19:45,269 Los positivos que van llegando 466 00:19:45,269 --> 00:19:48,569 Pero bueno, como sé que en total son 10 467 00:19:48,569 --> 00:19:51,130 y sé cuántos ceros y cuántos positivos hay 468 00:19:51,130 --> 00:19:53,549 pues hago 10 menos positivos menos ceros 469 00:19:53,549 --> 00:19:55,130 y van a ser los negativos, no hay tutía 470 00:19:55,130 --> 00:19:56,630 entonces 471 00:19:56,630 --> 00:19:59,069 podríamos hacer aquí 472 00:19:59,069 --> 00:20:01,130 menos 10 473 00:20:01,130 --> 00:20:02,710 menos cont 474 00:20:02,710 --> 00:20:04,890 ceros 475 00:20:04,890 --> 00:20:06,470 menos cont 476 00:20:06,470 --> 00:20:08,710 positivos 477 00:20:08,710 --> 00:20:12,789 esta última línea 478 00:20:12,789 --> 00:20:14,609 a ver 479 00:20:14,609 --> 00:20:17,049 ¿cómo hemos calculado la media de los positivos? 480 00:20:17,190 --> 00:20:18,809 sí, he hecho la suma 481 00:20:18,809 --> 00:20:19,789 y he dividido, vale 482 00:20:19,789 --> 00:20:21,769 Pues la media de los negativos es igual 483 00:20:21,769 --> 00:20:24,390 La suma de los negativos entre la cantidad 484 00:20:24,390 --> 00:20:25,930 De negativos que me han llegado 485 00:20:25,930 --> 00:20:28,430 No los hemos contado, luego no tenemos una variable 486 00:20:28,430 --> 00:20:30,329 Que los cuente, pero si tengo un total 487 00:20:30,329 --> 00:20:30,869 De 10 488 00:20:30,869 --> 00:20:33,950 Claro, le resto los positivos y los ceros 489 00:20:33,950 --> 00:20:36,029 Pues los demás tienen que ser los negativos, no hay otra 490 00:20:36,029 --> 00:20:38,369 Y luego el contador de ceros pues ya está 491 00:20:38,369 --> 00:20:40,329 Vale, pues ya está 492 00:20:40,329 --> 00:20:42,410 Ya estaría el ejercicio completo 493 00:20:42,410 --> 00:20:44,329 Entonces en este ejercicio hemos tenido 494 00:20:44,329 --> 00:20:45,670 Que hacer en paralelo varias cosas 495 00:20:45,670 --> 00:20:48,289 En un solo bucle 496 00:20:48,289 --> 00:20:50,890 que hayamos tenido que hacer varias sumas 497 00:20:50,890 --> 00:20:51,789 varios contadores 498 00:20:51,789 --> 00:20:55,069 no es que implique que haya que hacer diferentes bucles 499 00:20:55,069 --> 00:20:56,829 porque en el mismo bucle 500 00:20:56,829 --> 00:20:59,329 yo puedo llevar en paralelo todas las acciones 501 00:20:59,329 --> 00:21:02,809 porque todas trabajan 502 00:21:02,809 --> 00:21:04,150 con el mismo dato de entrada 503 00:21:04,150 --> 00:21:05,630 entonces en el mismo bucle 504 00:21:05,630 --> 00:21:07,750 llevo la suma de los positivos 505 00:21:07,750 --> 00:21:09,390 llevo la suma de los negativos 506 00:21:09,390 --> 00:21:10,730 llevo la cuenta 507 00:21:10,730 --> 00:21:12,250 en el mismo bucle lo llevo todo 508 00:21:12,250 --> 00:21:15,069 y luego ya doy el resultado final cuando el bucle acabó 509 00:21:15,069 --> 00:21:20,289 y además aquí tenemos la suerte 510 00:21:20,289 --> 00:21:23,470 de que como me han dicho exactamente 10 511 00:21:23,470 --> 00:21:25,650 pues tengo el bucle for 512 00:21:25,650 --> 00:21:27,410 ahí plantado 513 00:21:27,410 --> 00:21:29,569 y ya está, tengo el bucle for plantado 514 00:21:29,569 --> 00:21:34,170 que me cambian el ejercicio 515 00:21:34,170 --> 00:21:34,809 y me dicen 516 00:21:34,809 --> 00:21:37,869 haz lo mismo para 10.000 números 517 00:21:37,869 --> 00:21:39,250 facilísimo 518 00:21:39,250 --> 00:21:41,650 cambio esto y ya está 519 00:21:41,650 --> 00:21:44,009 me pedirá 10.000 números 520 00:21:44,009 --> 00:21:45,529 pero quien hace la prueba esa 521 00:21:45,529 --> 00:21:46,430 de 10.000 números 522 00:21:46,430 --> 00:21:52,839 efectivamente 523 00:21:52,839 --> 00:21:55,259 La automatizas con Java Unit 524 00:21:55,259 --> 00:21:55,599 Claro 525 00:21:55,599 --> 00:21:58,119 Efectivamente 526 00:21:58,119 --> 00:21:59,819 Que si puedo 527 00:21:59,819 --> 00:22:01,420 Bajar 528 00:22:01,420 --> 00:22:04,220 Esto es bajar o más 529 00:22:04,220 --> 00:22:05,960 Bueno o 530 00:22:05,960 --> 00:22:12,299 Eso 531 00:22:12,299 --> 00:22:13,279 Dime 532 00:22:13,279 --> 00:22:17,539 Porque el total de números que he metido son 10 533 00:22:17,539 --> 00:22:23,809 ¿Perdona? 534 00:22:25,609 --> 00:22:31,480 A ver el contador de positivos es el de positivos 535 00:22:31,480 --> 00:22:32,319 El de ceros es el de ceros 536 00:22:32,319 --> 00:22:33,819 Y el de negativos es el total 537 00:22:33,819 --> 00:22:35,740 menos el de ceros y el de positivos 538 00:22:35,740 --> 00:22:38,400 es que igual lo he entendido mal 539 00:22:38,400 --> 00:22:40,880 es más eficiente contar cuántos negativos hay 540 00:22:40,880 --> 00:22:42,160 porque si tú cambias la cantidad 541 00:22:42,160 --> 00:22:43,740 de números que se piden 542 00:22:43,740 --> 00:22:45,460 ya no sería 10 menos cuántos 543 00:22:45,460 --> 00:22:46,980 claro, efectivamente, eso sí 544 00:22:46,980 --> 00:22:48,940 si a mí me dicen, cámbialo a 10.000 545 00:22:48,940 --> 00:22:51,119 efectivamente, no me basta solo con cambiarlo ahí 546 00:22:51,119 --> 00:22:53,019 tienes razón, tendría que venir aquí 547 00:22:53,019 --> 00:22:55,759 tendría que venir aquí, claro, claro, claro 548 00:22:55,759 --> 00:22:57,619 claro, efectivamente 549 00:22:57,619 --> 00:22:59,920 claro, tendría que hacer un cambio 550 00:22:59,920 --> 00:23:01,519 en dos sitios, efectivamente 551 00:23:01,519 --> 00:23:08,279 claro 552 00:23:08,279 --> 00:23:11,019 ahí sería una prueba muy bien 553 00:23:11,019 --> 00:23:12,900 pasada, porque este ejercicio no hace 554 00:23:12,900 --> 00:23:14,779 sus pruebas, mete unos cuantos positivos 555 00:23:14,779 --> 00:23:16,700 otros negativos y funciona, pero efectivamente 556 00:23:16,700 --> 00:23:18,220 las pruebas 557 00:23:18,220 --> 00:23:20,799 hay que pasarlas para los casos raros 558 00:23:20,799 --> 00:23:22,460 para los casos extremos que se llaman 559 00:23:22,460 --> 00:23:24,900 y un caso extremo sería, todos ceros 560 00:23:24,900 --> 00:23:26,900 por ejemplo, pues cuando hacemos 561 00:23:26,900 --> 00:23:28,980 la media, nos queda una división entre cero 562 00:23:28,980 --> 00:23:30,960 ¿vale? nos queda una división entre cero 563 00:23:30,960 --> 00:23:32,740 entonces, si 564 00:23:32,740 --> 00:23:34,559 queremos ya rizar el rizo 565 00:23:34,559 --> 00:23:35,480 efectivamente 566 00:23:35,480 --> 00:23:41,339 y en el caso de que no hayamos metido 567 00:23:41,339 --> 00:23:44,380 o ningún positivo o ningún negativo 568 00:23:44,380 --> 00:23:47,059 no nos dé la división entre cero 569 00:23:47,059 --> 00:23:51,279 pues entonces, ¿qué modificación podríamos hacer aquí? 570 00:23:53,460 --> 00:23:54,980 aquí podríamos hacer 571 00:23:54,980 --> 00:23:58,380 suma, como ahora ya esto lo tenemos súper suelto 572 00:23:58,380 --> 00:24:02,339 suma positivo es mayor que cero 573 00:24:02,339 --> 00:24:04,039 no, perdón, suma no cont 574 00:24:04,039 --> 00:24:06,299 Cont 575 00:24:06,299 --> 00:24:11,119 Positivo 576 00:24:11,119 --> 00:24:13,339 Es mayor que cero 577 00:24:13,339 --> 00:24:16,119 Porque si cont positivo es mayor que cero 578 00:24:16,119 --> 00:24:17,900 Entonces sí tiene sentido hacer la media 579 00:24:17,900 --> 00:24:19,680 Sí tiene sentido 580 00:24:19,680 --> 00:24:20,160 Cont 581 00:24:20,160 --> 00:24:24,690 Si tienes 582 00:24:24,690 --> 00:24:26,890 Se llama 583 00:24:26,890 --> 00:24:29,049 Con ese o con 584 00:24:29,049 --> 00:24:31,809 Lo he puesto con ese o con 585 00:24:31,809 --> 00:24:33,769 Sin ese es todo ello 586 00:24:33,769 --> 00:24:35,230 Salvo el cero que era 587 00:24:35,230 --> 00:24:38,750 Ah, el cont era con S 588 00:24:38,750 --> 00:24:39,910 Y el suma era sin S 589 00:24:39,910 --> 00:24:40,490 Vale, a ver 590 00:24:40,490 --> 00:24:43,230 Entonces, cont positivos es con S, ¿verdad? 591 00:24:43,789 --> 00:24:45,069 Pero suma es sin S 592 00:24:45,069 --> 00:24:46,289 Este, vale 593 00:24:46,289 --> 00:24:49,190 Así, no, no, no, no hemos liado nada 594 00:24:49,190 --> 00:24:49,710 Tranquilidad 595 00:24:49,710 --> 00:24:53,069 Entonces, el caso de error, ¿qué me dices tú? 596 00:25:01,200 --> 00:25:03,259 Yo no estoy viendo mi error 597 00:25:03,259 --> 00:25:05,099 Pero la media de negativo me sale bien 598 00:25:05,099 --> 00:25:06,920 La media de positivo me sale algo raro 599 00:25:06,920 --> 00:25:08,759 y me da error si pongo solo 600 00:25:08,759 --> 00:25:09,880 positivos 601 00:25:09,880 --> 00:25:13,859 vale, espera, vamos a 602 00:25:13,859 --> 00:25:22,859 pero se ha inicializado a cero 603 00:25:22,859 --> 00:25:25,240 vale, entonces, espera, vamos a situarnos 604 00:25:25,240 --> 00:25:27,079 si os da por otras cosas, ahora lo vemos 605 00:25:27,079 --> 00:25:28,900 vale, pero entonces estamos en el caso 606 00:25:28,900 --> 00:25:30,259 caso de prueba que uno 607 00:25:30,259 --> 00:25:32,740 pues se ha dado cuenta porque ha pasado muchas pruebas 608 00:25:32,740 --> 00:25:35,000 y ha hecho muy bien, como Pedro esta vez 609 00:25:35,000 --> 00:25:36,839 si no metes positivos 610 00:25:36,839 --> 00:25:38,720 a la hora de hacer la media te va a ir entre 0 611 00:25:38,720 --> 00:25:40,980 la división entre 0 es 612 00:25:40,980 --> 00:25:43,359 arithmetic exception 613 00:25:43,359 --> 00:25:45,299 rojo y se acabó 614 00:25:45,299 --> 00:25:47,299 entonces, cuidadín 615 00:25:47,299 --> 00:25:48,619 esta división 616 00:25:48,619 --> 00:25:51,279 solo la hacemos si con 617 00:25:51,279 --> 00:25:52,740 positivos es mayor que 0 618 00:25:52,740 --> 00:25:55,339 y si no, un segundito, vamos a completar la versión 619 00:25:55,339 --> 00:25:56,980 esta y luego ya seguimos 620 00:25:56,980 --> 00:25:59,779 y si no, le decimos que es la media 0 621 00:25:59,779 --> 00:26:01,220 porque no hay positivos, pues media 0 622 00:26:01,220 --> 00:26:02,059 y ya está 623 00:26:02,059 --> 00:26:05,660 bueno, lo que me diga 624 00:26:05,660 --> 00:26:07,519 el cliente, si el cliente me dice, cuando no te he 625 00:26:07,519 --> 00:26:08,759 introducido ningún positivo, 626 00:26:09,579 --> 00:26:11,420 pon media cero o pon 627 00:26:11,420 --> 00:26:13,000 no hay positivos, lo que tú quieras. 628 00:26:13,500 --> 00:26:15,660 Yo le muestre cero porque como no hay positivos, 629 00:26:15,759 --> 00:26:17,319 la media, eso es como... 630 00:26:17,319 --> 00:26:17,859 Vale. 631 00:26:21,200 --> 00:26:23,559 A ver, nosotros hemos asumido que 632 00:26:23,559 --> 00:26:25,420 la suma de positivos 633 00:26:25,420 --> 00:26:27,099 está en esta variable, que está clara. 634 00:26:28,119 --> 00:26:29,720 Y la cantidad de positivos 635 00:26:29,720 --> 00:26:31,079 que se han metido está en esta otra. 636 00:26:31,359 --> 00:26:33,380 Con lo cual la media está clara, la suma 637 00:26:33,380 --> 00:26:35,220 entre la cantidad. Pero hay un caso 638 00:26:35,220 --> 00:26:37,019 especial, que no te hayan metido 639 00:26:37,019 --> 00:26:39,240 ningún positivo. La suma será 640 00:26:39,240 --> 00:26:41,420 cero, porque no se ha incrementado nunca la suma. 641 00:26:41,880 --> 00:26:43,440 Pero el contador también va a ser 642 00:26:43,440 --> 00:26:45,380 cero. Entonces, cero entre cero, 643 00:26:45,980 --> 00:26:47,180 la máquina virtual te da 644 00:26:47,180 --> 00:26:49,059 una excepción porque está por definir. 645 00:26:49,299 --> 00:26:50,819 La división por cero es una indeterminación. 646 00:26:51,420 --> 00:26:53,180 Entonces, pararía el programa. Entonces, 647 00:26:53,240 --> 00:26:54,519 como no queremos que pare el programa, 648 00:26:55,140 --> 00:26:57,240 pues decimos, oye, ojo, antes 649 00:26:57,240 --> 00:26:59,400 de meterle a System.out.printl en esto, 650 00:26:59,460 --> 00:27:00,880 vamos a meter esto en una ternaria 651 00:27:00,880 --> 00:27:03,119 de estas. Y le decimos, oye, 652 00:27:03,380 --> 00:27:05,200 ¿Realmente has metido positivos? 653 00:27:05,539 --> 00:27:07,460 Si realmente has metido positivos, 654 00:27:07,640 --> 00:27:09,279 entonces sí, muéstrame esto. 655 00:27:10,019 --> 00:27:11,339 Pero si no has metido positivos, 656 00:27:11,460 --> 00:27:11,980 muéstrame esto. 657 00:27:13,279 --> 00:27:15,240 Y con con negativo sería igual. 658 00:27:16,000 --> 00:27:17,279 Tendríamos que preguntarnos, 659 00:27:17,880 --> 00:27:19,119 ¿esto es mayor que cero? 660 00:27:19,619 --> 00:27:21,400 ¿El número de negativos es mayor que cero? 661 00:27:22,019 --> 00:27:23,240 Aquí efectivamente empieza a ser 662 00:27:23,240 --> 00:27:25,220 un poquito más claro si contamos los negativos 663 00:27:25,220 --> 00:27:27,220 a una variable aparte, porque si no nos va a quedar muy largo. 664 00:27:27,900 --> 00:27:29,299 ¿Vale? Vamos a contarlo 665 00:27:29,299 --> 00:27:31,579 de hecho a una variable aparte en lugar de hacer la resta, 666 00:27:31,579 --> 00:27:34,119 porque si no nos va a quedar muy feo 667 00:27:34,119 --> 00:27:35,980 el código, muy feo 668 00:27:35,980 --> 00:27:37,920 vale, vamos a contar los negativos en una variable 669 00:27:37,920 --> 00:27:38,720 aparte también 670 00:27:38,720 --> 00:27:43,829 vale, cont 671 00:27:43,829 --> 00:27:46,230 negativos 672 00:27:46,230 --> 00:27:47,690 vale 673 00:27:47,690 --> 00:27:51,109 si, he dicho, vamos a ponerla aparte porque si no 674 00:27:51,109 --> 00:27:52,450 la ternaria aquí 675 00:27:52,450 --> 00:27:54,710 se me va a alargar mucho a la derecha 676 00:27:54,710 --> 00:27:57,109 se me va a quedar una condición muy grande ahí 677 00:27:57,109 --> 00:27:58,869 entonces para que no se me alargue mucho 678 00:27:58,869 --> 00:28:00,089 a la derecha 679 00:28:00,089 --> 00:28:03,309 vamos a poner un específico para él, cont negativos 680 00:28:03,309 --> 00:28:05,750 Eso haría que ahora ya 681 00:28:05,750 --> 00:28:06,690 Aquí de nuevo 682 00:28:06,690 --> 00:28:13,000 Tengo que abrir, ahora ya sí que la he abierto 683 00:28:13,000 --> 00:28:14,099 Obligatoriamente 684 00:28:14,099 --> 00:28:16,980 Con negativos 685 00:28:16,980 --> 00:28:18,819 Más, más 686 00:28:18,819 --> 00:28:20,960 Y ahora ya 687 00:28:20,960 --> 00:28:22,500 Antes de hacer la media 688 00:28:22,500 --> 00:28:24,819 Antes de hacer la media, que en este caso 689 00:28:24,819 --> 00:28:27,440 Gracias a que tengo la variable, ya no hace falta que ponga todo esto 690 00:28:27,440 --> 00:28:29,519 Lo tengo, se me queda más simple el código 691 00:28:29,519 --> 00:28:34,049 Con negativos 692 00:28:34,049 --> 00:28:35,150 Vale, pues lo mismo 693 00:28:35,150 --> 00:28:37,450 Cuando muestro la media, digo 694 00:28:37,450 --> 00:28:40,430 oye, no muestres esto incondicionalmente 695 00:28:40,430 --> 00:28:41,930 no muestres eso incondicionalmente 696 00:28:41,930 --> 00:28:43,970 porque como sea negativa 697 00:28:43,970 --> 00:28:46,289 perdón, como sea cero ese contador 698 00:28:46,289 --> 00:28:47,890 también se te va a parar 699 00:28:47,890 --> 00:28:49,450 pues entonces 700 00:28:49,450 --> 00:28:53,019 con negativos 701 00:28:53,019 --> 00:28:54,700 es mayor que cero 702 00:28:54,700 --> 00:29:02,039 porque si con negativos es mayor que cero 703 00:29:02,039 --> 00:29:03,380 entonces sí 704 00:29:03,380 --> 00:29:04,940 muestra la media 705 00:29:04,940 --> 00:29:07,579 suma entre con negativos 706 00:29:07,579 --> 00:29:09,200 pero si no, muestra cero 707 00:29:09,200 --> 00:29:11,319 o lo que el cliente te diga que tengas que mostrar 708 00:29:11,319 --> 00:29:12,579 lo que sea 709 00:29:12,579 --> 00:29:14,680 vale 710 00:29:14,680 --> 00:29:17,720 entonces como eso a su vez está condicionado en el string 711 00:29:17,720 --> 00:29:19,240 por eso lo he metido todo en paréntesis 712 00:29:19,240 --> 00:29:21,460 vale, pues ahora ya 713 00:29:21,460 --> 00:29:24,039 ese caso de prueba 714 00:29:24,039 --> 00:29:25,920 de cuando no metemos ningún positivo o negativo 715 00:29:25,920 --> 00:29:26,880 ya lo va a pasar también 716 00:29:26,880 --> 00:29:30,059 vale, vamos a suponer 717 00:29:30,059 --> 00:29:32,400 que ahora no le metemos ningún positivo 718 00:29:32,400 --> 00:29:33,640 pongo 719 00:29:33,640 --> 00:29:36,460 0, 0, 0, 0, 0, 0 720 00:29:36,460 --> 00:29:37,440 bueno 721 00:29:37,440 --> 00:29:39,339 y ahora le pongo 722 00:29:39,339 --> 00:29:41,940 menos 4, menos 1, lo que sea 723 00:29:41,940 --> 00:29:44,039 hasta acabar 724 00:29:44,039 --> 00:29:46,039 bueno, otro cero 725 00:29:46,039 --> 00:29:48,279 vale, ahora ya no me sale error 726 00:29:48,279 --> 00:29:50,700 media de los positivos, cero, no has metido 727 00:29:50,700 --> 00:29:52,740 ninguno, media de los negativos 728 00:29:52,740 --> 00:29:54,640 la que sea que ha salido, cantidad 729 00:29:54,640 --> 00:29:55,279 de cero, siete 730 00:29:55,279 --> 00:29:58,319 vale, más 731 00:29:58,319 --> 00:30:02,579 y si no pones ningún cero, te saldrá 732 00:30:02,579 --> 00:30:04,640 cantidad de cero, cero, ahí no hay ningún 733 00:30:04,640 --> 00:30:06,180 problema, porque aquí no hay ninguna división 734 00:30:06,180 --> 00:30:08,440 ahí no estamos dividiendo, estamos mostrando el contador 735 00:30:08,440 --> 00:30:10,259 si ha sido cero, ha sido cero 736 00:30:10,259 --> 00:30:14,799 se lo he puesto porque si no tenía que poner aquí 737 00:30:14,799 --> 00:30:16,279 el 10 menos con positivos 738 00:30:16,279 --> 00:30:17,640 y se me quedaba muy largo 739 00:30:17,640 --> 00:30:19,220 pero no era imprescindible 740 00:30:19,220 --> 00:30:21,259 pero simplemente para cortar esa sentencia 741 00:30:21,259 --> 00:30:28,519 vale, ¿alguien tiene algo 742 00:30:28,519 --> 00:30:30,480 que le agobie de esto? 743 00:30:30,700 --> 00:30:31,980 o más o menos está todo claro 744 00:30:31,980 --> 00:30:38,779 con todo 23 la media es 2 745 00:30:38,779 --> 00:30:40,640 vamos a ver si es algo que hemos escrito mal 746 00:30:40,640 --> 00:30:41,099 aquí también 747 00:30:41,099 --> 00:30:43,900 es que 23 es muy largo 748 00:30:43,900 --> 00:30:45,000 voy a ponerle a todo 3 749 00:30:45,000 --> 00:30:51,109 media 3, negativo es 0 750 00:30:51,109 --> 00:30:52,809 pero no hay ninguno y cantidad de 0 es 0 751 00:30:52,809 --> 00:30:55,410 bueno, pues será cualquier chorrada 752 00:30:55,410 --> 00:30:56,809 cuando revises el código 753 00:30:56,809 --> 00:30:59,410 vale, ¿alguna otra cosa 754 00:30:59,410 --> 00:31:00,970 que detectéis de este ejercicio? 755 00:31:01,549 --> 00:31:03,630 pues mira, en este caso no te no sé qué 756 00:31:03,630 --> 00:31:05,349 en principio yo creo que no 757 00:31:05,349 --> 00:31:07,150 lo que pasa es que 758 00:31:07,150 --> 00:31:09,289 ya vamos a dejarlo un poco 759 00:31:09,289 --> 00:31:11,230 aquí cuando me dicen 760 00:31:11,230 --> 00:31:12,130 muestra la media 761 00:31:12,130 --> 00:31:14,609 uno ya debería pensar 762 00:31:14,609 --> 00:31:16,609 a ver, yo he seleccionado el tipo de 763 00:31:16,609 --> 00:31:18,589 dato para la media muy alegremente como 764 00:31:18,589 --> 00:31:20,890 entero, cuando hacía sumas 765 00:31:20,890 --> 00:31:22,609 si son sumas de enteros 766 00:31:22,609 --> 00:31:24,609 estupendo, pero la suma de enteros siempre es 767 00:31:24,609 --> 00:31:26,390 entero, pero una media 768 00:31:26,390 --> 00:31:28,710 me va a dar 769 00:31:28,710 --> 00:31:30,710 con decimales normalmente, es una división 770 00:31:30,710 --> 00:31:33,069 a menos que me digan 771 00:31:33,069 --> 00:31:34,529 no, no 772 00:31:34,529 --> 00:31:36,470 hazme la media truncada, pero 773 00:31:36,470 --> 00:31:38,549 hombre, como aquí no me dicen nada, de hecho 774 00:31:38,549 --> 00:31:40,349 ni me están diciendo que los pida enteros, pero bueno 775 00:31:40,349 --> 00:31:42,430 Los hemos pedido enteros para... 776 00:31:42,430 --> 00:31:45,470 Pues, entonces, aquí tendría mucho más sentido 777 00:31:45,470 --> 00:31:48,849 esto declararlo como dable, por ejemplo. 778 00:31:49,690 --> 00:31:49,910 ¿Vale? 779 00:31:50,369 --> 00:31:52,769 Lo podemos declarar como dable. 780 00:31:55,529 --> 00:31:59,029 Y, sin embargo, los contadores sí que sí como enteros, 781 00:31:59,130 --> 00:32:00,049 porque esos son cuentas. 782 00:32:01,049 --> 00:32:01,569 ¿Vale? 783 00:32:04,160 --> 00:32:05,599 Entonces, lo declaramos como dable. 784 00:32:06,619 --> 00:32:08,799 Y ahora, ¿qué estaremos haciendo aquí? 785 00:32:09,240 --> 00:32:11,279 Fijaos que la máquina virtual va a hacer 786 00:32:11,279 --> 00:32:12,900 una promoción automática que llamábamos. 787 00:32:16,500 --> 00:32:17,700 Esto, un dabble, 788 00:32:18,099 --> 00:32:20,640 lo va a dividir entre un entero. 789 00:32:22,000 --> 00:32:23,519 Suma positivo es dabble, 790 00:32:24,259 --> 00:32:25,460 pero lo divide entre entero. 791 00:32:26,940 --> 00:32:27,420 ¿Vale? 792 00:32:27,480 --> 00:32:29,299 Dabble, entre entero lo guarda en dabble. 793 00:32:30,019 --> 00:32:31,680 Con lo cual ahora sí me va a aparecer decimales. 794 00:32:32,180 --> 00:32:33,940 No, veis que aquí cuando veíamos operadores 795 00:32:33,940 --> 00:32:35,339 y todo eso decíamos, 796 00:32:35,900 --> 00:32:37,559 hay operadores que pueden mezclar 797 00:32:37,559 --> 00:32:39,359 diferentes tipos de datos y no pasa nada. 798 00:32:39,359 --> 00:32:42,460 La suma de hecho puede mezclar enteros y cadenas 799 00:32:42,460 --> 00:32:44,259 No pasa nada, se convierte todo a cadena 800 00:32:44,259 --> 00:32:46,240 La suma puede mezclar 801 00:32:46,240 --> 00:32:47,799 Decimales y enteros 802 00:32:47,799 --> 00:32:49,779 No pasa nada, se promociona todo a decimal 803 00:32:49,779 --> 00:32:52,279 Porque un entero a decimal no le pasa nada 804 00:32:52,279 --> 00:32:53,480 Se le pone coma cero y ya está 805 00:32:53,480 --> 00:32:55,940 Un decimal a entero sí, porque se le corta 806 00:32:55,940 --> 00:32:58,220 Pues aquí tenemos, decimal entero 807 00:32:58,220 --> 00:33:00,220 No pasa nada, este es un entero 808 00:33:00,220 --> 00:33:02,700 Se le promociona decimal con coma cero 809 00:33:02,700 --> 00:33:04,799 Y ya me queda división de dos decimales 810 00:33:04,799 --> 00:33:05,859 Me dará en decimales 811 00:33:05,859 --> 00:33:06,759 ¿Vale? 812 00:33:06,759 --> 00:33:17,650 A ver 813 00:33:17,650 --> 00:33:22,250 Nosotros ahora, la media 814 00:33:22,250 --> 00:33:24,289 Si yo digo 815 00:33:24,289 --> 00:33:25,730 Que calculéis la media de algo 816 00:33:25,730 --> 00:33:27,490 La media es una división 817 00:33:27,490 --> 00:33:29,349 Entonces la división, a menos que 818 00:33:29,349 --> 00:33:31,789 Yo diga división entera 819 00:33:31,789 --> 00:33:34,529 La división es algo que por definición 820 00:33:34,529 --> 00:33:35,269 Es con decimales 821 00:33:35,269 --> 00:33:37,990 Entonces si yo pido algún ejercicio 822 00:33:37,990 --> 00:33:39,230 en el que haya que dividir 823 00:33:39,230 --> 00:33:42,309 asumid que el resultado lo esperamos 824 00:33:42,309 --> 00:33:43,170 con la parte decimal 825 00:33:43,170 --> 00:33:44,829 porque la división de decimales 826 00:33:44,829 --> 00:33:47,369 si esperamos que el resultado sea entero 827 00:33:47,369 --> 00:33:49,089 o porque hace falta que sea entero 828 00:33:49,089 --> 00:33:50,289 será división entera 829 00:33:50,289 --> 00:33:52,569 por defecto la división es con decimales 830 00:33:52,569 --> 00:33:54,690 entonces aquí por defecto la media 831 00:33:54,690 --> 00:33:56,369 que es una división 832 00:33:56,369 --> 00:33:57,710 pues por defecto es con decimales 833 00:33:57,710 --> 00:34:01,210 bueno a ver 834 00:34:01,210 --> 00:34:05,650 tampoco es que uno 835 00:34:05,650 --> 00:34:07,910 se juegue la prueba por estas cosas 836 00:34:07,910 --> 00:34:09,210 bueno depende 837 00:34:09,210 --> 00:34:10,690 si va muy mal 838 00:34:10,690 --> 00:34:12,929 pero es que si va muy mal 839 00:34:12,929 --> 00:34:15,250 pues tiene un cero, con lo cual le da igual tener un cero con uno 840 00:34:15,250 --> 00:34:17,130 que un cero con cero cero uno 841 00:34:17,130 --> 00:34:22,929 por ejemplo esto me tendría que sacar 842 00:34:22,929 --> 00:34:24,269 cuatro y medio, justo 843 00:34:24,269 --> 00:34:27,510 ahora ya le he metido cuatro, cinco y todo ceros 844 00:34:27,510 --> 00:34:29,349 entonces me da la media de los positivos 845 00:34:29,349 --> 00:34:30,090 cuatro con cinco 846 00:34:30,090 --> 00:34:33,469 vale, bueno 847 00:34:33,469 --> 00:34:37,030 necesitáis parar un momento 848 00:34:37,030 --> 00:34:40,429 Sí, vale, pues a ver