Calculadora en el batch

Iniciado por MK-Ultra, 4 Diciembre 2007, 17:47 PM

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

MK-Ultra

Que tal gente :)

Se me dio por hacer una calculadora q por ahora solo suma pero le voy a agregar un para de cosas mas.

El tem es q hay algun error q no lo puedo encontrar aver si me ayudan ustedes ;)

aka esta el codigo:

@ echo off
color 0a
echo*******************************************************************
echo
echo
echo
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo
echo
echo
echo
echo <<<<<<<<<<<<<<<<<<<<<< ^Arkangel Creations^ >>>>>>>>>>>>>>>>>>>>>>
echo
echo
echo
echo *******************************************************************
pause > nul
set /P var1=Introduce un valor a sumar:
cls
set/P var2=Introduce otro valor a sumar:
cls
set/a resultado=%var1%+%var2%
echo El resultado de la suma es %resultado%
pause > nul
exit

solo suma, bueno, espero q me puedan ayudar, nos vemos luego
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

nhaalclkiemr

Dividir \, multiplicar *, restar -

Para potencias y raíces mirate este tema pegado en esta misma sección:

http://foro.elhacker.net/index.php/topic,163184.0.html

Y si kieres hacer división con decimales mirate estos codes que hice baseandome en el codigo de otro, te pongo dos codigos pork el primero te va mostrando el progreso del calculo (a partir de 70 decimales) y el segundo no te muestra nada...


Código (dos) [Seleccionar]
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic

title DIVISION CON DECIMALES

echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 60):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=60
if "%max%"=="0" set max=60
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
:a
set /a nu=nu+1
if not "%percent%"=="" set /a antpercent=%percent%
set /a percent=%nu%*100/%max%
if not "%antpercent%"=="%percent%" (
if %nu% GTR 70 echo %percent%%%
)
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo.
echo Resultado: %divno0%%decimal%
pause>nul
exit


Código (dos) [Seleccionar]
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic

title DIVISION CON DECIMALES

echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 30):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=30
if "%max%"=="0" set max=30
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
echo.
:a
set /a nu=nu+1
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo Resultado: %divno0%%decimal%
pause>nul
exit



El código de los dos es lo mismo, en el primero añadí unas lineas poco importantes para obtener el progreso...
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

MK-Ultra

yap, pero queria saber xq el mio no funciona  :P

apenas abro el batch se cierra  :o

xD
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

nhaalclkiemr

Varios problemas...primero ya en algunas instrucciones como set /p los tenias pegados algunos...después en el echo no puede susar carácteres >>> o <<< y si los kieres kieres usar antes de cada caracter tienes que poner el simbolo ^, y para poner este simbolo tienes que poner dos ^^
Después otra cosa es que en vez de poner un echo a secas pon un echo. para dejar una linea en blanco...

Código (dos) [Seleccionar]
@echo off
color 0a
echo *******************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo *******************************************************************
echo.
set /P var1=Introduce un valor a sumar:
cls
set /P var2=Introduce otro valor a sumar:
cls
set /a resultado=%var1%+%var2%
echo El resultado de la suma es %resultado%
pause>nul
exit


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

MK-Ultra

Buenissimo, lo de los signos no lo sabía ^^ muchas gracias  ;)

Una pregunta:

Hay alguna manera de cnetrar el texto que aparezca ( en el caso de Bienvenido a la cal...... ) en la pantalla de batch para que no salga pegado al margen izq?

Muchas gracias!
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

nhaalclkiemr

Nunca lo había pensado...prueva a poner mas espacios despues del echo a ver  :xD
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

MK-Ultra

jajaja lo voy a tener q hacer a mano xD
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

MK-Ultra

#7
la amplie para q multiplique , divida y reste pero algo anda mal.
aca esta el codigo:

@echo off
color 0c
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
echo Que operacion desea usted hacer?
echo +
echo -
echo x
echo /
set /p operacion=
if %operacion% = + goto +
if %operacion% = - goto -
if %operacion% = x goto x
if %operacion% = / goto /


:-
cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a restar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a restar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%-%var2%

echo El resultado de la resta es %resultado%

pause>nul

exit


:+
cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a sumar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a sumar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%+%var2%

echo El resultado de la suma es %resultado%

pause>nul

exit


:x
cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a multiplicar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a multiplicar:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%*%var2%

echo El resultado de la multiplicacion es %resultado%

pause>nul

exit



:/
cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a dividir:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a dividir:

cls
echo ********************************************************************************
echo.
echo.
echo.
echo     ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo             ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo. 
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%/%var2%

echo El resultado de la divicion es %resultado%

pause>nul

exit


Si me aclarecen se los agradeceria mucho ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

~[uNd3rc0d3]~

basandote en una cuenta de dos digitos como la calculadora que estas haciendo vos

porque no usas la operacion como otra variable

y te haces el code re corto...mira este code

@echo off
title calculadora de riva de dos numeros
:menu
cls
echo.
set /p a=ingrese el primer numero.:
cls
echo.
echo + - * /
echo.
set /p b=ingrese la operacion a realizar.:
cls
echo.
set /p c=ingrese el segundo numero.:
cls
echo.
set /a resultado=a%b%c
echo el resultado es %resultado%
pause >nul
goto menu



viste!! super corto y efectivo

estas es sensilla solo de dos numeros


leete las reglas asi todos estamos mejor ;)

MK-Ultra

vale, mucahs gracias, pero si alguien seria tan amable de decirme que parte de mi codigo esta mal, porq no entiendo dnd esta la falla.

:P

Muchias gracias = riva  ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