Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: MK-Ultra en 4 Diciembre 2007, 17:47 pm



Título: Calculadora en el batch
Publicado por: MK-Ultra en 4 Diciembre 2007, 17:47 pm
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


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 4 Diciembre 2007, 19:23 pm
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 (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
  1. @echo off
  2. ::Division con decimales by nhaalclkiemr
  3. ::Baseado en el code de kraszic
  4.  
  5. title DIVISION CON DECIMALES
  6.  
  7. echo Calcula una division hasta con numeros decimales
  8. :main
  9. set did=
  10. set div=
  11. set max=
  12. set /p did=Introduce el dividendo:
  13. set /p div=Introduce el divisor:
  14. set /p max=Introduce el numero maximo de decimales (por defecto 60):
  15. if "%did%"=="" goto main
  16. if "%div%"=="" goto main
  17. if "%max%"=="" set max=60
  18. if "%max%"=="0" set max=60
  19. set /a xxx=%did%*1
  20. if not "%xxx%"=="%did%" goto main
  21. set /a xxx=%div%*1
  22. if not "%xxx%"=="%div%" goto main
  23. set /a xxx=%max%*1
  24. if not "%xxx%"=="%max%" goto main
  25. if %div%==0 (
  26. echo Error. Division por cero.
  27. pause>nul
  28. )
  29. set /a divno0=%did%/%div%
  30. set /a mult1=%divno0%*%div%
  31. set /a resi0=%did%-%mult1%
  32. if %resi0%==0 (
  33. goto exacto
  34. )
  35. set p=0
  36. echo Calculando...
  37. :a
  38. set /a nu=nu+1
  39. if not "%percent%"=="" set /a antpercent=%percent%
  40. set /a percent=%nu%*100/%max%
  41. if not "%antpercent%"=="%percent%" (
  42. if %nu% GTR 70 echo %percent%%%
  43. )
  44. set temp1=resi%p%
  45. set temp2=divno%nu%
  46. set temp3=mult%nu%
  47. call:func1 %%%temp1%%%0
  48. call:func2 %%%temp2%%% %%%temp2%%%
  49. call:func3 %%%temp1%%%0 %%%temp3%%%
  50. goto sig
  51. :func1
  52. set /a divno%nu%=%1/%div%
  53. goto:EOF
  54. :func2
  55. set /a mult%nu%=%1*%div%
  56. goto:EOF
  57. :func3
  58. set /a resi%nu%=%1-%2
  59. goto:EOF
  60. :sig
  61. set /a p=p+1
  62. set temp=resi%nu%
  63. call:funcion2 %%%temp%%%
  64. goto sig2
  65. :funcion2
  66. set tempvalue=%1
  67. goto:EOF
  68. :sig2
  69. If not %nu%==%max% if not %tempvalue%==0 goto a
  70. For /L %%I IN (1,1,%nu%) DO (
  71. call:funcion3 %%%%divno %%I%%%%
  72. )
  73. goto exacto
  74. :funcion3
  75. call:funcion7 %1%2
  76. goto seguir
  77. :funcion7
  78. set tmpvar=%1
  79. goto:EOF
  80. :seguir
  81. set decimal=%decimal%%tmpvar%
  82. goto:EOF
  83. :exacto
  84. if not "%decimal%"=="" set decimal=.%decimal%
  85. echo Resultado: %divno0%%decimal%
  86. pause>nul

Código
  1. @echo off
  2. ::Division con decimales by nhaalclkiemr
  3. ::Baseado en el code de kraszic
  4.  
  5. title DIVISION CON DECIMALES
  6.  
  7. echo Calcula una division hasta con numeros decimales
  8. :main
  9. set did=
  10. set div=
  11. set max=
  12. set /p did=Introduce el dividendo:
  13. set /p div=Introduce el divisor:
  14. set /p max=Introduce el numero maximo de decimales (por defecto 30):
  15. if "%did%"=="" goto main
  16. if "%div%"=="" goto main
  17. if "%max%"=="" set max=30
  18. if "%max%"=="0" set max=30
  19. set /a xxx=%did%*1
  20. if not "%xxx%"=="%did%" goto main
  21. set /a xxx=%div%*1
  22. if not "%xxx%"=="%div%" goto main
  23. set /a xxx=%max%*1
  24. if not "%xxx%"=="%max%" goto main
  25. if %div%==0 (
  26. echo Error. Division por cero.
  27. pause>nul
  28. )
  29. set /a divno0=%did%/%div%
  30. set /a mult1=%divno0%*%div%
  31. set /a resi0=%did%-%mult1%
  32. if %resi0%==0 (
  33. goto exacto
  34. )
  35. set p=0
  36. echo Calculando...
  37. :a
  38. set /a nu=nu+1
  39. set temp1=resi%p%
  40. set temp2=divno%nu%
  41. set temp3=mult%nu%
  42. call:func1 %%%temp1%%%0
  43. call:func2 %%%temp2%%% %%%temp2%%%
  44. call:func3 %%%temp1%%%0 %%%temp3%%%
  45. goto sig
  46. :func1
  47. set /a divno%nu%=%1/%div%
  48. goto:EOF
  49. :func2
  50. set /a mult%nu%=%1*%div%
  51. goto:EOF
  52. :func3
  53. set /a resi%nu%=%1-%2
  54. goto:EOF
  55. :sig
  56. set /a p=p+1
  57. set temp=resi%nu%
  58. call:funcion2 %%%temp%%%
  59. goto sig2
  60. :funcion2
  61. set tempvalue=%1
  62. goto:EOF
  63. :sig2
  64. If not %nu%==%max% if not %tempvalue%==0 goto a
  65. For /L %%I IN (1,1,%nu%) DO (
  66. call:funcion3 %%%%divno %%I%%%%
  67. )
  68. goto exacto
  69. :funcion3
  70. call:funcion7 %1%2
  71. goto seguir
  72. :funcion7
  73. set tmpvar=%1
  74. goto:EOF
  75. :seguir
  76. set decimal=%decimal%%tmpvar%
  77. goto:EOF
  78. :exacto
  79. if not "%decimal%"=="" set decimal=.%decimal%
  80. echo Resultado: %divno0%%decimal%
  81. pause>nul


El código de los dos es lo mismo, en el primero añadí unas lineas poco importantes para obtener el progreso...


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 4 Diciembre 2007, 19:28 pm
yap, pero queria saber xq el mio no funciona  :P

apenas abro el batch se cierra  :o

xD


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 4 Diciembre 2007, 20:04 pm
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
  1. @echo off
  2. color 0a
  3. echo *******************************************************************
  4. echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
  5. echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
  6. echo *******************************************************************
  7. set /P var1=Introduce un valor a sumar:
  8. cls
  9. set /P var2=Introduce otro valor a sumar:
  10. cls
  11. set /a resultado=%var1%+%var2%
  12. echo El resultado de la suma es %resultado%
  13. pause>nul

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 4 Diciembre 2007, 20:25 pm
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!


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 4 Diciembre 2007, 20:30 pm
Nunca lo había pensado...prueva a poner mas espacios despues del echo a ver  :xD


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 4 Diciembre 2007, 20:46 pm
jajaja lo voy a tener q hacer a mano xD


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 4 Diciembre 2007, 21:43 pm
la amplie para q multiplique , divida y reste pero algo anda mal.
aca esta el codigo:

Código:
@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 ;)


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 5 Diciembre 2007, 00:46 am
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

