Elevar a cualquier potencia. [Batch]

Iniciado por leogtz, 9 Abril 2009, 22:59 PM

0 Miembros y 1 Visitante están viendo este tema.

leogtz

Código (dos) [Seleccionar]

@echo off
:code
set /p "base=Numero : "
if not defined base (goto:code)
set /p "potencia=Potencia : "
if not defined potencia (goto:code)
:funcion
set /a resultado=0
if %potencia% equ 0 (
rem Salimos
echo.1
exit /b 1
) else (
set /a "resultado=%base%"
for /l %%i in (2 1 %potencia%) do (
set /a resultado=resultado * %base%
)
)
echo.Resultado : %resultado%
exit /b 0


Salida :
Numero : 2
Potencia : 4
Resultado : 16
Press any key...


Numero : 5
Potencia : 8
Resultado : 390625
Press any key...


Numero : 6
Potencia : 7
Resultado : 279936
Press any key...


Código (dos) [Seleccionar]
@echo off
if ["%1"]==[""] (goto:error)
if ["%1"]==[""] (goto:error)
set /a resultado=0
if %2 equ 0 (
rem Salimos
echo.1
exit /b 1
) else (
set /a "resultado=%1"
for /l %%i in (2 1 %2) do (
set /a resultado=resultado * %1
)
)
echo.Resultado : %resultado%
exit /b 0
:error
echo %~nx0 Base Potencia&echo.
echo.Leo Gutierrez R.
exit /b 1

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

SmartGenius

Me gusta la parte en que compruebas la introduccion de numeros menores, podria hacerse para negativos :P

@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.


leogtz

Jaja, en los 3 foros me contestaste.  :P

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com