Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Leon2197 en 28 Febrero 2017, 19:14 pm



Título: Programación Batch. Sumatorio
Publicado por: Leon2197 en 28 Febrero 2017, 19:14 pm
Tengo una duda de cual es el código para la suma sucesiva en batch. Tengo entendido que para programar en Java quedaría así:

Código
  1. int iNumero = 5;
  2. int iSumatorio = 0;
  3. int iContador = iNumero;
  4.  
  5. while (iContador != 0) {
  6.  
  7.  iSumatorio = iSumatorio + iContador;
  8.  iContador--;
  9.  
  10. }
  11.  
  12. System.out.println("El sumatorio de " + iNumero + " es " + iSumatorio);

Pero en batch no se como aplicar el código.


· Los códigos deben ir en etiquetas GeSHi
· Cada tema debe ir en su respectivo subforo (movido)
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Programación Batch. Sumatorio
Publicado por: Eleкtro en 1 Marzo 2017, 02:52 am
Hola. En Batch sencillamente no puedes tratar de trasladar la sofisticación de un algritmo de un lenguaje orientado a objetos. Batch es una herramienta básica para automatizar tareas cotidianas del sistema, no un lenguaje de programación como tal. De hecho no tiene la capacidad para escribir whiles/untils. Como mucho puedes escribir un búcle que realize una iteración basándose en un rango numérico (For /L) de nMin a nMax.

Puedes usar las etiquetas junto a la sentencia GoTo para tratar de imitar el procedimiento que has mostrado de Java, pero un uso excesivo de (miles de saltos de) GoTo desembocará en un desbordamiento de la pila...

Código
  1. @Echo Off
  2.  
  3. Set /A "value=5"
  4. Set /A "sum=0"
  5. Set /A "count=%value%"
  6.  
  7. :Loop
  8. Set /A "sum+=%count%"
  9. Set /A "count-=1"
  10. If %count% NEQ 0 (GoTo :Loop)
  11. :: Loop End
  12.  
  13. Echo:El sumatorio de %value% es %sum%

Resultado de ejecución:
Código:
El sumatorio de 5 es 15

PD: No manejo Java, pero analizando la sintaxis por encima deduzco que eso es lo que debería hacer el código de Java que pusiste. Si hubieras puesto el resultado que da el código de Java entonces habria sido más facil de entender para todos.

¡Saludos!