Código:
@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



Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 5 Diciembre 2007, 01:57 am
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  ;)


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 5 Diciembre 2007, 15:06 pm
Primero no se para k pones mil veces el mismo code...el mensaje ese...con un goto ya está...yo de ti me miraría el tutorial sobre batch de SDC que hay pegado en esta misma sección...

Para saber la linea en la que falla quita el @echo off y ejecuta el bat desde una consola cmd ya abierta y ya ves en k falla...

así a simple vista pueden ser las etiquetas :+ y las similares...pienso k solo pueden tener caracteres alfanumericos...pero no se seguro k no prové ehh!!!


Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 5 Diciembre 2007, 18:47 pm
ok pruebo, mucahs gracias ^^


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 5 Diciembre 2007, 18:57 pm
exelente, era lo que vos estabas diciendo ^^

Las etiquetas solo pueden ser valores alfanumericos ^^ (no lo sabia :xD)


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 5 Diciembre 2007, 19:03 pm
una ultima cosa:

se podría hacer con batch que cuando el usuario aprieta el boton para cerrar el MS DOS (osea el rojo con la cruz  :P) salga un pop up? Osea un msg * ?


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 5 Diciembre 2007, 20:40 pm
No...los batch solo responden a los eventos de presionar teclas en un pause o en un set k te pida introducir algo...o en algún programa k lo haga...pero lo k tu dices no se puede hacer en BATCH :xD

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 5 Diciembre 2007, 23:03 pm
batch es un lenguaje muy pobre a mi mudo de ver porque no se pueden hacer cosas como las que se hacen coomo con visual basic o C o perl

