elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ayuda programa bat!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda programa bat!!  (Leído 2,506 veces)
elboig

Desconectado Desconectado

Mensajes: 2


Ver Perfil
ayuda programa bat!!
« en: 4 Diciembre 2007, 19:10 pm »

Buenas!! Lo que necesito es un codigo para crear un programa BAT, es para hacer un ejercicio que no encuentro en ningun sitio lo que necesito es: Un codigo que calcule el factorial de un numero que se ponga como parametro muchas gracias para la gente que me ayude! :D lo he intentado hacer pero no hay manera k funcione... mirar:

rem factorial.bat <numero>
@echo off
set /A n=%1
set /A factorial=1
:1
set /A n0=%n%-1
set /A factorial=%factorial%*%n%*%n0%
set/A n=%n0%
if n0==1 goto 2
:goto1
:2
echo Factorial de %1 es %factorial%


« Última modificación: 4 Diciembre 2007, 19:30 pm por elboig » En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: ayuda programa bat!!
« Respuesta #1 en: 4 Diciembre 2007, 19:53 pm »

para el parametro usa la variable %1

hice este code a ver si te sirve:

Código
  1. @echo off
  2. If "%1"=="" exit /b
  3. set /a x=%1*1
  4. if not "%1"=="%x%" exit /B
  5. If %1 LSS 0 (
  6. echo Error, no existe el factorial de un numero negativo
  7. pause>NUL
  8. )
  9. If %1 GTR 12 (
  10. echo El numero al que se le va calcular el factorial es mayor que 12
  11. echo El resultado sera erroneo!!
  12. )
  13. set /a res=1
  14. for /L %%I IN (2,1,%1) DO set /A res=%%I*res
  15. echo El factorial de %1 es %res%
  16. pause>NUL

Ya te advierto que solo muestra el factorial de un numero menor o igual que 12, ya que si el numero es mayor que 12 su factorial desborda la variable y te muestra un resultado erroneo...si me apetece otro dia miro si puedo arreglarlo...espero k te sirva...

Un saludo ;)


En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
elboig

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: ayuda programa bat!!
« Respuesta #2 en: 4 Diciembre 2007, 20:09 pm »

muchas gracias :)

si alguien sabe retocar ese codigo para obtener el factorial de un numero superior a 12.. estaria muy bien jjeje es este:

@echo off
If "%1"=="" exit /b
set /a x=%1*1
if not "%1"=="%x%" exit /B
If %1 LSS 0 (
echo Error, no existe el factorial de un numero negativo
pause>NUL
exit
)
If %1 GTR 12 (
echo El numero al que se le va calcular el factorial es mayor que 12
echo El resultado sera erroneo!!
)
echo.
set /a res=1
for /L %%I IN (2,1,%1) DO set /A res=%%I*res
echo El factorial de %1 es %res%
pause>NUL
exit
« Última modificación: 4 Diciembre 2007, 20:38 pm por elboig » En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: ayuda programa bat!!
« Respuesta #3 en: 5 Diciembre 2007, 15:13 pm »

Jaja el code ya lo tenía puesto yo más arriba...

Yo pienso k no se puede pork las variables están limitadas a 32 bytes...contando numeros negativos, por lo k se keda en 16 bytes...

Aunke supongo k se podría expresar como producto de varios factores (k no desbordasen)...


por ejemplo: 15! = 479001600 * 2730

Pero no me apetece hacerlo...sería comprovar cada ciertas multiplicaciones si se desborda la variable y si lo hace almacena el valor y comienza otro...

weno de momento no me apetece hacerlo...algún día si lo hago lo pongo...

Saludos ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines