Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Zikem10 en 24 de Julio 2014, 22:18
-
Buen dia, basandome en el programa ejemplo pude sacar el programa pero mi duda es que real mente no entendi la parte de como es que la variable "n" realiza la potencia usando la sentencia eta funcionando, se que i=1 es la inicializacion osea que apartir de ese numero es valido y que debe cumpir la funcion de que n debe de cumplir la condicion de que sea mayoro igual a 1, pero la parte de i++ no la entiendo.
Gracias
for (int i=1; i<=n; i++) {
resultado = (resultado *10);
}
//Programa Mutiplicador dices
//Hecho por Osvaldo Maciel Julio 24 2014
public class MultiplicadorDieces {
//Constructor
public MultiplicadorDieces () {
//Nada que declarar
}
//Método para calcular la potencia
public double multiplicarPorDieces (double m, int n) {
double resultado = 1;
for (int i=1; i<=n; i++) {
resultado = (resultado *10);
}
return resultado*m;
} //Cierre del método
} //Cierre de la clase
-
Los operadores (++ y --) son operadores que nos permiten aumentar o reducir en una unidad el valor de una variable, se pueden declarar antes de la variable (++i) o después de esta (i++) pero esto afecta el comportamiento de incremento o reducción de la variable.
un ejemplo con una fracción de tu código seria el siguiente: public double multiplicarPorDieces (double m, int n) {
double resultado = 1;
for (int i=1; i<=n; i++) {
resultado = (resultado *10);
}
return resultado*m;
Porque "n" realiza la potencia?? porque cuando dices i<=n le estas diciendo al bucle for, que se mantenga realizando ciclos(dando vueltas, rondas, ext.) mientras que "i" sea menor o igual que "n" osea, que lo que este dentro de las llaves{...} se dejara de realizar cuando "i" sea igual al valor de "n".
Si "i" tiene un valor inicial de 1, como es que alcanza el valor de "n" que vale 2 ?? aquí es donde entra el ++, en el primer ciclo del bucle for "i" valdría 1 y con la sentencia i++ le decimos que a partir del próximo ciclo comience a sumarle 1 a "i" , si la sentencia fuera ++i se estaría indicando que se le sume 1 a "i" desde el primer ciclo, lo que seria conflictivo en esta situación porque el bucle solo completaría un ciclo y no los 2 ciclos que necesitamos. Si no se incluyera la sentencia i++ en el bucle, tendríamos lo que se conoce como un bucle sin salida o bucle infinito.
Cada ciclo afecta la instrucción que aya dentro de las llaves, en este caso como "i" igualo el valor de "n" que es 2, las instrucciones dentro de las llaves recibieron 2 ciclos.
En el primer ciclo: resultado = (resultado(1)*10) resultado = 10
(resultado toma el valor de 10 para el próximo ciclo).
En el segundo ciclo: resultado = (resultado(10)*10) resultado = 100. Para la sentencia return resultado*m; resultado tiene un valor de 100, por tanto 100*2.55 = 255.
en resumen: "i" seria un contador que detiene o da salida a el bucle for al igualar el valor de "n" (exponente) y resultado multiplicara por 10 su valor tantas veces como ciclos se realicen.
Espero que lo ayas captado.
Salu2!