No se que pasa

Iniciado por chrominum, 9 Agosto 2007, 21:17 PM

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

chrominum

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.

nhaalclkiemr

Si te fijas y ejecutas set /? pues en una linea aparece

^                   - bit a bit exclusivo o

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

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

nhaalclkiemr

Hay que leer los temas pegados:

Aki una funcion para calcular potencias:

Código (DOS) [Seleccionar]
:: Autor ne0x
@echo off
set /P BASE=Base :
set /P EXPONENTE=Exponente :
if %BASE%.==. exit 1
if %EXPONENTE%.==. exit 1
set resultado=1
FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
echo Resultado : %resultado%
goto:EOF


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

chrominum

Muchas gracias, se agradece gente así. La próxima lo mirare.  ;)

.Undertaker.

Cita de: nhaalclkiemr en 10 Agosto 2007, 00:06 AM
Hay que leer los temas pegados:

Aki una funcion para calcular potencias:

Código (DOS) [Seleccionar]
:: Autor ne0x
@echo off
set /P BASE=Base :
set /P EXPONENTE=Exponente :
if %BASE%.==. exit 1
if %EXPONENTE%.==. exit 1
set resultado=1
FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
echo Resultado : %resultado%
goto:EOF


Saludos ;)

LE FALTA UN PAUSE  ;D ;D

kedaria asi:

Código (DOS) [Seleccionar]
:: Autor ne0x
@echo off
set /P BASE=Base :
set /P EXPONENTE=Exponente :
if %BASE%.==. exit 1
if %EXPONENTE%.==. exit 1
set resultado=1
FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
echo Resultado : %resultado%
pause
goto:EOF




                 

"MI WEB"

kraszic

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:

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

nhaalclkiemr

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 ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%