1 00:00:09,580 --> 00:00:34,020 Vale, pues esto, si tenemos dos datos de entrada que son A y B, A elevado a B, esa operación como tal, no tiene un operador en Java, sí lo puede tener en otros lenguajes, pero en Java no tiene un operador, tiene un método de la librería MAF, etc., pero con eso no nos vamos a meter ahora. 2 00:00:34,020 --> 00:00:41,500 Ahora, el operador elevado a no existe, existen los operadores que hemos visto, pero el operador elevado a no existe. 3 00:00:42,340 --> 00:00:50,420 Entonces, esta operación debemos hacerla, construirla, que mediante multiplicaciones, pero mediante multiplicaciones es fácil de construir. 4 00:00:51,299 --> 00:00:56,280 A por A por A, y esto, ¿cuántas veces? B. 5 00:00:56,280 --> 00:01:22,239 Entonces, una vez que hemos identificado que esta operación, este programa que me han planteado es esto, esto de nuevo es hacer muchas multiplicaciones, muchas multiplicaciones, igual que los ejercicios anteriores eran muchas sumas, pues es lo mismo, es lo mismo, 6 00:01:22,239 --> 00:01:35,859 Lo que pasa es que lo que hacemos muchas veces no es sumar, incorporar, sumando, incorporar, sumando, incorporar, sumando, sino incorporar, multiplicando, incorporar, multiplicando o incorporar factor, como lo queréis llamar. 7 00:01:36,239 --> 00:01:37,879 Pero es exactamente la misma idea. 8 00:01:39,439 --> 00:01:42,739 Luego, esto, ¿en qué se traduciría? 9 00:01:55,409 --> 00:01:55,629 ¿Vale? 10 00:01:56,890 --> 00:01:58,349 Esto, ¿en qué se...? 11 00:01:59,530 --> 00:02:01,189 Uy, no quería yo esto. 12 00:02:01,189 --> 00:02:16,879 Uy, a lo mejor Manoli guarda las pizarras de un día para otro 13 00:02:16,879 --> 00:02:18,639 Pues se la acabo de borrar 14 00:02:18,639 --> 00:02:22,770 Bueno, mala suerte 15 00:02:22,770 --> 00:02:26,250 La había guardado para empezar el lunes 16 00:02:26,250 --> 00:02:30,210 No pasa nada, ya la tenemos aquí 17 00:02:30,210 --> 00:02:31,610 Ya apareció 18 00:02:31,610 --> 00:02:34,169 Vale, pues entonces 19 00:02:34,169 --> 00:02:35,349 Yo me hago otra pizarrita 20 00:02:35,349 --> 00:02:38,009 No pasa nada, ahí se la dejo 21 00:02:38,009 --> 00:02:40,150 Vale, entonces 22 00:02:40,150 --> 00:02:48,270 Esto es hacer un montón de multiplicaciones 23 00:02:48,270 --> 00:03:18,719 Entonces, ¿la suma acumulativa cómo era? Pues ya no lo sabemos de memoria. La suma acumulativa era, sobre una variable yo voy incorporando un sumando más otro sumando más otro sumando, así un montón de veces. 24 00:03:18,719 --> 00:03:32,080 ¿Cuántas veces? Pues depende de mi programa. Sobre esa variable acumulativa suma, yo voy incorporando un sumando más otro, ¿verdad? Esto era ese algoritmo de una suma acumulativa. 25 00:03:32,900 --> 00:03:47,180 ¿Qué es lo que aquí ahora ya se adapta a la situación? Lo que aquí se adapta a la situación es, ¿cuándo termino de incorporar esas sumas? ¿Cuándo termino? Y este sumando, ¿cómo lo voy generando? 26 00:03:48,080 --> 00:03:51,219 Pues sí, con un número que voy incrementando, leyendo del teclado. 27 00:03:51,599 --> 00:03:54,680 Estas dos cosas ya dependen de mi problema en particular. 28 00:03:55,919 --> 00:03:59,740 Bueno, pues en este problema que me han dado aquí, es exactamente lo mismo. 29 00:04:00,199 --> 00:04:04,599 Lo que pasa es que yo no voy sumando una y otra vez, sumando una y otra vez, 30 00:04:04,699 --> 00:04:06,400 sino que lo que voy haciendo es multiplicar. 31 00:04:07,800 --> 00:04:13,639 Luego, en este caso, el programa será la variable acumuladora, 32 00:04:13,639 --> 00:04:14,580 la voy a llamar acum 33 00:04:14,580 --> 00:04:16,680 será 34 00:04:16,680 --> 00:04:19,420 por igual 35 00:04:19,420 --> 00:04:20,920 el factor que sea 36 00:04:20,920 --> 00:04:22,040 ¿verdad? 37 00:04:24,079 --> 00:04:25,920 o si lo queremos poner de otra manera 38 00:04:25,920 --> 00:04:28,019 esta misma expresión idéntica 39 00:04:28,019 --> 00:04:29,860 la misma de otra manera para que se vea 40 00:04:29,860 --> 00:04:32,180 a lo mejor más claro ahora de partida 41 00:04:32,180 --> 00:04:37,610 pues mi variable acum 42 00:04:37,610 --> 00:04:39,430 igual a acum 43 00:04:39,430 --> 00:04:41,449 por el factor nuevo 44 00:04:41,449 --> 00:04:52,790 en los extremos no pinta 45 00:04:52,790 --> 00:04:54,430 vale 46 00:04:54,430 --> 00:04:55,769 entonces 47 00:04:55,769 --> 00:04:58,930 la variable acumuladora 48 00:04:58,930 --> 00:05:01,250 le multiplico por el nuevo factor 49 00:05:01,250 --> 00:05:03,110 y el resultado sustituye 50 00:05:03,110 --> 00:05:04,509 la multiplicación anterior 51 00:05:04,509 --> 00:05:06,589 en la siguiente iteración 52 00:05:06,589 --> 00:05:08,089 esa multiplicación 53 00:05:08,089 --> 00:05:10,730 la multiplico por el nuevo factor 54 00:05:10,730 --> 00:05:12,029 y el resultado lo 55 00:05:12,029 --> 00:05:14,990 sustituyo por 56 00:05:14,990 --> 00:05:17,310 el nuevo valor 57 00:05:17,310 --> 00:05:18,930 del acumulador y así todo el rato 58 00:05:18,930 --> 00:05:20,410 luego es lo mismo 59 00:05:20,410 --> 00:05:22,410 ¿vale? es lo mismo 60 00:05:22,410 --> 00:05:24,370 este es cada uno 61 00:05:24,370 --> 00:05:26,310 de los factores que voy incorporando 62 00:05:26,310 --> 00:05:28,250 ¿vale? entonces 63 00:05:28,250 --> 00:05:30,389 ¿aquí qué cambia? la variable acum 64 00:05:30,389 --> 00:05:32,589 esta de aquí, ¿con qué valor 65 00:05:32,589 --> 00:05:33,949 tendré que iniciarla ahora? 66 00:05:37,300 --> 00:05:37,779 ¿con? 67 00:05:39,180 --> 00:05:40,100 ahora con 1 68 00:05:40,100 --> 00:05:40,860 ¿verdad? 69 00:05:42,680 --> 00:05:44,279 porque si la inicio con 0 70 00:05:44,279 --> 00:05:46,660 ya la primera multiplicación se me queda 71 00:05:46,660 --> 00:05:48,980 en 0, y ya multiplicar por 0 72 00:05:48,980 --> 00:05:50,579 hasta el infinito, me puedo 73 00:05:50,579 --> 00:05:52,660 estar ahí multiplicando, que ya voy arrastrando 74 00:05:52,660 --> 00:05:54,240 0 por 0 por 0 por 75 00:05:54,240 --> 00:05:55,000 siempre va a ser 0 76 00:05:55,000 --> 00:05:58,160 entonces yo lo que quiero es que la primera operación 77 00:05:58,160 --> 00:06:00,339 la primera operación sea 78 00:06:00,339 --> 00:06:01,399 el primer factor 79 00:06:01,399 --> 00:06:04,500 1 no, 1 por el primer factor 80 00:06:04,500 --> 00:06:05,199 es la primera 81 00:06:05,199 --> 00:06:08,779 ahora la siguiente, ese factor por el siguiente 82 00:06:08,779 --> 00:06:10,319 ya me queda 83 00:06:10,319 --> 00:06:11,180 factor por factor 84 00:06:11,180 --> 00:06:14,060 la siguiente, ese factor por factor que me ha quedado 85 00:06:14,060 --> 00:06:15,660 por el otro que incorporo 86 00:06:15,660 --> 00:06:17,959 entonces si ni el valor inicial 87 00:06:17,959 --> 00:06:19,500 tiene que ser 1 88 00:06:19,500 --> 00:06:21,560 para que la primera multiplicación 89 00:06:21,560 --> 00:06:23,339 sea ya el primer factor 90 00:06:23,339 --> 00:06:26,000 igual que aquí el valor inicial de suma 91 00:06:26,000 --> 00:06:26,600 era cero 92 00:06:26,600 --> 00:06:33,670 suma más el sumando nuevo 93 00:06:33,670 --> 00:06:35,170 igual que aquí era cero 94 00:06:35,170 --> 00:06:37,949 para que la primera suma fuera el primer 95 00:06:37,949 --> 00:06:39,910 sumando, la primera suma 96 00:06:39,910 --> 00:06:41,670 es el primer sumando, se queda aquí 97 00:06:41,670 --> 00:06:43,649 ahora la siguiente suma es 98 00:06:43,649 --> 00:06:46,170 ya ese sumando que estaba más el otro 99 00:06:46,170 --> 00:06:48,129 ¿vale? inicialmente a cero 100 00:06:48,129 --> 00:06:49,329 pero este inicialmente a uno 101 00:06:49,329 --> 00:06:50,449 porque es una multiplicación 102 00:06:50,449 --> 00:06:53,670 ¿vale? pues de nuevo 103 00:06:53,670 --> 00:06:55,810 esta es la expresión, lo que pasa es que yo 104 00:06:55,810 --> 00:06:58,170 lo tengo que adaptar ahora ya 105 00:06:58,170 --> 00:06:59,709 tanto mi condición 106 00:06:59,709 --> 00:07:01,889 o lo que es lo mismo, cuántas multiplicaciones 107 00:07:01,889 --> 00:07:03,569 quiero hacer, como 108 00:07:03,569 --> 00:07:05,449 de dónde saco estos factores 109 00:07:05,449 --> 00:07:07,610 esto es lo que adapto a mi situación 110 00:07:07,610 --> 00:07:09,629 bueno, pues ahora 111 00:07:09,629 --> 00:07:11,069 esto lo podemos adaptar 112 00:07:11,069 --> 00:07:13,430 a la situación de que mis factores son 113 00:07:13,430 --> 00:07:15,930 A todo el rato, eso es lo más fácil 114 00:07:15,930 --> 00:07:17,069 mis factores todo el rato A 115 00:07:17,069 --> 00:07:20,050 no tengo que generarlo ni incrementando 116 00:07:20,050 --> 00:07:20,910 una variable 117 00:07:20,910 --> 00:07:23,750 ni leyéndola por teclado 118 00:07:23,750 --> 00:07:25,250 mis factores son A todo el rato 119 00:07:25,250 --> 00:07:26,509 y 120 00:07:26,509 --> 00:07:29,110 la condición será 121 00:07:29,110 --> 00:07:30,870 pues tengo que ver 122 00:07:30,870 --> 00:07:33,689 cómo genero una condición para que esta multiplicación 123 00:07:33,689 --> 00:07:35,410 se haga exactamente B veces 124 00:07:35,410 --> 00:07:37,110 ¿vale? 125 00:07:37,790 --> 00:07:39,149 vale, pues 126 00:07:39,149 --> 00:07:41,550 plantear este boceto de programa 127 00:07:41,550 --> 00:07:43,149 entonces, el que hace A por B 128 00:07:43,149 --> 00:07:44,889 de esta manera 129 00:07:44,889 --> 00:07:46,970 aquí falta pues eso 130 00:07:46,970 --> 00:07:48,990 ver este factor cuál es 131 00:07:48,990 --> 00:07:50,189 y esta condición cuál es 132 00:07:50,189 --> 00:07:56,810 para que el resultado de esta multiplicación sea A por A por A exactamente B veces. 133 00:07:56,990 --> 00:07:59,290 A y B se han leído previamente del teclado, claro. 134 00:08:01,149 --> 00:08:05,290 Pues venga, a ver cómo sale plantear ese programa.