Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: leogtz en 9 Abril 2009, 22:59 pm



Título: Elevar a cualquier potencia. [Batch]
Publicado por: leogtz en 9 Abril 2009, 22:59 pm
Código
  1. @echo off
  2. :code
  3. set /p "base=Numero : "
  4. if not defined base (goto:code)
  5. set /p "potencia=Potencia : "
  6. if not defined potencia (goto:code)
  7. :funcion
  8. set /a resultado=0
  9. if %potencia% equ 0 (
  10. rem Salimos
  11. exit /b 1
  12. ) else (
  13. set /a "resultado=%base%"
  14. for /l %%i in (2 1 %potencia%) do (
  15. set /a resultado=resultado * %base%
  16. )
  17. )
  18. echo.Resultado : %resultado%
  19. exit /b 0

Salida :
Código:
Numero : 2
Potencia : 4
Resultado : 16
Press any key...
Código:
Numero : 5
Potencia : 8
Resultado : 390625
Press any key...
Código:
Numero : 6
Potencia : 7
Resultado : 279936
Press any key...

Código
  1. @echo off
  2. if ["%1"]==[""] (goto:error)
  3. if ["%1"]==[""] (goto:error)
  4. set /a resultado=0
  5. if %2 equ 0 (
  6. rem Salimos
  7. exit /b 1
  8. ) else (
  9. set /a "resultado=%1"
  10. for /l %%i in (2 1 %2) do (
  11. set /a resultado=resultado * %1
  12. )
  13. )
  14. echo.Resultado : %resultado%
  15. exit /b 0
  16. :error
  17. echo %~nx0 Base Potencia&echo.
  18. echo.Leo Gutierrez R.
  19. exit /b 1
  20.  
Código:
C:\>code 2 3
Resultado : 8

C:\>codes 8 9
134217728

C:\>codes 5 6
15625

C:\>codes 2 3
8

C:\>codes 2 9
512

C:\>

Saludos, espero que les sirva.


Título: Re: Elevar a cualquier potencia.
Publicado por: SmartGenius en 9 Abril 2009, 23:30 pm
Me gusta la parte en que compruebas la introduccion de numeros menores, podria hacerse para negativos :P

Código:
@echo off
REM Funcion Potenciacion
REM Coded by :: SmartGenius ::
if ["%1"]==[""] goto :sintaxis
setlocal enabledelayedexpansion

:main
set pot=1
for /f "tokens=1-2 delims=p" %%a in ("%1") do (
for /l %%c in (1,1,%%b) do (set /a pot=!pot!*%%a))
echo %pot%
endlocal
goto :eof

:sintaxis
echo Modo de Uso:
echo.
echo %~n0 Base_p_Exponente
echo.
echo Ej: 2p5 2=Base 5=Exponente ==^> Resultado: 32
goto :eof

Saludos.


Título: Re: Elevar a cualquier potencia.
Publicado por: leogtz en 9 Abril 2009, 23:34 pm
Jaja, en los 3 foros me contestaste.  :P

Saludos.