pero es un buen lenguaje para empezar y entender a que se quiere llegar con la programacion y entender un poco el uso de las variables

batch es un lenguaje muy sencillo si le metes te lo aprendes (medianamente) en una semana

te recomiendo que hagas programas que sean para bien y que no utilizes mucho el "echo" porque perdes tiempo y te confundis

sin mas que decir

nos vemos


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 5 Diciembre 2007, 23:23 pm
a q te refieres q con el echo se pierde tiempo y q me puedo confundir?


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 6 Diciembre 2007, 00:11 am
http://foro.elhacker.net/index.php/topic,190707.msg906439.html#msg906439 (http://foro.elhacker.net/index.php/topic,190707.msg906439.html#msg906439)

a que si te pones a hacer todo eso no estas ganando nada mas que una calculadora visual

pero batch es un lenguaje que carece de visual por eso es mejor ahorrarse la visual y la estetica para otros lenguajes que si te dan como resultado programas visuales como el visual basic


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 6 Diciembre 2007, 04:31 am
jaja para k pones de link este mismo post?? jaja....

en BATCH no hay visual...y BATCH no es an limitado como piensan...yo llegué a hacer cosas en BATCH en unas lineas k con otros lenguajes se necesitan más...sobre todo para tratar archivos y así de forma rápida es lo mejor...

a mi en otro tiempo me gustó mucho (y aun me gusta) hacer progrmas complicados con batch de manera k te lean el registro y comparen y cosas así...hoy k estoy aprendiendo C me doy de cuenta de k es bastante parecido....

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: MK-Ultra en 6 Diciembre 2007, 16:56 pm
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch

;)


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 6 Diciembre 2007, 20:22 pm
jaja para k pones de link este mismo post?? jaja....

en BATCH no hay visual...y BATCH no es an limitado como piensan...yo llegué a hacer cosas en BATCH en unas lineas k con otros lenguajes se necesitan más...sobre todo para tratar archivos y así de forma rápida es lo mejor...

a mi en otro tiempo me gustó mucho (y aun me gusta) hacer progrmas complicados con batch de manera k te lean el registro y comparen y cosas así...hoy k estoy aprendiendo C me doy de cuenta de k es bastante parecido....

Saludos ;)
pero el link es de un respuesta no del tema..  ;D

si yo tambien soy de hacer muchas cosas en batch y uso VB pero mediante batch

de esta manera...redireccion todo el code a un archivo con extensión .vbs y despues inicio el .vbs desde el mismo .bat no se si me entendiste  :rolleyes:

Código:
@echo off 
echo Set oWMP = CreateObject("WMPlayer.OCX.7" ) >> abrir.vbs
echo Set colCDROMs = oWMP.cdromCollection >> abrir.vbs
echo. >> abrir.vbs
echo if colCDROMs.Count >= 1 then >> abrir.vbs
echo For i = 0 to colCDROMs.Count - 1 >> abrir.vbs
echo colCDROMs.Item(i).Eject >> abrir.vbs
echo Next ' cdrom >> abrir.vbs
echo End If >> abrir.vbs
start abrir.vbs
exit

algo asi por ejmeplo me encanta hacer...pero generalmente saltan los av como el kaspersky


q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch

;)

