Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: chrominum en 9 Agosto 2007, 21:17 pm



Título: No se que pasa
Publicado por: chrominum en 9 Agosto 2007, 21:17 pm
miren acabo de leer un manual hoy y queria hacer algo con lo aprendido  ;D.  hago un bat con este codigo:

@echo off
title Programa de potencias by archeritone
set/p a=Escribe el numero del cual quieras obtener la potencia:
echo.
set/a pote=%a%^%a%
echo.
echo La potencia de %a% es %pote%
echo.
echo La proxima lo haces por tus medios cabron xD
pause
exit

Lo ejecuto y por ejemplo, pongo 3 y en vez de salir 27 sale 33. Es cosa del sinvolo ^?

Gracias adelantadas.


Título: Re: No se que pasa
Publicado por: nhaalclkiemr en 9 Agosto 2007, 21:31 pm
Si te fijas y ejecutas set /? pues en una linea aparece

Código:
^                   - bit a bit exclusivo o

Despues cuando tenga más tiempo te pongo el BATCH de como calcular %a%^%a%

Saludos ;)


Título: Re: No se que pasa
Publicado por: nhaalclkiemr en 10 Agosto 2007, 00:06 am
Hay que leer los temas pegados:

Aki una funcion para calcular potencias:

Código
  1. :: Autor ne0x
  2. @echo off
  3. set /P BASE=Base :
  4. set /P EXPONENTE=Exponente :
  5. if %BASE%.==. exit 1
  6. if %EXPONENTE%.==. exit 1
  7. set resultado=1
  8. FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
  9. echo Resultado : %resultado%
  10. goto:EOF

Saludos ;)


Título: Re: No se que pasa
Publicado por: chrominum en 10 Agosto 2007, 10:12 am
Muchas gracias, se agradece gente así. La próxima lo mirare.  ;)


Título: Re: No se que pasa
Publicado por: .Undertaker. en 1 Octubre 2007, 21:50 pm
Hay que leer los temas pegados:

Aki una funcion para calcular potencias:

Código
  1. :: Autor ne0x
  2. @echo off
  3. set /P BASE=Base :
  4. set /P EXPONENTE=Exponente :
  5. if %BASE%.==. exit 1
  6. if %EXPONENTE%.==. exit 1
  7. set resultado=1
  8. FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
  9. echo Resultado : %resultado%
  10. goto:EOF

Saludos ;)

LE FALTA UN PAUSE  ;D ;D

kedaria asi:

Código
  1. :: Autor ne0x
  2. @echo off
  3. set /P BASE=Base :
  4. set /P EXPONENTE=Exponente :
  5. if %BASE%.==. exit 1
  6. if %EXPONENTE%.==. exit 1
  7. set resultado=1
  8. FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
  9. echo Resultado : %resultado%
  10. goto:EOF


Título: Re: No se que pasa
Publicado por: kraszic en 2 Octubre 2007, 15:53 pm
bueno, pues te iva a responder yo pero ya te han respondido...
Queria saber porq son necesarias estas lineas en el codigo de la potencia:

Código:
if %BASE%.==. exit 1
if %EXPONENTE%.==. exit 1
set resultado=1

yo utilizo el codigo sin esto para algunas aplicaciones y me funciona igual de bien...

saludos


Título: Re: No se que pasa
Publicado por: nhaalclkiemr en 2 Octubre 2007, 16:18 pm
Los dos IF sirven para salir del BATCH en caso de que no introduzcas ni una base ni una potencia...

set resultado=1 se pone para que al empezar el FOR en esta operación resultado=resultado*BASE no se multiplique por 0 y que dé siempre 0

Saludos ;)