1 00:00:00,620 --> 00:00:32,179 Vale, pues a ver, ejercicio 4. Algunos igual lo habéis hecho, vais a quitar en casa o... Vale. Ejemplifica una estructura básica en programación, que es la de contar. ¿Vale? Entonces, en muchos de nuestros programas necesitamos, dentro de todo el conjunto de funcionalidades a resolver, necesitamos contar muchas veces. 2 00:00:32,179 --> 00:00:56,619 ¿Vale? Contar. Bueno, pues entonces, para nosotros, contar rápidamente va a estar asociado a un bucle. Entonces, en cualquier aplicación, repito, puede ser necesario que yo haga una cuenta, que es, pues, por favor, ¿cuántos usuarios tienen un pase válido? ¿Cuántas facturas están pagadas? 3 00:00:56,619 --> 00:01:15,939 ¿Cuántas pagadas? ¿Cuántos paquetes han llegado? ¿Vale? Dentro de las funcionalidades de una aplicación grandota, contar puede ser uno de los requisitos que tiene que hacer. Contar, vale. Pues contar siempre lo vamos a realizar dentro de un bucle. 4 00:01:15,939 --> 00:01:29,620 Vale, a ver 5 00:01:29,620 --> 00:01:30,219 Con 6 00:01:30,219 --> 00:01:32,340 Ahora 7 00:01:32,340 --> 00:01:35,909 Aquí 8 00:01:35,909 --> 00:01:43,390 Ah, jolines 9 00:01:43,390 --> 00:01:44,650 Pesado 10 00:01:44,650 --> 00:01:54,319 Aquí, vale 11 00:01:54,319 --> 00:01:56,760 Voy a escribir grandote, pero vamos 12 00:01:56,760 --> 00:01:59,879 ¿Vale? 13 00:02:01,780 --> 00:02:02,060 Sí 14 00:02:02,060 --> 00:02:05,480 A ver 15 00:02:05,480 --> 00:02:08,659 Repito, contar es 16 00:02:08,659 --> 00:02:10,740 A lo mejor alguna pequeña parte 17 00:02:10,740 --> 00:02:12,699 Que una aplicación grandota va a tener que hacer 18 00:02:12,699 --> 00:02:14,939 Por ejemplo, cuántas facturas están pagadas 19 00:02:14,939 --> 00:02:16,159 Cuántos paquetes han llegado 20 00:02:16,159 --> 00:02:18,620 Entonces, esto en programación 21 00:02:18,620 --> 00:02:20,039 ¿En qué se va a traducir? 22 00:02:20,139 --> 00:02:22,439 Se va a traducir en un trozo de programa 23 00:02:22,439 --> 00:02:24,180 En el que va a haber un bucle 24 00:02:24,180 --> 00:02:26,039 En el que va a haber aquí un bucle 25 00:02:26,039 --> 00:02:31,020 Y este bucle 26 00:02:31,020 --> 00:02:32,699 Va a recorrer 27 00:02:32,699 --> 00:02:35,080 Va a recorrer 28 00:02:35,080 --> 00:02:38,479 Todos 29 00:02:38,479 --> 00:02:41,879 va a recorrer todos los eventos 30 00:02:41,879 --> 00:02:43,039 que tenemos que contar. 31 00:02:43,180 --> 00:02:45,340 Si tenemos facturas, va a recorrer todas las facturas. 32 00:02:45,860 --> 00:02:47,139 Si tenemos que contar paquetes, 33 00:02:47,219 --> 00:02:48,860 va a recorrer todos los paquetes. 34 00:02:49,039 --> 00:02:50,740 Cuando nosotros contamos, ¿qué hacemos? 35 00:02:51,379 --> 00:02:53,080 Tenemos un montón de cosas por ahí. 36 00:02:53,520 --> 00:02:55,319 Cuando contamos, tenemos un montón de cosas por aquí. 37 00:02:55,400 --> 00:02:56,280 Yo ahora voy a contar 38 00:02:56,280 --> 00:02:59,000 todos los alumnos que llevan gafas. 39 00:02:59,580 --> 00:03:00,939 Pues tengo un montón de alumnos. 40 00:03:01,259 --> 00:03:03,780 Tengo un montón de alumnos y tendré que ir uno por uno. 41 00:03:03,780 --> 00:03:06,219 Y en cada uno de ellos, mirar a ver si tiene gafas. 42 00:03:06,340 --> 00:03:07,280 Y si tiene, contarlo. 43 00:03:07,280 --> 00:03:09,460 ¿vale? eso es lo que haré si tengo que contar 44 00:03:09,460 --> 00:03:11,659 unos que llevan gafas, si tengo que contar 45 00:03:11,659 --> 00:03:13,259 mesas que están rotas 46 00:03:13,259 --> 00:03:15,419 pues siempre parto de que tengo 47 00:03:15,419 --> 00:03:17,620 un montón de mesas, ¿vale? entonces voy 48 00:03:17,620 --> 00:03:18,419 una por una 49 00:03:18,419 --> 00:03:21,439 me voy parando en cada una de ellas y en cada una de ellas 50 00:03:21,439 --> 00:03:23,639 hago lo mismo, mirar a ver si está 51 00:03:23,639 --> 00:03:25,560 rota, luego eso automáticamente es 52 00:03:25,560 --> 00:03:27,419 un bucle, que es, voy a esta mesa 53 00:03:27,419 --> 00:03:29,719 miro si está rota, voy a esta mesa, miro si está rota 54 00:03:29,719 --> 00:03:31,219 voy a esta mesa, miro si está rota 55 00:03:31,219 --> 00:03:33,319 luego eso es un bucle, porque un montón de veces 56 00:03:33,319 --> 00:03:36,000 hago, ir mesa y mirar, ir mesa y mirar 57 00:03:36,000 --> 00:03:55,879 Luego, un bucle va a haber. Pero claro, además tengo que contar, no solo ir a la mesa y mirar, ir a la mesa y mirar, ir a la mesa y mirar. Además, tendré que hacer una cuenta. Es decir, tendré que llevar yo en una variable un registro del incremento de esa cuenta. 58 00:03:55,879 --> 00:04:25,240 Entonces, este bucle mío va a servir para ir observando cada elemento dentro de todos aquellos que tengo que contar, ¿vale? 59 00:04:25,759 --> 00:04:34,899 Este bucle mío va a servir para observar cada elemento, ¿vale? 60 00:04:34,899 --> 00:04:39,899 ¿Cómo observo cada elemento? Pues depende, observar cada elemento dependerá, ya veremos. 61 00:04:40,079 --> 00:04:41,920 de los elementos que tenga 62 00:04:41,920 --> 00:04:44,040 y qué es lo que tengo que fijarme yo en ellos 63 00:04:44,040 --> 00:04:46,040 qué es lo que tengo que fijarme, observar cada elemento 64 00:04:46,040 --> 00:04:47,920 pero luego aparte tengo que llevar la cuenta 65 00:04:47,920 --> 00:04:50,180 y esta es la estructura que siempre 66 00:04:50,180 --> 00:04:51,120 hacemos de la misma manera 67 00:04:51,120 --> 00:04:53,560 tendremos una variable 68 00:04:53,560 --> 00:04:56,420 que me sirve a mí como contador 69 00:04:56,420 --> 00:04:58,360 a la que le daré 70 00:04:58,360 --> 00:05:00,079 lógicamente el número 71 00:05:00,079 --> 00:05:02,360 que me dé la gana, el nombre que me dé la gana 72 00:05:02,360 --> 00:05:04,139 pero claro, lo que sí 73 00:05:04,139 --> 00:05:06,019 que es inamovible es que 74 00:05:06,019 --> 00:05:07,779 una cuenta empieza desde cero 75 00:05:07,779 --> 00:05:11,040 cualquier cuenta antes de iniciarse 76 00:05:11,040 --> 00:05:11,699 está a cero 77 00:05:11,699 --> 00:05:13,439 vale 78 00:05:13,439 --> 00:05:16,959 y ahora aquí observaremos cada elemento 79 00:05:16,959 --> 00:05:18,759 y aquí 80 00:05:18,759 --> 00:05:21,000 puede que el contador se incremente 81 00:05:21,000 --> 00:05:21,720 puede que no 82 00:05:21,720 --> 00:05:24,579 en función del resultado de esta observación 83 00:05:24,579 --> 00:05:28,620 entonces una estructura 84 00:05:28,620 --> 00:05:30,800 en la que yo estoy contando 85 00:05:30,800 --> 00:05:31,680 cosas 86 00:05:31,680 --> 00:05:34,420 va a ser siempre algo de este estilo 87 00:05:34,420 --> 00:05:37,040 lógicamente adaptado a cada situación 88 00:05:37,040 --> 00:05:39,199 no adaptado a los elementos 89 00:05:39,199 --> 00:05:40,279 que yo tengo que observar 90 00:05:40,279 --> 00:05:42,800 pero va a ser siempre algo de este estilo 91 00:05:42,800 --> 00:05:44,339 siempre va a haber un bucle 92 00:05:44,339 --> 00:05:46,759 que es en el que yo me voy parando en cada elemento 93 00:05:46,759 --> 00:05:48,699 me paro en uno, me paro en otro 94 00:05:48,699 --> 00:05:50,040 me paro en otro, me paro en otro 95 00:05:50,040 --> 00:05:52,800 la condición de finalización estará asociada 96 00:05:52,800 --> 00:05:54,500 a que he terminado de mirarlos todos 97 00:05:54,500 --> 00:05:56,379 pero siempre va a ser eso 98 00:05:56,379 --> 00:05:57,560 me paro en uno, me paro en uno 99 00:05:57,560 --> 00:05:58,959 luego es un bucle 100 00:05:58,959 --> 00:06:01,959 y luego además tendré una variable contadora 101 00:06:01,959 --> 00:06:03,199 que empieza valiendo cero 102 00:06:03,199 --> 00:06:05,019 como todas las cuentas 103 00:06:05,019 --> 00:06:07,279 están a cero siempre al principio 104 00:06:07,279 --> 00:06:09,399 y aquí habrá algo de este estilo 105 00:06:09,399 --> 00:06:11,120 si esto que yo 106 00:06:11,120 --> 00:06:13,459 si este elemento que estoy observando 107 00:06:13,459 --> 00:06:15,259 tengo que incorporar a la cuenta 108 00:06:15,259 --> 00:06:17,319 pues entonces incremento 109 00:06:17,319 --> 00:06:18,560 ¿vale? 110 00:06:19,660 --> 00:06:21,180 pues esta es la estructura 111 00:06:21,180 --> 00:06:23,160 mental de una cuenta 112 00:06:23,160 --> 00:06:25,079 en Java ¿vale? un bucle 113 00:06:25,079 --> 00:06:25,939 que va parándose 114 00:06:25,939 --> 00:06:28,839 y en cada parada que hace 115 00:06:28,839 --> 00:06:31,079 en cada parada mira a ver si le toca incrementar 116 00:06:31,079 --> 00:06:31,800 la cuenta o no 117 00:06:31,800 --> 00:06:35,379 Una cuenta que se iniciaba a cero 118 00:06:35,379 --> 00:06:36,740 Y ahora esto ya 119 00:06:36,740 --> 00:06:38,459 Pues bueno, se adapta a la situación 120 00:06:38,459 --> 00:06:39,879 Que toque 121 00:06:39,879 --> 00:06:42,720 Entonces, en nuestro 122 00:06:42,720 --> 00:06:51,060 En nuestro ejemplo de aquí 123 00:06:51,060 --> 00:07:03,029 Vale 124 00:07:03,029 --> 00:07:04,490 En nuestro enunciado de aquí 125 00:07:04,490 --> 00:07:06,990 Aquí lo leemos, programa que 126 00:07:06,990 --> 00:07:09,509 Cuente todos los múltiplos 127 00:07:09,509 --> 00:07:12,490 de 7 convenidos de 1 y 100. Uy, tengo que contar. 128 00:07:12,889 --> 00:07:16,970 Tengo que contar porque ya sabemos que en nuestra cabeza es algo de ese estilo 129 00:07:16,970 --> 00:07:19,990 que yo he escrito antes lo que tendremos que hacer. Porque tenemos que contar. 130 00:07:21,089 --> 00:07:24,250 Bueno, pues entonces vamos a hacer, por ejemplo, este ejercicio. 131 00:07:26,310 --> 00:07:27,410 Ejercicios, bucles. 132 00:07:29,089 --> 00:07:46,699 El 4. Vale. Entonces, aquí 133 00:07:46,699 --> 00:07:50,639 una cuenta hay que hacer. Pues mira, ya voy ganándome 134 00:07:50,639 --> 00:07:56,000 Voy ganando tiempo haciéndome un contador inicialmente a cero. 135 00:07:57,220 --> 00:07:58,920 Variable, nombre que uno le dé la gana. 136 00:07:59,160 --> 00:08:01,899 Acordándonos de que cuanto más explicativo sea mejor. 137 00:08:02,759 --> 00:08:04,540 Si la llamo x, ¿qué nombre tan feo? 138 00:08:04,680 --> 00:08:05,399 Llamarla x. 139 00:08:05,620 --> 00:08:08,399 Pues cont, contador, cuenta, algo explicativo. 140 00:08:09,779 --> 00:08:13,540 Entonces, aquí va a haber siempre algo así. 141 00:08:14,980 --> 00:08:16,600 Va a haber siempre algo así. 142 00:08:16,600 --> 00:08:21,439 durante un tiempo, no sé qué tiempo 143 00:08:21,439 --> 00:08:24,600 durante un tiempo, todo el que yo tarde en recorrer 144 00:08:24,600 --> 00:08:27,779 todos los elementos susceptibles a ser contados 145 00:08:27,779 --> 00:08:29,660 habrá que irlo perfilando 146 00:08:29,660 --> 00:08:33,019 durante un tiempo, pues yo haré aquí cosas 147 00:08:33,019 --> 00:08:36,879 para ir generando esos elementos 148 00:08:36,879 --> 00:08:39,340 susceptibles de ser contados 149 00:08:39,340 --> 00:08:40,679 ya veremos de dónde salen 150 00:08:40,679 --> 00:08:44,779 y si cumplen cierta condición esos elementos 151 00:08:44,779 --> 00:08:48,379 pues entonces los contaré 152 00:08:48,379 --> 00:08:56,200 y el resultado será 153 00:08:56,200 --> 00:09:02,450 pues lo que sea, resultado 154 00:09:02,450 --> 00:09:07,649 contador, vale 155 00:09:07,649 --> 00:09:11,789 bueno, pues la estructura de nuestro programa va a ser esto, yo tengo que contar algo 156 00:09:11,789 --> 00:09:17,210 tendré que completar efectivamente pues todo esto, tendré que completar 157 00:09:17,210 --> 00:09:21,149 como genero aquí los elementos susceptibles de ser contados 158 00:09:21,149 --> 00:09:24,070 cuándo termino de generarlos, 159 00:09:24,429 --> 00:09:25,509 de dónde me provienen 160 00:09:25,509 --> 00:09:28,409 y luego ya qué es lo que hace 161 00:09:28,409 --> 00:09:29,809 que los cuente o que no los cuente. 162 00:09:30,009 --> 00:09:30,649 ¿Qué es lo que hace? 163 00:09:31,409 --> 00:09:33,990 Esto está así completamente destripado. 164 00:09:34,529 --> 00:09:35,269 Luego, en función de la situación, 165 00:09:35,450 --> 00:09:37,149 pues puede quedar más sencillo, más complicado. 166 00:09:38,049 --> 00:09:39,970 Vale, pues entonces ya podemos seguir pensando. 167 00:09:40,850 --> 00:09:43,190 A ver, ¿cuáles son los elementos 168 00:09:43,190 --> 00:09:45,269 susceptibles de ser contados? 169 00:09:46,149 --> 00:09:48,809 Pues todos los que están entre 1 y 100. 170 00:09:48,809 --> 00:09:52,769 esos son los elementos susceptibles de ser contados 171 00:09:52,769 --> 00:09:55,590 con mi ejemplo de alumnos que llevan gafas 172 00:09:55,590 --> 00:09:57,929 mis elementos susceptibles de ser contados 173 00:09:57,929 --> 00:09:59,070 eran todos los alumnos 174 00:09:59,070 --> 00:10:00,309 con lo cual yo tendría que ver 175 00:10:00,309 --> 00:10:01,889 cómo generarlos dentro del bucle 176 00:10:01,889 --> 00:10:03,289 cómo hacer que vayan apareciendo 177 00:10:03,289 --> 00:10:05,669 o como en el ejemplo de las mesas 178 00:10:05,669 --> 00:10:08,610 todos mis elementos susceptibles de ser contados 179 00:10:08,610 --> 00:10:09,950 eran todas las mesas 180 00:10:09,950 --> 00:10:11,629 luego en mi bucle tendría que ir viendo 181 00:10:11,629 --> 00:10:13,169 cómo hago aparecer las mesas 182 00:10:13,169 --> 00:10:16,649 bueno pues aquí los elementos susceptibles de ser contados 183 00:10:16,649 --> 00:10:18,730 son todos los comprendidos 184 00:10:18,730 --> 00:10:20,690 entre 1 y 100, los susceptibles de ser 185 00:10:20,690 --> 00:10:22,549 contados, de eso solo contaré 186 00:10:22,549 --> 00:10:24,389 algunos, habrá que ver qué condición, claro 187 00:10:24,389 --> 00:10:26,669 pero todos los susceptibles, todos los que 188 00:10:26,669 --> 00:10:27,370 entran a jugar 189 00:10:27,370 --> 00:10:30,889 son todos los comprendidos entre 1 y 100 190 00:10:30,889 --> 00:10:32,750 igual que en el caso anterior, los que entran 191 00:10:32,750 --> 00:10:34,710 a jugar son todos los alumnos 192 00:10:34,710 --> 00:10:36,710 aunque yo solo cuente los de gafas 193 00:10:36,710 --> 00:10:38,590 o los que entran a jugar son todas 194 00:10:38,590 --> 00:10:40,590 las mesas, aunque yo solo cuente las rotas 195 00:10:40,590 --> 00:10:42,629 pues aquí todos los que entran a jugar son 196 00:10:42,629 --> 00:10:44,809 entre 1 y 100, pues tendremos 197 00:10:44,809 --> 00:10:47,110 que ver cómo los generamos 198 00:10:47,110 --> 00:10:48,809 para que entren en el juego, para que 199 00:10:48,809 --> 00:10:50,929 entren a jugar. Pues ya lo sabemos 200 00:10:50,929 --> 00:10:52,710 porque en los 201 00:10:52,710 --> 00:10:54,669 servicios anteriores ya 202 00:10:54,669 --> 00:10:55,909 hemos hecho un bucle 203 00:10:55,909 --> 00:10:58,730 en el que yo iba haciendo aparecer 204 00:10:58,730 --> 00:11:00,509 los números, ¿vale? 205 00:11:00,529 --> 00:11:01,809 En el que yo los iba haciendo aparecer. 206 00:11:03,070 --> 00:11:04,809 ¿Cómo? Bueno, 207 00:11:04,990 --> 00:11:06,009 pues lo podemos hacer así. 208 00:11:08,899 --> 00:11:10,419 Mi primer numerito es el n 209 00:11:10,419 --> 00:11:12,159 igual a 1, ¿vale? 210 00:11:12,700 --> 00:11:14,919 Aquí ya tendrá... 211 00:11:14,919 --> 00:11:15,600 Dime. 212 00:11:16,700 --> 00:11:27,409 A ver, pero aquí no metemos números 213 00:11:27,409 --> 00:11:28,809 No 214 00:11:28,809 --> 00:11:31,870 ¿Desde el teclado dices? 215 00:11:34,549 --> 00:11:35,570 Estoy haciendo el 4 216 00:11:35,570 --> 00:11:36,889 Todos los múltiplos de 7 217 00:11:36,889 --> 00:11:38,750 No, no, estoy haciendo el 4 218 00:11:38,750 --> 00:11:41,610 No, estoy haciendo el 4 219 00:11:41,610 --> 00:11:42,009 ¿Vale? 220 00:11:43,509 --> 00:11:43,950 Entonces 221 00:11:43,950 --> 00:11:47,590 Los elementos susceptibles de ser contados 222 00:11:47,590 --> 00:11:49,909 Van a ser números entre 1 y 100 223 00:11:50,649 --> 00:11:53,710 Pues esos necesitaré un espacio para que vivan ellos. 224 00:11:54,490 --> 00:11:56,870 El espacio de contador ya tiene un uso. 225 00:11:57,250 --> 00:11:59,230 Ese espacio es para que viva mi cuenta, 226 00:11:59,950 --> 00:12:02,230 la que empieza siendo cero y se irá incrementando. 227 00:12:02,769 --> 00:12:04,190 Esa variable ya tiene un uso. 228 00:12:04,990 --> 00:12:07,409 Vale, pero los elementos que entran a jugar, que son los números, 229 00:12:08,090 --> 00:12:09,450 tienen que vivir en otro sitio. 230 00:12:09,950 --> 00:12:10,850 ¿Dónde van a vivir? 231 00:12:10,850 --> 00:12:14,649 En mi variable n, otra que necesito, mi variable n, por ejemplo. 232 00:12:15,470 --> 00:12:18,610 Vale, pues esos números tienen que ir llegando a lo largo del bucle. 233 00:12:18,610 --> 00:12:20,450 el primero va a ser el 1 234 00:12:20,450 --> 00:12:22,370 porque me han dicho entre 1 y 100 235 00:12:22,370 --> 00:12:24,149 pues lo puedo inicializar a 1 de partida 236 00:12:24,149 --> 00:12:26,129 y ahora 237 00:12:26,129 --> 00:12:28,350 me irán llegando 238 00:12:28,350 --> 00:12:30,769 en el resto del bucle, lo único que tengo que hacer yo es 239 00:12:30,769 --> 00:12:32,429 si yo voy 240 00:12:32,429 --> 00:12:33,750 haciendo aquí un n++ 241 00:12:33,750 --> 00:12:35,169 ¿vale? 242 00:12:36,730 --> 00:12:38,149 pues estos numeritos 243 00:12:38,149 --> 00:12:39,809 en cada iteración del bucle 244 00:12:39,809 --> 00:12:42,450 van apareciendo 245 00:12:42,450 --> 00:12:44,570 la primera vez que entre en el bucle 246 00:12:44,570 --> 00:12:46,090 n es 1, ya está ahí 247 00:12:46,090 --> 00:12:48,549 pero antes de salir 248 00:12:48,549 --> 00:12:50,429 lo dejo incrementado, luego 249 00:12:50,429 --> 00:12:52,409 la siguiente vez que entre en el bucle, ahora 250 00:12:52,409 --> 00:12:53,029 n es 2 251 00:12:53,029 --> 00:12:56,610 haré con él lo que sea y se vuelve 252 00:12:56,610 --> 00:12:58,389 a quedar incrementado, la tercera vez 253 00:12:58,389 --> 00:13:00,129 que entre en el bucle, n es 3 254 00:13:00,129 --> 00:13:02,429 vale, pues ya he conseguido 255 00:13:02,429 --> 00:13:04,830 que en mi bucle, en cada iteración 256 00:13:04,830 --> 00:13:06,210 vayan apareciendo 257 00:13:06,210 --> 00:13:08,429 cada uno de los elementos 258 00:13:08,429 --> 00:13:09,509 que 259 00:13:09,509 --> 00:13:12,049 entran a jugar, vale 260 00:13:12,049 --> 00:13:14,429 en la primera iteración entra el 1, venga 261 00:13:14,429 --> 00:13:16,549 haz conmigo, que toca hacer, lo que sea 262 00:13:16,549 --> 00:13:22,490 En la siguiente iteración entra el 2, en la siguiente iteración entra el 3, ¿vale? 263 00:13:22,549 --> 00:13:26,970 Gracias simplemente a esto, a una variable n igual a 1 que se va incrementando. 264 00:13:28,169 --> 00:13:32,049 Bueno, pues ya tenemos la primera parte, que es conseguir que dentro del bucle, 265 00:13:32,789 --> 00:13:39,289 en cada iteración vaya apareciendo cada uno de los elementos susceptibles de ser contados 266 00:13:39,289 --> 00:13:42,269 y que entran a jugar en cada iteración cada uno de ellos. 267 00:13:42,269 --> 00:13:44,389 pues en este caso, repito 268 00:13:44,389 --> 00:13:45,690 como mis elementos 269 00:13:45,690 --> 00:13:48,370 que entran a jugar son desde el 1 270 00:13:48,370 --> 00:13:50,389 hasta el 100, pues la forma 271 00:13:50,389 --> 00:13:52,110 más fácil de irlos generando 272 00:13:52,110 --> 00:13:54,450 para que me vayan apareciendo en cada iteración del bucle 273 00:13:54,450 --> 00:13:56,549 un n que empieza siendo 1 274 00:13:56,549 --> 00:13:58,450 en la primera iteración 275 00:13:58,450 --> 00:14:00,269 ya es 1, pero en la siguiente 276 00:14:00,269 --> 00:14:02,190 ahora se convierte en 2, y en la siguiente 277 00:14:02,190 --> 00:14:04,309 se convierte en 3, y en la siguiente se convierte en 4 278 00:14:04,309 --> 00:14:06,370 luego en este caso esta es la 279 00:14:06,370 --> 00:14:08,009 forma más sencilla de irlos generando 280 00:14:08,009 --> 00:14:10,009 en otras cuentas 281 00:14:10,009 --> 00:14:13,850 por ejemplo, facturas que están pagadas 282 00:14:13,850 --> 00:14:17,850 lo que me tiene que aparecer aquí es todas y cada una de las facturas 283 00:14:17,850 --> 00:14:19,470 pues no será tan sencillo 284 00:14:19,470 --> 00:14:22,470 tendré yo que tener todas mis facturas en una caja 285 00:14:22,470 --> 00:14:25,009 llamémosla array, como veremos más adelante 286 00:14:25,009 --> 00:14:30,389 y de esa cajita tendré que ver cómo hago para sacar una de cada vez 287 00:14:30,389 --> 00:14:31,889 en cada iteración 288 00:14:31,889 --> 00:14:35,190 en la primera iteración saco la primera factura de la caja 289 00:14:35,190 --> 00:14:38,970 en la segunda iteración saco la segunda factura de la caja 290 00:14:38,970 --> 00:14:41,330 en la tercera saco la tercera factura 291 00:14:41,330 --> 00:14:43,250 de la caja, vale, en ese caso será 292 00:14:43,250 --> 00:14:45,250 más complejo, pero en este caso 293 00:14:45,250 --> 00:14:47,070 como son números enteros sin más 294 00:14:47,070 --> 00:14:49,350 pues hombre, una única variable 295 00:14:49,350 --> 00:14:51,250 n que inicialmente vale 1 y en 296 00:14:51,250 --> 00:14:52,850 cada vuelta de tuerca 297 00:14:52,850 --> 00:14:54,990 se va incrementando 298 00:14:54,990 --> 00:14:56,309 ¿vale? 299 00:14:56,889 --> 00:14:59,429 esta situación es sencilla 300 00:14:59,429 --> 00:15:01,210 otras pues no lo serán, repito 301 00:15:01,210 --> 00:15:03,169 otras tendremos que ver cómo hacemos para que 302 00:15:03,169 --> 00:15:05,169 en este while vaya apareciendo 303 00:15:05,169 --> 00:15:06,529 cada vez uno de los elementos 304 00:15:06,529 --> 00:15:08,330 en otra situación no será tan fácil 305 00:15:08,330 --> 00:15:10,570 pero lo que hay de fondo siempre es lo mismo 306 00:15:10,570 --> 00:15:11,809 cuando contamos algo 307 00:15:11,809 --> 00:15:13,789 siempre tenemos que tener claro 308 00:15:13,789 --> 00:15:16,929 muestra de elementos a contar 309 00:15:16,929 --> 00:15:18,470 todos los números 310 00:15:18,470 --> 00:15:20,529 todas las mesas, todas las facturas 311 00:15:20,529 --> 00:15:22,590 muestra, esa muestra donde va 312 00:15:22,590 --> 00:15:24,370 veremos a ver donde va 313 00:15:24,370 --> 00:15:26,029 en este caso una variable n ha ido 314 00:15:26,029 --> 00:15:27,889 porque eran números, hay una variable n 315 00:15:27,889 --> 00:15:29,049 en otro caso era otro sitio 316 00:15:29,049 --> 00:15:32,169 y ahora, ¿cómo hago para que me aparezca 317 00:15:32,169 --> 00:15:33,389 uno de cada vez? 318 00:15:34,330 --> 00:15:35,769 ¿cómo hago para que en cahidración 319 00:15:35,769 --> 00:15:37,789 aparezca uno? en este caso así 320 00:15:37,789 --> 00:15:39,870 se ha quedado. Empezándolo en uno y luego 321 00:15:39,870 --> 00:15:41,870 incrementando. En otro caso 322 00:15:41,870 --> 00:15:43,950 no será tan fácil. Tendré que ver cómo hago 323 00:15:43,950 --> 00:15:46,029 para ir sacando uno de cada vez 324 00:15:46,029 --> 00:15:47,649 de esa caja que tiene facturas, 325 00:15:47,830 --> 00:15:49,070 mesas, pero eso ya es otro problema. 326 00:15:50,090 --> 00:15:51,889 ¿Vale? Bueno, pues ahora ya. 327 00:15:52,230 --> 00:15:53,809 Ahora ya lo único que nos falta es 328 00:15:53,809 --> 00:15:54,809 ver 329 00:15:54,809 --> 00:15:57,190 qué hacemos, ver 330 00:15:57,190 --> 00:16:00,090 bajo qué condiciones este numerito 331 00:16:00,090 --> 00:16:01,870 se cuenta o no se cuenta 332 00:16:01,870 --> 00:16:03,870 y cuándo dejamos 333 00:16:03,870 --> 00:16:05,570 de contar. Es lo único que nos falta. 334 00:16:05,570 --> 00:16:07,710 Bueno, ¿cuándo dejamos de contar? 335 00:16:07,909 --> 00:16:09,129 Nos han dicho que contemos 336 00:16:09,129 --> 00:16:11,309 Nuestro espacio muestral 337 00:16:11,309 --> 00:16:14,190 De elementos susceptibles de ser contados 338 00:16:14,190 --> 00:16:16,370 Eran entre 1 y 100 339 00:16:16,370 --> 00:16:18,090 Luego 340 00:16:18,090 --> 00:16:20,149 ¿Cuándo dejo de contar? 341 00:16:21,509 --> 00:16:22,210 Pues cuando 342 00:16:22,210 --> 00:16:23,629 N sea mayor que 100 343 00:16:23,629 --> 00:16:24,529 O lo que es lo mismo 344 00:16:24,529 --> 00:16:28,009 Voy a contar mientras el numerito 345 00:16:28,009 --> 00:16:29,169 No haya llegado a ser 100 346 00:16:29,169 --> 00:16:30,309 ¿Vale? 347 00:16:30,309 --> 00:16:32,289 ¿Y para qué quería? 348 00:16:33,009 --> 00:16:33,970 ¿Por qué no contaba? 349 00:16:33,970 --> 00:16:38,580 porque tienen información distinta. 350 00:16:38,740 --> 00:16:40,600 Esta incorpora la cuenta y esta el número. 351 00:16:41,500 --> 00:16:42,820 Si solo usas una variable, 352 00:16:42,980 --> 00:16:43,919 una te pisa la otra. 353 00:16:47,279 --> 00:16:48,899 Cada una, n es 354 00:16:48,899 --> 00:16:51,220 1, 2, 3, 4, 5. 355 00:16:52,120 --> 00:16:53,159 Y contador, 356 00:16:53,899 --> 00:16:55,460 es 1 una temporada larga, 357 00:16:55,559 --> 00:16:57,100 luego puede ser 3, luego puede ser 7. 358 00:16:57,220 --> 00:16:58,379 O sea, tienen información distinta. 359 00:16:58,379 --> 00:17:19,500 vamos a completarlo, ¿vale? 360 00:17:20,279 --> 00:17:21,980 vale, entonces 361 00:17:21,980 --> 00:17:23,839 pero si es importante 362 00:17:23,839 --> 00:17:26,279 otra cosa es que un programa en concreto 363 00:17:26,279 --> 00:17:27,960 un programa en concreto 364 00:17:27,960 --> 00:17:29,380 uno pueda 365 00:17:29,380 --> 00:17:32,180 luego plantearlo haciendo ciertas simplificaciones 366 00:17:32,180 --> 00:17:34,319 pero tenéis que entender 367 00:17:34,319 --> 00:17:37,700 que la cuenta 368 00:17:37,700 --> 00:17:39,799 Imagínate que esto fueran facturas 369 00:17:39,799 --> 00:17:41,140 Bueno, da igual, es que aunque fuera un número 370 00:17:41,140 --> 00:17:43,460 O sea, la cuenta es una variable que tiene una función 371 00:17:43,460 --> 00:17:45,259 ¿Qué es contar? 372 00:17:46,140 --> 00:17:47,460 ¿Vale? ¿Qué es contar? 373 00:17:48,119 --> 00:17:49,839 Entonces, este bucle de aquí 374 00:17:49,839 --> 00:17:51,799 Puede terminar con cuenta valiendo 7 375 00:17:51,799 --> 00:17:53,480 Con cuenta valiendo 12 376 00:17:53,480 --> 00:17:54,759 Con cuenta valiendo, ¿vale? 377 00:17:54,819 --> 00:17:56,680 Depende de los números que yo te voy a contar 378 00:17:56,680 --> 00:17:59,660 Sin embargo, este siempre va a terminar valiendo 100 379 00:17:59,660 --> 00:18:00,640 Porque este tiene un uso 380 00:18:00,640 --> 00:18:02,319 Que es todos los números entre 1 y 100 381 00:18:02,319 --> 00:18:04,319 O sea, son variables con usos distintos 382 00:18:04,319 --> 00:18:06,740 ¿Vale? Son varios usos distintos 383 00:18:06,740 --> 00:18:08,859 ahora vamos a ver qué es lo que contamos 384 00:18:08,859 --> 00:18:10,920 otra cosa es que si estamos contando una cosa 385 00:18:10,920 --> 00:18:12,799 en concreto, en un caso 386 00:18:12,799 --> 00:18:14,819 particular, porque yo estoy contando 387 00:18:14,819 --> 00:18:16,700 una característica 388 00:18:16,700 --> 00:18:18,079 concreta de N 389 00:18:18,079 --> 00:18:20,720 pues a lo mejor me pueda coincidir 390 00:18:20,720 --> 00:18:22,779 y puede hacer extrapolar una cosa a la otra 391 00:18:22,779 --> 00:18:25,019 pero no es la idea general 392 00:18:25,019 --> 00:18:26,740 ¿vale? 393 00:18:27,460 --> 00:18:27,940 entonces 394 00:18:27,940 --> 00:18:31,019 contador me lleva la cuenta 395 00:18:31,019 --> 00:18:32,980 y tiene su uso 396 00:18:32,980 --> 00:18:35,099 y no la puedo pisar con ninguna otra información 397 00:18:35,099 --> 00:18:37,259 y este tiene los datos 398 00:18:37,259 --> 00:18:38,839 y son dos cosas muy distintas 399 00:18:38,839 --> 00:18:40,640 una cosa es la cuenta 400 00:18:40,640 --> 00:18:42,819 y otra cosa son los datos 401 00:18:42,819 --> 00:18:43,619 ¿vale? 402 00:18:45,160 --> 00:18:46,660 si esto fueran alumnos 403 00:18:46,660 --> 00:18:49,940 contador podría ser alumnos 404 00:18:49,940 --> 00:18:51,000 no podría serlo, ¿a que no? 405 00:18:51,759 --> 00:18:53,619 esto serían mis alumnos y sería el contador 406 00:18:53,619 --> 00:18:54,799 no es lo mismo 407 00:18:54,799 --> 00:18:59,339 bueno, pues entonces, vamos a contar 408 00:18:59,339 --> 00:19:00,920 mientras n sea menor o igual que 100 409 00:19:00,920 --> 00:19:01,960 y ahora 410 00:19:01,960 --> 00:19:04,480 esto no me hace falta 411 00:19:04,480 --> 00:19:06,460 porque esto era para irlos generando 412 00:19:06,460 --> 00:19:08,940 Ya lo estoy generando aquí, esto fuera. 413 00:19:10,019 --> 00:19:14,440 Y ahora, ¿qué va a hacer que ese número sea contado o no sea contado? 414 00:19:14,940 --> 00:19:15,859 Vamos a mirar. 415 00:19:18,400 --> 00:19:22,220 Ese número va a ser contado si es múltiplo de 7. 416 00:19:22,799 --> 00:19:23,420 Ah, pues ya está. 417 00:19:23,960 --> 00:19:27,259 Ya tengo la condición que me hace que ese múltiplo sea contado. 418 00:19:34,190 --> 00:19:34,509 ¿Vale? 419 00:19:35,750 --> 00:19:36,529 Pues ya está. 420 00:19:36,650 --> 00:19:37,470 Y este es mi programa. 421 00:19:38,470 --> 00:19:42,569 Que lo que yo quiero contar ahora es que el número sea patatín. 422 00:19:42,569 --> 00:19:44,690 Pues cambio aquí la condición por patatín. 423 00:19:46,009 --> 00:19:46,130 ¿Vale? 424 00:19:46,190 --> 00:19:48,970 Que quiero contar, pues, ¿vale? 425 00:19:54,470 --> 00:19:56,349 Entonces, esta es la estructura de mi programa. 426 00:19:56,490 --> 00:19:56,650 Dime. 427 00:20:02,849 --> 00:20:04,250 No, no, no, porque aquí no hay llaves. 428 00:20:05,950 --> 00:20:07,470 No, no, no, claro, aquí no hay llaves. 429 00:20:08,190 --> 00:20:08,549 ¿Vale? 430 00:20:09,789 --> 00:20:13,470 Como no hay llaves, lo único que está dentro del if es contador. 431 00:20:14,589 --> 00:20:14,950 ¿Vale? 432 00:20:16,049 --> 00:20:17,910 ¿Cómo que es todo lo que está dentro del if? 433 00:20:18,289 --> 00:20:18,769 ¿Está ahí? 434 00:20:18,769 --> 00:20:21,430 no, esto, esta sentencia 435 00:20:21,430 --> 00:20:23,650 es lo único 436 00:20:23,650 --> 00:20:25,009 que se hace dentro del IF 437 00:20:25,009 --> 00:20:26,930 si la condición es cierta es la de incrementar 438 00:20:26,930 --> 00:20:27,950 esta se hace siempre 439 00:20:27,950 --> 00:20:31,150 ¿vale? entonces familiarizaros ya 440 00:20:31,150 --> 00:20:32,450 con el hecho de 441 00:20:32,450 --> 00:20:35,470 que las llaves pueden no estar si es solo una sentencia 442 00:20:35,470 --> 00:20:36,930 nos lo deja más claro 443 00:20:36,930 --> 00:20:38,410 si hemos tabulado bien 444 00:20:38,410 --> 00:20:40,589 ¿vale? nos lo deja más claro 445 00:20:40,589 --> 00:20:44,589 pero aún así pues 446 00:20:44,589 --> 00:20:47,289 iros familiarizando con que si solamente tengo una sentencia 447 00:20:47,289 --> 00:20:50,109 pues no hace falta que ponga llaves, entonces aquí este programa 448 00:20:50,109 --> 00:20:51,630 me va generando 449 00:20:51,630 --> 00:20:54,009 un segundito, vamos a volver a repetir 450 00:20:54,009 --> 00:20:56,170 me va generando mis datos 451 00:20:56,170 --> 00:20:57,809 mis datos vienen 452 00:20:57,809 --> 00:20:59,069 de una fuente de datos 453 00:20:59,069 --> 00:21:01,750 en este caso mi fuente de los datos 454 00:21:01,750 --> 00:21:03,750 es la variable n, que son mis datos 455 00:21:03,750 --> 00:21:05,769 empiezan valiendo 1 456 00:21:05,769 --> 00:21:07,410 y se van incrementando 457 00:21:07,410 --> 00:21:09,910 luego mis datos son 1, 2, 3, todos desde 1 458 00:21:09,910 --> 00:21:11,529 hasta 100 y están aquí en n 459 00:21:11,529 --> 00:21:13,910 y ahora otra cosa completamente distinta 460 00:21:13,910 --> 00:21:15,849 a mis datos es la cuenta 461 00:21:15,849 --> 00:21:18,210 que es cuántos de esos datos 462 00:21:18,210 --> 00:21:19,809 cumbre no sé qué, es otra cosa bastante distinta 463 00:21:19,809 --> 00:21:21,390 en este caso son números enteros 464 00:21:21,390 --> 00:21:23,630 pero es casualidad, mis datos podrían ser 465 00:21:23,630 --> 00:21:25,890 alumnos, mesas, números de Abel 466 00:21:25,890 --> 00:21:26,769 cualquier cosa 467 00:21:26,769 --> 00:21:30,289 estos son mis datos, que empiezan en 1 468 00:21:30,289 --> 00:21:32,329 se van incrementando 469 00:21:32,329 --> 00:21:33,970 2, 3, 4 y acaban en 100 470 00:21:33,970 --> 00:21:36,190 mis datos, y ahora otra cosa es 471 00:21:36,190 --> 00:21:37,869 la variable que lleva la cuenta 472 00:21:37,869 --> 00:21:39,430 que es así, que siempre es un número entero 473 00:21:39,430 --> 00:21:41,529 porque las cuentas son 1, 2, 3, entero 474 00:21:41,529 --> 00:21:43,730 y ahora la que lleva la cuenta 475 00:21:43,730 --> 00:21:44,730 empieza valiendo 0 476 00:21:44,730 --> 00:21:46,509 Y la que lleva la cuenta 477 00:21:46,509 --> 00:21:49,910 Se incrementa solo si se cumple la condición 478 00:21:49,910 --> 00:21:52,029 Solo si se cumple la condición 479 00:21:52,029 --> 00:21:55,309 Que yo quiero contar ahora 480 00:21:55,309 --> 00:21:57,269 Otras cosas, no los múltiplos de 7 481 00:21:57,269 --> 00:21:58,230 Cambio la condición 482 00:21:58,230 --> 00:21:59,250 Y ya está 483 00:21:59,250 --> 00:22:03,400 ¿Vale? 484 00:22:09,650 --> 00:22:10,829 Lenin, ¿qué ibas a decir? 485 00:22:13,549 --> 00:22:14,329 Sí, claro 486 00:22:14,329 --> 00:22:20,289 ¿Cómo si los cerramos? 487 00:22:20,470 --> 00:22:20,670 ¿Dónde? 488 00:22:22,150 --> 00:22:26,819 si ponemos la llave 489 00:22:26,819 --> 00:22:29,259 ¿y la llave dónde? 490 00:22:29,640 --> 00:22:31,660 si ponemos la llave al final ahí 491 00:22:31,660 --> 00:22:34,640 hombre, si la pones aquí y aquí, claro 492 00:22:34,640 --> 00:22:36,619 o sea, me refiero que 493 00:22:36,619 --> 00:22:38,559 yo, omitirla 494 00:22:38,559 --> 00:22:39,819 es lo mismo 495 00:22:39,819 --> 00:22:41,559 que hacer esto 496 00:22:41,559 --> 00:22:44,380 claro 497 00:22:44,380 --> 00:22:46,500 hombre, es por no poner aquí una línea 498 00:22:46,500 --> 00:22:48,019 adicional, porque 499 00:22:48,019 --> 00:22:50,319 si dentro del if solo hay una 500 00:22:50,319 --> 00:22:52,359 pues podemos omitir las llaves 501 00:22:52,359 --> 00:22:53,880 ¿vale? pero que quede muy claro 502 00:22:53,880 --> 00:22:55,299 para que no os confundáis 503 00:22:55,299 --> 00:22:56,900 ¿vale? lo que 504 00:22:56,900 --> 00:22:59,019 quitar estas llaves 505 00:22:59,019 --> 00:23:01,279 y ponerlas 506 00:23:01,279 --> 00:23:02,279 es lo mismo 507 00:23:02,279 --> 00:23:05,329 ¿vale? 508 00:23:07,009 --> 00:23:07,490 vale 509 00:23:07,490 --> 00:23:11,190 a ver, Yasmín, ¿qué me querías decir tú? 510 00:23:12,650 --> 00:23:13,470 no, antes 511 00:23:13,470 --> 00:23:15,289 cuando me decías que por qué en el contador 512 00:23:15,289 --> 00:23:17,650 no podemos utilizar la misma variable 513 00:23:17,650 --> 00:23:19,089 es que no te he llegado a entender 514 00:23:19,089 --> 00:23:21,029 ah, no, no, porque yo pensé que estabas diciendo 515 00:23:21,029 --> 00:23:27,210 vale, bueno, da igual 516 00:23:27,210 --> 00:23:29,410 vale, no 517 00:23:29,410 --> 00:23:30,950 Pues a nada 518 00:23:30,950 --> 00:23:33,470 Bueno, esto está claro, ¿no? 519 00:23:36,980 --> 00:23:37,500 Dime 520 00:23:37,500 --> 00:23:42,900 Bueno, porque 521 00:23:42,900 --> 00:23:48,259 Hay 14 múltiplos de 7 522 00:23:48,259 --> 00:23:50,339 ¿Tantos múltiplos de 7 hay? 523 00:23:53,160 --> 00:23:55,000 Creía yo que había menos múltiplos de 7 524 00:23:55,000 --> 00:24:00,559 Sí, o sea que hay 14 múltiplos de 7 525 00:24:00,559 --> 00:24:02,359 Pues entonces da los múltiplos de 7 526 00:24:02,359 --> 00:24:07,400 No, no, no 527 00:24:07,400 --> 00:24:09,799 Que cuenta los múltiplos 528 00:24:09,799 --> 00:24:10,720 Pues hay 14 529 00:24:10,720 --> 00:24:12,019 Porque es contar, pues contar 530 00:24:12,019 --> 00:24:12,559 Hay 14 531 00:24:12,559 --> 00:24:16,039 Bueno, pues si tuviera que mostrarlos 532 00:24:16,039 --> 00:24:17,259 Podríamos aprovechar 533 00:24:17,259 --> 00:24:20,839 Y a la vez que le contamos 534 00:24:20,839 --> 00:24:22,220 Le mostramos, por ejemplo 535 00:24:22,220 --> 00:24:25,579 Entonces este mostraría 536 00:24:25,579 --> 00:24:27,720 Además de contarle 537 00:24:27,720 --> 00:24:28,900 Para incrementar la cuenta 538 00:24:28,900 --> 00:24:30,259 Además lo mostraría 539 00:24:30,259 --> 00:24:39,400 Claro. Entonces, aquí sí que serían imprescindibles las llaves, porque aquí ya sí que tendría dos sentencias dentro de ley. 540 00:24:43,920 --> 00:24:49,200 Pues cuando Lenin me ha dicho, y si ponen las llaves es igual, en ese momento lo he puesto. 541 00:24:49,200 --> 00:24:55,289 Sí, es lo que acabo de decir 542 00:24:55,289 --> 00:24:56,970 Que aquí ya sí que tendría que ponerlas 543 00:24:56,970 --> 00:24:59,369 Porque aquí ya habrían aparecido 544 00:24:59,369 --> 00:25:01,670 Dos sentencias, aquí tendría que ponerlas 545 00:25:01,670 --> 00:25:02,329 Sí o sí, ¿vale? 546 00:25:02,750 --> 00:25:04,910 Entonces aquí, aparte de mostrarte 547 00:25:04,910 --> 00:25:06,890 Uy 548 00:25:06,890 --> 00:25:14,849 Vale, pues son todos estos 549 00:25:14,849 --> 00:25:16,009 Los múltiplos de 7 550 00:25:16,009 --> 00:25:18,390 ¿Cuántos hay? 14 551 00:25:18,390 --> 00:25:21,069 Si contamos todos estos, nos saldrá 14, efectivamente 552 00:25:21,069 --> 00:25:23,369 98 es múltiplo de 7 553 00:25:23,369 --> 00:25:24,910 y 91. ¿Quién lo diría? 554 00:25:26,089 --> 00:25:26,369 Vale. 555 00:25:27,349 --> 00:25:29,269 Vale. A ver, 556 00:25:29,369 --> 00:25:30,430 saltamos denunciado. 557 00:25:33,750 --> 00:25:35,809 Venga, pues el 5. Vamos a modificar 558 00:25:35,809 --> 00:25:37,809 lo anterior de forma que cuente 559 00:25:37,809 --> 00:25:39,750 todos los números múltiplos 560 00:25:39,750 --> 00:25:41,009 de uno que hemos solicitado. 561 00:25:44,329 --> 00:25:46,150 Entonces, aquí el programa va a tener 3 datos 562 00:25:46,150 --> 00:25:47,769 de entrada. Va a tener 563 00:25:47,769 --> 00:25:52,069 un número inicial 564 00:25:52,069 --> 00:25:53,509 y otro número final 565 00:25:53,509 --> 00:25:56,170 y un tercero. Entonces, tiene que 566 00:25:56,170 --> 00:25:58,309 contar cuántos múltiplos 567 00:25:58,309 --> 00:26:00,029 de este tercer número hay entre 568 00:26:00,029 --> 00:26:01,089 inicial y el final. 569 00:26:02,230 --> 00:26:03,269 ¿Vale? Pues venga, 5. 570 00:26:04,049 --> 00:26:05,670 Lo hacéis ahora, en 5 571 00:26:05,670 --> 00:26:06,710 minutillos.