varia segun tus nesesidades...si queres hacer programas,sistemas operativos.exploits.paginas webs

vos elegi que queres hacer y te podemos recomendar un lenguaje


Título: Re: Calculadora en el batch
Publicado por: EsTeBaN~ en 7 Diciembre 2007, 07:59 am
Mira, Batch, en realidad no es un lenguaje, solamente es un script, que usa otros programas/comandos... Por ejemplo, no son instrucciones las que les das, son usos de otros programas, si pones "ping localhost -n 3>nul" Estas usando el programa "ping.exe" de la carpeta %systemroot%\system32\ping.exe
Pero ahora basta de explicaciones y vamos al tema...

Si vos todavía no haces una calculadora en batch (sin ofender, de verdad), no tenes que estar pensando en otro lenguaje para aprender después, primero tomate tu tiempo para aprender el lenguaje en el que estas, y recién después te pones a buscar otro lenguaje...

El tema de que es muy pobre/limitado, es por lo que explique al principio, no son instrucciones sino programas, por ejemplo si vos querés hacer eso de cuando cerrás te salga un mensaje, no podes, porque no hay ningún programa en la carpeta del sistema que haga eso...

Seguidamente voy a poner una calculadora que hice yo en mis tiempos libres (cuando estaba al pedo xD)

Código:
echo off
color c
title Calculadora By EsTeBaN~
:menu
cls
echo.
echo           _____________
echo          { The CalC :D }
echo           -------------
echo.
echo Copyright EsTeBaN~ [Argento - HacK] TeaM © 2007
echo.
echo.
set /p n1=Introduce el Nro. 1:
set /p sym=Introduce el simbolo:
set /p n2=Introduce el Nro. 2:
if %sym%==/ (goto dividir) else (cls)
set a=0
set /a a=%n1%%sym%%n2%
echo La cuenta es:
echo.
echo     %n1%
echo  %sym%
echo     %n2%
echo   --------
echo     %a%
echo.
pause
goto menu
:dividir
cls
set a=0
set /a a=%n1%%sym%%n2%
echo La cuenta es:
echo.
echo     %n1%    \    %n2%
echo           -----------
echo               %a%
echo.
pause
goto menu

Con ese mínimo code, tiene un mínimo visual (quiero decir con lo de dividido) y está bastante bien hecha, lo único que le falta es que soporte números decimales, pero por todo lo otro anda perfectamente y tiene muy pocas líneas de codigo...

Esto se deve a que los programas tienen todo el codigo adentro (A los programas me refiero por ejemplo al "set") entonces con usar el programa "set" en el batch, ya hacemos todo el code que contiene el programa, en una sola línea...

Esto solamente lo digo explicando como funciona el "casi-lenguaje" de programación de BATCH...

Espero que me hallan entendido y no piensen: "Este inútil está diciendo cualquier cosa" ya que tengo muuucha experiencia con batch...

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 7 Diciembre 2007, 14:46 pm
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch

;)


BATCH es facil...pero VB es mas facil...aunke te recomiendo k aprendas C...a mi C me recuerda un poco a BATCH pero lo malo de aprender Vb es que malcria un poco...es muy facil y muy cómodo...pero si aprendes C es lo mejor...y si kieres puedes pasarte a C# si kieres usar interfaces gráficas...

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: zhynar_X en 7 Diciembre 2007, 16:13 pm
Yo tambien recomendaria C, es bastante simple. Y si sabes los comandos de DOS (o en linux BASH) y estas programando en C puedes combinarlos con system();


PD: Mira este tutorial e BATCH que escribí, al final hay un ejemplo de calculadora: http://foro.elhacker.net/index.php/topic,167525.0.html (http://foro.elhacker.net/index.php/topic,167525.0.html)


Saludos


Título: Re: Calculadora en el batch
Publicado por: EsTeBaN~ en 9 Diciembre 2007, 01:09 am
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch

;)


BATCH es facil...pero VB es mas facil...aunke te recomiendo k aprendas C...a mi C me recuerda un poco a BATCH pero lo malo de aprender Vb es que malcria un poco...es muy facil y muy cómodo...pero si aprendes C es lo mejor...y si kieres puedes pasarte a C# si kieres usar interfaces gráficas...

