1 00:00:00,000 --> 00:00:05,000 A ver, venga, dejad lo que estáis haciendo y escuchadme, ¿vale? 2 00:00:05,000 --> 00:00:09,000 Bueno, pues entonces, en relación con el bucle, 3 00:00:09,000 --> 00:00:12,000 con la necesidad de repetir algo varias veces, 4 00:00:12,000 --> 00:00:16,000 pues ya hemos visto, Alejandro, por favor, 5 00:00:16,000 --> 00:00:21,000 ya hemos visto una situación en la cual siempre es imprescindible un bucle, ¿verdad? 6 00:00:21,000 --> 00:00:22,000 Ya lo hemos visto. 7 00:00:22,000 --> 00:00:27,000 Cuando yo quiero sumar sobre una variable un montón de sumandos. 8 00:00:28,000 --> 00:00:31,000 Ya hemos identificado esa situación, ¿vale? 9 00:00:31,000 --> 00:00:35,000 Entonces habrá enunciados en los cuales veamos que eso es lo que tengo que hacer, 10 00:00:35,000 --> 00:00:38,000 sobre una variable sumar muchos números 11 00:00:38,000 --> 00:00:42,000 y a partir de ahí ya sabemos que esta expresión, 12 00:00:45,000 --> 00:00:50,000 ya sabemos que esta expresión va a estar 13 00:00:53,000 --> 00:00:56,000 o su versión reducida, claro, más bonita, 14 00:00:57,000 --> 00:01:00,000 va a estar dentro del bucle, va a estar dentro del bucle, 15 00:01:02,000 --> 00:01:04,000 va a estar dentro del bucle y ya está. 16 00:01:04,000 --> 00:01:07,000 Y ya esto ya lo hemos trabajado con varios ejercicios 17 00:01:07,000 --> 00:01:11,000 y ya lo importante es que entendamos esta expresión, ¿verdad? 18 00:01:11,000 --> 00:01:12,000 Que la tengamos clarísima. 19 00:01:12,000 --> 00:01:15,000 Esta expresión es, yo tengo mi variable suma, 20 00:01:15,000 --> 00:01:17,000 que inicialmente es cero, 21 00:01:17,000 --> 00:01:20,000 fundamental inicializarlo, inicialmente es cero, 22 00:01:20,000 --> 00:01:25,000 entonces en la primera iteración a cero se le suma n 23 00:01:25,000 --> 00:01:28,000 y esto pisa lo que tuviera de antes, ya está. 24 00:01:28,000 --> 00:01:31,000 En la siguiente iteración a lo que tuviera de antes, 25 00:01:31,000 --> 00:01:34,000 que era cero más n, se le suma otra vez n, 26 00:01:34,000 --> 00:01:36,000 como ya llevamos dos operandos, 27 00:01:36,000 --> 00:01:39,000 y lo que tuviera pisa lo anterior. 28 00:01:39,000 --> 00:01:43,000 En la siguiente iteración a lo que tuviera de antes, 29 00:01:43,000 --> 00:01:46,000 que era cero más n más n, se le suma el nuevo 30 00:01:46,000 --> 00:01:50,000 y pisa lo anterior, con lo cual suma ya tiene esto 31 00:01:50,000 --> 00:01:53,000 y así, ¿vale? Esto es lo importante, 32 00:01:53,000 --> 00:01:56,000 entender cómo funciona esta expresión 33 00:01:56,000 --> 00:01:59,000 y que efectivamente va acumulando sumas 34 00:01:59,000 --> 00:02:02,000 sobre una variable que inicialmente era cero, ¿vale? 35 00:02:02,000 --> 00:02:04,000 Y recordad que aquí entonces el problema ya es 36 00:02:04,000 --> 00:02:07,000 para cada caso, para cada caso, 37 00:02:07,000 --> 00:02:13,000 decidir este valor como se lo voy dando, 38 00:02:13,000 --> 00:02:16,000 como se lo voy dando, este n como lo voy construyendo 39 00:02:16,000 --> 00:02:19,000 y luego ya poner la condición de finalización 40 00:02:19,000 --> 00:02:21,000 y eso ya depende de cada caso, ¿vale? 41 00:02:21,000 --> 00:02:24,000 Bueno, pues esto es la suma acumulativa 42 00:02:24,000 --> 00:02:26,000 que ya todos tenemos que entender 43 00:02:26,000 --> 00:02:29,000 y aplicar en los problemas en los que uno necesite 44 00:02:29,000 --> 00:02:31,000 y en cada uno de ellos pues será 45 00:02:31,000 --> 00:02:34,000 con un operando que se genera de forma distinta 46 00:02:34,000 --> 00:02:36,000 y con condiciones distintas, ¿vale? 47 00:02:36,000 --> 00:02:39,000 Bueno, pues esto en cuanto a sumar, 48 00:02:39,000 --> 00:02:42,000 sumar, operación básica de programación 49 00:02:42,000 --> 00:02:45,000 y de cualquier cosa en la vida, sumar, ¿vale? 50 00:02:45,000 --> 00:02:47,000 Bueno, pues ¿qué otra operación, 51 00:02:47,000 --> 00:02:49,000 qué otra cosa hacemos todo el rato? 52 00:02:49,000 --> 00:02:51,000 Y es básica también en programación 53 00:02:51,000 --> 00:02:53,000 y hacemos todo el rato. 54 00:02:53,000 --> 00:02:56,000 Pues contar, ¿verdad? 55 00:02:56,000 --> 00:03:01,000 Contar, contar lo hacemos todo el rato 56 00:03:01,000 --> 00:03:04,000 y contar es una operación que al igual que sumar 57 00:03:04,000 --> 00:03:07,000 muchos números ha necesitado un bucle, 58 00:03:07,000 --> 00:03:09,000 contar también necesita un bucle, 59 00:03:09,000 --> 00:03:11,000 porque yo cuando cuento lo que estoy haciendo es 60 00:03:11,000 --> 00:03:13,000 esto ha pasado una vez y ha pasado otra, 61 00:03:13,000 --> 00:03:15,000 y ha pasado otra, y ha pasado otra, y ha pasado otra, 62 00:03:15,000 --> 00:03:18,000 luego lo que hago es un montón de veces 63 00:03:18,000 --> 00:03:20,000 incrementar una variable que es la variable 64 00:03:20,000 --> 00:03:22,000 contadora que va contando. 65 00:03:22,000 --> 00:03:25,000 Entonces, el mecanismo de contar, 66 00:03:25,000 --> 00:03:27,000 el mecanismo de contar, 67 00:03:27,000 --> 00:03:30,000 también va asociado a un bucle siempre, 68 00:03:30,000 --> 00:03:32,000 siempre va asociado a un bucle 69 00:03:32,000 --> 00:03:35,000 y es otro mecanismo que necesitamos hacer 70 00:03:35,000 --> 00:03:37,000 muy a menudo en un programa. 71 00:03:37,000 --> 00:03:39,000 Entonces muchas veces uno identifica 72 00:03:39,000 --> 00:03:41,000 después de un enunciado que parte de lo que 73 00:03:41,000 --> 00:03:43,000 tiene que hacer es contar. 74 00:03:43,000 --> 00:03:45,000 Bueno, pues contar, igual que ya hemos 75 00:03:45,000 --> 00:03:47,000 interiorizado cómo se hace sumar, 76 00:03:48,000 --> 00:03:49,000 pues contar también interiorizaremos, 77 00:03:49,000 --> 00:03:52,000 que es más fácil, que es más fácil que sumar, 78 00:03:52,000 --> 00:03:55,000 porque nos es más natural. 79 00:03:55,000 --> 00:03:57,000 Por ejemplo, 80 00:04:00,000 --> 00:04:02,000 por ejemplo, imaginaos que nos piden 81 00:04:02,000 --> 00:04:05,000 el programa anterior de sumar los pares 82 00:04:05,000 --> 00:04:07,000 o los impares, ahora nos lo han cambiado 83 00:04:07,000 --> 00:04:09,000 y nos han dicho, programa que lea números 84 00:04:09,000 --> 00:04:12,000 por teclado hasta que se introduzca un cero 85 00:04:12,000 --> 00:04:14,000 y a continuación tiene que decir 86 00:04:14,000 --> 00:04:16,000 cuántos han sido pares. 87 00:04:16,000 --> 00:04:19,000 Ahora ya no es decirte la suma de los pares, 88 00:04:19,000 --> 00:04:21,000 sino decirte cuántos ha habido 89 00:04:21,000 --> 00:04:23,000 que fueran pares. 90 00:04:23,000 --> 00:04:24,000 Pues ha habido siete números pares, 91 00:04:24,000 --> 00:04:26,000 ha habido once, pero ese problema 92 00:04:26,000 --> 00:04:27,000 es distinto al anterior. 93 00:04:27,000 --> 00:04:29,000 Lo primero que tenemos que entender es, 94 00:04:29,000 --> 00:04:30,000 lo primero que tenemos que hacer es, 95 00:04:30,000 --> 00:04:31,000 por supuesto, entender exactamente 96 00:04:31,000 --> 00:04:32,000 qué es lo que me piden aquí, 97 00:04:32,000 --> 00:04:33,000 qué es lo que me han pedido, 98 00:04:33,000 --> 00:04:35,000 entenderlo exactamente. 99 00:04:35,000 --> 00:04:37,000 Vale, me están diciendo que cuente números, 100 00:04:37,000 --> 00:04:39,000 por ejemplo, si me dan el 2, el 7, 101 00:04:39,000 --> 00:04:41,000 el 5 y el 4, 102 00:04:41,000 --> 00:04:43,000 ahí me han dado dos pares, 103 00:04:43,000 --> 00:04:45,000 luego el resultado del programa tiene que ser, 104 00:04:45,000 --> 00:04:47,000 te han dado dos números pares. 105 00:04:47,000 --> 00:04:48,000 Vale, una vez que ya he entendido 106 00:04:48,000 --> 00:04:49,000 lo que tengo que hacer, 107 00:04:49,000 --> 00:04:52,000 ahora ya empiezo a diseñarlo 108 00:04:52,000 --> 00:04:55,000 con las estructuras de programación que conozco. 109 00:04:55,000 --> 00:04:58,000 Entonces digo, ah, vale, tengo que contar, 110 00:04:58,000 --> 00:05:00,000 tengo que contar. 111 00:05:00,000 --> 00:05:03,000 Bueno, pues esa estructura siempre 112 00:05:03,000 --> 00:05:05,000 la vamos a hacer de la misma manera. 113 00:05:05,000 --> 00:05:07,000 Si yo tengo que contar, 114 00:05:07,000 --> 00:05:09,000 necesito un contador, 115 00:05:09,000 --> 00:05:12,000 una variable que sirva para llevar la cuenta, 116 00:05:12,000 --> 00:05:15,000 una variable que sirva para llevarla. 117 00:05:15,000 --> 00:05:17,000 Vale, bueno, pues nada, 118 00:05:17,000 --> 00:05:20,000 uno utiliza su variable, contador, cuenta, 119 00:05:20,000 --> 00:05:22,000 como la quiera llamar. 120 00:05:22,000 --> 00:05:23,000 Entonces la cuenta, 121 00:05:23,000 --> 00:05:25,000 cuando uno inicia una cuenta, 122 00:05:25,000 --> 00:05:28,000 inicialmente esa cuenta se pone a cero, ¿no? 123 00:05:28,000 --> 00:05:29,000 Se pone a cero. 124 00:05:29,000 --> 00:05:31,000 Y ahora ya habrá un bucle 125 00:05:31,000 --> 00:05:32,000 que es el que haga las cosas, 126 00:05:32,000 --> 00:05:35,000 y dentro del bucle es el que yo voy contando, 127 00:05:35,000 --> 00:05:36,000 el que voy contando. 128 00:05:36,000 --> 00:05:38,000 Bueno, pues este programa que yo he enunciado, 129 00:05:38,000 --> 00:05:39,000 ¿qué hacía? 130 00:05:39,000 --> 00:05:41,000 Lee números por teclado. 131 00:05:41,000 --> 00:05:44,000 Vale, pues dentro del bucle tendría que leer números. 132 00:05:44,000 --> 00:05:46,000 Bueno, pues imaginamos que tenemos el escáner 133 00:05:46,000 --> 00:05:48,000 por ahí o lo que sea. 134 00:05:48,000 --> 00:05:50,000 Lee números por teclado. 135 00:05:50,000 --> 00:05:53,000 Pues venga, lee números por teclado. 136 00:05:53,000 --> 00:05:57,000 Como lee muchos, pues eso irá, 137 00:05:57,000 --> 00:05:59,000 bueno, me olvido de declaraciones, 138 00:05:59,000 --> 00:06:03,000 de lo que sea. 139 00:06:03,000 --> 00:06:05,000 Y ahora, ¿el programa qué hace? 140 00:06:05,000 --> 00:06:09,000 Tiene que contar 141 00:06:09,000 --> 00:06:12,000 de estos números cuáles han sido pares. 142 00:06:12,000 --> 00:06:15,000 Entonces la variable cuenta 143 00:06:15,000 --> 00:06:17,000 se tiene que ir incrementando. 144 00:06:17,000 --> 00:06:18,000 Pero la variable cuenta 145 00:06:18,000 --> 00:06:21,000 se va a ir incrementando siempre dentro de un bucle. 146 00:06:21,000 --> 00:06:23,000 Dentro de un bucle que es en el que van pasando las cosas. 147 00:06:23,000 --> 00:06:24,000 Y ahora llega un número, 148 00:06:24,000 --> 00:06:25,000 y ahora llega otro número, 149 00:06:25,000 --> 00:06:26,000 y ahora llega otro número, 150 00:06:26,000 --> 00:06:27,000 y ahora llega otro número. 151 00:06:27,000 --> 00:06:29,000 Pues cuando hay una cuenta, 152 00:06:29,000 --> 00:06:31,000 la variable que lleva la cuenta, 153 00:06:31,000 --> 00:06:33,000 se va incrementando para hacer la cuenta 154 00:06:33,000 --> 00:06:35,000 siempre dentro de un bucle, siempre. 155 00:06:35,000 --> 00:06:37,000 Es donde pasan las cosas, siempre. 156 00:06:37,000 --> 00:06:39,000 ¿Qué es lo que queremos contar? 157 00:06:39,000 --> 00:06:41,000 ¿Qué hecho queremos contar? 158 00:06:41,000 --> 00:06:43,000 Pues queremos incrementar la cuenta, 159 00:06:43,000 --> 00:06:45,000 queremos contar si este número es par. 160 00:06:45,000 --> 00:06:47,000 Pues bueno, en este caso yo haré 161 00:06:47,000 --> 00:06:50,000 si el resto de dividir entre dos es cero, 162 00:06:50,000 --> 00:06:54,000 entonces en ese caso incremento la cuenta. 163 00:06:54,000 --> 00:06:58,000 Igual a con más uno o con más más. 164 00:06:58,000 --> 00:07:02,000 Entonces esta operación es la que cuenta. 165 00:07:02,000 --> 00:07:04,000 Me va contando. 166 00:07:04,000 --> 00:07:06,000 Y esta operación va a estar siempre dentro de un bucle. 167 00:07:06,000 --> 00:07:09,000 Y me irá contando lo que yo quiera contar. 168 00:07:09,000 --> 00:07:11,000 En este caso quiero contar 169 00:07:11,000 --> 00:07:13,000 de estos números, 170 00:07:13,000 --> 00:07:15,000 solo los que han sido pares. 171 00:07:15,000 --> 00:07:17,000 Que me pidieran cuenta, pide números, 172 00:07:17,000 --> 00:07:20,000 y luego muestra todos los que ha introducido. 173 00:07:20,000 --> 00:07:23,000 O sea, el número que se haya introducido, 174 00:07:23,000 --> 00:07:25,000 la cantidad de números que se haya introducido. 175 00:07:25,000 --> 00:07:27,000 Pues ahí quiero contarlos todos. 176 00:07:27,000 --> 00:07:29,000 Pues entonces ahí quitaría el if, claro. 177 00:07:29,000 --> 00:07:31,000 Pido el número y cuento. 178 00:07:31,000 --> 00:07:32,000 Pido el número y cuento. 179 00:07:32,000 --> 00:07:35,000 Cada programa será completamente distinto. 180 00:07:35,000 --> 00:07:37,000 Pero lo único que yo tengo que interiorizar es 181 00:07:37,000 --> 00:07:40,000 bueno, habrá veces en las cuales yo tenga que contar 182 00:07:40,000 --> 00:07:42,000 cuántas veces ha pasado algo. 183 00:07:42,000 --> 00:07:44,000 Bueno, pues eso es un contador. 184 00:07:44,000 --> 00:07:48,000 Y un contador es una variable que empieza valiendo ceros. 185 00:07:48,000 --> 00:07:51,000 Y ahora ya en el bucle en el que van pasando las cosas, 186 00:07:51,000 --> 00:07:54,000 las que sean cada vez o leer del teclado 187 00:07:54,000 --> 00:07:56,000 o hacer una suma o lo que sea, 188 00:07:56,000 --> 00:07:58,000 en el bucle en el que van pasando cosas 189 00:07:58,000 --> 00:07:59,000 yo ya voy contando. 190 00:07:59,000 --> 00:08:02,000 Con más más, con más más, con más más. 191 00:08:02,000 --> 00:08:03,000 Voy contando. 192 00:08:03,000 --> 00:08:05,000 Y cuando ya he terminado, 193 00:08:05,000 --> 00:08:09,000 pues ya el número de, 194 00:08:09,000 --> 00:08:11,000 la cantidad de pares es patatán. 195 00:08:11,000 --> 00:08:13,000 O lo que sea. 196 00:08:13,000 --> 00:08:15,000 En particular. 197 00:08:15,000 --> 00:08:16,000 ¿Vale? 198 00:08:16,000 --> 00:08:18,000 Bueno, pues este es un contador. 199 00:08:18,000 --> 00:08:20,000 Entonces ya contar, ya sabemos contar. 200 00:08:20,000 --> 00:08:23,000 Igual que ya sabemos sumar un montón de operandos 201 00:08:23,000 --> 00:08:26,000 o una única variable cuando necesitemos. 202 00:08:26,000 --> 00:08:27,000 Pues contar es esto. 203 00:08:27,000 --> 00:08:29,000 Pero claro, esto hará ya 204 00:08:29,000 --> 00:08:32,000 esta estructura de contador que empieza valiendo cero 205 00:08:32,000 --> 00:08:34,000 y se va incrementando dentro del bucle. 206 00:08:34,000 --> 00:08:37,000 Obviamente ahora ya se completará 207 00:08:37,000 --> 00:08:39,000 con el resto que me pide el ejercicio. 208 00:08:39,000 --> 00:08:41,000 En este caso es que lo que se hacía varias veces era 209 00:08:41,000 --> 00:08:44,000 leer si es para incrementar, leer si es para incrementar. 210 00:08:44,000 --> 00:08:46,000 Pero cada problema será distinto. 211 00:08:46,000 --> 00:08:49,000 Y cada problema yo tendré que decidir qué cuento y qué no cuento. 212 00:08:49,000 --> 00:08:51,000 Pero contar siempre va a ser esto. 213 00:08:51,000 --> 00:08:53,000 Y hasta que no haya terminado el bucle, 214 00:08:53,000 --> 00:08:55,000 hasta que no haya terminado el bucle, 215 00:08:55,000 --> 00:08:58,000 el valor del contador no interesa. 216 00:08:58,000 --> 00:09:01,000 El valor del contador es el definitivo, 217 00:09:01,000 --> 00:09:03,000 el interesante cuando el bucle acabó. 218 00:09:03,000 --> 00:09:06,000 Mientras tengo cuentas intermedias, no vale. 219 00:09:06,000 --> 00:09:09,000 Igual que la suma acumulativa, su valor bueno, definitivo, 220 00:09:09,000 --> 00:09:11,000 es cuando el bucle ya terminó. 221 00:09:11,000 --> 00:09:13,000 Cuando el bucle terminó ya tengo la suma final. 222 00:09:13,000 --> 00:09:16,000 Los valores intermedios de la suma no me interesan. 223 00:09:16,000 --> 00:09:18,000 ¿Vale? 224 00:09:18,000 --> 00:09:20,000 Bueno, pues entonces. 225 00:09:20,000 --> 00:09:22,000 Vamos a... 226 00:09:32,000 --> 00:09:36,000 Poner dos cositas. 227 00:09:36,000 --> 00:09:39,000 Una más sencilla para consolidar esto. 228 00:09:39,000 --> 00:09:41,000 Y luego otra que mezcla, 229 00:09:41,000 --> 00:09:44,000 que ya incorpora tanto suma como contador. 230 00:09:44,000 --> 00:09:46,000 Dos tareas separadas. 231 00:09:46,000 --> 00:09:48,000 A ver qué nos sale. 232 00:09:48,000 --> 00:09:50,000 ¿He encendido eso? Sí. 233 00:10:02,000 --> 00:10:04,000 ¿Qué te pasa, María? 234 00:10:15,000 --> 00:10:18,000 Venga, ejemplos contador, por ejemplo. 235 00:10:21,000 --> 00:10:24,000 Venga, pues vamos a hacer primero, por ejemplo. 236 00:10:31,000 --> 00:10:33,000 ¿Qué pasa? 237 00:10:51,000 --> 00:10:53,000 Programa que cuenta. 238 00:10:53,000 --> 00:10:55,000 ¿Cuántos múltiples de 7? 239 00:10:55,000 --> 00:10:57,000 A ver. 240 00:10:58,000 --> 00:11:00,000 Ah, no, no. 241 00:11:00,000 --> 00:11:02,000 Lo vamos a hacer más bonito. 242 00:11:02,000 --> 00:11:03,000 Muy bonito va a ser. 243 00:11:03,000 --> 00:11:05,000 A ver, el programa primero 244 00:11:05,000 --> 00:11:07,000 va a solicitar un número por teclado. 245 00:11:17,000 --> 00:11:19,000 Llamémosle N. 246 00:11:21,000 --> 00:11:23,000 Y a continuación 247 00:11:24,000 --> 00:11:26,000 mostrará 248 00:11:28,000 --> 00:11:30,000 cuántos 249 00:11:32,000 --> 00:11:34,000 múltiples de N 250 00:11:38,000 --> 00:11:40,000 de N mayúsculas 251 00:11:40,000 --> 00:11:42,000 de N 252 00:11:44,000 --> 00:11:46,000 ¿Qué ha pasado? 253 00:11:46,000 --> 00:11:48,000 Sí, sí, sí. 254 00:11:53,000 --> 00:11:55,000 Cuántos múltiples de N 255 00:11:55,000 --> 00:11:57,000 hay comprendidos 256 00:12:01,000 --> 00:12:03,000 entre 257 00:12:03,000 --> 00:12:05,000 1 y 258 00:12:05,000 --> 00:12:07,000 100. 259 00:12:07,000 --> 00:12:09,000 ¿Vale? 260 00:12:09,000 --> 00:12:11,000 Entonces, primero se tendrá denunciado. 261 00:12:11,000 --> 00:12:13,000 Se pide un número por teclado. 262 00:12:13,000 --> 00:12:15,000 Y luego el programa tiene que decirte 263 00:12:15,000 --> 00:12:17,000 los múltiples de N 264 00:12:17,000 --> 00:12:19,000 de ese número 265 00:12:19,000 --> 00:12:21,000 entre 1 y 100 son 3. 266 00:12:21,000 --> 00:12:23,000 Hay 3 múltiples de N 267 00:12:23,000 --> 00:12:25,000 entre 1 y 100, por ejemplo. 268 00:12:25,000 --> 00:12:27,000 Entonces, ahí hay que contar. 269 00:12:27,000 --> 00:12:29,000 Hay que hacer una cuenta. 270 00:12:29,000 --> 00:12:31,000 Entonces, hay que contar. 271 00:12:31,000 --> 00:12:33,000 Entonces, en algún momento 272 00:12:33,000 --> 00:12:35,000 habrá un bucle 273 00:12:35,000 --> 00:12:37,000 que es el dentro del cual 274 00:12:37,000 --> 00:12:39,000 yo voy contando 275 00:12:39,000 --> 00:12:41,000 cuántas veces encuentro 276 00:12:41,000 --> 00:12:43,000 un número múltiplo de N 277 00:12:43,000 --> 00:12:45,000 entre 1 y 100. 278 00:12:45,000 --> 00:12:47,000 Pensadlo. 279 00:12:47,000 --> 00:12:49,000 A ver qué sale.