1 00:00:00,000 --> 00:00:02,759 vale, pues volvemos 2 00:00:02,759 --> 00:00:04,540 ahora 3 00:00:04,540 --> 00:00:06,200 nos encontramos con un ejercicio 4 00:00:06,200 --> 00:00:10,000 como este, ¿vale? 5 00:00:10,859 --> 00:00:12,820 este, primero entendemos lo que hay que hacer 6 00:00:12,820 --> 00:00:14,140 me dan un número cualquiera 7 00:00:14,140 --> 00:00:16,760 y yo tengo que sumar todos los números comprendidos 8 00:00:16,760 --> 00:00:17,739 entre cero y ese 9 00:00:17,739 --> 00:00:20,460 ¿implica contar? 10 00:00:20,660 --> 00:00:22,859 no, aquí no te voy a contar nada, el programa no me dice 11 00:00:22,859 --> 00:00:25,199 que cuenta cuantas veces pasa no sé qué 12 00:00:25,199 --> 00:00:26,760 o dime las veces 13 00:00:26,760 --> 00:00:27,960 que ha ocurrido esto, dime 14 00:00:27,960 --> 00:00:31,019 Joder, se me ha puesto un silencio 15 00:00:31,019 --> 00:00:32,000 Perdón 16 00:00:32,000 --> 00:00:52,929 Sí, sí, soy yo 17 00:00:52,929 --> 00:00:56,549 Vale, a ver 18 00:00:56,549 --> 00:01:00,179 Vale, pues 19 00:01:00,179 --> 00:01:01,899 volvemos a donde estábamos, ¿vale? 20 00:01:05,239 --> 00:01:05,719 Vamos. 21 00:01:06,719 --> 00:01:07,920 Venga, volvemos a donde estábamos. 22 00:01:08,920 --> 00:01:10,140 Entonces, ahora uno 23 00:01:10,140 --> 00:01:11,659 me es denunciado 24 00:01:11,659 --> 00:01:13,920 y esto no es contar, esto no es 25 00:01:13,920 --> 00:01:16,060 cuántas veces pasa algo, esto no implica contar, 26 00:01:16,219 --> 00:01:17,980 esto implica hacer sumas. 27 00:01:18,459 --> 00:01:20,299 ¿Vale? Pues sumas sabemos. Un operador 28 00:01:20,299 --> 00:01:22,299 suma y otro operador 29 00:01:22,299 --> 00:01:23,879 suma sabemos. Pero claro, 30 00:01:24,200 --> 00:01:26,099 aquí el tema es que cuántas 31 00:01:26,099 --> 00:01:28,340 sumas hay que hacer, porque las sumas se hacen de una en una 32 00:01:28,340 --> 00:01:30,379 lógicamente, operador suma 33 00:01:30,379 --> 00:01:30,799 operador 34 00:01:30,799 --> 00:01:33,959 entonces esta es una suma, pero luego habrá que hacer otra 35 00:01:33,959 --> 00:01:35,900 luego habrá que hacer otra, ¿cuántas sumas hay que hacer? 36 00:01:36,299 --> 00:01:37,780 pues no sabemos, depende 37 00:01:37,780 --> 00:01:40,200 cuando me den un numerito n que sea 38 00:01:40,200 --> 00:01:41,700 20, habrá que hacer 39 00:01:41,700 --> 00:01:43,840 19 sumas, un montón 40 00:01:43,840 --> 00:01:45,799 cuando me den 12 41 00:01:45,799 --> 00:01:47,680 habrá que hacer solo 12 sumas 42 00:01:47,680 --> 00:01:49,879 entonces yo para hacer este programa 43 00:01:49,879 --> 00:01:51,500 voy a necesitar un bucle 44 00:01:51,500 --> 00:01:54,319 porque es hacer varias veces algo 45 00:01:54,319 --> 00:01:55,939 ¿qué algo? 46 00:01:56,180 --> 00:01:58,319 sumar, es hacer muchas sumas 47 00:01:58,319 --> 00:02:00,620 ¿vale? este programa va a ser 48 00:02:00,620 --> 00:02:02,280 hacer muchas sumas 49 00:02:02,280 --> 00:02:04,920 ¿cuántas? no lo sé 50 00:02:04,920 --> 00:02:06,239 depende de n 51 00:02:06,239 --> 00:02:09,099 luego algo que se hace muchas veces 52 00:02:09,099 --> 00:02:10,639 un número de veces 53 00:02:10,639 --> 00:02:12,719 indeterminado, depende 54 00:02:12,719 --> 00:02:14,599 de una condición, en este caso dependerá 55 00:02:14,599 --> 00:02:16,740 de cuánto sea n, pues es un bucle, lógicamente 56 00:02:16,740 --> 00:02:18,819 entonces, esto lo vamos a tener que hacer 57 00:02:18,819 --> 00:02:20,599 con un bucle, pero en ese bucle 58 00:02:20,599 --> 00:02:22,580 ya no habrá que contar, ese bucle ya no será 59 00:02:22,580 --> 00:02:24,939 un contador que se va incrementando según pasa algo 60 00:02:24,939 --> 00:02:26,719 esto ahora ya es 61 00:02:26,719 --> 00:02:28,500 una suma que llamamos 62 00:02:28,500 --> 00:02:30,599 una suma acumulativa, que es 63 00:02:30,599 --> 00:02:32,840 otra operación que puede, que necesitamos 64 00:02:32,840 --> 00:02:34,840 hacer continuamente, sumar 65 00:02:34,840 --> 00:02:35,780 muchas cosas 66 00:02:35,780 --> 00:02:38,159 ¿vale? es otra operación básica 67 00:02:38,159 --> 00:02:40,500 y de todas las operaciones básicas 68 00:02:40,500 --> 00:02:42,580 que vamos a ir ejemplificando 69 00:02:42,580 --> 00:02:44,080 a lo largo de esta lista de ejercicios 70 00:02:44,080 --> 00:02:47,000 pues contar, sumar, máximos y mínimos 71 00:02:47,000 --> 00:02:49,060 patatín, todas las operaciones básicas 72 00:02:49,060 --> 00:02:50,639 ya combinadas, se hace 73 00:02:50,639 --> 00:02:52,759 cualquier cosa, ¿vale? pero tenemos 74 00:02:52,759 --> 00:02:54,099 que entender un poquito cada una 75 00:02:54,099 --> 00:02:55,659 por separado 76 00:02:55,659 --> 00:03:05,780 Bueno, pues entonces, aquí, si nos vamos al código directamente, que se ve más claro que en la pizarra 77 00:03:05,780 --> 00:03:12,099 Vamos a hacer este ejercicio, que es el ejercicio 6 78 00:03:12,099 --> 00:03:26,000 Ejercicio 6, vale 79 00:03:26,000 --> 00:03:37,689 Vale, aquí lógicamente tendremos que leer por teclado, luego yo tengo mi escáner 80 00:03:37,689 --> 00:03:53,340 silencio 81 00:03:53,340 --> 00:03:54,740 vale 82 00:03:54,740 --> 00:03:57,680 dato de entrada, solamente este 83 00:03:57,680 --> 00:04:17,139 vale, pues entonces 84 00:04:17,139 --> 00:04:20,000 aquí hay que hacer 85 00:04:20,000 --> 00:04:24,420 lenguaje de signos 86 00:04:24,420 --> 00:04:27,360 o si no, no intercambiéis información 87 00:04:27,360 --> 00:04:33,339 vale, aquí habrá que hacer muchas veces 88 00:04:33,339 --> 00:04:35,939 una suma, un montón de veces 89 00:04:35,939 --> 00:04:38,060 ¿Vale? El resultado 90 00:04:38,060 --> 00:04:40,459 De esa suma, pues tendrá que estar en alguna 91 00:04:40,459 --> 00:04:42,379 Variable, por ejemplo aquí 92 00:04:42,379 --> 00:04:43,839 Llamémosle suma 93 00:04:43,839 --> 00:04:46,279 Aquí tendrá que estar el resultado 94 00:04:46,279 --> 00:04:48,060 De esta variable, y aquí habrá que hacer 95 00:04:48,060 --> 00:04:50,060 Un montón de sumas 96 00:04:50,060 --> 00:04:52,699 ¿Pero cuál es? Bueno, pues 97 00:04:52,699 --> 00:05:12,040 Dime 98 00:05:12,040 --> 00:05:14,439 Es como que al hacer la condición 99 00:05:14,439 --> 00:05:21,910 Menor o igual, lo mismo 100 00:05:21,910 --> 00:05:23,670 Bueno, habría que ver por qué se te hace 101 00:05:23,670 --> 00:05:25,970 Infinito el bucle, luego lo miramos 102 00:05:25,970 --> 00:05:27,990 Pero, ¿por qué tienes un bucle 103 00:05:27,990 --> 00:05:30,029 infinito, depende del resto de tu código. Si nunca 104 00:05:30,029 --> 00:05:31,930 cambias nada para que la condición se 105 00:05:31,930 --> 00:05:33,829 haga falsa, pues entonces es un buque 106 00:05:33,829 --> 00:05:35,870 infinito. Algo no estás cambiando 107 00:05:35,870 --> 00:05:37,389 dentro. Pero bueno, ya lo miraremos. 108 00:05:37,870 --> 00:05:38,870 Vale, entonces 109 00:05:38,870 --> 00:05:43,660 joder. Aquí va a estar 110 00:05:43,660 --> 00:05:44,699 nuestro resultado. 111 00:05:46,540 --> 00:05:47,620 Y este es nuestro 112 00:05:47,620 --> 00:05:53,660 numerito. ¿Qué es lo que 113 00:05:53,660 --> 00:05:55,600 tenemos que hacer dentro? Pues no sé qué es lo que 114 00:05:55,600 --> 00:05:57,379 tenemos que hacer, pero lo que queremos 115 00:05:57,379 --> 00:05:59,079 conseguir es esta suma. 116 00:05:59,079 --> 00:06:01,040 1 más 2 más 117 00:06:01,040 --> 00:06:02,720 3 más 4 118 00:06:02,720 --> 00:06:04,560 así hasta más n 119 00:06:04,560 --> 00:06:06,500 entonces primero habrá que hacer 120 00:06:06,500 --> 00:06:07,980 esta suma 121 00:06:07,980 --> 00:06:11,339 luego al resultado 122 00:06:11,339 --> 00:06:12,079 obtenido 123 00:06:12,079 --> 00:06:14,480 habrá que hacer ahora esta 124 00:06:14,480 --> 00:06:17,139 y con el resultado obtenido 125 00:06:17,139 --> 00:06:18,199 habrá que hacer otra más 126 00:06:18,199 --> 00:06:21,540 y ahora con ese resultado obtenido habrá que hacer otra más 127 00:06:21,540 --> 00:06:23,279 entonces estamos haciendo un montón 128 00:06:23,279 --> 00:06:25,120 de sumas aquí dentro 129 00:06:25,120 --> 00:06:27,120 vale, entonces ¿cómo podemos 130 00:06:27,120 --> 00:06:29,000 plantear esto? bueno pues 131 00:06:29,000 --> 00:06:30,939 inicialmente mi primer operador 132 00:06:30,939 --> 00:06:33,319 1, mi primer operador por ejemplo 133 00:06:33,319 --> 00:06:35,160 ¿Vale? 134 00:06:35,500 --> 00:06:36,579 Puede ser este 135 00:06:36,579 --> 00:06:38,860 ¿Vale? Pues ahora 136 00:06:38,860 --> 00:06:40,839 ¿Qué hago yo con mi variable suma? 137 00:06:45,860 --> 00:06:47,180 A mi primer operador 138 00:06:47,180 --> 00:06:49,519 A mi primer operador que ahora mismo es este 139 00:06:49,519 --> 00:06:51,279 La suma ahora mismo tiene 1 140 00:06:51,279 --> 00:06:53,680 Es mi primer operador, le voy a sumar 141 00:06:53,680 --> 00:06:55,800 El primer número que toca 142 00:06:55,800 --> 00:06:57,660 Que sería el 2 143 00:06:57,660 --> 00:06:58,800 ¿Vale? 144 00:06:59,279 --> 00:07:00,939 Entonces el 2 ¿Cómo lo genero? 145 00:07:01,660 --> 00:07:03,740 Pues venga, vamos a usar una variable 146 00:07:03,740 --> 00:07:12,600 Por ejemplo, pues digo, pues mira, voy a usar una variable adicional i que empieza siendo 1 y le sumo el i, ¿vale? 147 00:07:12,759 --> 00:07:14,639 Ya tendré el 1 más 2. 148 00:07:15,160 --> 00:07:18,439 Y ahora, ¿qué hago con esa suma? ¿Dónde la guardo? 149 00:07:18,660 --> 00:07:20,779 Cualquier operación tengo que llevarla a algún sitio. 150 00:07:21,339 --> 00:07:23,019 ¿Dónde guardo esta primera suma? 151 00:07:23,720 --> 00:07:28,699 Bueno, pues vamos a pisar la propia variable suma para que ahora suma tenga esto. 152 00:07:29,540 --> 00:07:31,920 Bueno, pues vamos a pisar la propia variable suma. 153 00:07:31,920 --> 00:07:52,579 Ahora suma tendrá esto de aquí, pero claro me falta dejar el i incrementado porque la siguiente suma va a ser mi nuevo operador, que ahora se ha convertido en 1 más 2, a raíz de esta suma mi nuevo operador, súmale el siguiente que es 3, luego i vamos a dejarlo incrementado. 154 00:07:52,579 --> 00:07:53,240 ¿Vale? 155 00:07:54,360 --> 00:07:56,800 Ahora, siguiente vuelta de bucle 156 00:07:56,800 --> 00:07:58,220 Siguiente vuelta de bucle 157 00:07:58,220 --> 00:08:01,439 Mi operador suma, ahora ya era 1 más 2 158 00:08:01,439 --> 00:08:02,939 Le sumo el 3 159 00:08:02,939 --> 00:08:05,139 Y lo vuelvo a pisar en suma 160 00:08:05,139 --> 00:08:06,920 Luego mi nuevo primer operador 161 00:08:06,920 --> 00:08:07,980 Ahora ya es este 162 00:08:07,980 --> 00:08:09,379 Es todo este 163 00:08:09,379 --> 00:08:12,959 Y dejo la incrementado para que ahora sea 4 164 00:08:12,959 --> 00:08:14,540 Vale 165 00:08:14,540 --> 00:08:17,100 Cuando el bucle llega por aquí 166 00:08:17,100 --> 00:08:19,160 Suma mi nuevo operador 167 00:08:19,160 --> 00:08:20,839 Que ahora es este, con el 4 168 00:08:20,839 --> 00:08:23,779 ahora ya tengo la nueva suma que es esta de aquí 169 00:08:23,779 --> 00:08:27,399 luego sobre mi variable suma 170 00:08:27,399 --> 00:08:30,300 voy acumulando o incorporando 171 00:08:30,300 --> 00:08:33,100 a través de esta sentencia 172 00:08:33,100 --> 00:08:34,519 un nuevo valor cada vez 173 00:08:34,519 --> 00:08:37,480 esto es una estructura de acumulador que se llama 174 00:08:37,480 --> 00:08:40,399 mi variable suma es un acumulador 175 00:08:40,399 --> 00:08:45,940 un acumulador que yo aquí inicialmente le he puesto un 1 176 00:08:45,940 --> 00:08:47,120 es un acumulador 177 00:08:47,120 --> 00:08:49,559 vale, la primera vez que entro 178 00:08:49,559 --> 00:08:51,259 sobre esta variable suma 179 00:08:51,259 --> 00:08:52,899 que va acumulando, le sumo el 1 180 00:08:52,899 --> 00:08:56,460 me queda 2 181 00:08:56,460 --> 00:08:59,059 y piso el resultado 182 00:08:59,059 --> 00:09:00,940 que tenía de antes por este nuevo 183 00:09:00,940 --> 00:09:03,259 vale, suma ya, ahora tiene 1 más 1 184 00:09:03,259 --> 00:09:04,659 ha acumulado un numerito más 185 00:09:04,659 --> 00:09:06,620 y lo incremento 186 00:09:06,620 --> 00:09:08,779 para generar el siguiente a sumar 187 00:09:08,779 --> 00:09:10,659 la siguiente vez que vuelvo 188 00:09:10,659 --> 00:09:12,840 mi variable acumuladora, mi acumulador 189 00:09:12,840 --> 00:09:15,240 que es este, ahora se le suma 190 00:09:15,240 --> 00:09:16,940 otro numerito más, vale 191 00:09:16,940 --> 00:09:18,080 perdón, 1 más 2 192 00:09:18,080 --> 00:09:22,960 que es el 3, se le suma un numerito más 193 00:09:22,960 --> 00:09:25,799 y con este valor vuelvo a pisar suma 194 00:09:25,799 --> 00:09:28,399 es decir, ha acumulado otro número más 195 00:09:28,399 --> 00:09:30,460 por eso se comporta como un acumulador 196 00:09:30,460 --> 00:09:33,059 y ahora ahí lo incremento, lo dejo valiendo 4 197 00:09:33,059 --> 00:09:36,179 siguiente vuelta, mi variable acumuladora 198 00:09:36,179 --> 00:09:37,940 esta variable acumuladora 199 00:09:37,940 --> 00:09:40,519 que tenía 1 más 2 más 3 200 00:09:40,519 --> 00:09:43,480 ahora le sumo otro numerito más, el 4 201 00:09:43,480 --> 00:09:48,019 y esa nueva suma pisa el que tenía de antes 202 00:09:48,019 --> 00:09:50,600 luego mi variable acumuladora suma 203 00:09:50,600 --> 00:09:52,779 ahora ya tiene el 1 más 2 más el 3 más el 4 204 00:09:52,779 --> 00:09:54,100 tiene toda esta suma 205 00:09:54,100 --> 00:09:56,740 luego mi variable suma es una variable 206 00:09:56,740 --> 00:09:58,639 que en cada vuelta 207 00:09:58,639 --> 00:10:00,659 de bucle va incorporando un sumando 208 00:10:00,659 --> 00:10:02,720 nuevo, luego es una variable 209 00:10:02,720 --> 00:10:04,879 acumuladora, va acumulando 210 00:10:04,879 --> 00:10:05,740 un sumando nuevo 211 00:10:05,740 --> 00:10:08,919 en este caso en particular 212 00:10:08,919 --> 00:10:10,539 los sumandos que va acumulando 213 00:10:10,539 --> 00:10:12,759 como los voy generando yo con el i 214 00:10:12,759 --> 00:10:14,340 que empieza siendo 1 215 00:10:14,340 --> 00:10:15,980 pues va acumulando primero 216 00:10:15,980 --> 00:10:20,740 bueno, yo empezaría valiendo 2 217 00:10:20,740 --> 00:10:22,100 porque esto lo he inicializado a 1 218 00:10:22,100 --> 00:10:26,059 el primer sumando que suma es el 2 219 00:10:26,059 --> 00:10:29,340 y luego el siguiente es el 3 220 00:10:29,340 --> 00:10:31,539 pero estos sumandos que va acumulando 221 00:10:31,539 --> 00:10:32,740 podrían venir de cualquier lado 222 00:10:32,740 --> 00:10:34,799 podrían venir de que voy leyendo del teclado 223 00:10:34,799 --> 00:10:37,440 da igual, lo que importa de esta estructura 224 00:10:37,440 --> 00:10:38,399 es que entendamos que 225 00:10:38,399 --> 00:10:41,500 yo tengo una variable que inicializa un valor 226 00:10:41,500 --> 00:10:43,340 y se convierte en un acumulador 227 00:10:43,340 --> 00:10:44,460 que tiene un valor inicial 228 00:10:44,460 --> 00:10:48,179 y ahora ya, según va dando vueltas el bucle, 229 00:10:48,399 --> 00:10:53,159 esa variable acumuladora va incorporando un sumando nuevo 230 00:10:53,159 --> 00:10:56,460 y esa nueva suma pisa la anterior. 231 00:10:57,039 --> 00:10:58,240 Siguiente vuelta del bucle, 232 00:10:58,580 --> 00:10:59,860 a esa suma que me había quedado, 233 00:11:00,080 --> 00:11:02,960 incorporo un sumando más y piso lo anterior. 234 00:11:03,620 --> 00:11:05,899 A esa suma que me había quedado en la siguiente vuelta, 235 00:11:06,080 --> 00:11:08,320 incorporo otro sumando más y piso lo anterior. 236 00:11:08,320 --> 00:11:10,960 Luego es una acumuladora de sumas. 237 00:11:12,960 --> 00:11:14,240 ¿Qué es lo que varía? 238 00:11:14,460 --> 00:11:21,039 los sumandos que va incorporando, en este caso va incorporando el 2, 3, 4, 5, porque son los que yo voy generando, 239 00:11:21,580 --> 00:11:28,539 pero podría ir incorporando valores sumandos que vengan de cualquier lado, que vengan de cualquier parte, ¿vale? 240 00:11:31,230 --> 00:11:40,980 Bueno, pues a ver, yo he hecho esto así, vamos a dejarlo más bonito, este es mi numerito n que he leído del teclado, 241 00:11:40,980 --> 00:11:57,519 este es este valor y que yo voy sumando y esta es mi suma vale entonces yo había hecho aquí un bucle 242 00:11:58,899 --> 00:12:11,269 la condición todavía nos falta claro la condición todavía nos falta y este bucle hará ya para 243 00:12:11,269 --> 00:12:17,350 dejarlo bonito en lugar de poner suma igual a suma más lo normal es ponerlo así verdad suma más el 244 00:12:17,350 --> 00:12:19,389 el nuevo sumando, ¿vale? 245 00:12:19,889 --> 00:12:22,149 Y ahora aquí, y lo incrementaba. 246 00:12:23,529 --> 00:12:24,529 Entonces, lo normal, 247 00:12:25,070 --> 00:12:27,409 en una estructura de variable que va acumulando, 248 00:12:27,990 --> 00:12:30,450 lo normal es que la variable suma, ¿vale? 249 00:12:32,250 --> 00:12:34,889 Se inicialice a cero. 250 00:12:36,570 --> 00:12:38,309 Porque es el valor neutro, 251 00:12:38,350 --> 00:12:39,929 el elemento neutro de la suma, ¿verdad? 252 00:12:40,009 --> 00:12:40,649 Es lo normal. 253 00:12:41,289 --> 00:12:45,629 Porque la suma 1 más 2 más 3 más n 254 00:12:45,629 --> 00:12:50,809 es igual que 0 más 1 más 2 más n 255 00:12:50,809 --> 00:12:52,730 que es el elemento neutro 256 00:12:52,730 --> 00:12:55,149 entonces una variable que va a acumular sumandos 257 00:12:55,149 --> 00:12:57,929 uno la inicializa siempre a 0 258 00:12:57,929 --> 00:13:01,350 y luego ya le empieza a meter los diferentes sumandos 259 00:13:01,350 --> 00:13:03,690 la inicializamos a 0 260 00:13:03,690 --> 00:13:06,490 y mediante esta sentencia de aquí 261 00:13:06,490 --> 00:13:08,529 mediante esta sentencia 262 00:13:08,529 --> 00:13:11,450 que esta es la sentencia de acumulación 263 00:13:11,450 --> 00:13:14,990 mediante esta sentencia le vamos metiendo los diferentes sumandos 264 00:13:14,990 --> 00:13:18,730 y esos sumandos 265 00:13:18,730 --> 00:13:19,490 ¿de dónde salen? 266 00:13:19,549 --> 00:13:21,590 de donde yo necesite, de donde a mí me dé la gana 267 00:13:21,590 --> 00:13:24,070 en este caso esos sumandos salen 268 00:13:24,070 --> 00:13:26,850 del 1, luego 2, luego 3 269 00:13:26,850 --> 00:13:28,909 pues bueno, tendré que construirlos 270 00:13:28,909 --> 00:13:30,269 ¿cómo los puedo construir? 271 00:13:31,350 --> 00:13:31,750 pues 272 00:13:31,750 --> 00:13:34,470 por ejemplo los construyo 273 00:13:34,470 --> 00:13:36,169 iniciando la i 274 00:13:36,169 --> 00:13:37,330 a 1 275 00:13:37,330 --> 00:13:43,049 y aquí incrementando 276 00:13:43,049 --> 00:13:45,350 ya están, ya los tengo construidos 277 00:13:45,350 --> 00:13:47,590 el primer sumando que sumo va a ser el 1 278 00:13:47,590 --> 00:13:48,750 Perfecto, va a ser este 279 00:13:48,750 --> 00:13:51,970 Y luego lo dejo incrementado para que sea 2 280 00:13:51,970 --> 00:13:55,750 El siguiente sumando que incorporo a la suma acumulativa va a ser el 2 281 00:13:55,750 --> 00:13:58,169 Muy bien, luego lo dejo incrementado para que se convierta en 3 282 00:13:58,169 --> 00:14:01,690 El siguiente sumando que sumo, por tanto, ya será el 3 283 00:14:01,690 --> 00:14:08,450 Y esta variable suma a los valores parciales va acumulando el siguiente 284 00:14:08,450 --> 00:14:09,669 El siguiente, el siguiente 285 00:14:09,669 --> 00:14:14,789 Cuando el bucle ha terminado, pues ya podré yo mostrar la suma de todo eso 286 00:14:14,789 --> 00:14:16,789 ¿Vale? 287 00:14:19,860 --> 00:14:22,539 ¿Qué nos falta? ¿Cuándo termino yo? 288 00:14:22,740 --> 00:14:26,279 Bueno, pues cuando tenga que terminar, depende del programa que esté haciendo. 289 00:14:26,879 --> 00:14:29,960 En este ejemplo en particular, ¿qué condición puedo poner yo ahí? 290 00:14:30,240 --> 00:14:31,480 Que la i sea menor o igual. 291 00:14:31,820 --> 00:14:39,019 Claro, mientras, exacto, mientras la i sea menor o igual que n, 292 00:14:40,279 --> 00:14:44,200 y así nos aseguramos de que va sumando, va sumando, va sumando, 293 00:14:44,279 --> 00:14:46,679 siempre y cuando el sumando sea n. 294 00:14:46,679 --> 00:14:49,759 No, porque si es menor o igual que n 295 00:14:49,759 --> 00:14:52,100 El n no lo sumaría 296 00:14:52,100 --> 00:14:53,320 Porque se incrementa después 297 00:14:53,320 --> 00:14:55,399 Entonces, mientras 298 00:14:55,399 --> 00:14:56,840 Y sea menor o igual 299 00:14:56,840 --> 00:14:58,980 Mientras y sea menor 300 00:14:58,980 --> 00:15:00,519 Que estrictamente menor 301 00:15:00,519 --> 00:15:03,879 Mientras sea estrictamente 302 00:15:03,879 --> 00:15:05,019 Menor que n, ¿verdad? 303 00:15:06,100 --> 00:15:07,179 No, no, no, al contrario 304 00:15:07,179 --> 00:15:09,679 No, no, sí, sí, porque luego la suma 305 00:15:09,679 --> 00:15:11,000 O sea, cuando llegaría 306 00:15:11,000 --> 00:15:12,360 Yo que sé, a 100 307 00:15:12,360 --> 00:15:13,899 Luego iría al ciclo otra vez 308 00:15:13,899 --> 00:15:15,620 No, no, no, no 309 00:15:15,620 --> 00:15:19,759 No, no, no, porque el momento 310 00:15:19,759 --> 00:15:21,840 si n es 100, el momento que llega a 100 lo va a hacer 311 00:15:21,840 --> 00:15:23,100 otra vez igual que a 0.1 312 00:15:23,100 --> 00:15:25,580 Claro, por eso 313 00:15:25,580 --> 00:15:27,960 cuando ya he sumado n 314 00:15:27,960 --> 00:15:29,600 n se queda siendo 315 00:15:29,600 --> 00:15:31,080 n más 1, entonces 316 00:15:31,080 --> 00:15:33,519 igual que n más 1, que sería 317 00:15:33,519 --> 00:15:35,759 menor estricto que n más 1 318 00:15:35,759 --> 00:15:36,980 Así, ¿verdad? 319 00:15:37,539 --> 00:15:40,059 El n más 1 ya no lo queremos sumar 320 00:15:40,059 --> 00:15:41,899 Así, menor que n más 1 321 00:15:41,899 --> 00:15:43,480 o menor o igual que n 322 00:15:43,480 --> 00:15:45,899 Como lo teníamos puesto antes, estaba bien, ¿verdad? 323 00:15:45,960 --> 00:15:47,440 Pero es que en el momento de que si es 100 324 00:15:47,440 --> 00:15:49,899 Luego que me haya centrado a 100 325 00:15:49,899 --> 00:15:52,200 O sea, para el valor n queremos entrar 326 00:15:52,200 --> 00:15:53,779 Y para el siguiente no 327 00:15:53,779 --> 00:15:55,639 Claro, luego menor o igual que n 328 00:15:55,639 --> 00:15:57,519 Que era lo primero que habíamos puesto, estaba bien 329 00:15:57,519 --> 00:15:58,159 No, no, sí, sí, sí 330 00:15:58,159 --> 00:15:59,179 ¿Vale? 331 00:16:00,740 --> 00:16:02,659 Es que yo lo he hecho igual, pero he puesto el i más más 332 00:16:02,659 --> 00:16:05,899 Claro, si has puesto el i más más antes 333 00:16:05,899 --> 00:16:06,960 Pues tu condición cambia 334 00:16:06,960 --> 00:16:08,840 Para el n queremos entrar 335 00:16:08,840 --> 00:16:11,500 Y ya para n más 1 no queremos entrar 336 00:16:11,500 --> 00:16:13,379 Luego así estaría bien 337 00:16:13,379 --> 00:16:14,379 ¿Vale? 338 00:16:14,860 --> 00:16:16,679 Bueno, pues estructura estándar 339 00:16:16,679 --> 00:16:18,419 ¿Qué varía? Repito 340 00:16:18,419 --> 00:16:21,860 De dónde llegan los diferentes sumandos 341 00:16:21,860 --> 00:16:23,360 Y cuándo paro de sumar 342 00:16:23,360 --> 00:16:24,639 Es lo único que varía 343 00:16:24,639 --> 00:16:26,000 Todo lo demás 344 00:16:26,000 --> 00:16:27,440 ¿Vale? 345 00:16:28,480 --> 00:16:29,240 Entonces 346 00:16:29,240 --> 00:16:33,889 Sí 347 00:16:33,889 --> 00:16:41,110 Vale, pues aquí entonces suma 348 00:16:41,110 --> 00:16:42,669 Igual a cero 349 00:16:42,669 --> 00:16:44,950 E i, que es mi sumando 350 00:16:44,950 --> 00:16:56,100 e i, que es mi sumando, que empiece valiendo 1. 351 00:16:56,100 --> 00:17:04,140 Y ahora ya, mientras i sea menor o igual que n, 352 00:17:07,799 --> 00:17:12,579 suma más igual i. 353 00:17:15,700 --> 00:17:16,160 Vale. 354 00:17:19,660 --> 00:17:28,980 Lenin, ¿puedes volver a tu sitio? 355 00:17:32,349 --> 00:17:33,190 Vale, entonces 356 00:17:33,190 --> 00:17:34,789 Podemos ir 357 00:17:34,789 --> 00:17:37,930 Ajustando un poco de código 358 00:17:37,930 --> 00:17:39,809 Pues bueno, puedo poner el imas 359 00:17:39,809 --> 00:17:40,470 Más después 360 00:17:40,470 --> 00:17:42,849 Que queda más o menos claro 361 00:17:42,849 --> 00:17:44,730 O también lo puedo poner aquí, ¿no? 362 00:17:45,269 --> 00:17:47,509 Que ya esto lo entendemos, ya lo que significa 363 00:17:47,509 --> 00:17:49,170 Como esto está como post 364 00:17:49,170 --> 00:17:51,650 incremento, primero usa la i 365 00:17:51,650 --> 00:17:53,890 para la operación y luego la deja incrementada 366 00:17:53,890 --> 00:17:55,710 entonces, vale 367 00:17:55,710 --> 00:17:56,670 me da igual 368 00:17:56,670 --> 00:17:59,650 si yo lo quisiera poner 369 00:17:59,650 --> 00:18:02,349 como pre-incremento 370 00:18:02,349 --> 00:18:03,910 ¿qué tendría que cambiar en este programa 371 00:18:03,910 --> 00:18:05,130 para que siguiera funcionando? 372 00:18:07,410 --> 00:18:07,890 inicializaría 373 00:18:07,890 --> 00:18:09,089 i a cero, efectivamente 374 00:18:09,089 --> 00:18:10,869 porque lo primero que hace es 375 00:18:10,869 --> 00:18:13,630 incrementa la i y luego la utiliza 376 00:18:13,630 --> 00:18:14,569 para la expresión 377 00:18:14,569 --> 00:18:16,509 ¿vale? 378 00:18:16,509 --> 00:18:18,710 Pero quizás se ve más claro así 379 00:18:18,710 --> 00:18:20,670 Primero la utilizo para la expresión 380 00:18:20,670 --> 00:18:22,750 Y luego ya la dejo incrementada 381 00:18:22,750 --> 00:18:25,170 Estoy haciendo dos operaciones en la misma 382 00:18:25,170 --> 00:18:27,670 Una suma y un incremento 383 00:18:27,670 --> 00:18:28,329 ¿Vale? 384 00:18:30,180 --> 00:18:32,539 Y puestos ya a pedir 385 00:18:32,539 --> 00:18:34,700 Bueno, no he devuelto la suma, lógicamente 386 00:18:34,700 --> 00:18:41,200 Y puestos ya a pedir 387 00:18:41,200 --> 00:18:44,880 Podemos simplificar código también 388 00:18:44,880 --> 00:18:46,880 Quitando alguna variable 389 00:18:46,880 --> 00:18:47,980 Que está de más, ¿verdad? 390 00:18:51,940 --> 00:18:53,319 Es decir, mi variable n 391 00:18:53,319 --> 00:18:56,119 bueno, pero vamos a dejarlo así 392 00:18:56,119 --> 00:18:57,960 ya iremos, vale, porque habrá 393 00:18:57,960 --> 00:18:59,079 algunos que estén más liados de todo 394 00:18:59,079 --> 00:19:00,099 vale, pues 395 00:19:00,099 --> 00:19:03,119 a ver, que esta variable n 396 00:19:03,119 --> 00:19:05,160 solo la estás usando para el valor inicial 397 00:19:05,160 --> 00:19:06,779 podemos esta misma variable 398 00:19:06,779 --> 00:19:08,599 irla decrementando 399 00:19:08,599 --> 00:19:11,500 y empezar la suma al revés 400 00:19:11,500 --> 00:19:14,059 primero sumar n, luego sumar n-1 401 00:19:14,059 --> 00:19:15,339 y la condición sería 402 00:19:15,339 --> 00:19:16,680 mientras n sea 403 00:19:16,680 --> 00:19:19,039 mayor o igual que 1 404 00:19:19,039 --> 00:19:21,900 vale, es decir, podríamos hacerlo así 405 00:19:21,900 --> 00:19:23,160 vamos a volver a inicializar 406 00:19:23,160 --> 00:19:44,789 Suma igual a 0 para reiniciar la suma otra vez y podríamos hacer, mientras n sea mayor o igual que 1, que es el último sumando, pues hacemos suma más igual n y a n la dejamos decrementada. 407 00:19:44,789 --> 00:19:47,210 entonces hacemos la suma pero empezando desde arriba 408 00:19:47,210 --> 00:19:49,470 y utilizamos la propia 409 00:19:49,470 --> 00:19:51,670 variable n que es que ya no nos sirve para nada más 410 00:19:51,670 --> 00:19:53,450 con lo cual podemos irla decrementando 411 00:19:53,450 --> 00:19:55,170 e ir incorporando 412 00:19:55,170 --> 00:19:57,269 claro 413 00:19:57,269 --> 00:19:59,289 con esta versión la i 414 00:19:59,289 --> 00:20:01,410 no nos hace falta, porque la propia 415 00:20:01,410 --> 00:20:03,490 variable n la usamos para ir 416 00:20:03,490 --> 00:20:05,410 generando los sumandos, luego su 417 00:20:05,410 --> 00:20:07,250 primer sumando va a ser el mayor número 418 00:20:07,250 --> 00:20:09,589 pero luego ya la dejamos incrementada 419 00:20:09,589 --> 00:20:11,170 para el siguiente sumando 420 00:20:11,170 --> 00:20:12,769 que será una unidad menor 421 00:20:12,769 --> 00:20:15,569 y la dejamos decrementada para el siguiente sumando 422 00:20:15,569 --> 00:20:16,809 entonces si n es 10 423 00:20:16,809 --> 00:20:19,069 pues el primer valor que suma es el 10 424 00:20:19,069 --> 00:20:20,930 y luego lo deja incrementado 425 00:20:20,930 --> 00:20:22,230 lo deja decrementado a 9 426 00:20:22,230 --> 00:20:23,789 el siguiente que suma es el 9 427 00:20:23,789 --> 00:20:26,190 y ¿cuál es el último que suma? 428 00:20:26,529 --> 00:20:29,789 el 1 porque el bucle ya cuando n ya no sea mayor o igual que 1 429 00:20:29,789 --> 00:20:30,349 ya no entra 430 00:20:30,349 --> 00:20:32,789 entonces otra versión 431 00:20:32,789 --> 00:20:42,809 a ver, n 432 00:20:42,809 --> 00:20:44,069 es que si pone 0 433 00:20:44,069 --> 00:20:47,490 no va a entrar nunca porque n no es mayor o igual que 1 434 00:20:47,490 --> 00:20:50,029 con lo cual te va a devolver suma igual a cero 435 00:20:50,029 --> 00:20:50,569 que está bien 436 00:20:50,569 --> 00:20:54,190 la suma de todos los números comprendidos entre cero y cero es cero 437 00:20:54,190 --> 00:20:55,990 entonces también 438 00:20:55,990 --> 00:20:57,109 estaría bien el resultado 439 00:20:57,109 --> 00:21:07,049 si en es cero no entra en el bucle 440 00:21:07,049 --> 00:21:08,609 pues te devuelve suma cero 441 00:21:08,609 --> 00:21:13,369 a ver si quieres que te salte mensaje sí 442 00:21:13,369 --> 00:21:15,529 pero si tú quieres que si yo le meto 443 00:21:15,529 --> 00:21:17,130 cero eso no tiene por qué ser un error 444 00:21:17,130 --> 00:21:19,390 si yo le meto cero queda todos los números comprendidos 445 00:21:19,390 --> 00:21:20,349 entre cero y cero 446 00:21:20,349 --> 00:21:22,549 ah 447 00:21:22,549 --> 00:21:24,549 dice el enunciado que si es cero 448 00:21:24,549 --> 00:21:26,589 saque un error, ah mayor que cero 449 00:21:26,589 --> 00:21:27,349 vale, vale, vale 450 00:21:27,349 --> 00:21:30,410 pues entonces si podría, o podríamos meter 451 00:21:30,410 --> 00:21:32,289 una validación como ya sabemos hacer con un while 452 00:21:32,289 --> 00:21:34,329 que esté ahí todo el rato mientras no mete un cero 453 00:21:34,329 --> 00:21:36,410 claro, un while 454 00:21:36,410 --> 00:21:38,470 para forzarle que siga 455 00:21:38,470 --> 00:21:40,390 y siga y siga hasta que no meta un cero, vale 456 00:21:40,390 --> 00:21:45,349 vale, pues entonces con esto 457 00:21:45,349 --> 00:21:47,130 podéis hacer 458 00:21:47,130 --> 00:21:47,609 el 7 459 00:21:47,609 --> 00:21:49,970 podéis hacer el 8 460 00:21:49,970 --> 00:21:54,599 el 7 y el 8 461 00:21:54,599 --> 00:21:57,079 son sumas acumulativas también 462 00:21:57,099 --> 00:22:03,660 Lo que cambian son los sumandos, que aquí son solo los múltiplos de 5, entre 1 y 100. 463 00:22:04,440 --> 00:22:09,119 Y aquí cambian los sumandos, que son los múltiplos de 5, que metidos entre ahí, ¿eh? 464 00:22:09,480 --> 00:22:11,220 Entonces, el 7 y el 8. 465 00:22:12,839 --> 00:22:14,299 ¿Quién ha hecho el 7 y el 8? 466 00:22:18,269 --> 00:22:19,569 Venga, pues los demás. 467 00:22:21,069 --> 00:22:22,809 7 y 8, venga. 468 00:22:23,750 --> 00:22:28,170 Los hacéis, son como el anterior, cambiando el detallito de dónde salen los sumandos. 469 00:22:28,170 --> 00:22:32,910 Pues 7 y 8 los hacéis en los próximos 10 minutos