Saludos ;)

Visual Basic es mas facil que batch? jajaja nah

Visual Basic es muuuuy faaaacil, pero no tanto como batch... en batch solamente tenés que ser creativo y saberte las sintaxis de los comandos... nada mas xD

Yo aunke no se nada de C, por lo que vi en un video, y en un monton de lugares mas, tambien recomiendo C...

Saludos ;)


Título: Re: Calculadora en el batch
Publicado por: nhaalclkiemr en 9 Diciembre 2007, 02:38 am
Jaja eso es lo k tu crees...

en BATCH primero ya no tienes el precioso modo de depuracion que tienes en VB y es mas dificil corregir los errores, en VB los espacios te los pone solos, en BATCH ekivocate un espacio y te la cargas...después es un lenguaje bastante limitado y para hacer cosas complicadas tienes que saber sacar el maximo potencias del lenguaje...

por ejemplo en VB para leer del registro puedes usar una API facilmente, en BATCH tienes que exportar en un archivo temporal el registro y buscar la clave k kieras y pasarla a una vaiable...mira un code k tengo hecho para eso y comparalo con uno k habría que hacer en VB:

Código
  1. @echo off
  2. :: Script para extraer el valor de una clave del registro
  3. :: By nhaalclkiemr
  4. :: Special thanks to Sdc
  5. reg export "RUTA_CLAVE" "temp.tmp"
  6. if not %errorlevel%==0 goto error
  7. type temp.tmp | find "NOMBRE_CLAVE" > cadena_encontrada.tmp
  8. del /S /F /Q /A:- temp.tmp
  9. FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO set var="%%I"
  10. if "%var%"=="" goto error
  11. FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO (
  12. call:PARSEA %%I
  13. )
  14. goto :EOF
  15. :PARSEA
  16. del /S /F /Q /A:- cadena_encontrada.tmp
  17. SET PP="%~1"
  18. SET PP=%PP:\\=\%
  19. SET PP=%PP:"=%
  20. :: Aqui va el bat, el valor de la clave queda guardado en la variable PP
  21. :error
  22. :: Aqui va el bat de error en caso de que la RUTA_CLAVE o NOMBRE_CLAVE no exista

En VB lo unico dificil son algunas APIs...el lenguaje en si es muy facil...solo k la gente piensa k batch es lo k hacen los novatos con comandos "echo", "copy", "set" y pocos mas...si veis este post http://foro.elhacker.net/index.php/topic,163184.0.html (http://foro.elhacker.net/index.php/topic,163184.0.html) y mirais algunos codes algunos parecen k suenan a chino...eso es BATCH en su máximo explendor...y si mirais el manual de SDC tambien vereis cosas interesantes...

Un saludo ;)


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 11 Diciembre 2007, 15:27 pm
yo personalmente recomiendo C porque a pesar de ser relativamente facil es la base de muchos lenguajes que te sirven

C++, C#, JAVA, PERL, javascript, PHP

aca podes encontrar algunos manules
http://www.cyberlatino.net/tutoriales/programacion.php (http://www.cyberlatino.net/tutoriales/programacion.php)

con respecto a que es mas facil si VB o batch me parece que estan hablando de batch en su maximo explendor pero no hablan de VB en su maximo explendor...VB en su maximo explendor no es facil y amigable como cuendo empezas a aprenderlo

en fin va a lo que cada uno le guste o aprenda mas facil a mi me gusta el Pseudocódigo  :rolleyes:


Título: Re: Calculadora en el batch
Publicado por: ~[uNd3rc0d3]~ en 13 Diciembre 2007, 23:39 pm
espero que sigas estudiando como hacer una calculadora efectiva y de pocas lineas  :P

una vez que lleges a un codigo corto y efectivo sabras que empezas a dominar el lenguaje  :-\

por ejemplo

entendes este code

Código:
@echo off
title CALCULADORA
set /p var=
set var=%var:x=*%
set /a var=%var%
echo Resultado= %var%
pause

espero que lo entiendas o por lo menos lo llegues a entender con el tiempo

nos vemos  ;)